arm: Fix the "c" constraint
[gcc.git] / gcc / ChangeLog
1 2019-11-14 Richard Henderson <richard.henderson@linaro.org>
2
3 * config/arm/constraints.md (c): Use cc_register predicate.
4
5 * config/aarch64/constraints.md (c): New constraint.
6
7 2019-11-14 Jan Hubicka <hubicka@ucw.cz>
8
9 * ipa-fnsummary.c (ipa_call_context::estimate_size_and_time,
10 ipa_merge_fn_summary_after_inlining): Micro optimize.
11
12 2019-11-14 Jan Hubicka <hubicka@ucw.cz>
13
14 * params.opt (max-inline-insns-single-O2): Set to 70 (instead of 30).
15
16 2019-11-14 Jan Hubicka <hubicka@ucw.cz>
17
18 * ipa-cp.c (ipa_vr_operation_and_type_effects): Move up in file.
19 (ipa_value_range_from_jfunc): New function.
20 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Add
21 known_value_ranges parameter; use it to evalulate conditions.
22 (evaluate_properties_for_edge): Compute known value ranges.
23 (ipa_fn_summary_t::duplicate): Update use of
24 evaluate_conditions_for_known_args.
25 (estimate_ipcp_clone_size_and_time): Likewise.
26 (ipa_merge_fn_summary_after_inlining): Likewise.
27 * ipa-prop.h (ipa_value_range_from_jfunc): Declare.
28
29 2019-11-14 Martin Liska <mliska@suse.cz>
30
31 * ipa-inline.c (want_inline_small_function_p): Use
32 CIF_MAX_INLINE_INSNS_AUTO_LIMIT instead
33 of CIF_MAX_INLINE_INSNS_SINGLE_O2_LIMIT.
34
35 2019-11-14 Martin Liska <mliska@suse.cz>
36
37 * ipa-cp.c (devirtualization_time_bonus): Use opt_for_fn
38 of a callee to get value of the param.
39 * ipa-inline.c (inline_insns_auto): Use proper
40 opt_for_fn.
41 * opts.c (maybe_default_option): Do not overwrite param
42 value if optimization level does not match. Note that
43 params usually have default value set via Init() keyword.
44 * params.opt: Remove -param=max-inline-insns-auto-O2.
45 * cif-code.def (MAX_INLINE_INSNS_AUTO_O2_LIMIT): Remove.
46 * doc/invoke.texi: Remove documentation of
47 max-inline-insns-auto-O2.
48
49 2019-11-14 Martin Liska <mliska@suse.cz>
50
51 * tree-switch-conversion.c (switch_conversion::switch_conversion):
52 Do not initialize m_other_count.
53 (switch_conversion::collect): Do not count m_default_count and
54 m_other_count as we use frequencies for edges.
55 * tree-switch-conversion.h: Remove m_default_count and m_other_count.
56
57 2019-11-14 Martin Liska <mliska@suse.cz>
58
59 PR other/92329
60 * doc/invoke.texi: Document -fallocation-dce.
61
62 2019-11-14 Martin Liska <mliska@suse.cz>
63
64 PR target/92389
65 * config/i386/i386.h: Add PTA_AVX512VPOPCNTDQ to
66 PTA_ICELAKE_CLIENT which is later interited by
67 PTA_ICELAKE_SERVER and PTA_TIGERLAKE.
68
69 2019-11-14 Martin Liska <mliska@suse.cz>
70
71 * ipa-icf.c (sem_item_optimizer::execute): Save
72 loaded_symbols.
73 (sem_item_optimizer::parse_nonsingleton_classes):
74 Return number of loaded symbols.
75 (sem_item_optimizer::merge_classes): Print
76 statistics about totally needed symbols.
77 * ipa-icf.h (parse_nonsingleton_classes): Change return
78 type.
79 (merge_classes): Add one argument.
80
81 2019-11-14 Martin Liska <mliska@suse.cz>
82
83 * ipa-icf-gimple.c (func_checker::hash_operand): Improve
84 func_checker::hash_operand by handling of FIELD_DECLs.
85
86 2019-11-14 Martin Liska <mliska@suse.cz>
87
88 * ipa-icf-gimple.h (func_checker::func_checker): Add
89 default constructor.
90 * ipa-icf.c (sem_function::init): Make operand_equal_p
91 and hash_operand public.
92 (sem_item::add_expr): Remove.
93 (sem_item::add_type): Remove.
94 (sem_function::hash_stmt): Use m_checker for hashing
95 of GIMPLE statements.
96 (sem_function::parse): Init with checker.
97 (sem_variable::parse): Pass NULL as checker.
98 (sem_item_optimizer::parse_funcs_and_vars):
99 Pass checker to ::parse function.
100 (sem_item_optimizer::parse_nonsingleton_classes): Likewise.
101 (sem_variable::parse): New function.
102 (sem_variable::get_hash): Only return computed hash value.
103 (sem_variable::init): Initialize hash of a variable.
104 * ipa-icf.h: Remove add_expr, add_type and add func_checker
105 to couple of functions as a new argument.
106
107 2019-11-14 Martin Liska <mliska@suse.cz>
108
109 * ipa-icf-gimple.c (func_checker::compare_gimple_call): Update
110 bail out reason.
111 (func_checker::compare_gimple_assign): Likewise.
112
113 2019-11-14 Jakub Jelinek <jakub@redhat.com>
114
115 * config/i386/i386-options.c (ix86_omp_device_kind_arch_isa): Don't
116 change sse4.2 to sse4_2 and sse4.1 to sse4.1.
117 * config/i386/t-omp-device (omp-device-properties-i386): Likewise.
118
119 * omp-general.c (omp_context_name_list_prop): New function.
120 (omp_context_selector_matches): Use it. Return 0 if it returns
121 NULL.
122 (omp_context_selector_props_compare): Allow equivalency of an
123 identifier and a string literal containing no embedded zeros.
124
125 2019-11-14 Aldy Hernandez <aldyh@redhat.com>
126
127 * range-op.cc (RANGE3): Remove.
128 (range_tests): Remove all selftest that check for multi-ranges.
129 Put tests in namespace selftest.
130 * selftest.h: Move range_tests into namespace selftest.
131 * value-range.h (class value_range): Unfriend range_tests.
132
133 2019-11-14 Aldy Hernandez <aldyh@redhat.com>
134
135 * tree-vrp.c (range_fold_binary_symbolics_p): Adapt for
136 normalize_symbolics and normalize_addresses working in place.
137 (range_fold_unary_symbolics_p): Same.
138 (range_fold_unary_symbolics_p): Same.
139 * value-range.cc (num_pairs): Same.
140 (lower_bound): Same.
141 (upper_bound): Same.
142 (contains_p): Same.
143 (normalize_addresses): Same.
144 (normalize_symbolics): Same.
145 * value-range.h (normalize_symbolics): Same.
146 (normalize_addresses): Same.
147
148 2019-11-14 Feng Xue <fxue@os.amperecomputing.com>
149
150 PR ipa/91682
151 * ipa-prop.h (jump_func_type): New value IPA_JF_LOAD_AGG.
152 (ipa_load_agg_data, ipa_agg_value, ipa_agg_value_set): New structs.
153 (ipa_agg_jf_item): Add new field jftype and type, redefine field value.
154 (ipa_agg_jump_function): Remove member function equal_to.
155 (ipa_agg_jump_function_p): Remove typedef.
156 (ipa_copy_agg_values, ipa_release_agg_values): New functions.
157 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump
158 information for aggregate jump function.
159 (get_ssa_def_if_simple_copy): Add new parameter rhs_stmt to
160 record last definition statement.
161 (load_from_unmodified_param_or_agg): New function.
162 (ipa_known_agg_contents_list): Add new field type and value, remove
163 field constant.
164 (build_agg_jump_func_from_list): Rename parameter const_count to
165 value_count, build aggregate jump function from ipa_load_agg_data.
166 (analyze_agg_content_value): New function.
167 (extract_mem_content): Analyze memory store assignment to prepare
168 information for aggregate jump function generation.
169 (determine_known_aggregate_parts): Add new parameter fbi, remove
170 parameter aa_walk_budeget_p.
171 (update_jump_functions_after_inlining): Update aggregate jump function.
172 (ipa_find_agg_cst_for_param): Change type of parameter agg.
173 (try_make_edge_direct_simple_call): Add new parameter new_root.
174 (try_make_edge_direct_virtual_call): Add new parameter new_root and
175 new_root_info.
176 (update_indirect_edges_after_inlining): Pass new argument to
177 try_make_edge_direct_simple_call and try_make_edge_direct_virtual_call.
178 (ipa_write_jump_function): Write aggregate jump function to file.
179 (ipa_read_jump_function): Read aggregate jump function from file.
180 (ipa_agg_value::equal_to): Migrate from ipa_agg_jf_item::equal_to.
181 * ipa-cp.c (ipa_get_jf_arith_result): New function.
182 (ipa_agg_value_from_node): Likewise.
183 (ipa_agg_value_set_from_jfunc): Likewise.
184 (propagate_vals_across_arith_jfunc): Likewise.
185 (propagate_aggregate_lattice): Likewise.
186 (ipa_get_jf_pass_through_result): Call ipa_get_jf_arith_result.
187 (propagate_vals_across_pass_through): Call
188 propagate_vals_across_arith_jfunc.
189 (get_clone_agg_value): Move forward.
190 (propagate_aggs_across_jump_function): Handle value propagation for
191 aggregate jump function.
192 (agg_jmp_p_vec_for_t_vec): Remove.
193 (context_independent_aggregate_values): Replace vec<ipa_agg_jf_item>
194 with vec<ipa_agg_value>.
195 (copy_plats_to_inter, intersect_with_plats): Likewise.
196 (agg_replacements_to_vector, intersect_with_agg_replacements): Likewise.
197 (intersect_aggregate_with_edge): Likewise.
198 (find_aggregate_values_for_callers_subset): Likewise.
199 (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
200 (estimate_local_effects): Replace vec<ipa_agg_jump_function> and
201 vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>.
202 (gather_context_independent_values): Likewise.
203 (perform_estimation_of_a_value, decide_whether_version_node): Likewise.
204 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Replace
205 vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>.
206 (evaluate_properties_for_edge): Likewise.
207 (estimate_edge_devirt_benefit): Likewise.
208 (estimate_edge_size_and_time): Likewise.
209 (estimate_calls_size_and_time): Likewise.
210 (ipa_call_context::ipa_call_context): Likewise.
211 (estimate_ipcp_clone_size_and_time): Likewise.
212 * ipa-fnsummary.h (ipa_call_context): Replace
213 vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>.
214 * ipa-inline-analysis.c (do_estimate_edge_time): Replace
215 vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>.
216 (do_estimate_edge_size): Likewise.
217 (do_estimate_edge_hints): Likewise.
218
219 2019-11-13 Jan Hubicka <hubicka@ucw.cz>
220
221 * ipa-cp.c (propagate_vr_across_jump_function): Propagate also across
222 binary operations.
223
224 2019-11-13 Jan Hubicka <hubicka@ucw.cz>
225
226 * ipa-profile.c (check_argument_count): Check properly that e_info
227 is non-NULL; do not check descriptors.
228
229 2019-11-13 Jan Hubicka <hubicka@ucw.cz>
230
231 * ipa-inline-analysis.c (do_estimate_edge_time): Relax
232 check for ipa profiles.
233
234 2019-11-13 Jan Hubicka <hubicka@ucw.cz>
235
236 PR c++/92421
237 * ipa-prop.c (update_indirect_edges_after_inlining):
238 Mark parameter as used.
239 * ipa-inline.c (recursive_inlining): Reset node cache
240 after inlining.
241 (inline_small_functions): Remove checking ifdef.
242 * ipa-inline-analysis.c (do_estimate_edge_time): Verify
243 cache consistency.
244
245 2019-11-13 Jan Hubicka <hubicka@ucw.cz>
246
247 PR ipa/92498
248 * ipa-profile.c (check_argument_count): Do not ICE when descriptors
249 is NULL.
250 (ipa_profile): Fix reversed test.
251
252 2019-11-13 Jan Hubicka <hubicka@ucw.cz>
253
254 * ipa-cp.c (ignore_edge_p): Do not check caller flags.
255 (propagate_constants_topo): Fix typo.
256
257 2019-11-13 Aldy Hernandez <aldyh@redhat.com>
258
259 * Makefile.in (OBJS): Add value-range.o.
260 (GTFILES): Add value-range.h.
261 * gengtype.c (open_base_files): Add value-range.h to list of
262 header files.
263 * tree-vrp.c: Move the following value_range related functions:
264 ranges_from_anti_range, value_range, check, equal_p, symbolic_p,
265 constant_p, set_undefined, set_varying, may_contain_p,
266 singleton_p, type, dump, dump_value_range, debug, vrp_val_max,
267 vrp_val_min, vrp_val_is_min, vrp_val_is_max, set, set_nonzero,
268 set_zero, vrp_operand_equal_p, range_has_numeric_bounds_p,
269 value_inside_range, ranges_from_anti_range, union_ranges,
270 intersect_ranges, intersect_helper, union_helper, union_,
271 normalize_addresses, normalize_symbolics, num_pairs, lower_bound,
272 upper_bound, contains_p, invert, intersect...
273 * value-range.cc: ...to here.
274 * tree-vrp.h: Move class value_range, enum_value_range_kind, and
275 associated inline methods from here...
276 * value-range.h: ...to here.
277
278 2019-11-13 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
279
280 * config/mips/mips.md (rotr<mode>3): Sanitize the constant argument
281 instead of asserting its value.
282
283 (2019-11-13 Aldy Hernandez <aldyh@redhat.com>
284
285 * gimple-fold.c (size_must_be_zero_p): Rewrite use of value_range
286 constructors and set methods so value_range_kind is the last
287 argument and defaults to VR_RANGE.
288 * gimple-ssa-evrp-analyze.c (record_ranges_from_stmt): Same.
289 * ipa-cp.c (propagate_vr_across_jump_function): Same.
290 * ipa-prop.c (ipa_get_value_range): Same.
291 (ipa_compute_jump_functions_for_edge): Same.
292 * range-op.cc (value_range_from_overflowed_bounds): Same.
293 (operator_cast::op1_range): Same.
294 (range_tests): Same.
295 * range.cc (range_nonzero): Same.
296 * tree-ssanames.c (get_range_info): Same.
297 * tree-vrp.c (value_range_equiv::set): Same.
298 (value_range::value_range): Same.
299 (value_range_equiv::value_range_equiv): Same.
300 (value_range_equiv::update): Same.
301 (value_range_equiv::deep_copy): Same.
302 (value_range_equiv::move): Same.
303 (value_range_equiv::set_undefined): Same.
304 (value_range::set): Same.
305 (value_range::set_nonzero): Same.
306 (ranges_from_anti_range): Same.
307 (extract_range_from_plus_minus_expr): Same.
308 (value_range::intersect_helper): Same.
309 (value_range_equiv::intersect): Same.
310 (value_range::union_helper): Same.
311 (value_range_equiv::union_): Same.
312 (value_range::normalize_symbolics): Same.
313 (value_range::invert): Same.
314 (determine_value_range_1): Same.
315 * tree-vrp.h (class value_range): Same.
316 (class value_range_equiv): Same.
317 * vr-values.c (set_value_range_to_nonnegative): Same.
318 (set_value_range_to_truthvalue): Same.
319 (vr_values::update_value_range): Same.
320 (vr_values::extract_range_for_var_from_comparison_expr): Same.
321 (vr_values::extract_range_from_binary_expr): Same.
322 (vr_values::extract_range_from_comparison): Same.
323 (vr_values::extract_range_basic): Same.
324 (vr_values::adjust_range_with_scev): Same.
325 (vr_values::vrp_evaluate_conditional_warnv_with_ops): Same.
326 (vr_values::extract_range_from_phi_node): Same.
327
328 2019-11-13 Ulrich Drepper <drepper@redhat.com>
329
330 * tree-dump.c (dequeue_and_dump): Print first tree operand
331 for VIEW_CONVERT_EXPR.
332
333 2019-11-13 Joseph Myers <joseph@codesourcery.com>
334
335 * ginclude/float.c [__STDC_VERSION__ > 201710L] (FLT_NORM_MAX,
336 DBL_NORM_MAX, LDBL_NORM_MAX): Define.
337 * real.c (get_max_float): Add norm_max argument.
338 * real.h (get_max_float): Update prototype.
339 * builtins.c (fold_builtin_interclass_mathfn): Update calls to
340 get_max_float.
341
342 2019-11-13 Martin Liska <mliska@suse.cz>
343
344 * dbgcnt.c (test_sorted_dbg_counters): New.
345 (dbgcnt_c_tests): Likewise.
346 * selftest-run-tests.c (selftest::run_tests): Likewise.
347 * selftest.h (dbgcnt_c_tests): Likewise.
348
349 2019-11-13 Jan Hubicka <hubicka@ucw.cz>
350 Martin Jambor <mjambor@suse.cz>
351
352 PR ipa/92454
353 * ipa-cp.c (spread_undeadness): Check that IPA_NODE_REF exists.
354 (identify_dead_nodes): Likewise.
355
356 2019-11-13 Martin Liska <mliska@suse.cz>
357
358 * ipa-icf.c (sem_function::equals_private): Do not overuse
359 push/pop_cfun functions.
360
361 2019-11-13 Martin Liska <mliska@suse.cz>
362
363 * common.opt: Document change of -fdbg-cnt option.
364 * dbgcnt.c (DEBUG_COUNTER): Remove.
365 (dbg_cnt_is_enabled): Remove.
366 (dbg_cnt): Work with new intervals.
367 (dbg_cnt_set_limit_by_index): Set to new
368 list of intervals.
369 (dbg_cnt_set_limit_by_name): Likewise.
370 (dbg_cnt_process_single_pair): Process new format.
371 (dbg_cnt_process_opt): Likewise.
372 (dbg_cnt_list_all_counters): Likewise.
373 * doc/invoke.texi: Document change of -fdbg-cnt option.
374 (cmp_tuples): New.
375
376 2019-11-13 Jan Hubicka <hubicka@ucw.cz>
377
378 * ipa-inline.c (ipa_inline): Check that function is defined before
379 flattening.
380
381 2019-11-13 Andrew Stubbs <ams@codesourcery.com>
382 Julian Brown <julian@codesourcery.com>
383
384 * config/gcn/gcn.c (gcn_goacc_validate_dims): Ensure
385 flag_worker_partitioning is not set.
386 (TARGET_GOACC_WORKER_PARTITIONING): Remove target hook definition.
387 * config/gcn/gcn.opt (macc-experimental-workers): Default to off.
388
389 2019-11-13 Andrew Stubbs <ams@codesourcery.com>
390
391 * config/gcn/gcn-run.c (heap_region): New global variable.
392 (struct hsa_runtime_fn_info): Add hsa_memory_assign_agent_fn.
393 (init_hsa_runtime_functions): Initialize hsa_memory_assign_agent.
394 (get_kernarg_region): Move contents to ....
395 (get_memory_region): .... here.
396 (get_heap_region): New function.
397 (init_device): Initialize the heap_region.
398 (device_malloc): Add region parameter.
399 (struct kernargs): Move heap ....
400 (heap): ... to global scope.
401 (main): Allocate heap separate to kernargs.
402
403 2019-11-13 Jan Hubicka <hubicka@ucw.cz>
404
405 * ipa-prop.c (ipa_print_node_jump_functions,
406 ipa_print_node_params): Print info about missing summaries.
407
408 2019-11-13 Richard Sandiford <richard.sandiford@arm.com>
409
410 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Include
411 the cost of generating loop masks.
412
413 2019-11-13 Richard Sandiford <richard.sandiford@arm.com>
414
415 * tree-vectorizer.h (vect_apply_runtime_profitability_check_p):
416 New function.
417 * tree-vect-loop-manip.c (vect_loop_versioning): Use it.
418 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
419 (vect_transform_loop): Likewise.
420 (vect_analyze_loop_costing): Don't take the cost of versioning
421 into account for the static profitability threshold if it turns
422 out that no versioning is needed.
423
424 2019-11-13 Jan Hubicka <hubicka@ucw.cz>
425
426 * ipa.c (cgraph_build_static_cdtor): Pass optimization_default_node
427 and target_option_default_node to get -fprofile-generate ctors working
428 right with LTO.
429
430 2019-11-13 Richard Sandiford <richard.sandiford@arm.com>
431
432 * tree-vectorizer.h (vect_nop_conversion_p): Declare.
433 * tree-vect-stmts.c (vect_nop_conversion_p): New function.
434 (vectorizable_assignment): Don't add a cost for nop conversions.
435 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
436 Likewise.
437 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise.
438
439 2019-11-13 Richard Sandiford <richard.sandiford@arm.com>
440
441 * tree-vect-stmts.c (vect_model_promotion_demotion_cost): Take the
442 number of ncopies as an additional argument.
443 (vectorizable_conversion): Update call accordingly. Use "modifier"
444 to check whether a conversion is between vectors with the same
445 numbers of units.
446
447 2019-11-13 Richard Sandiford <richard.sandiford@arm.com>
448
449 * config/aarch64/aarch64-sve-builtins-functions.h
450 (unary_count::expand): Use aarch64_sve_int_mode instead of
451 mode_for_int_vector.
452
453 2019-11-13 Martin Liska <mliska@suse.cz>
454
455 * opts.c: Update comment about OPT_LEVELS_2_PLUS_SPEED_ONLY.
456
457 2019-11-13 Martin Liska <mliska@suse.cz>
458
459 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers):
460 Remove call to finalize_options_struct.
461
462 2019-11-13 Georg-Johann Lay <avr@gjlay.de>
463
464 PR target/92055
465 * config/avr/t-avr (avr-mcus): Do not depend on
466 $(srcdir)/config/avr/t-multilib.
467
468 2019-11-13 Richard Biener <rguenther@suse.de>
469
470 PR tree-optimization/92473
471 * tree-vect-loop.c (vect_create_epilog_for_reduction): Perform
472 direct optab reduction in the correct type.
473
474 2019-11-12 Segher Boessenkool <segher@kernel.crashing.org>
475
476 * config/rs6000/rs6000.md (rs6000_set_fpscr_drn): Use ULL on big
477 hexadecimal literal.
478
479 2019-11-12 Segher Boessenkool <segher@kernel.crashing.org>
480
481 * config/rs6000/vsx.md (xscmpexpdp_<code> for CMP_TEST): Handle
482 UNORDERED if !HONOR_NANS (DFmode).
483 (xscmpexpqp_<code>_<mode> for CMP_TEST and IEEE128): Handle UNORDERED
484 if !HONOR_NANS (<MODE>mode).
485
486 2019-11-12 Jan Hubicka <hubicka@ucw.cz>
487
488 * ipa-cp.c (ignore_edge_p): Also look for optimize flag.
489 (ipcp_verify_propagated_values): Likewise.
490 (propagate_constants_across_call): Likewise.
491 (propagate_constants_topo): Likewise.
492 (ipcp_propagate_stage): Likewise.
493
494 2019-11-12 Jan Hubicka <hubicka@ucw.cz>
495
496 PR ipa/92471
497 * ipa-profile.c (check_argument_count): Break out from ...;
498 watch for missing summaries.
499 (ipa_profile): Here.
500
501 2019-11-12 Martin Sebor <msebor@redhat.com>
502
503 PR tree-optimization/92412
504 * targhooks.c (default_ref_may_alias_errno): Errono can only alias
505 extern variables.
506
507 2019-11-12 Martin Sebor <msebor@redhat.com>
508
509 PR middle-end/83688
510 * gimple-ssa-sprintf.c (format_result::alias_info): New struct.
511 (directive::argno): New member.
512 (format_result::aliases, format_result::alias_count): New data members.
513 (format_result::append_alias): New member function.
514 (fmtresult::dst_offset): New data member.
515 (pass_sprintf_length::call_info::dst_origin): New data member.
516 (pass_sprintf_length::call_info::dst_field, dst_offset): Same.
517 (char_type_p, array_elt_at_offset, field_at_offset): New functions.
518 (get_origin_and_offset): Same.
519 (format_string): Call it.
520 (format_directive): Call append_alias and set directive argument
521 number.
522 (maybe_warn_overlap): New function.
523 (pass_sprintf_length::compute_format_length): Call it.
524 (pass_sprintf_length::handle_gimple_call): Initialize new members.
525 * gcc/tree-ssa-strlen.c (): Also enable when -Wrestrict is on.
526
527 2019-11-12 Ilya Leoshkevich <iii@linux.ibm.com>
528
529 PR rtl-optimization/92430
530 * cfgcleanup.c (pass_jump_after_combine::execute): Free
531 dominance info at the beginning.
532
533 2019-11-12 Richard Biener <rguenther@suse.de>
534
535 PR tree-optimization/92460
536 * tree-vect-stmts.c (vectorizable_simd_clone_call): Unshare
537 expression before gimplifying.
538
539 2019-11-12 Richard Biener <rguenther@suse.de>
540
541 PR tree-optimization/92461
542 * tree-vect-loop.c (vect_create_epilog_for_reduction): Update
543 stmt after propagation.
544
545 2019-11-12 Martin Liska <mliska@suse.cz>
546
547 * config/i386/i386-options.c (ix86_recompute_optlev_based_flags):
548 Use SET_OPTION_IF_UNSET.
549 (ix86_option_override_internal): Likewise.
550 * opts.c (default_options_optimization): Likewise.
551 (finish_options): Likewise.
552 (enable_fdo_optimizations): Likewise.
553 (common_handle_option): Likewise.
554
555 2019-11-12 Martin Liska <mliska@suse.cz>
556
557 * common/common-target.def: Remove option_validate_param and
558 option_default_params.
559 * common/common-targhooks.c (default_option_validate_param):
560 Remove.
561 * common/common-targhooks.h (default_option_validate_param):
562 Remove.
563 * common/config/aarch64/aarch64-common.c (TARGET_OPTION_DEFAULT_PARAMS):
564 Remove usage of this.
565 (TARGET_OPTION_VALIDATE_PARAM): Likewise.
566 (aarch64_option_validate_param): Likewise.
567 (aarch64_option_default_params): Likewise
568 * common/config/bpf/bpf-common.c (bpf_option_default_params): Likewise.
569 (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
570 * common/config/ia64/ia64-common.c (ia64_option_default_params): Likewise.
571 (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
572 * common/config/powerpcspe/powerpcspe-common.c (rs6000_option_default_params): Likewise.
573 (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
574 * common/config/rs6000/rs6000-common.c (rs6000_option_default_params): Likewise.
575 (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
576 * common/config/sh/sh-common.c (sh_option_default_params): Likewise.
577 (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
578 * config/aarch64/aarch64.c (aarch64_override_options_internal): Validate
579 guard_size here.
580 * doc/tm.texi: Remove option_default_params and option_validate_param.
581 * doc/tm.texi.in: Likewise.
582
583 2019-11-12 Martin Liska <mliska@suse.cz>
584
585 * common/common-target.def:
586 Do not mention set_default_param_value
587 and set_param_value.
588 * doc/tm.texi: Likewise.
589
590 2019-11-12 Martin Liska <mliska@suse.cz>
591
592 * common.opt: Remove param_values.
593 * config/i386/i386-options.c (ix86_valid_target_attribute_p):
594 Remove finalize_options_struct.
595 * gcc.c (driver::decode_argv): Do not call global_init_params
596 and finish_params.
597 (driver::finalize): Do not call params_c_finalize
598 and finalize_options_struct.
599 * opt-suggestions.c (option_proposer::get_completions): Remove
600 special casing of params.
601 (option_proposer::find_param_completions): Remove.
602 (test_completion_partial_match): Update expected output.
603 * opt-suggestions.h: Remove find_param_completions.
604 * opts-common.c (add_misspelling_candidates): Add
605 --param with a space.
606 * opts.c (handle_param): Remove.
607 (init_options_struct):. Remove init_options_struct and
608 similar calls.
609 (finalize_options_struct): Remove.
610 (common_handle_option): Use SET_OPTION_IF_UNSET.
611 * opts.h (finalize_options_struct): Remove.
612 * toplev.c (general_init): Do not call global_init_params.
613 (toplev::finalize): Do not call params_c_finalize and
614 finalize_options_struct.
615
616 2019-11-12 Martin Liska <mliska@suse.cz>
617
618 * Makefile.in: Remove PARAMS_H and params.list
619 and params.options.
620 * params-enum.h: Remove.
621 * params-list.h: Remove.
622 * params-options.h: Remove.
623 * params.c: Remove.
624 * params.def: Remove.
625 * params.h: Remove.
626 * asan.c: Do not include params.h.
627 * auto-profile.c: Likewise.
628 * bb-reorder.c: Likewise.
629 * builtins.c: Likewise.
630 * cfgcleanup.c: Likewise.
631 * cfgexpand.c: Likewise.
632 * cfgloopanal.c: Likewise.
633 * cgraph.c: Likewise.
634 * combine.c: Likewise.
635 * common/config/aarch64/aarch64-common.c: Likewise.
636 * common/config/gcn/gcn-common.c: Likewise.
637 * common/config/ia64/ia64-common.c: Likewise.
638 * common/config/powerpcspe/powerpcspe-common.c: Likewise.
639 * common/config/rs6000/rs6000-common.c: Likewise.
640 * common/config/sh/sh-common.c: Likewise.
641 * config/aarch64/aarch64.c: Likewise.
642 * config/alpha/alpha.c: Likewise.
643 * config/arm/arm.c: Likewise.
644 * config/avr/avr.c: Likewise.
645 * config/csky/csky.c: Likewise.
646 * config/i386/i386-builtins.c: Likewise.
647 * config/i386/i386-expand.c: Likewise.
648 * config/i386/i386-features.c: Likewise.
649 * config/i386/i386-options.c: Likewise.
650 * config/i386/i386.c: Likewise.
651 * config/ia64/ia64.c: Likewise.
652 * config/rs6000/rs6000-logue.c: Likewise.
653 * config/rs6000/rs6000.c: Likewise.
654 * config/s390/s390.c: Likewise.
655 * config/sparc/sparc.c: Likewise.
656 * config/visium/visium.c: Likewise.
657 * coverage.c: Likewise.
658 * cprop.c: Likewise.
659 * cse.c: Likewise.
660 * cselib.c: Likewise.
661 * dse.c: Likewise.
662 * emit-rtl.c: Likewise.
663 * explow.c: Likewise.
664 * final.c: Likewise.
665 * fold-const.c: Likewise.
666 * gcc.c: Likewise.
667 * gcse.c: Likewise.
668 * ggc-common.c: Likewise.
669 * ggc-page.c: Likewise.
670 * gimple-loop-interchange.cc: Likewise.
671 * gimple-loop-jam.c: Likewise.
672 * gimple-loop-versioning.cc: Likewise.
673 * gimple-ssa-split-paths.c: Likewise.
674 * gimple-ssa-sprintf.c: Likewise.
675 * gimple-ssa-store-merging.c: Likewise.
676 * gimple-ssa-strength-reduction.c: Likewise.
677 * gimple-ssa-warn-alloca.c: Likewise.
678 * gimple-ssa-warn-restrict.c: Likewise.
679 * graphite-isl-ast-to-gimple.c: Likewise.
680 * graphite-optimize-isl.c: Likewise.
681 * graphite-scop-detection.c: Likewise.
682 * graphite-sese-to-poly.c: Likewise.
683 * graphite.c: Likewise.
684 * haifa-sched.c: Likewise.
685 * hsa-gen.c: Likewise.
686 * ifcvt.c: Likewise.
687 * ipa-cp.c: Likewise.
688 * ipa-fnsummary.c: Likewise.
689 * ipa-inline-analysis.c: Likewise.
690 * ipa-inline.c: Likewise.
691 * ipa-polymorphic-call.c: Likewise.
692 * ipa-profile.c: Likewise.
693 * ipa-prop.c: Likewise.
694 * ipa-split.c: Likewise.
695 * ipa-sra.c: Likewise.
696 * ira-build.c: Likewise.
697 * ira-conflicts.c: Likewise.
698 * loop-doloop.c: Likewise.
699 * loop-invariant.c: Likewise.
700 * loop-unroll.c: Likewise.
701 * lra-assigns.c: Likewise.
702 * lra-constraints.c: Likewise.
703 * modulo-sched.c: Likewise.
704 * opt-suggestions.c: Likewise.
705 * opts.c: Likewise.
706 * postreload-gcse.c: Likewise.
707 * predict.c: Likewise.
708 * reload.c: Likewise.
709 * reorg.c: Likewise.
710 * resource.c: Likewise.
711 * sanopt.c: Likewise.
712 * sched-deps.c: Likewise.
713 * sched-ebb.c: Likewise.
714 * sched-rgn.c: Likewise.
715 * sel-sched-ir.c: Likewise.
716 * sel-sched.c: Likewise.
717 * shrink-wrap.c: Likewise.
718 * stmt.c: Likewise.
719 * targhooks.c: Likewise.
720 * toplev.c: Likewise.
721 * tracer.c: Likewise.
722 * trans-mem.c: Likewise.
723 * tree-chrec.c: Likewise.
724 * tree-data-ref.c: Likewise.
725 * tree-if-conv.c: Likewise.
726 * tree-inline.c: Likewise.
727 * tree-loop-distribution.c: Likewise.
728 * tree-parloops.c: Likewise.
729 * tree-predcom.c: Likewise.
730 * tree-profile.c: Likewise.
731 * tree-scalar-evolution.c: Likewise.
732 * tree-sra.c: Likewise.
733 * tree-ssa-ccp.c: Likewise.
734 * tree-ssa-dom.c: Likewise.
735 * tree-ssa-dse.c: Likewise.
736 * tree-ssa-ifcombine.c: Likewise.
737 * tree-ssa-loop-ch.c: Likewise.
738 * tree-ssa-loop-im.c: Likewise.
739 * tree-ssa-loop-ivcanon.c: Likewise.
740 * tree-ssa-loop-ivopts.c: Likewise.
741 * tree-ssa-loop-manip.c: Likewise.
742 * tree-ssa-loop-niter.c: Likewise.
743 * tree-ssa-loop-prefetch.c: Likewise.
744 * tree-ssa-loop-unswitch.c: Likewise.
745 * tree-ssa-math-opts.c: Likewise.
746 * tree-ssa-phiopt.c: Likewise.
747 * tree-ssa-pre.c: Likewise.
748 * tree-ssa-reassoc.c: Likewise.
749 * tree-ssa-sccvn.c: Likewise.
750 * tree-ssa-scopedtables.c: Likewise.
751 * tree-ssa-sink.c: Likewise.
752 * tree-ssa-strlen.c: Likewise.
753 * tree-ssa-structalias.c: Likewise.
754 * tree-ssa-tail-merge.c: Likewise.
755 * tree-ssa-threadbackward.c: Likewise.
756 * tree-ssa-threadedge.c: Likewise.
757 * tree-ssa-uninit.c: Likewise.
758 * tree-switch-conversion.c: Likewise.
759 * tree-vect-data-refs.c: Likewise.
760 * tree-vect-loop.c: Likewise.
761 * tree-vect-slp.c: Likewise.
762 * tree-vrp.c: Likewise.
763 * tree.c: Likewise.
764 * value-prof.c: Likewise.
765 * var-tracking.c: Likewise.
766
767 2019-11-12 Martin Liska <mliska@suse.cz>
768
769 * asan.c (asan_sanitize_stack_p): Replace old parameter syntax
770 with the new one, include opts.h if needed. Use SET_OPTION_IF_UNSET
771 macro.
772 (asan_sanitize_allocas_p): Likewise.
773 (asan_emit_stack_protection): Likewise.
774 (asan_protect_global): Likewise.
775 (instrument_derefs): Likewise.
776 (instrument_builtin_call): Likewise.
777 (asan_expand_mark_ifn): Likewise.
778 * auto-profile.c (auto_profile): Likewise.
779 * bb-reorder.c (copy_bb_p): Likewise.
780 (duplicate_computed_gotos): Likewise.
781 * builtins.c (inline_expand_builtin_string_cmp): Likewise.
782 * cfgcleanup.c (try_crossjump_to_edge): Likewise.
783 (try_crossjump_bb): Likewise.
784 * cfgexpand.c (defer_stack_allocation): Likewise.
785 (stack_protect_classify_type): Likewise.
786 (pass_expand::execute): Likewise.
787 * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
788 (estimate_reg_pressure_cost): Likewise.
789 * cgraph.c (cgraph_edge::maybe_hot_p): Likewise.
790 * combine.c (combine_instructions): Likewise.
791 (record_value_for_reg): Likewise.
792 * common/config/aarch64/aarch64-common.c (aarch64_option_validate_param): Likewise.
793 (aarch64_option_default_params): Likewise.
794 * common/config/ia64/ia64-common.c (ia64_option_default_params): Likewise.
795 * common/config/powerpcspe/powerpcspe-common.c (rs6000_option_default_params): Likewise.
796 * common/config/rs6000/rs6000-common.c (rs6000_option_default_params): Likewise.
797 * common/config/sh/sh-common.c (sh_option_default_params): Likewise.
798 * config/aarch64/aarch64.c (aarch64_output_probe_stack_range): Likewise.
799 (aarch64_allocate_and_probe_stack_space): Likewise.
800 (aarch64_expand_epilogue): Likewise.
801 (aarch64_override_options_internal): Likewise.
802 * config/alpha/alpha.c (alpha_option_override): Likewise.
803 * config/arm/arm.c (arm_option_override): Likewise.
804 (arm_valid_target_attribute_p): Likewise.
805 * config/i386/i386-options.c (ix86_option_override_internal): Likewise.
806 * config/i386/i386.c (get_probe_interval): Likewise.
807 (ix86_adjust_stack_and_probe_stack_clash): Likewise.
808 (ix86_max_noce_ifcvt_seq_cost): Likewise.
809 * config/ia64/ia64.c (ia64_adjust_cost): Likewise.
810 * config/rs6000/rs6000-logue.c (get_stack_clash_protection_probe_interval): Likewise.
811 (get_stack_clash_protection_guard_size): Likewise.
812 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
813 * config/s390/s390.c (allocate_stack_space): Likewise.
814 (s390_emit_prologue): Likewise.
815 (s390_option_override_internal): Likewise.
816 * config/sparc/sparc.c (sparc_option_override): Likewise.
817 * config/visium/visium.c (visium_option_override): Likewise.
818 * coverage.c (get_coverage_counts): Likewise.
819 (coverage_compute_profile_id): Likewise.
820 (coverage_begin_function): Likewise.
821 (coverage_end_function): Likewise.
822 * cse.c (cse_find_path): Likewise.
823 (cse_extended_basic_block): Likewise.
824 (cse_main): Likewise.
825 * cselib.c (cselib_invalidate_mem): Likewise.
826 * dse.c (dse_step1): Likewise.
827 * emit-rtl.c (set_new_first_and_last_insn): Likewise.
828 (get_max_insn_count): Likewise.
829 (make_debug_insn_raw): Likewise.
830 (init_emit): Likewise.
831 * explow.c (compute_stack_clash_protection_loop_data): Likewise.
832 * final.c (compute_alignments): Likewise.
833 * fold-const.c (fold_range_test): Likewise.
834 (fold_truth_andor): Likewise.
835 (tree_single_nonnegative_warnv_p): Likewise.
836 (integer_valued_real_single_p): Likewise.
837 * gcse.c (want_to_gcse_p): Likewise.
838 (prune_insertions_deletions): Likewise.
839 (hoist_code): Likewise.
840 (gcse_or_cprop_is_too_expensive): Likewise.
841 * ggc-common.c: Likewise.
842 * ggc-page.c (ggc_collect): Likewise.
843 * gimple-loop-interchange.cc (MAX_NUM_STMT): Likewise.
844 (MAX_DATAREFS): Likewise.
845 (OUTER_STRIDE_RATIO): Likewise.
846 * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
847 * gimple-loop-versioning.cc (loop_versioning::max_insns_for_loop): Likewise.
848 * gimple-ssa-split-paths.c (is_feasible_trace): Likewise.
849 * gimple-ssa-store-merging.c (imm_store_chain_info::try_coalesce_bswap): Likewise.
850 (imm_store_chain_info::coalesce_immediate_stores): Likewise.
851 (imm_store_chain_info::output_merged_store): Likewise.
852 (pass_store_merging::process_store): Likewise.
853 * gimple-ssa-strength-reduction.c (find_basis_for_base_expr): Likewise.
854 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple): Likewise.
855 (scop_to_isl_ast): Likewise.
856 * graphite-optimize-isl.c (get_schedule_for_node_st): Likewise.
857 (optimize_isl): Likewise.
858 * graphite-scop-detection.c (build_scops): Likewise.
859 * haifa-sched.c (set_modulo_params): Likewise.
860 (rank_for_schedule): Likewise.
861 (model_add_to_worklist): Likewise.
862 (model_promote_insn): Likewise.
863 (model_choose_insn): Likewise.
864 (queue_to_ready): Likewise.
865 (autopref_multipass_dfa_lookahead_guard): Likewise.
866 (schedule_block): Likewise.
867 (sched_init): Likewise.
868 * hsa-gen.c (init_prologue): Likewise.
869 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Likewise.
870 (cond_move_process_if_block): Likewise.
871 * ipa-cp.c (ipcp_lattice::add_value): Likewise.
872 (merge_agg_lats_step): Likewise.
873 (devirtualization_time_bonus): Likewise.
874 (hint_time_bonus): Likewise.
875 (incorporate_penalties): Likewise.
876 (good_cloning_opportunity_p): Likewise.
877 (ipcp_propagate_stage): Likewise.
878 * ipa-fnsummary.c (decompose_param_expr): Likewise.
879 (set_switch_stmt_execution_predicate): Likewise.
880 (analyze_function_body): Likewise.
881 (compute_fn_summary): Likewise.
882 * ipa-inline-analysis.c (estimate_growth): Likewise.
883 * ipa-inline.c (caller_growth_limits): Likewise.
884 (inline_insns_single): Likewise.
885 (inline_insns_auto): Likewise.
886 (can_inline_edge_by_limits_p): Likewise.
887 (want_early_inline_function_p): Likewise.
888 (big_speedup_p): Likewise.
889 (want_inline_small_function_p): Likewise.
890 (want_inline_self_recursive_call_p): Likewise.
891 (edge_badness): Likewise.
892 (recursive_inlining): Likewise.
893 (compute_max_insns): Likewise.
894 (early_inliner): Likewise.
895 * ipa-polymorphic-call.c (csftc_abort_walking_p): Likewise.
896 * ipa-profile.c (ipa_profile): Likewise.
897 * ipa-prop.c (determine_known_aggregate_parts): Likewise.
898 (ipa_analyze_node): Likewise.
899 (ipcp_transform_function): Likewise.
900 * ipa-split.c (consider_split): Likewise.
901 * ipa-sra.c (allocate_access): Likewise.
902 (process_scan_results): Likewise.
903 (ipa_sra_summarize_function): Likewise.
904 (pull_accesses_from_callee): Likewise.
905 * ira-build.c (loop_compare_func): Likewise.
906 (mark_loops_for_removal): Likewise.
907 * ira-conflicts.c (build_conflict_bit_table): Likewise.
908 * loop-doloop.c (doloop_optimize): Likewise.
909 * loop-invariant.c (gain_for_invariant): Likewise.
910 (move_loop_invariants): Likewise.
911 * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
912 (decide_unroll_runtime_iterations): Likewise.
913 (decide_unroll_stupid): Likewise.
914 (expand_var_during_unrolling): Likewise.
915 * lra-assigns.c (spill_for): Likewise.
916 * lra-constraints.c (EBB_PROBABILITY_CUTOFF): Likewise.
917 * modulo-sched.c (sms_schedule): Likewise.
918 (DFA_HISTORY): Likewise.
919 * opts.c (default_options_optimization): Likewise.
920 (finish_options): Likewise.
921 (common_handle_option): Likewise.
922 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
923 (if): Likewise.
924 * predict.c (get_hot_bb_threshold): Likewise.
925 (maybe_hot_count_p): Likewise.
926 (probably_never_executed): Likewise.
927 (predictable_edge_p): Likewise.
928 (predict_loops): Likewise.
929 (expr_expected_value_1): Likewise.
930 (tree_predict_by_opcode): Likewise.
931 (handle_missing_profiles): Likewise.
932 * reload.c (find_equiv_reg): Likewise.
933 * reorg.c (redundant_insn): Likewise.
934 * resource.c (mark_target_live_regs): Likewise.
935 (incr_ticks_for_insn): Likewise.
936 * sanopt.c (pass_sanopt::execute): Likewise.
937 * sched-deps.c (sched_analyze_1): Likewise.
938 (sched_analyze_2): Likewise.
939 (sched_analyze_insn): Likewise.
940 (deps_analyze_insn): Likewise.
941 * sched-ebb.c (schedule_ebbs): Likewise.
942 * sched-rgn.c (find_single_block_region): Likewise.
943 (too_large): Likewise.
944 (haifa_find_rgns): Likewise.
945 (extend_rgns): Likewise.
946 (new_ready): Likewise.
947 (schedule_region): Likewise.
948 (sched_rgn_init): Likewise.
949 * sel-sched-ir.c (make_region_from_loop): Likewise.
950 * sel-sched-ir.h (MAX_WS): Likewise.
951 * sel-sched.c (process_pipelined_exprs): Likewise.
952 (sel_setup_region_sched_flags): Likewise.
953 * shrink-wrap.c (try_shrink_wrapping): Likewise.
954 * targhooks.c (default_max_noce_ifcvt_seq_cost): Likewise.
955 * toplev.c (print_version): Likewise.
956 (process_options): Likewise.
957 * tracer.c (tail_duplicate): Likewise.
958 * trans-mem.c (tm_log_add): Likewise.
959 * tree-chrec.c (chrec_fold_plus_1): Likewise.
960 * tree-data-ref.c (split_constant_offset): Likewise.
961 (compute_all_dependences): Likewise.
962 * tree-if-conv.c (MAX_PHI_ARG_NUM): Likewise.
963 * tree-inline.c (remap_gimple_stmt): Likewise.
964 * tree-loop-distribution.c (MAX_DATAREFS_NUM): Likewise.
965 * tree-parloops.c (MIN_PER_THREAD): Likewise.
966 (create_parallel_loop): Likewise.
967 * tree-predcom.c (determine_unroll_factor): Likewise.
968 * tree-scalar-evolution.c (instantiate_scev_r): Likewise.
969 * tree-sra.c (analyze_all_variable_accesses): Likewise.
970 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
971 * tree-ssa-dse.c (setup_live_bytes_from_ref): Likewise.
972 (dse_optimize_redundant_stores): Likewise.
973 (dse_classify_store): Likewise.
974 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
975 * tree-ssa-loop-ch.c (ch_base::copy_headers): Likewise.
976 * tree-ssa-loop-im.c (LIM_EXPENSIVE): Likewise.
977 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
978 (try_peel_loop): Likewise.
979 (tree_unroll_loops_completely): Likewise.
980 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
981 (CONSIDER_ALL_CANDIDATES_BOUND): Likewise.
982 (MAX_CONSIDERED_GROUPS): Likewise.
983 (ALWAYS_PRUNE_CAND_SET_BOUND): Likewise.
984 * tree-ssa-loop-manip.c (can_unroll_loop_p): Likewise.
985 * tree-ssa-loop-niter.c (MAX_ITERATIONS_TO_TRACK): Likewise.
986 * tree-ssa-loop-prefetch.c (PREFETCH_BLOCK): Likewise.
987 (L1_CACHE_SIZE_BYTES): Likewise.
988 (L2_CACHE_SIZE_BYTES): Likewise.
989 (should_issue_prefetch_p): Likewise.
990 (schedule_prefetches): Likewise.
991 (determine_unroll_factor): Likewise.
992 (volume_of_references): Likewise.
993 (add_subscript_strides): Likewise.
994 (self_reuse_distance): Likewise.
995 (mem_ref_count_reasonable_p): Likewise.
996 (insn_to_prefetch_ratio_too_small_p): Likewise.
997 (loop_prefetch_arrays): Likewise.
998 (tree_ssa_prefetch_arrays): Likewise.
999 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise.
1000 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
1001 (convert_mult_to_fma): Likewise.
1002 (math_opts_dom_walker::after_dom_children): Likewise.
1003 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Likewise.
1004 (hoist_adjacent_loads): Likewise.
1005 (gate_hoist_loads): Likewise.
1006 * tree-ssa-pre.c (translate_vuse_through_block): Likewise.
1007 (compute_partial_antic_aux): Likewise.
1008 * tree-ssa-reassoc.c (get_reassociation_width): Likewise.
1009 * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Likewise.
1010 (vn_reference_lookup): Likewise.
1011 (do_rpo_vn): Likewise.
1012 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Likewise.
1013 * tree-ssa-sink.c (select_best_block): Likewise.
1014 * tree-ssa-strlen.c (new_stridx): Likewise.
1015 (new_addr_stridx): Likewise.
1016 (get_range_strlen_dynamic): Likewise.
1017 (class ssa_name_limit_t): Likewise.
1018 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise.
1019 (create_variable_info_for_1): Likewise.
1020 (init_alias_vars): Likewise.
1021 * tree-ssa-tail-merge.c (find_clusters_1): Likewise.
1022 (tail_merge_optimize): Likewise.
1023 * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path): Likewise.
1024 (thread_jumps::fsm_find_control_statement_thread_paths): Likewise.
1025 (thread_jumps::find_jump_threads_backwards): Likewise.
1026 * tree-ssa-threadedge.c (record_temporary_equivalences_from_stmts_at_dest): Likewise.
1027 * tree-ssa-uninit.c (compute_control_dep_chain): Likewise.
1028 * tree-switch-conversion.c (switch_conversion::check_range): Likewise.
1029 (jump_table_cluster::can_be_handled): Likewise.
1030 * tree-switch-conversion.h (jump_table_cluster::case_values_threshold): Likewise.
1031 (SWITCH_CONVERSION_BRANCH_RATIO): Likewise.
1032 (param_switch_conversion_branch_ratio): Likewise.
1033 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Likewise.
1034 (vect_enhance_data_refs_alignment): Likewise.
1035 (vect_prune_runtime_alias_test_list): Likewise.
1036 * tree-vect-loop.c (vect_analyze_loop_costing): Likewise.
1037 (vect_get_datarefs_in_loop): Likewise.
1038 (vect_analyze_loop): Likewise.
1039 * tree-vect-slp.c (vect_slp_bb): Likewise.
1040 * tree-vectorizer.h: Likewise.
1041 * tree-vrp.c (find_switch_asserts): Likewise.
1042 (vrp_prop::check_mem_ref): Likewise.
1043 * tree.c (wide_int_to_tree_1): Likewise.
1044 (cache_integer_cst): Likewise.
1045 * var-tracking.c (EXPR_USE_DEPTH): Likewise.
1046 (reverse_op): Likewise.
1047 (vt_find_locations): Likewise.
1048
1049 2019-11-12 Martin Liska <mliska@suse.cz>
1050
1051 * Makefile.in: Include params.opt.
1052 * flag-types.h (enum parloops_schedule_type): Add
1053 parloops_schedule_type used in params.opt.
1054 * params.opt: New file.
1055
1056 2019-11-12 Martin Liska <mliska@suse.cz>
1057
1058 * common.opt: Remove --param and --param= options.
1059 * opt-functions.awk: Mark CL_PARAMS for options
1060 that have Param keyword.
1061 * opts-common.c (decode_cmdline_options_to_array):
1062 Replace --param key=value with --param=key=value.
1063 * opts.c (print_filtered_help): Remove special
1064 printing of params.
1065 (print_specific_help): Update title for params.
1066 (common_handle_option): Do not handle OPT__param.
1067 opts.h (SET_OPTION_IF_UNSET): New macro.
1068 * doc/options.texi: Document Param keyword.
1069
1070 2019-11-12 Maciej W. Rozycki <macro@codesourcery.com>
1071 Frederik Harwath <frederik@codesourcery.com>
1072 Thomas Schwinge <thomas@codesourcery.com>
1073
1074 gcc/
1075 * gimple.h (gf_mask): Add GF_OMP_TARGET_KIND_OACC_SERIAL
1076 enumeration constant.
1077 (is_gimple_omp_oacc): Handle GF_OMP_TARGET_KIND_OACC_SERIAL.
1078 (is_gimple_omp_offloaded): Likewise.
1079 * gimplify.c (omp_region_type): Add ORT_ACC_SERIAL enumeration
1080 constant. Adjust the value of ORT_NONE accordingly.
1081 (is_gimple_stmt): Handle OACC_SERIAL.
1082 (oacc_default_clause): Handle ORT_ACC_SERIAL.
1083 (gomp_needs_data_present): Likewise.
1084 (gimplify_adjust_omp_clauses): Likewise.
1085 (gimplify_omp_workshare): Handle OACC_SERIAL.
1086 (gimplify_expr): Likewise.
1087 * omp-expand.c (expand_omp_target):
1088 Handle GF_OMP_TARGET_KIND_OACC_SERIAL.
1089 (build_omp_regions_1, omp_make_gimple_edges): Likewise.
1090 * omp-low.c (is_oacc_parallel): Rename function to...
1091 (is_oacc_parallel_or_serial): ... this.
1092 Handle GF_OMP_TARGET_KIND_OACC_SERIAL.
1093 (scan_sharing_clauses): Adjust accordingly.
1094 (scan_omp_for): Likewise.
1095 (lower_oacc_head_mark): Likewise.
1096 (convert_from_firstprivate_int): Likewise.
1097 (lower_omp_target): Likewise.
1098 (check_omp_nesting_restrictions): Handle
1099 GF_OMP_TARGET_KIND_OACC_SERIAL.
1100 (lower_oacc_reductions): Likewise.
1101 (lower_omp_target): Likewise.
1102 * tree.def (OACC_SERIAL): New tree code.
1103 * tree-pretty-print.c (dump_generic_node): Handle OACC_SERIAL.
1104
1105 * doc/generic.texi (OpenACC): Document OACC_SERIAL.
1106
1107 2019-11-12 Jakub Jelinek <jakub@redhat.com>
1108
1109 PR target/92449
1110 * tree-complex.c (expand_complex_multiplication): If !HONOR_NANS,
1111 don't emit UNORDERED_EXPR guarded libcall. Formatting fixes.
1112
1113 PR tree-optimization/92452
1114 * tree-vrp.c (vrp_prop::check_array_ref): If TRUNC_DIV_EXPR folds
1115 into NULL_TREE, set up_bound to NULL_TREE instead of computing
1116 MINUS_EXPR on it.
1117
1118 2019-11-12 Andre Vieira <andre.simoesdiasvieira@arm.com>
1119
1120 * tree-vect-loop.c (vect_transform_loop): Don't overwrite epilogues
1121 safelen with 0.
1122
1123 2019-11-12 Alan Modra <amodra@gmail.com>
1124
1125 * config/rs6000/predicates.md (unspec_tls): Allow const0_rtx for got
1126 element of unspec vec.
1127 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Support
1128 PC-relative TLS.
1129 * config/rs6000/rs6000.md (UNSPEC_TLSTLS_PCREL): New unspec.
1130 (tls_gd_pcrel, tls_ld_pcrel): New insns.
1131 (tls_dtprel, tls_tprel): Set attr prefixed when tls_size is not 16.
1132 (tls_got_tprel_pcrel, tls_tls_pcrel): New insns.
1133
1134 2019-11-12 Alan Modra <amodra@gmail.com>
1135
1136 * config/rs6000/rs6000.opt (mtls-markers): Delete.
1137 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Don't define.
1138 (IS_NOMARK_TLSGETADDR): Likewise.
1139 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Delete.
1140 * config/rs6000/rs6000.c (rs6000_output_tlsargs): Delete.
1141 (rs6000_legitimize_tls_address): Remove !TARGET_TLS_MARKERS code.
1142 (rs6000_call_template_1): Delete TARGET_TLS_MARKERS test and
1143 allow other UNSPECs besides UNSPEC_TLSGD and UNSPEC_TLSLD.
1144 (rs6000_indirect_call_template_1): Likewise.
1145 (rs6000_pltseq_template): Likewise.
1146 (rs6000_opt_vars): Remove "tls-markers" entry.
1147 * config/rs6000/rs6000.md (tls_gd<bits>): Replace TARGET_TLS_MARKERS
1148 with TARGET_ELF.
1149 (tls_gd_high<bits>, tls_gd_low<bits>): Likewise.
1150 (tls_ld<bits>, tls_ld_high<bits>, tls_ld_low<bits>): Likewise.
1151 (pltseq_plt_pcrel<mode>): Likewise.
1152 (call_value_local32): Remove IS_NOMARK_TLSGETADDR predicate test.
1153 (call_value_local64): Likewise.
1154 (call_value_indirect_nonlocal_sysv<mode>): Remove IS_NOMARK_TLSGETADDR
1155 output and length attribute sub-expression.
1156 (call_value_nonlocal_sysv<mode>),
1157 (call_value_nonlocal_sysv_secure<mode>),
1158 (call_value_local_aix<mode>, call_value_nonlocal_aix<mode>),
1159 (call_value_indirect_aix<mode>, call_value_indirect_elfv2<mode>),
1160 (call_value_indirect_pcrel<mode>): Likewise.
1161 * doc/install.texi (powerpc-*-*): Require binutils-2.20.
1162 * configure.ac (HAVE_AS_TLS_MARKERS): Delete test.
1163 * configure: Regenerate.
1164 * config.in: Regenerate.
1165
1166 2019-11-11 Michael Meissner <meissner@linux.ibm.com>
1167
1168 * config/rs6000/predicates.md (prefixed_memory): New predicate.
1169 * config/rs6000/rs6000.md (stack_protect_setdi): Deal with either
1170 address being a prefixed load/store.
1171 (stack_protect_testdi): Deal with either address being a prefixed
1172 load.
1173
1174 2019-11-11 Jakub Jelinek <jakub@redhat.com>
1175
1176 PR bootstrap/92433
1177 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Guard
1178 ALTIVEC_BUILTIN_VEC_VCMPGE_P argument swapping with n == 3 check. Use
1179 std::swap.
1180
1181 2019-11-11 Richard Sandiford <richard.sandiford@arm.com>
1182
1183 PR tree-optimization/92420
1184 * tree-vect-stmts.c (get_negative_load_store_type): Move further
1185 up file.
1186 (get_group_load_store_type): Use it for reversed SLP accesses.
1187
1188 2019-11-11 Jan Hubicka <hubcika@ucw.cz>
1189
1190 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove ipcp
1191 summary.
1192 (ipcp_transformation_t::duplicate): Break out from ...
1193 (ipa_node_params_t::duplicate): ... here; add copying of agg
1194 replacements.
1195 * ipa-prop.h (ipcp_transformation): Add constructor and destructor.
1196 (ipcp_transformation_t): Add duplicate.
1197
1198 2019-11-11 Janne Blomqvist <jb@gcc.gnu.org>
1199
1200 PR fortran/91828
1201 * doc/install.texi: Document that the minimum MPFR version is
1202 3.1.0.
1203
1204 2019-11-11 Claudiu Zissulescu <claziss@gmail.com>
1205
1206 * config/arc/arc.md (movsi_ne): Reorder instruction variants and
1207 use new register constraint letters.
1208
1209 2019-11-11 Claudiu Zissulescu <claziss@gmail.com>
1210
1211 * config/arc/arc.c (arc_legitimize_pic_address): Consider UNSPECs
1212 as well, if interesting recover the symbol and re-legitimize the
1213 pic address.
1214
1215 2019-11-11 Martin Liska <mliska@suse.cz>
1216
1217 * dbgcnt.def (DEBUG_COUNTER): Sort counters
1218 alphabetically.
1219
1220 2019-11-11 Andre Vieira <andre.simoesdiasvieira@arm.com>
1221
1222 * tree-vect-loop-manip.c (vect_do_peeling): Take epilogue gaps into
1223 account when checking if there are enough iterations to vectorize
1224 epilogue.
1225
1226 2019-11-11 Tobias Burnus <tobias@codesourcery.com>
1227 Kwok Cheung Yeung <kcy@codesourcery.com>
1228
1229 * langhooks-def.h (LANG_HOOKS_OMP_CHECK_OPTIONAL_ARGUMENT):
1230 Renamed from LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT; update define.
1231 (LANG_HOOKS_DECLS): Rename also here.
1232 * langhooks.h (lang_hooks_for_decls): Rename
1233 omp_is_optional_argument to omp_check_optional_argument; take
1234 additional bool argument.
1235 * omp-general.h (omp_check_optional_argument): Likewise.
1236 * omp-general.h (omp_check_optional_argument): Likewise.
1237 * omp-low.c (lower_omp_target): Update calls; handle absent
1238 Fortran optional arguments with USE_DEVICE_ADDR/USE_DEVICE_PTR.
1239
1240 2019-11-11 H.J. Lu <hjl.tools@gmail.com>
1241
1242 PR target/87833
1243 * config/i386/intelmic-mkoffload.c (prepare_target_image): Put
1244 -fPIC and -shared the last to create offload image.
1245
1246 2019-11-11 Thomas Schwinge <thomas@codesourcery.com>
1247
1248 * gimplify.c (gimplify_scan_omp_clauses): Assert 'offset2' instead
1249 of 'offset'.
1250
1251 * Makefile.in (LANG_CONFIGUREFRAGS): Define.
1252 (config.status): Use/depend on it.
1253 * configure.ac (all_lang_configurefrags): Track, 'AC_SUBST'.
1254 * configure: Regenerate.
1255
1256 2019-11-11 Jiufu Guo <guojiufu@linux.ibm.com>
1257
1258 PR tree-optimization/88760
1259 * gcc/config/rs6000/rs6000.opt (-munroll-only-small-loops): New option.
1260 * gcc/common/config/rs6000/rs6000-common.c
1261 (rs6000_option_optimization_table) [OPT_LEVELS_2_PLUS_SPEED_ONLY]:
1262 Turn on -funroll-loops and -munroll-only-small-loops.
1263 [OPT_LEVELS_ALL]: Turn off -fweb and -frename-registers.
1264 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
1265 set of PARAM_MAX_UNROLL_TIMES and PARAM_MAX_UNROLLED_INSNS.
1266 Turn off -munroll-only-small-loops for explicit -funroll-loops.
1267 (TARGET_LOOP_UNROLL_ADJUST): Add loop unroll adjust hook.
1268 (rs6000_loop_unroll_adjust): Define it. Use -munroll-only-small-loops.
1269
1270 2019-11-11 Kewen Lin <linkw@gcc.gnu.org>
1271
1272 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
1273 Make scalar_load, vector_load, unaligned_load and
1274 vector_gather_load cost more to conform hardware latency and
1275 insn cost settings.
1276
1277 2019-11-10 Iain Sandoe <iain@sandoe.co.uk>
1278
1279 * config/darwin.h (MACHO_SYMBOL_FLAG_LINKER_VIS): New.
1280 (MACHO_SYMBOL_LINKER_VIS_P): New.
1281
1282 2019-11-10 Kwok Cheung Yeung <kcy@codesourcery.com>
1283
1284 * lra-spills.c (assign_spill_hard_regs): Do not spill into
1285 registers in eliminable_regset.
1286
1287 2019-11-10 Jan Hubicka <hubicka@ucw.cz>
1288
1289 * ipa-inline.c (compute_uninlined_call_time,
1290 compute_inlined_call_time): Take edge frequency as
1291 parameter rather than computing it by itself.
1292 (big_speedup_p, edge_badness): Manually CSE sreal
1293 frequency calculations.
1294
1295 2019-11-10 Jan Hubicka <hubicka@ucw.cz>
1296
1297 * profile-count.c (profile_count::to_sreal_scale): Short circuit
1298 case where profiles are same.
1299
1300 2019-11-10 Jan Hubicka <hubicka@ucw.cz>
1301
1302 * cgraph.c (cgraph_edge::maybe_hot_p): Do not use sreal_frequency.
1303
1304 2019-11-10 Jan Hubicka <hubicka@ucw.cz>
1305
1306 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove ipa edge
1307 args summaries of inlined edge unless it holds info about
1308 described reference.
1309
1310 2019-11-10 Segher Boessenkool <segher@kernel.crashing.org>
1311
1312 * config/rs6000/rs6000.md (CC_any): New mode iterator.
1313 (*movcc_internal1): Rename to...
1314 (*movcc_<mode> for CC_any): ... this. Support moves of all CC modes.
1315
1316 2019-11-09 Jan Hubicka <hubicka@ucw.cz>
1317
1318 * cgraph.h (struct cgraph_node): Add ipcp_clone flag.
1319 (cgraph_node::create_virtual_clone): Copy it.
1320 * ipa-cp.c (ipcp_versionable_function_p): Watch for missing
1321 summaries.
1322 (ignore_edge_p): If caller has ipa-cp disabled, skip the edge, too.
1323 (ipcp_verify_propagated_values): Do not verify nodes where ipcp
1324 is disabled.
1325 (propagate_constants_across_call): If callee is not analyzed, give up.
1326 (propagate_constants_topo): Lower to bottom latties of all callees of
1327 functions with ipa-cp disabled.
1328 (ipcp_propagate_stage): Skip functions with ipa-cp disabled.
1329 (cgraph_edge_brings_value_p): Check for availability first.
1330 (create_specialized_node): Set ipcp_clone.
1331 (ipcp_store_bits_results): Check that info is present.
1332 * ipa-fnsummary.c (evaluate_properties_for_edge): Do not analyze
1333 thunks.
1334 (ipa_call_context::duplicate_from, ipa_call_context::equal_to): Be
1335 conservative when callee summary is missing.
1336 (remap_edge_summaries): Lookup call summary only when needed.
1337 * ipa-icf.c (sem_function::param_used_p): Be ready for missing summary.
1338 * ipa-prpo.c (ipa_alloc_node_params, ipa_initialize_node_params):
1339 Use get_create.
1340 (ipa_analyze_node): Use get_create.
1341 (propagate_controlled_uses): Do not propagate when function is not
1342 analyzed.
1343 (ipa_propagate_indirect_call_infos): Remove summary of inline clone.
1344 (ipa_read_node_info): Use get_create.
1345 * ipa-prop.h (IPA_NODE_REF): Use get.
1346 (IPA_NODE_REF_GET_CREATE): New.
1347
1348 2019-11-09 Jan Hubicka <hubicka@ucw.cz>
1349
1350 * ipa-fnsummary.c (evaluate_properties_for_edge): Call IPA_NODE_REF
1351 on function symbol.
1352
1353 2019-11-09 Jan Hubicka <hubicka@ucw.cz>
1354
1355 * tree.c (fld_incomplete_type_of): Clear TYPE_FINAL_P, TYPE_EMPTY_P,
1356 ENUM_IS_OPAQUE and ENUM_IS_SCOPED.
1357 (free_lang_data_in_binfo): Clear TREE_PUBLIC in BINFO
1358 (free_lang_data_in_type): Clear ENUM_IS_OPAQUE and ENUM_IS_SCOPED.
1359
1360 2019-11-09 Jan Hubicka <hubicka@ucw.cz>
1361
1362 * ipa-inline-analysis.c (do_estimate_growth_1): Add support for
1363 capping the growth cumulated.
1364 (offline_size): Break out from ...
1365 (estimate_growth): ... here.
1366 (check_callers): Add N, OFFLINE and MIN_SIZE and KNOWN_EDGE
1367 parameters.
1368 (growth_likely_positive): Turn to ...
1369 (growth_positive_p): Re-implement.
1370 * ipa-inline.h (growth_likely_positive): Remove.
1371 (growth_positive_p): Declare.
1372 * ipa-inline.c (want_inline_small_function_p): Use
1373 growth_positive_p.
1374 (want_inline_function_to_all_callers_p): Likewise.
1375
1376 2019-11-09 Jan Hubicka <hubicka@ucw.cz>
1377
1378 * ipa-fnsummary.c (ipa_call_context::estimate_size_and_time): Fix
1379 calculation of min_size.
1380 (ipa_update_overall_fn_summary): Likewise.
1381
1382 2019-11-09 Jan Hubicka <hubicka@ucw.cz>
1383
1384 * ipa-fnsummary.c (estimate_edge_size_and_time): Do not call
1385 estimate_edge_devirt_benefit when not computing hints;
1386 do not compute time when not asked for.
1387 (estimate_calls_size_and_time): Pass NULL hints and time when
1388 these are not computed; do not evaluate hint predicates when these are
1389 not computed.
1390 (ipa_merge_fn_summary_after_inlining): Do not re-evaluate edge
1391 frequency.
1392
1393 2019-11-09 Jakub Jelinek <jakub@redhat.com>
1394
1395 PR tree-optimization/92401
1396 * gimple-match-head.c (gimple_resimplify1): Call const_unop only
1397 if res_op->code is an expression with code length 1.
1398 * gimple-match-head.c (gimple_resimplify2): Call const_binop only
1399 if res_op->code is an expression with code length 2.
1400 * gimple-match-head.c (gimple_resimplify3): Call fold_ternary only
1401 if res_op->code is an expression with code length 3.
1402
1403 2019-11-09 Iain Sandoe <iain@sandoe.co.uk>
1404
1405 * config/darwin.c (machopic_mcount_stub_name): Validate the
1406 symbol stub name when it is created.
1407 * config/i386/darwin.h (FUNCTION_PROFILER): Remove the symbol
1408 stub validation.
1409
1410 2019-11-09 Jakub Jelinek <jakub@redhat.com>
1411
1412 * symtab.c: Fix comment typos.
1413 * cgraphunit.c: Likewise.
1414 * cgraph.h: Likewise.
1415 * cgraphclones.c: Likewise.
1416 * cgraph.c: Likewise.
1417 * varpool.c: Likewise.
1418 * tree-ssa-strlen.c: Likewise.
1419 * ipa-sra.c: Likewise.
1420 (scan_expr_access, check_all_callers_for_issues): Fix typo
1421 in a dump message.
1422
1423 2019-11-08 Iain Sandoe <iain@sandoe.co.uk>
1424
1425 * config/darwin-protos.h: Add include quard.
1426
1427 2019-11-08 Andrew MacLeod <amacleod@redhat.com>
1428
1429 * range-op.h (range_operator::fold_range): Return result in a
1430 reference parameter instead of by value.
1431 (range_operator::wi_fold): Same.
1432 * range-op.cc (range_operator::wi_fold): Return result in a reference
1433 parameter instead of by value.
1434 (range_operator::fold_range): Same.
1435 (value_range_from_overflowed_bounds): Same.
1436 (value_range_with_overflow): Same
1437 (create_possibly_reversed_range): Same.
1438 (operator_equal::fold_range): Same.
1439 (operator_not_equal::fold_range): Same.
1440 (operator_lt::fold_range): Same.
1441 (operator_le::fold_range): Same.
1442 (operator_gt::fold_range): Same.
1443 (operator_ge::fold_range): Same.
1444 (operator_plus::wi_fold): Same.
1445 (operator_plus::op1_range): Change call to fold_range.
1446 (operator_plus::op2_range): Change call to fold_range.
1447 (operator_minus::wi_fold): Return result via reference parameter.
1448 (operator_minus::op1_range): Change call to fold_range.
1449 (operator_minus::op2_range): Change call to fold_range.
1450 (operator_min::wi_fold): Return result via reference parameter.
1451 (operator_max::wi_fold): Same.
1452 (cross_product_operator::wi_cross_product): Same.
1453 (operator_mult::wi_fold): Same.
1454 (operator_div::wi_fold): Same.
1455 (operator_div op_floor_div): Fix whitespace.
1456 (operator_exact_divide::op1_range): Change call to fold_range.
1457 (operator_lshift::fold_range): Return result via reference parameter.
1458 (operator_lshift::wi_fold): Same.
1459 (operator_rshift::fold_range): Same.
1460 (operator_rshift::wi_fold): Same.
1461 (operator_cast::fold_range): Same.
1462 (operator_cast::op1_range): Change calls to fold_range.
1463 (operator_logical_and::fold_range): Return result via reference.
1464 (wi_optimize_and_or): Adjust call to value_range_with_overflow.
1465 (operator_bitwise_and::wi_fold): Return result via reference.
1466 (operator_logical_or::fold_range): Same.
1467 (operator_bitwise_or::wi_fold): Same.
1468 (operator_bitwise_xor::wi_fold): Same.
1469 (operator_trunc_mod::wi_fold): Same.
1470 (operator_logical_not::fold_range): Same.
1471 (operator_bitwise_not::fold_range): Same.
1472 (operator_bitwise_not::op1_range): Change call to fold_range.
1473 (operator_cst::fold_range): Return result via reference.
1474 (operator_identity::fold_range): Same.
1475 (operator_abs::wi_fold): Same.
1476 (operator_absu::wi_fold): Same.
1477 (operator_negate::fold_range): Same.
1478 (operator_negate::op1_range): Change call to fold_range.
1479 (operator_addr_expr::fold_range): Return result via reference.
1480 (operator_addr_expr::op1_range): Change call to fold_range.
1481 (operator_pointer_plus::wi_fold): Return result via reference.
1482 (operator_pointer_min_max::wi_fold): Same.
1483 (operator_pointer_and::wi_fold): Same.
1484 (operator_pointer_or::wi_fold): Same.
1485 (range_op_handler): Change call to fold_range.
1486 (range_cast): Same.
1487 * tree-vrp.c (range_fold_binary_symbolics_p): Change call to
1488 fold_range.
1489 (range_fold_unary_symbolics_p): Same.
1490 (range_fold_binary_expr): Same.
1491 (range_fold_unary_expr): Same.
1492
1493 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
1494
1495 * tree-vect-loop.c (neutral_op_for_slp_reduction): Take the
1496 vector type as an argument rather than reading it from the
1497 stmt_vec_info.
1498 (vect_create_epilog_for_reduction): Update accordingly.
1499 (vectorizable_reduction): Likewise.
1500 (vect_transform_cycle_phi): Likewise.
1501
1502 2019-11-08 Segher Boessenkool <segher@kernel.crashing.org>
1503
1504 * config/rs6000/predicates.md (branch_comparison_operator): Allow only
1505 the comparison codes that make sense for the mode used, and only the
1506 codes that can be done with a single branch instruction.
1507
1508 2019-11-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
1509
1510 PR tree-optimization/92351
1511 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): When we are
1512 peeling the main loop for alignment, make sure to set the misalignment
1513 of the epilogue's data references to DR_MISALIGNMENT_UNKNOWN.
1514
1515 2019-11-08 Richard Biener <rguenther@suse.de>
1516
1517 * dbgcnt.def (ivopts_loop): Add.
1518 * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Check
1519 ivopts_loop before optimizing a loop.
1520
1521 2019-11-08 Richard Biener <rguenther@suse.de>
1522
1523 PR ipa/92409
1524 * tree-inline.c (declare_return_variable): Properly handle
1525 type mismatches for the return slot.
1526
1527 2019-11-08 Eric Botcazou <ebotcazou@adacore.com>
1528
1529 PR target/92095
1530 * config/sparc/sparc-protos.h (output_load_pcrel_sym): Declare.
1531 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Revert latest
1532 change.
1533 (got_helper_needed): New static variable.
1534 (output_load_pcrel_sym): New function.
1535 (get_pc_thunk_name): Remove after inlining...
1536 (load_got_register): ...here. Rework the initialization of the GOT
1537 register and of the GOT helper.
1538 (save_local_or_in_reg_p): Test the REGNO of the GOT register.
1539 (sparc_file_end): Test got_helper_needed to decide whether the GOT
1540 helper must be emitted. Use output_asm_insn instead of fprintf.
1541 (sparc_init_pic_reg): In PIC mode, always initialize the PIC register
1542 if optimization is enabled.
1543 * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Emit the assembly
1544 by calling output_load_pcrel_sym.
1545
1546 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
1547
1548 * tree-sra.c (create_access): Delay disqualifying the base
1549 for poly_int values until we know we have a base.
1550
1551 2019-11-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
1552
1553 * tree-vect-loop.c (vect_analyze_loop): Disable epilogue vectorization
1554 for loops with SIMDUID set. Enable epilogue vectorization for loops
1555 with SIMDLEN set after finding a main loop with a VF that matches it.
1556
1557 2019-11-08 Jakub Jelinek <jakub@redhat.com>
1558
1559 PR target/92038
1560 * gimple-ssa-store-merging.c (find_constituent_stores): For return
1561 value only, return non-NULL if there is a single non-clobber
1562 constituent store even if there are constituent clobbers and return
1563 one of clobber constituent stores if all constituent stores are
1564 clobbers.
1565 (split_group): Handle clobbers.
1566 (imm_store_chain_info::output_merged_store): When computing
1567 bzero_first, look after all clobbers at the start. Don't count
1568 clobber stmts in orig_num_stmts, except if the first orig store is
1569 a clobber covering the whole area and split_stores cover the whole
1570 area, consider equal number of stmts ok. Punt if split_stores
1571 contains only ->orig stores and their number plus number of original
1572 clobbers is equal to original number of stmts. For ->orig, look past
1573 clobbers in the constituent stores.
1574 (imm_store_chain_info::output_merged_stores): Don't remove clobber
1575 stmts.
1576 (rhs_valid_for_store_merging_p): Don't return false for clobber stmt
1577 rhs.
1578 (store_valid_for_store_merging_p): Allow clobber stmts.
1579 (verify_clear_bit_region_be): Fix up a thinko in function comment.
1580
1581 PR c++/92384
1582 * function.c (assign_parm_setup_block, assign_parm_setup_stack): Don't
1583 copy TYPE_EMPTY_P arguments from data->entry_parm to data->stack_parm
1584 slot.
1585 (assign_parms): For TREE_ADDRESSABLE parms with TYPE_EMPTY_P type
1586 force creation of a unique data.stack_parm slot.
1587
1588 2019-11-08 Richard Biener <rguenther@suse.de>
1589
1590 * genmatch.c (expr::gen_transform): Use the resimplify
1591 member function instead of hard-coding the gimple_resimplifyN variant.
1592 (dt_simplify::gen_1): Likewise.
1593
1594 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
1595
1596 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1597 POLY_INT_CST.
1598
1599 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
1600
1601 * tree-inline.c (declare_return_variable): Check for poly_int_tree_p
1602 instead of INTEGER_CST.
1603
1604 2019-11-08 Richard Biener <rguenther@suse.de>
1605
1606 PR tree-optimization/92324
1607 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
1608 STMT_VINFO_REDUC_VECTYPE for all computations, inserting
1609 sign-conversions as necessary.
1610 (vectorizable_reduction): Reject conversions in the chain
1611 that are not sign-conversions, base analysis on a non-converting
1612 stmt and its operation sign. Set STMT_VINFO_REDUC_VECTYPE.
1613 * tree-vect-stmts.c (vect_stmt_relevant_p): Don't dump anything
1614 for debug stmts.
1615 * tree-vectorizer.h (_stmt_vec_info::reduc_vectype): New.
1616 (STMT_VINFO_REDUC_VECTYPE): Likewise.
1617
1618 2019-11-08 Georg-Johann Lay <avr@gjlay.de>
1619
1620 PR target/92055
1621 * config/avr/avr.opt (-mdouble=, -mlong-double=):
1622 Fix a missing '-' when displaying these options in the
1623 help screen.
1624
1625 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
1626
1627 * config/aarch64/iterators.md (SVE_BH, SVE_BHS): Delete.
1628
1629 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
1630
1631 * config/aarch64/aarch64-builtins.c
1632 (aarch64_builtin_vectorized_function): Remove bswap handling.
1633
1634 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
1635
1636 * tree-core.h (tree_type_common::indivisible_p): New member variable.
1637 * tree.h (TYPE_INDIVISIBLE_P): New macro.
1638 * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types):
1639 Treat the vector types as indivisible.
1640
1641 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
1642
1643 * optabs.def (gather_load_optab, mask_gather_load_optab)
1644 (scatter_store_optab, mask_scatter_store_optab): Turn into
1645 conversion optabs, with the offset mode given explicitly.
1646 * doc/md.texi: Update accordingly.
1647 * config/aarch64/aarch64-sve-builtins-base.cc
1648 (svld1_gather_impl::expand): Likewise.
1649 (svst1_scatter_impl::expand): Likewise.
1650 * internal-fn.c (gather_load_direct, scatter_store_direct): Likewise.
1651 (expand_scatter_store_optab_fn): Likewise.
1652 (direct_gather_load_optab_supported_p): Likewise.
1653 (direct_scatter_store_optab_supported_p): Likewise.
1654 (expand_gather_load_optab_fn): Likewise. Expect the mask argument
1655 to be argument 4.
1656 (internal_fn_mask_index): Return 4 for IFN_MASK_GATHER_LOAD.
1657 (internal_gather_scatter_fn_supported_p): Replace the offset sign
1658 argument with the offset vector type. Require the two vector
1659 types to have the same number of elements but allow their element
1660 sizes to be different. Treat the optabs as conversion optabs.
1661 * internal-fn.h (internal_gather_scatter_fn_supported_p): Update
1662 prototype accordingly.
1663 * optabs-query.c (supports_at_least_one_mode_p): Replace with...
1664 (supports_vec_convert_optab_p): ...this new function.
1665 (supports_vec_gather_load_p): Update accordingly.
1666 (supports_vec_scatter_store_p): Likewise.
1667 * tree-vectorizer.h (vect_gather_scatter_fn_p): Take a vec_info.
1668 Replace the offset sign and bits parameters with a scalar type tree.
1669 * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Likewise.
1670 Pass back the offset vector type instead of the scalar element type.
1671 Allow the offset to be wider than the memory elements. Search for
1672 an offset type that the target supports, stopping once we've
1673 reached the maximum of the element size and pointer size.
1674 Update call to internal_gather_scatter_fn_supported_p.
1675 (vect_check_gather_scatter): Update calls accordingly.
1676 When testing a new scale before knowing the final offset type,
1677 check whether the scale is supported for any signed or unsigned
1678 offset type. Check whether the target supports the source and
1679 target types of a conversion before deciding whether to look
1680 through the conversion. Record the chosen offset_vectype.
1681 * tree-vect-patterns.c (vect_get_gather_scatter_offset_type): Delete.
1682 (vect_recog_gather_scatter_pattern): Get the scalar offset type
1683 directly from the gs_info's offset_vectype instead. Pass a zero
1684 of the result type to IFN_GATHER_LOAD and IFN_MASK_GATHER_LOAD.
1685 * tree-vect-stmts.c (check_load_store_masking): Update call to
1686 internal_gather_scatter_fn_supported_p, passing the offset vector
1687 type recorded in the gs_info.
1688 (vect_truncate_gather_scatter_offset): Update call to
1689 vect_check_gather_scatter, leaving it to search for a valid
1690 offset vector type.
1691 (vect_use_strided_gather_scatters_p): Convert the offset to the
1692 element type of the gs_info's offset_vectype.
1693 (vect_get_gather_scatter_ops): Get the offset vector type directly
1694 from the gs_info.
1695 (vect_get_strided_load_store_ops): Likewise.
1696 (vectorizable_load): Pass a zero of the result type to IFN_GATHER_LOAD
1697 and IFN_MASK_GATHER_LOAD.
1698 * config/aarch64/aarch64-sve.md (gather_load<mode>): Rename to...
1699 (gather_load<mode><v_int_equiv>): ...this.
1700 (mask_gather_load<mode>): Rename to...
1701 (mask_gather_load<mode><v_int_equiv>): ...this.
1702 (scatter_store<mode>): Rename to...
1703 (scatter_store<mode><v_int_equiv>): ...this.
1704 (mask_scatter_store<mode>): Rename to...
1705 (mask_scatter_store<mode><v_int_equiv>): ...this.
1706
1707 2019-11-08 Kewen Lin <linkw@gcc.gnu.org>
1708
1709 PR target/92132
1710 * config/rs6000/predicates.md
1711 (signed_or_equality_comparison_operator): New predicate.
1712 (unsigned_or_equality_comparison_operator): Likewise.
1713 * config/rs6000/rs6000.md (one_cmpl<mode>2): Remove expand.
1714 (one_cmpl<mode>3_internal): Rename to one_cmpl<mode>2.
1715 * config/rs6000/vector.md
1716 (vcond_mask_<mode><mode> for VEC_I and VEC_I): New expand.
1717 (vec_cmp<mode><mode> for VEC_I and VEC_I): Likewise.
1718 (vec_cmpu<mode><mode> for VEC_I and VEC_I): Likewise.
1719 (vcond_mask_<mode><VEC_int> for VEC_F): New expand for float
1720 vector modes and same-size integer vector modes.
1721 (vec_cmp<mode><VEC_int> for VEC_F): Likewise.
1722 (vector_lt<mode> for VEC_F): New expand.
1723 (vector_le<mode> for VEC_F): Likewise.
1724 (vector_ne<mode> for VEC_F): Likewise.
1725 (vector_unge<mode> for VEC_F): Likewise.
1726 (vector_ungt<mode> for VEC_F): Likewise.
1727 (vector_unle<mode> for VEC_F): Likewise.
1728 (vector_unlt<mode> for VEC_F): Likewise.
1729 (vector_uneq<mode>): Expose name.
1730 (vector_ltgt<mode>): Likewise.
1731 (vector_unordered<mode>): Likewise.
1732 (vector_ordered<mode>): Likewise.
1733
1734 2019-11-08 Hongtao Liu <Hongtao.liu@intel.com>
1735
1736 PR target/92295
1737 * config/i386/i386-expand.c (ix86_expand_vector_init_concat)
1738 Enhance ix86_expand_vector_init_concat.
1739
1740 2019-11-08 Joseph Myers <joseph@codesourcery.com>
1741
1742 * doc/invoke.texi (-Wold-style-definition): Document () not being
1743 considered an old-style definition for C2x.
1744
1745 2019-11-07 John David Anglin <danglin@gcc.gnu.org>
1746
1747 * config/pa/pa.md (memory_barrier): Revise to use ldcw barriers.
1748 Enhance comment.
1749 (memory_barrier_coherent, memory_barrier_64, memory_barrier_32): New
1750 insn patterns using ldcw instruction.
1751 (memory_barrier): Remove insn pattern using sync instruction.
1752 * config/pa/pa.opt (coherent-ldcw): New option.
1753 (ordered): New option.
1754
1755 2019-11-07 Segher Boessenkool <segher@kernel.crashing.org>
1756
1757 * config/rs6000/rs6000.c (validate_condition_mode): Don't assert for
1758 valid conditions.
1759
1760 2019-11-07 Jakub Jelinek <jakub@redhat.com>
1761
1762 * ipa-utils.c (ipa_merge_profiles): Fix fprintf format string
1763 typo - mistmatch -> mismatch.
1764 * ipa-profile.c (ipa_profile): Likewise.
1765 * ipa-devirt.c (compare_virtual_tables): Fix a comment typo
1766 - mistmatch -> mismatch.
1767
1768 2018-11-07 Segher Boessenkool <segher@kernel.crashing.org>
1769
1770 * simplify-rtx.c (comparison_to_mask): New function.
1771 (mask_to_comparison): New function.
1772 (simplify_logical_relational_operation): New function.
1773 (simplify_binary_operation_1): Call
1774 simplify_logical_relational_operation.
1775
1776 2019-11-07 Peter Bergner <bergner@linux.ibm.com>
1777
1778 PR other/92090
1779 * config/rs6000/predicates.md (input_operand): Allow MODE_PARTIAL_INT
1780 modes for integer constants.
1781
1782 2019-11-07 Jan Hubicka <jh@suse.cz>
1783
1784 PR ipa/92406
1785 * ipa-fnsummary.c (analyze_function_body): Use get_create to copy
1786 summary.
1787
1788 2019-11-07 Jan Hubicka <jh@suse.cz>
1789
1790 * optc-save-gen.awk: Generate cl_target_option_free
1791 and cl_optimization_option_free.
1792 * opth-en.awk: Declare cl_target_option_free
1793 and cl_optimization_option_free.
1794 * tree.c (free_node): Use it.
1795
1796 2019-11-06 Jan Hubicka <jh@suse.cz>
1797
1798 * lto-streamer-in.c: Include alloc-pool.h.
1799 (freeing_string_slot_hasher): Remove.
1800 (string_slot_allocator): New object allocator.
1801 (file_name_hash_table): Turn to hash_table<string_slot_hasher>.
1802 (file_name_obstack): New obstack.
1803 (canon_file_name): Allocate in obstack and allocator.
1804 (lto_reader_init): Initialize obstack and allocator.
1805 (lto_free_file_name_hash): New function.
1806 * lto-streamer.h (lto_free_file_name_hash): New.
1807
1808 2019-11-07 Feng Xue <fxue@os.amperecomputing.com>
1809
1810 PR tree-optimization/89134
1811 * doc/invoke.texi (min-loop-cond-split-prob): Document new --params.
1812 * params.def: Add min-loop-cond-split-prob.
1813 * tree-ssa-loop-split.c (split_loop): Remove niter parameter, move some
1814 outside checks on loop into the function.
1815 (split_info): New class.
1816 (find_vdef_in_loop, get_control_equiv_head_block): New functions.
1817 (find_control_dep_blocks, vuse_semi_invariant_p): Likewise.
1818 (ssa_semi_invariant_p, loop_iter_phi_semi_invariant_p): Likewise.
1819 (control_dep_semi_invariant_p, stmt_semi_invariant_p_1): Likewise.
1820 (stmt_semi_invariant_p, branch_removable_p): Likewise.
1821 (get_cond_invariant_branch, compute_added_num_insns): Likewise.
1822 (get_cond_branch_to_split_loop, do_split_loop_on_cond): Likewise.
1823 (split_loop_on_cond): Likewise.
1824 (tree_ssa_split_loops): Add loop split on conditional statement.
1825
1826 2019-11-07 Andreas Krebbel <krebbel@linux.ibm.com>
1827
1828 * config/s390/s390.md ("*cstorecc<mode>_z13"): New insn_and_split
1829 pattern.
1830
1831 2019-11-07 Richard Biener <rguenther@suse.de>
1832
1833 PR tree-optimization/92405
1834 * tree-vect-loop.c (vectorizable_reduction): Appropriately
1835 restrict lane-reducing ops to single stmt chains.
1836
1837 2019-11-07 Martin Jambor <mjambor@suse.cz>
1838
1839 PR lto/70929
1840 * cif-code.def (MISMATCHED_ARGUMENTS): Removed.
1841 * cgraph.h (gimple_check_call_matching_types): Remove
1842 * cgraph.c (gimple_check_call_args): Likewise.
1843 (gimple_check_call_matching_types): Likewise.
1844 (symbol_table::create_edge): Do not call
1845 gimple_check_call_matching_types.
1846 (cgraph_edge::make_direct): Likewise.
1847 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
1848 * value-prof.h (check_ic_target): Remove.
1849 * value-prof.c (check_ic_target): Remove.
1850 (gimple_ic_transform): Do nat call check_ic_target.
1851 * auto-profile.c (function_instance::find_icall_target_map): Likewise.
1852 (afdo_indirect_call): Likewise.
1853 * ipa-prop.c (update_indirect_edges_after_inlining): Do not call
1854 gimple_check_call_matching_types.
1855 * ipa-inline.c (early_inliner): Likewise.
1856
1857 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1858
1859 * config/arm/arm.md (arm_<simd32_op>): New define_expand.
1860 (arm_<simd32_op><add_clobber_q_name>_insn): New define_insn.
1861 * config/arm/arm_acle.h (__ssat16, __usat16): Define.
1862 * config/arm/arm_acle_builtins.def: Define builtins for the above.
1863 * config/arm/iterators.md (USSAT16): New int_iterator.
1864 (simd32_op): Handle UNSPEC_SSAT16, UNSPEC_USAT16.
1865 (sup): Likewise.
1866 * config/arm/predicates.md (ssat16_imm): New predicate.
1867 (usat16_imm): Likewise.
1868 * config/arm/unspecs.md (UNSPEC_SSAT16, UNSPEC_USAT16): Define.
1869
1870 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1871
1872 * config/arm/arm.md (arm_<simd32_op><add_clobber_q_name>_insn):
1873 New define_insns.
1874 (arm_<simd32_op>): New define_expands.
1875 * config/arm/arm_acle.h (__smlad, __smladx, __smlsd, __smlsdx,
1876 __smuad, __smuadx): Define.
1877 * config/arm/arm_acle_builtins.def: Define builtins for the above.
1878 * config/arm/iterators.md (SIMD32_TERNOP_Q): New int_iterator.
1879 (SIMD32_BINOP_Q): Likewise.
1880 (simd32_op): Handle the above.
1881 * config/arm/unspecs.md: Define unspecs for the above.
1882
1883 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1884
1885 * config/arm/aout.h (REGISTER_NAMES): Add apsrge.
1886 * config/arm/arm.md (APSRGE_REGNUM): Define.
1887 (arm_<simd32_op>): New define_insn.
1888 (arm_sel): Likewise.
1889 * config/arm/arm.h (FIXED_REGISTERS): Add entry for apsrge.
1890 (CALL_USED_REGISTERS): Likewise.
1891 (REG_ALLOC_ORDER): Likewise.
1892 (FIRST_PSEUDO_REGISTER): Update value.
1893 (ARM_GE_BITS_READ): Define.
1894 * config/arm/arm.c (arm_conditional_register_usage): Clear
1895 APSRGE_REGNUM from operand_reg_set.
1896 (arm_ge_bits_access): Define.
1897 * config/arm/arm-builtins.c (arm_check_builtin_call): Handle
1898 ARM_BUIILTIN_sel.
1899 * config/arm/arm-protos.h (arm_ge_bits_access): Declare prototype.
1900 * config/arm/arm-fixed.md (add<mode>3): Convert to define_expand.
1901 FAIL if ARM_GE_BITS_READ.
1902 (*arm_add<mode>3): New define_insn.
1903 (sub<mode>3): Convert to define_expand. FAIL if ARM_GE_BITS_READ.
1904 (*arm_sub<mode>3): New define_insn.
1905 * config/arm/arm_acle.h (__sel, __sadd8, __ssub8, __uadd8, __usub8,
1906 __sadd16, __sasx, __ssax, __ssub16, __uadd16, __uasx, __usax,
1907 __usub16): Define.
1908 * config/arm/arm_acle_builtins.def: Define builtins for the above.
1909 * config/arm/iterators.md (SIMD32_GE): New int_iterator.
1910 (simd32_op): Handle the above.
1911 * config/arm/unspecs.md (UNSPEC_GE_SET): Define.
1912 (UNSPEC_SEL, UNSPEC_SADD8, UNSPEC_SSUB8, UNSPEC_UADD8, UNSPEC_USUB8,
1913 UNSPEC_SADD16, UNSPEC_SASX, UNSPEC_SSAX, UNSPEC_SSUB16, UNSPEC_UADD16,
1914 UNSPEC_UASX, UNSPEC_USAX, UNSPEC_USUB16): Define.
1915
1916 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1917
1918 * config/arm/arm.md (arm_smlabb_setq): New define_insn.
1919 (arm_smlabb): New define_expand.
1920 (*maddhisi4tb): Rename to...
1921 (maddhisi4tb): ... This.
1922 (*maddhisi4tt): Rename to...
1923 (maddhisi4tt): ... This.
1924 (arm_smlatb_setq): New define_insn.
1925 (arm_smlatb): New define_expand.
1926 (arm_smlatt_setq): New define_insn.
1927 (arm_smlatt): New define_expand.
1928 (arm_<smlaw_op><add_clobber_name>_insn): New define_insn.
1929 (arm_<smlaw_op>): New define_expand.
1930 * config/arm/arm_acle.h (__smlabb, __smlatb, __smlabt, __smlatt,
1931 __smlawb, __smlawt): Define.
1932 * config/arm_acle_builtins.def: Define builtins for the above.
1933 * config/arm/iterators.md (SMLAWBT): New int_iterator.
1934 (slaw_op): New int_attribute.
1935 * config/arm/unspecs.md (UNSPEC_SMLAWB, UNSPEC_SMLAWT): Define.
1936
1937 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1938
1939 * config/arm/arm.md (arm_<ss_op>): New define_expand.
1940 (arm_<ss_op><add_clobber_q_name>_insn): New define_insn.
1941 * config/arm/arm_acle.h (__qadd, __qsub, __qdbl): Define.
1942 * config/arm/arm_acle_builtins.def: Add builtins for qadd, qsub.
1943 * config/arm/iterators.md (SSPLUSMINUS): New code iterator.
1944 (ss_op): New code_attr.
1945
1946 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1947
1948 * config/arm/aout.h (REGISTER_NAMES): Add apsrq.
1949 * config/arm/arm.md (APSRQ_REGNUM): Define.
1950 (add_setq): New define_subst.
1951 (add_clobber_q_name): New define_subst_attr.
1952 (add_clobber_q_pred): Likewise.
1953 (maddhisi4): Change to define_expand. Split into mult and add if
1954 ARM_Q_BIT_READ.
1955 (arm_maddhisi4): New define_insn.
1956 (*maddhisi4tb): Disable for ARM_Q_BIT_READ.
1957 (*maddhisi4tt): Likewise.
1958 (arm_ssat): New define_expand.
1959 (arm_usat): Likewise.
1960 (arm_get_apsr): New define_insn.
1961 (arm_set_apsr): Likewise.
1962 (arm_saturation_occurred): New define_expand.
1963 (arm_set_saturation): Likewise.
1964 (*satsi_<SAT:code>): Rename to...
1965 (satsi_<SAT:code><add_clobber_q_name>): ... This.
1966 (*satsi_<SAT:code>_shift): Disable for ARM_Q_BIT_READ.
1967 * config/arm/arm.h (FIXED_REGISTERS): Mark apsrq as fixed.
1968 (CALL_USED_REGISTERS): Mark apsrq.
1969 (FIRST_PSEUDO_REGISTER): Update value.
1970 (REG_ALLOC_ORDER): Add APSRQ_REGNUM.
1971 (machine_function): Add q_bit_access.
1972 (ARM_Q_BIT_READ): Define.
1973 * config/arm/arm.c (TARGET_CHECK_BUILTIN_CALL): Define.
1974 (arm_conditional_register_usage): Clear APSRQ_REGNUM from
1975 operand_reg_set.
1976 (arm_q_bit_access): Define.
1977 * config/arm/arm-builtins.c: Include stringpool.h.
1978 (arm_sat_binop_imm_qualifiers,
1979 arm_unsigned_sat_binop_unsigned_imm_qualifiers,
1980 arm_sat_occurred_qualifiers, arm_set_sat_qualifiers): Define.
1981 (SAT_BINOP_UNSIGNED_IMM_QUALIFIERS,
1982 UNSIGNED_SAT_BINOP_UNSIGNED_IMM_QUALIFIERS, SAT_OCCURRED_QUALIFIERS,
1983 SET_SAT_QUALIFIERS): Likewise.
1984 (arm_builtins): Define ARM_BUILTIN_SAT_IMM_CHECK.
1985 (arm_init_acle_builtins): Initialize __builtin_sat_imm_check.
1986 Handle 0 argument expander.
1987 (arm_expand_acle_builtin): Handle ARM_BUILTIN_SAT_IMM_CHECK.
1988 (arm_check_builtin_call): Define.
1989 * config/arm/arm.md (ssmulsa3, usmulusa3, usmuluha3,
1990 arm_ssatsihi_shift, arm_usatsihi): Disable when ARM_Q_BIT_READ.
1991 * config/arm/arm-protos.h (arm_check_builtin_call): Declare prototype.
1992 (arm_q_bit_access): Likewise.
1993 * config/arm/arm_acle.h (__ssat, __usat, __ignore_saturation,
1994 __saturation_occurred, __set_saturation_occurred): Define.
1995 * config/arm/arm_acle_builtins.def: Define builtins for ssat, usat,
1996 saturation_occurred, set_saturation_occurred.
1997 * config/arm/unspecs.md (UNSPEC_Q_SET): Define.
1998 (UNSPEC_APSR_READ): Likewise.
1999 (VUNSPEC_APSR_WRITE): Likewise.
2000 * config/arm/arm-fixed.md (ssadd<mode>3): Convert to define_expand.
2001 (*arm_ssadd<mode>3): New define_insn.
2002 (sssub<mode>3): Convert to define_expand.
2003 (*arm_sssub<mode>3): New define_insn.
2004 (ssmulsa3): Convert to define_expand.
2005 (*arm_ssmulsa3): New define_insn.
2006 (usmulusa3): Convert to define_expand.
2007 (*arm_usmulusa3): New define_insn.
2008 (ssmulha3): FAIL if ARM_Q_BIT_READ.
2009 (arm_ssatsihi_shift, arm_usatsihi): Disable for ARM_Q_BIT_READ.
2010 * config/arm/iterators.md (qaddsub_clob_q): New mode attribute.
2011
2012 2019-11-07 Martin Liska <mliska@suse.cz>
2013
2014 PR c++/92354
2015 * cgraph.c (delete_function_version): Clear global
2016 variable version_info_node if equal to deleted
2017 function.
2018
2019 2019-11-07 Martin Liska <mliska@suse.cz>
2020
2021 * fold-const.c (operand_compare::operand_equal_p): Add comparison
2022 of CONSTRUCTOR_NO_CLEARING.
2023 (operand_compare::hash_operand): Likewise.
2024
2025 2019-11-07 Georg-Johann Lay <avr@gjlay.de>
2026
2027 Support 64-bit double and 64-bit long double configurations.
2028
2029 PR target/92055
2030 * config.gcc (tm_defines) [avr]: Set from --with-double=,
2031 --with-long-double=.
2032 * config/avr/t-multilib: Remove.
2033 * config/avr/t-avr: Output of genmultilib.awk is now fully
2034 dynamically generated and no more part of the repo.
2035 (HAVE_DOUBLE_MULTILIB, HAVE_LONG_DOUBLE_MULTILIB): New variables.
2036 Pass them down to...
2037 * config/avr/genmultilib.awk: ...here and handle them.
2038 * config/avr/avr.opt (-mdouble=, avr_double). New option and var.
2039 (-mlong-double=, avr_long_double). New option and var.
2040 * common/config/avr/avr-common.c (opts.h, diagnostic.h): Include.
2041 (TARGET_OPTION_OPTIMIZATION_TABLE) <-mdouble=, -mlong-double=>:
2042 Set default as requested by --with-double=
2043 (TARGET_HANDLE_OPTION): Define to this...
2044 (avr_handle_option): ...new hook worker.
2045 * config/avr/avr.h (DOUBLE_TYPE_SIZE): Define to avr_double.
2046 (LONG_DOUBLE_TYPE_SIZE): Define to avr_long_double.
2047 (avr_double_lib): New proto for spec function.
2048 (EXTRA_SPEC_FUNCTIONS) <double-lib>: Add.
2049 (DRIVER_SELF_SPECS): Call %:double-lib.
2050 * config/avr/avr.c (avr_option_override): Assert
2051 sizeof(long double) >= sizeof(double) for the target.
2052 * config/avr/avr-c.c (avr_cpu_cpp_builtins)
2053 [__HAVE_DOUBLE_MULTILIB__, __HAVE_LONG_DOUBLE_MULTILIB__]
2054 [__HAVE_DOUBLE64__, __HAVE_DOUBLE32__, __DEFAULT_DOUBLE__=]
2055 [__HAVE_LONG_DOUBLE64__, __HAVE_LONG_DOUBLE32__]
2056 [__HAVE_LONG_DOUBLE_IS_DOUBLE__, __DEFAULT_LONG_DOUBLE__=]:
2057 New built-in define depending on --with-double=, --with-long-double=.
2058 * config/avr/driver-avr.c (avr_double_lib): New spec function.
2059 * doc/invoke.tex (AVR Options) <-mdouble=,-mlong-double=>: Doc.
2060 * doc/install.texi (Cross-Compiler-Specific Options)
2061 <--with-double=, --with-long-double=>: Doc.
2062
2063 2019-11-07 Richard Biener <rguenther@suse.de>
2064
2065 * dbgcnt.def (gimple_unroll): New.
2066 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Check
2067 gimple_unroll debug counter before applying transform.
2068 (try_peel_loop): Likewise.
2069
2070 2019-11-07 Kwok Cheung Yeung <kcy@codesourcery.com>
2071
2072 * ira.c (setup_alloc_regs): Setup no_unit_alloc_regs for
2073 frame pointer in multiple registers.
2074 (ira_setup_eliminable_regset): Setup eliminable_regset,
2075 ira_no_alloc_regs and regs_ever_live for frame pointer in
2076 multiple registers.
2077
2078 2019-11-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
2079
2080 * config/rs6000/vsx.md (xxswapd_<mode>): Add support for V2DF and
2081 V2DI modes.
2082
2083 2019-11-06 Jan Hubicka <jh@suse.cz>
2084
2085 * ggc-common.c (ggc_prune_overhead_list): Do not delete surviving
2086 allocations.
2087 * mem-stats.h (mem_alloc_description<T>::release_object_overhead):
2088 Do not silently ignore summary corruptions.
2089
2090 2019-11-06 Richard Sandiford <richard.sandiford@arm.com>
2091
2092 * tree-vect-loop.c (vect_analyze_loop): Only try to vectorize
2093 the epilogue if there are peeled iterations for it to handle.
2094
2095 2019-11-06 Claudiu Zissulescu <claziss@synopsys.com>
2096
2097 * config/arc/arc.c (arc_split_ior): Add asserts.
2098 (arc_split_mov_const): Likewise.
2099 (arc_check_ior_const): Do not match known short immediate values.
2100 * config/arc/arc.md (movsi): Don't split predicated instructions
2101 (iorsi): Likewise.
2102
2103 2019-11-06 Claudiu Zissulescu <claziss@synopsys.com>
2104
2105 * config/arc/arc.opt (mea): Update help string.
2106 * doc/invoke.texi(ARC): Update mea option info.
2107
2108 2019-11-06 Claudiu Zissulescu <claziss@synopsys.com>
2109
2110 * config/arc/arc.md (zero_extendqihi2_i): Cleanup pattern.
2111 (zero_extendqisi2_ac): Likewise.
2112 (zero_extendhisi2_i): Likewise.
2113 (extendqihi2_i): Likewise.
2114 (extendqisi2_ac): Likewise.
2115 (extendhisi2_i): Likewise.
2116
2117 2019-11-06 Richard Biener <rguenther@suse.de>
2118
2119 * tree-vect-loop.c (vectorizable_reduction): Remember reduction
2120 PHI. Use STMT_VINFO_REDUC_IDX to skip the reduction operand.
2121 Simplify single_defuse_cycle condition.
2122
2123 2019-11-06 Richard Sandiford <richard.sandiford@arm.com>
2124
2125 * tree-vect-loop.c (vect_analyze_loop_2): When vectorizing an
2126 epilogue loop, make sure that the VF is small enough or that
2127 the epilogue loop can be fully-masked.
2128
2129 2019-11-06 Richard Sandiford <richard.sandiford@arm.com>
2130
2131 * tree-vect-loop.c (vect_analyze_loop): Break out of the main
2132 loop when we've finished, rather than returning directly from
2133 the loop. Use a local variable to track whether we're still
2134 searching for the preferred simdlen. Make vect_epilogues
2135 record whether the next iteration should try to treat the
2136 loop as an epilogue.
2137
2138 2019-11-06 Vineet Gupta <vgupta@synopsys.com>
2139
2140 * config/arc/arc-c.c (arc_cpu_cpp_builtins) : Add
2141 __arc_hard_float__, __ARC_HARD_FLOAT__,
2142 __arc_soft_float__, __ARC_SOFT_FLOAT__
2143
2144 2019-11-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
2145
2146 PR tree-optimization/92317
2147 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard2): Also
2148 update phi's with constant phi arguments.
2149
2150 2019-11-06 Eric Botcazou <ebotcazou@adacore.com>
2151 Alexandre Oliva <oliva@adacore.com>
2152
2153 * common.opt (-fcallgraph-info[=]): New option.
2154 * doc/invoke.texi (Developer options): Document it.
2155 * opts.c (common_handle_option): Handle it.
2156 * builtins.c (expand_builtin_alloca): Record allocation if
2157 -fcallgraph-info=da.
2158 * calls.c (expand_call): If -fcallgraph-info, record the call.
2159 (emit_library_call_value_1): Likewise.
2160 * flag-types.h (enum callgraph_info_type): New type.
2161 * explow.c: Include stringpool.h.
2162 (set_stack_check_libfunc): Set SET_SYMBOL_REF_DECL on the symbol.
2163 * function.c (allocate_stack_usage_info): New.
2164 (allocate_struct_function): Call it for -fcallgraph-info.
2165 (prepare_function_start): Call it otherwise.
2166 (record_final_call, record_dynamic_alloc): New.
2167 * function.h (struct callinfo_callee): New.
2168 (CALLEE_FROM_CGRAPH_P): New.
2169 (struct callinfo_dalloc): New.
2170 (struct stack_usage): Add callees and dallocs.
2171 (record_final_call, record_dynamic_alloc): Declare.
2172 * gimplify.c (gimplify_decl_expr): Record dynamically-allocated
2173 object if -fcallgraph-info=da.
2174 * optabs-libfuncs.c (build_libfunc_function): Keep SYMBOL_REF_DECL.
2175 * print-tree.h (print_decl_identifier): Declare.
2176 (PRINT_DECL_ORIGIN, PRINT_DECL_NAME, PRINT_DECL_UNIQUE_NAME): New.
2177 * print-tree.c: Include print-tree.h.
2178 (print_decl_identifier): New function.
2179 * toplev.c: Include print-tree.h.
2180 (callgraph_info_file): New global variable.
2181 (callgraph_info_external_printed): Likewise.
2182 (output_stack_usage): Rename to...
2183 (output_stack_usage_1): ... this. Make it static, add cf
2184 parameter. If -fcallgraph-info=su, print stack usage to cf.
2185 If -fstack-usage, use print_decl_identifier for
2186 pretty-printing.
2187 (INDIRECT_CALL_NAME): New.
2188 (dump_final_node_vcg_start): New.
2189 (dump_final_callee_vcg, dump_final_node_vcg): New.
2190 (output_stack_usage): New.
2191 (lang_dependent_init): Open and start file if
2192 -fcallgraph-info. Allocated callgraph_info_external_printed.
2193 (finalize): If callgraph_info_file is not null, finish it,
2194 close it, and release callgraph_info_external_printed.
2195
2196 2019-11-06 Gergö Barany <gergo@codesourcery.com>
2197 Frederik Harwath <frederik@codesourcery.com>
2198 Thomas Schwinge <thomas@codesourcery.com>
2199
2200 * omp-low.c (struct omp_context): New fields
2201 local_reduction_clauses, outer_reduction_clauses.
2202 (new_omp_context): Initialize these.
2203 (scan_sharing_clauses): Record reduction clauses on OpenACC constructs.
2204 (scan_omp_for): Check reduction clauses for incorrect nesting.
2205
2206 2019-11-06 Jakub Jelinek <jakub@redhat.com>
2207
2208 PR inline-asm/92352
2209 * gimplify.c (gimplify_asm_expr): Reject VLA in output or input
2210 operands with non-memory constraints.
2211
2212 2019-11-05 Martin Sebor <msebor@redhat.com>
2213
2214 PR tree-optimization/92373
2215 * tree.c (component_ref_size): Only consider initializers of objects
2216 of matching struct types.
2217 Return null for instances of interior zero-length arrays.
2218
2219 2019-11-05 Segher Boessenkool <segher@kernel.crashing.org>
2220
2221 * doc/md.texi (Insn Splitting): Fix combiner documentation.
2222
2223 2019-11-05 Jason Merrill <jason@redhat.com>
2224
2225 PR tree-optimization/91825
2226 * expmed.c: Reduce -Wmaybe-uninitialized to warning.
2227
2228 2019-11-05 Jim Wilson <jimw@sifive.com>
2229
2230 PR middle-end/92263
2231 * expr.c (emit_move_complex): Only use BLOCK_OP_NO_LIBCALL when
2232 optimize_insn_for_speed_p is true.
2233
2234 2019-11-05 Martin Sebor <msebor@redhat.com>
2235
2236 PR middle-end/92333
2237 PR middle-end/82608
2238 * tree-vrp.c (vrp_prop::check_array_ref): Handle VLAs with constant
2239 size.
2240 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Use a meaninful
2241 name and location for a temporary variable.
2242
2243 2019-11-05 Aldy Hernandez <aldyh@redhat.com>
2244
2245 * tree-vrp.c (value_range::value_range): Fix whitespace.
2246 (defined_ranges_p): Same.
2247 (range_fold_binary_symbolics_p): Same.
2248 (value_range::intersect_helper): Same.
2249 (value_range::union_helper): Same.
2250 * tree-vrp.h (range_fold_binary_expr): Same.
2251
2252 2019-11-04 Martin Sebor <msebor@redhat.com>
2253
2254 PR middle-end/92341
2255 PR middle-end/82612
2256 * tree-sra.c (get_access_for_expr): Fail for out-of-bounds offsets.
2257 * tree-vrp.c (vrp_prop::check_array_ref): Correct index and text
2258 of message printed in a warning for empty arrays.
2259 (vrp_prop::check_mem_ref): Also handle function parameters and
2260 empty arrays.
2261
2262 2019-11-05 Richard Biener <rguenther@suse.de>
2263
2264 PR tree-optimization/92371
2265 * tree-vect-loop.c (vectorizable_reduction): Set STMT_VINFO_REDUC_DEF
2266 on the original stmt of live stmts in the chain.
2267 (vectorizable_live_operation): Look at the original stmt when
2268 checking STMT_VINFO_REDUC_DEF.
2269
2270 2019-11-05 Aldy Hernandez <aldyh@redhat.com>
2271
2272 * gimple-fold.c, gimple-loop-versioning.cc,
2273 gimple-ssa-evrp-analyze.[ch], gimple-ssa-evrp.c,
2274 gimple-ssa-sprintf.c, ipa-cp.c, ipa-prop.c, ipa-prop.h,
2275 range-op.[hc]*, range.[hc]*, selftest.h, tree-ssa-dom.c,
2276 tree-ssa-strlen.c, tree-ssa-threadedge.c, tree-ssanames.[hc],
2277 tree-vrp.[hc], vr-values.[hc]: Global rename of value_range to
2278 value_range_equiv, and value_range_base to value_range.
2279
2280 2019-11-05 Matthew Malcomson <matthew.malcomson@arm.com>
2281
2282 * expr.c (build_personality_function): Fix generated type to
2283 match actual personality functions.
2284
2285 2019-11-05 Matthew Malcomson <matthew.malcomson@arm.com>
2286
2287 * config/aarch64/aarch64.c (aarch64_handle_attr_cpu): Allocate
2288 enough bytes for the NULL character.
2289
2290 2019-11-05 Richard Biener <rguenther@suse.de>
2291
2292 PR tree-optimization/92280
2293 * match.pd (BIT_FIELD_REF of CTOR): Unless the original CTOR
2294 had a single use do not create a new CTOR.
2295 * tree-ssa-forwprop.c (simplify_bitfield_ref): Do not re-fold
2296 BIT_FIELD_REF of a CTOR via GENERIC.
2297
2298 2019-11-05 Andreas Krebbel <krebbel@linux.ibm.com>
2299
2300 * config/s390/s390.c (s390_vector_alignment): Check if the value
2301 fits into uhwi before using it.
2302
2303 2019-11-05 Martin Liska <mliska@suse.cz>
2304
2305 * symbol-summary.h: Use ggc_delete.
2306
2307 2019-11-05 Anton Youdkevitch <anton.youdkevitch@bell-sw.com>
2308
2309 * config/aarch64/aarch64.c (thunderx2t99_vector_cost):
2310 Change vec_perm field to 10.
2311
2312 2019-11-05 Arnaud Charlet <charlet@adacore.com>
2313
2314 * doc/install.texi: Further fix syntax for html generation.
2315
2316 2019-11-05 Martin Liska <mliska@suse.cz>
2317
2318 * symbol-summary.h: Rename allocator to m_allocator and
2319 add comment.
2320
2321 2019-11-05 Richard Biener <rguenther@suse.de>
2322
2323 PR tree-optimization/92324
2324 * tree-vect-loop.c (check_reduction_path): For MIN/MAX require
2325 all signed or unsigned operations.
2326
2327 2019-11-05 Jan Hubicka <jh@suse.cz>
2328
2329 * hsa-brig.c: Include alloc-pool.h
2330 * hsa-dump.c: Likewise.
2331 * hsa-gen.c: Likewise.
2332 * hse-regalloc.c: Likewise.
2333 * ipa-hsa.c: Likewise.
2334 * ipa-predicate.c: Likewise.
2335 * ipa-reference.c: Likewise.
2336 * ipa-sra.c: Likewise.
2337 * omp-expand.c: Likewise.
2338 * omp-general.c: Likewise.
2339 * omp-low.c: Likewise.
2340 * sumbol-summary.h (function_summary_base): Add allocator.
2341 (function_summary<T *>::function_summary): Update construction.
2342 (fast_function_summary<T *, V>::fast_function_summary): Likewise.
2343 (call_summary_base): Add allcator.
2344 (call_summary<T *>::call_summary): Update construction.
2345 (fast_call_summary<T *, V>::fast_call_summary): Likewise.
2346
2347 2019-11-05 Jakub Jelinek <jakub@redhat.com>
2348
2349 PR tree-optimization/91945
2350 * builtins.c (compute_objsize): For ARRAY_REF, only multiply off
2351 by tpsize if it is both non-NULL and INTEGER_CST, otherwise punt.
2352 Formatting fix.
2353
2354 2019-11-05 Aldy Hernandez <aldyh@redhat.com>
2355
2356 * range-op.cc (wi_set_zero_nonzero_bits): Remove static qualifier.
2357 * range-op.h (wi_set_zero_nonzero_bits): New prototype.
2358 * tree-vrp.h (vrp_set_zero_nonzero_bits): Remove.
2359 * tree-vrp.c (wide_int_range_set_zero_nonzero_bits): Remove.
2360 (vrp_set_zero_nonzero_bits): Move to...
2361 * vr-values.c (vr_set_zero_nonzero_bits): ...here.
2362 (vr_values::simplify_bit_ops_using_ranges): Rename
2363 vrp_set_zero_nonzero_bits to vr_set_zero_nonzero_bits.
2364
2365 2019-11-05 Martin Liska <mliska@suse.cz>
2366
2367 PR c++/92339
2368 * fold-const.c (operand_compare::hash_operand): Remove
2369 FIELD_DECL handling.
2370
2371 2019-11-05 Aldy Hernandez <aldyh@redhat.com>
2372
2373 * tree-vrp.h (vrp_bitmap_equal_p): Remove.
2374 * tree-vrp.c (vrp_bitmap_equal_p): Move before use and make
2375 static.
2376
2377 2019-11-05 Aldy Hernandez <aldyh@redhat.com>
2378
2379 * tree-vrp.c (value_range_base::operator==): Use equal_p to
2380 properly handle symbolics.
2381 (range_compatible_p): Remove.
2382
2383 2019-11-04 Kamlesh Kumar <kamleshbhalui@gmail.com>
2384
2385 * common.opt (-fabi-version): Document =14.
2386 * doc/invoke.texi (C++ Dialect Options): Likewise.
2387
2388 2019-11-04 Aldy Hernandez <aldyh@redhat.com>
2389
2390 * tree-vrp.c (value_range_base::set): Do not special case pointers.
2391
2392 2019-11-04 Tobias Burnus <tobias@codesourcery.com>
2393
2394 * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): New function.
2395 (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to
2396 gcn_omp_device_kind_arch_isa.
2397 * config/gcn/t-omp-device: New file.
2398 * configure.ac: Support gcn for omp_device_property.
2399 * configure: Regenerate.
2400
2401 2019-11-04 Aldy Hernandez <aldyh@redhat.com>
2402
2403 * tree-vrp.h (vrp_val_min): Remove handle_pointers argument.
2404 (vrp_val_max): Same.
2405 (vrp_val_is_min): Same.
2406 (vrp_val_is_max): Same.
2407 (value_range_base::nonzero_p): Remove last argument to
2408 vrp_val_is_max.
2409 * tree-vrp.c (vrp_val_min): Remove handle_pointers argument.
2410 (vrp_val_max): Same.
2411 (vrp_val_is_min): Same.
2412 (vrp_val_is_max): Same.
2413 (value_range_base::set_varying): Remove last argument to vrp_val*.
2414 (value_range_base::dump): Same.
2415 (value_range_base::set): Same.
2416 (value_range_base::normalize_symbolics): Same.
2417 (value_range_base::num_pairs): Same.
2418 (value_range_base::lower_bound): Same.
2419 (value_range_base::upper_bound): Same.
2420 (ranges_from_anti_range): Remove handle_pointers argument.
2421 (value_range_base::singleton_p): Remove last argument to
2422 ranges_from_anti_range.
2423
2424 2019-11-04 Jan Hubicka <jh@suse.cz>
2425
2426 * ipa-reference.c (init_function_info): Initialize
2427 info->global.statics_read.
2428
2429 2019-11-04 Aldy Hernandez <aldyh@redhat.com>
2430
2431 * tree-vrp.c (value_range_base::invert): Use constructors to build
2432 range.
2433
2434 2019-11-04 Aldy Hernandez <aldyh@redhat.com>
2435
2436 * tree-vrp.c (range_int_cst_singleton_p): Remove.
2437 * tree-vrp.h (range_int_cst_singleton_p): Remove.
2438
2439 2019-11-04 Aldy Hernandez <aldyh@redhat.com>
2440
2441 * tree-vrp.c (value_range_base::normalize_addresses): Handle
2442 VR_UNDEFINED.
2443
2444 2019-11-04 Aldy Hernandez <aldyh@redhat.com>
2445
2446 * tree-vrp.c (dump_assert_info): New.
2447 (dump_asserts_info): New.
2448
2449 2019-11-04 Jan Hubicka <jh@suse.cz>
2450
2451 * ipa-inline-transform.c: Include ipa-utils.h
2452 (inline_call): Set thunk_expansion flag.
2453 * ipa-utils.h (thunk_expansion): Declare.
2454 * ipa-devirt.c (thunk_expansion): New global var.
2455 (devirt_node_removal_hook): Do not invalidate cache while
2456 doing thunk expansion.
2457
2458 2019-11-04 Tamar Christina <tamar.christina@arm.com>
2459
2460 * tree-vect-slp.c (vectorize_slp_instance_root_stmt): Initialize rstmt.
2461
2462 2019-11-04 Martin Sebor <msebor@redhat.com>
2463
2464 PR tree-optimization/92349
2465 * tree-vrp.c (vrp_prop::check_array_ref): Avoid assuming struct
2466 memebers have constant sizes.
2467
2468 2019-11-04 Andre Vieira <andre.simoesdiasvieira@arm.com>
2469
2470 * tree-vect-loop.c (vect_analyze_loop): Remove orig_loop_vinfo
2471 parameter.
2472 * tree-vectorizer.h (vect_analyze_loop): Update declaration.
2473 * tree-vectorizer.c (try_vectorize_loop_1): Update calls to
2474 vect_analyze_loop.
2475
2476 2019-11-04 Joel Hutton <Joel.Hutton@arm.com>
2477
2478 * expr.c (store_constructor): Modify to handle single element vectors.
2479 * tree-vect-slp.c (vect_analyze_slp_instance): Add case for vector
2480 constructors.
2481 (vect_slp_check_for_constructors): New function.
2482 (vect_slp_analyze_bb_1): Call new function to check for vector
2483 constructors.
2484 (vectorize_slp_instance_root_stmt): New function.
2485 (vect_schedule_slp): Call new function to vectorize root stmt of vector
2486 constructors.
2487 * tree-vectorizer.h (SLP_INSTANCE_ROOT_STMT): New field.
2488
2489 2019-11-04 Richard Biener <rguenther@suse.de>
2490
2491 PR tree-optimization/92345
2492 * tree-vect-loop.c (vect_is_simple_reduction): Return whether
2493 we produced a reduction chain.
2494 (vect_analyze_scalar_cycles_1): Do not add reduction chains to
2495 LOOP_VINFO_REDUCTIONS.
2496
2497 2019-11-04 Jan Hubicka <jh@suse.cz>
2498
2499 * cgraphclones.c (cgraph_node::create_version_clone): Do not
2500 duplicate summaries.
2501 * ipa-fnsummary.c (ipa_fn_summary_alloc): Allocate size summary
2502 first.
2503 (ipa_fn_summary_t::duplicate): Use get instead of get_create to
2504 access call summaries.
2505 (dump_ipa_call_summary): Be ready for missing edge summaries.
2506 (analyze_function_body): Use get instead of get_create to access
2507 edge summary.
2508 (estimate_calls_size_and_time): Do not access summaries of
2509 inlined edges; sanity check they are missing.
2510 (ipa_call_context::estimate_size_and_time): Use get instead
2511 of get_create to access node summary.
2512 (inline_update_callee_summaries): Do not update depth of
2513 inlined edge.
2514 (ipa_merge_fn_summary_after_inlining): Remove inline edge from
2515 growth caches.
2516 (ipa_merge_fn_summary_after_inlining): Use get instead
2517 of get_create.
2518 * ipa-fnsummary.h (ipa_remove_from_growth_caches): Declare.
2519 * ipa-inline-analyssi.c (edge_growth_cache): Turn to
2520 fast summary.
2521 (initialize_growth_caches): Update.
2522 (do_estimate_edge_time): Remove redundant copy of context.
2523 (ipa_remove_from_growth_caches): New function.
2524 * ipa-inline.c (flatten_function): Update overall summary
2525 only when optimizing.
2526 (inline_to_all_callers): Update overall summary of function
2527 inlined to.
2528 * ipa-inline.h (edge_growth_cache): Turn to fast summary.
2529 * symbol-summary.h (call_summary_base): Set m_initialize_when_cloning
2530 to false.
2531
2532 2019-11-04 Richard Biener <rguenther@suse.de>
2533
2534 * system.h: Include malloc.h if INCLUDE_MALLOC_H and HAVE_MALLINFO.
2535 * ggc-common.c: Remove inclusion of malloc.h, define INCLUDE_MALLOC_H.
2536
2537 2019-11-04 David Edelsohn <dje.gcc@gmail.com>
2538
2539 * ggc-common.c: Include system.h before malloc.h.
2540
2541 2019-11-04 Alexandre Oliva <oliva@adacore.com>
2542
2543 * configure.ac: Pass --enable-obsolete=* and
2544 --enable-option-checking=* down to build configure, and fail
2545 if it fails. AC_SUBST HAVE_AUTO_BUILD.
2546 * configure: Rebuild.
2547 * Makefile.in [HAVE_AUTO_BUILD] (auto-build.h): New rule.
2548 [HAVE_AUTO_BUILD] (config.status): Depend on auto-build.h.
2549
2550 2019-11-04 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2551
2552 * config.in: Regenerate.
2553 * config/msp430/msp430.c (msp430_option_override): Emit an error if
2554 -mtiny-printf is used without GCC being configured with
2555 --enable-newlib-nano-formatted-io.
2556 * config/msp430/msp430.h (LINK_SPEC): Pass
2557 "--wrap puts --wrap printf" when -mtiny-printf is used.
2558 * config/msp430/msp430.opt: Document -mtiny-printf.
2559 * configure: Regenerate.
2560 * configure.ac: Enable --enable-newlib-nano-formatted-io flag.
2561 Define HAVE_NEWLIB_NANO_FORMATTED_IO if
2562 --enable-newlib-nano-formatted-io is passed.
2563 * doc/invoke.texi: Document -mtiny-printf.
2564
2565 2019-11-04 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2566
2567 * configure: Regenerate.
2568
2569 2019-11-04 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2570
2571 * config/msp430/driver-msp430.c
2572 (msp430_get_linker_devices_include_path): New spec function.
2573 * config/msp430/msp430-devices.c (msp430_dirname): New function.
2574 (extract_devices_dir_from_exec_prefix): New function.
2575 (extract_devices_dir_from_collect_gcc): New function.
2576 (msp430_check_env_var_for_devices): New function.
2577 (msp430_check_path_for_devices): Use xstrdup instead of ASTRDUP.
2578 (parse_devices_csv): Call msp430_check_env_var_for_devices if
2579 devices.csv was not found using other methods.
2580 * config/msp430/msp430-devices.h (msp430_check_env_var_for_devices):
2581 New prototype.
2582 (msp430_dirname): Likewise.
2583 * config/msp430/msp430.c (msp430_register_pre_includes): New function.
2584 * config/msp430/msp430.h (EXTRA_SPEC_FUNCTIONS): Add
2585 msp430_get_linker_devices_include_path.
2586 (TARGET_EXTRA_PRE_INCLUDES): Define.
2587 * doc/invoke.texi: Document new ways of searching for support files.
2588
2589 2019-11-04 Richard Biener <rguenther@suse.de>
2590
2591 PR tree-optimization/92301
2592 * tree-vect-stmts.c (process_use): Force reduction PHI defs live
2593 as required by epilogue generation
2594
2595 2019-11-04 Martin Liska <mliska@suse.cz>
2596
2597 PR ipa/92304
2598 * fold-const.c (operand_compare::hash_operand): Fix field
2599 hashing of CONSTRUCTOR.
2600
2601 2019-11-04 Martin Liska <mliska@suse.cz>
2602
2603 * ggc.h (ggc_delete): New function.
2604 * ipa-fnsummary.c (ipa_free_fn_summary): Use it.
2605 * ipa-prop.c (ipa_free_all_edge_args): Likewise.
2606 (ipa_free_all_node_params): Likewise.
2607 * ipa-sra.c (ipa_sra_analysis): Likewise.
2608
2609 2019-11-02 Jan Hubicka <hubicka@ucw.cz>
2610
2611 * ipa-fnsummary.c (set_cond_stmt_execution_predicate,
2612 set_switch_stmt_execution_predicate, compute_bb_predicates,
2613 will_be_nonconstant_expr_predicate,
2614 phi_result_unknown_predicate,
2615 analyze_function_body): Pass arround params summary.
2616 (ipa_call_context::duplicate_from): New comment;
2617 only duplicate useful values.
2618 (ipa_call_context::equal_to): Only compare useful values.
2619 (remap_edge_summaries): Pass params_summary.
2620 (remap_hint_predicate): Likewise.
2621 (ipa_merge_fn_summary_after_inlining): Likewise.
2622 (inline_read_section): Initialize params summary used flags.
2623 * ipa-predicate.c (predicate::remap_after_inlining): Pass
2624 around param_summary.
2625 (add_condition): Initialized used params summary flags.
2626 * ipa-predicate.h (inline_param_summary::equals_to): Make const.
2627 (inline_param_summary::useless_p): New predicate.
2628 (remap_after_inlining, add_condition): Update prototype
2629 * ipa-prop.c (ipa_populate_param_decls): Watch overflow in
2630 move_cost.
2631 (ipa_note_param_call): Add parameter POLYMORPHIC; update params
2632 summaries.
2633 (ipa_analyze_indirect_call_uses): Update use of ipa_note_param_call.
2634 (ipa_analyze_virtual_call_uses): Likewise.
2635 (update_indirect_edges_after_inlining): Update param summaries.
2636 (ipa_print_node_params): Print used flags.
2637 (ipa_read_indirect_edge_info): Update param summareis.
2638 * ipa-prop.h (ipa_param_descriptor): Add
2639 used_by_ipa_predicates, used_by_indirect_call
2640 and used_by_polymorphic_call.
2641 (ipa_set_param_used_by_ipa_predicates,
2642 ipa_set_param_used_by_indirect_call,
2643 ipa_set_param_used_by_polymorphic_call,
2644 ipa_is_param_used_by_ipa_predicates,
2645 ipa_is_param_used_by_indirect_call,
2646 ipa_is_param_used_by_polymorphic_call): New inline functions.
2647
2648 2019-11-02 Jan Hubicka <hubicka@ucw.cz>
2649
2650 * ipa-fnsummary.c (ipa_call_context::duplicate_from): New
2651 member function.
2652 (ipa_call_context::release): Add ALL parameter.
2653 (ipa_call_context::equal_to): New member function.
2654 * ipa-fnsummary.h (ipa_call_context): Add empty constructor;
2655 duplicate_form, release, equal_to and exists_p member functoins.
2656 * ipa-inline-analysis.c (node_context_cache_entry): New
2657 class.
2658 (node_context_summary): Likewise.
2659 (node_context_cache, node_context_cache_hit, node_context_cache_miss,
2660 node_context_clear): New static vars.
2661 (initialize_growth_caches): New function.
2662 (free_growth_caches): Also delete node_context_cache; output stats.
2663 (do_estimate_edge_time): Cache contexts.
2664 (reset_node_cache): New function.
2665 * ipa-inline.c (reset_edge_caches): Reset also node cache.
2666 (inline_small_functions): Initialize growth caches.
2667 * ipa-inline.h (reset_node_cache, initialize_growth_caches):
2668 Declare.
2669 * ipa-predicate.h (inline_param_summary::equal_to): New.
2670 * ipa-prop.c (ipa_agg_jf_item::equal_to): New.
2671 * ipa-prop.h (ipa_agg_jf_item): Declare equal_to member function.
2672 (ipa_agg_jump_function): Implement equal_to member function.
2673
2674 2019-11-02 Jan Hubicka <hubicka@ucw.cz>
2675
2676 * ipa-fnsummary.c (inline_read_section): Set vector size
2677 ahead of time.
2678
2679 2019-11-02 Jan Hubicka <hubicka@ucw.cz>
2680
2681 * ipa-fnsummary.c (ipa_call_context): New constructor.
2682 (estimate_node_size_and_time): Turn to ...
2683 (ipa_call_context::estimate_size_and_time): ... this one.
2684 (ipa_call_context::release): New.
2685 * ipa-fnsummary.h (ipa_call_context): New class.
2686 (estimate_node_size_and_time): Remove.
2687 * ipa-inline-analysis.c (do_estimate_edge_time, do_estimate_edge_size,
2688 do_estimate_edge_hints): Update.
2689
2690 2019-11-02 Jan Hubicka <hubicka@ucw.cz>
2691
2692 * config.in: Regenerate.
2693 * configure: Regenerate.
2694 * configure.ac: Check for mallinfo.
2695 * ggc-common.c: Include malloc.h if available;
2696 include options.h
2697 (report_heap_memory_use): New functoin.
2698 * ggc-page.c (ggc_grow): Do not print "start".
2699 * ggc.h (report_heap_memory_use): Declare.
2700 * pases.c (execute_one_pass): Report memory after IPA passes.
2701 (ipa_read_summaries_1): Likewise.
2702 (ipa_read_optimization_summaries_1): Likewise.
2703
2704 2019-11-02 Jakub Jelinek <jakub@redhat.com>
2705
2706 * gimplify.h (omp_construct_selector_matches): Change return
2707 type to int, add a new SCORES argument.
2708 * gimplify.c (omp_construct_selector_matches): Likewise. If
2709 SCORES is non-NULL, compute scores of each construct.
2710 * omp-general.h (omp_get_context_selector): Declare.
2711 * omp-general.c (omp_maybe_offloaded, omp_context_selector_matches):
2712 Adjust omp_construct_selector_matches callers.
2713 (omp_get_context_selector): New function, moved from c-family/c-omp.c.
2714 (omp_context_compute_score): New function.
2715 (omp_resolve_declare_variant): Compute scores and decide based on
2716 that.
2717
2718 PR bootstrap/92314
2719 * configure.ac: Don't look for omp-device-properties files from
2720 installed offloading compilers. Instead add tmake_file snippets
2721 for configured offloading targets and use files they generate.
2722 * Makefile.in (install): Don't depend on
2723 install-omp-device-properties.
2724 (install-omp-device-properties): Remove goal.
2725 * config/i386/t-omp-device: New file.
2726 * config/i386/t-intelmic (omp-device-properties): Remove goal.
2727 * config/nvptx/t-omp-device: New file.
2728 * config/nvptx/t-nvptx (omp-device-properties): Remove goal.
2729 * configure: Regenerated.
2730
2731 * omp-general.h (omp_context_selector_set_compare): Declare.
2732 * omp-general.c (omp_construct_simd_compare,
2733 omp_context_selector_props_compare, omp_context_selector_set_compare,
2734 omp_context_selector_compare): New functions.
2735 (omp_resolve_declare_variant): Prune variants that are strict subset
2736 of another variant.
2737
2738 2019-11-01 Martin Sebor <msebor@redhat.com>
2739
2740 PR middle-end/91679
2741 PR middle-end/91647
2742 PR middle-end/91463
2743 PR middle-end/92312
2744 * doc/invoke.texi (-Wzero-length-bounds): Document.
2745 * gimple-match-head.c (try_conditional_simplification): Use memcpy
2746 instead of a hand-rolled loop to avoid PR 92323.
2747 * tree-vrp.c (vrp_prop::check_array_ref): Handle trailing arrays
2748 with initializers.
2749 (vrp_prop::check_mem_ref): Handle declared struct objects.
2750 * tree.c (last_field): New function.
2751 (array_at_struct_end_p): Handle MEM_REF.
2752 (get_initializer_for): New helper.
2753 (component_ref_size): Add argument. Rename locals. Call
2754 get_initializer_for instead of fold_ctor_reference. Correct handling
2755 of flexible array members.
2756 * wide-int.h (generic_wide_int <storage>::sign_mask): Assert invariant.
2757
2758 2019-11-01 Kewen Lin <linkw@gcc.gnu.org>
2759
2760 * config/rs6000/rs6000-modes.def (V2SF, V2SI): New modes.
2761 * config/rs6000/vsx.md (UNSPEC_VSX_CVSPSXDS,
2762 UNSPEC_VSX_CVSPUXDS): Remove.
2763 (vsx_xvcvspdp): New define_expand, old define_insn split to...
2764 (vsx_xvcvspdp_be): ... this. New. And...
2765 (vsx_xvcvspdp_le): ... this. New.
2766 (vsx_xvcv<su>xwdp): New define_expand, old define_insn split to...
2767 (vsx_xvcv<su>xwdp_be): ... this. New. And...
2768 (vsx_xvcv<su>xwdp_le): ... this. New.
2769 (vsx_xvcvsp<su>xds): New define_expand, old define_insn split to...
2770 (vsx_xvcvsp<su>xds_be): ... this. New. And...
2771 (vsx_xvcvsp<su>xds_le): ... this. New.
2772
2773 2019-11-01 Kewen Lin <linkw@gcc.gnu.org>
2774
2775 * config/rs6000/vsx.md (UNSPEC_VSX_CVSXWSP, UNSPEC_VSX_CVUXWSP,
2776 UNSPEC_VSX_XVCVSXDDP, UNSPEC_VSX_XVCVUXDDP,
2777 UNSPEC_VSX_XVCVDPSXDS, UNSPEC_VSX_XVCVDPUXDS,
2778 UNSPEC_VSX_XVCVSPSXWS): Remove.
2779 (vsx_xvcv<su>xddp, vsx_xvcvdp<su>xds, vsx_xvcvsp<su>xws,
2780 vsx_xvcv<su>xwsp): Update define_insn RTL patterns.
2781
2782 2019-11-01 Kewen Lin <linkw@gcc.gnu.org>
2783
2784 * config/rs6000/vsx.md (vsx_xvcdpsp): Remove define_insn.
2785 (UNSPEC_VSX_XVCDPSP): Remove.
2786 * config/rs6000/rs6000.c (rs6000_generate_float2_double_code):
2787 Replace gen_vsx_xvcdpsp by gen_vsx_xvcvdpsp.
2788
2789 2019-11-01 Tobias Burnus <tobias@codesourcery.com>
2790
2791 * hooks.c (hook_tree_tree_bool_null): New.
2792 * hooks.h (hook_tree_tree_bool_null): Declare.
2793 * langhooks-def.h (LANG_HOOKS_OMP_ARRAY_DATA): Define.
2794 (LANG_HOOKS_DECLS): Add it.
2795 * langhooks.h (lang_hooks_for_decls): Add omp_array_data.
2796 * omp-low.c (install_var_field): New mode for Fortran descriptor arrays.
2797 (lower_omp_target): Handle Fortran array with descriptor in
2798 OMP_CLAUSE_USE_DEVICE_ADDR/OMP_CLAUSE_USE_DEVICE_PTR.
2799
2800 2019-10-31 Richard Sandiford <richard.sandiford@arm.com>
2801
2802 * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types):
2803 Assert that the type we store in abi_vector_types is its own
2804 main variant.
2805 (svbool_type_p): Don't apply TYPE_MAIN_VARIANT here.
2806
2807 2019-10-31 Richard Earnshaw <rearnsha@arm.com>
2808
2809 * config/arm/arm.c (arm_legitimize_address): Don't form negative offsets
2810 from a CONST_INT address when TARGET_THUMB2.
2811
2812 2019-10-31 Richard Earnshaw <rearnsha@arm.com>
2813
2814 * config/arm/arm.md (add_not_cin): New insn.
2815 (add_not_shift_cin): Likewise.
2816
2817 2019-10-31 Martin Liska <mliska@suse.cz>
2818
2819 * ipa-icf-gimple.c (func_checker::compare_tree_ssa_label): Remove.
2820 * ipa-icf-gimple.h: Remove declaration from compare_tree_ssa_label
2821 and compare_memory_operand.
2822
2823 2019-10-31 Jakub Jelinek <jakub@redhat.com>
2824
2825 * configure.ac: Compute and substitute omp_device_properties and
2826 omp_device_property_deps.
2827 * Makefile.in (generated_files): Add omp-device-properties.h.
2828 (omp-general.o): Depend on omp-device-properties.h.
2829 (omp_device_properties): New make variable.
2830 (omp-device-properties.h, s-omp-device-properties-h,
2831 install-omp-device-properties): New goals.
2832 (install): Depend on install-omp-device-properties for accelerators.
2833 * target.def (TARGET_OMP_DEVICE_KIND_ARCH_ISA): New target hook.
2834 * target.h (enum omp_device_kind_arch_isa): New enum.
2835 * doc/tm.texi.in: Add placeholder for TARGET_OMP_DEVICE_KIND_ARCH_ISA
2836 documentation.
2837 * omp-general.c: Include omp-device-properties.h.
2838 (omp_max_simt_vf): Expect OFFLOAD_TARGET_NAMES to be separated by
2839 colon instead of comma.
2840 (omp_offload_device_kind_arch_isa, omp_maybe_offloaded): New
2841 functions.
2842 (omp_context_selector_matches): Implement device set arch/isa
2843 selectors, improve device set kind selector handling.
2844 * config/i386/i386-options.h (ix86_omp_device_kind_arch_isa): Declare.
2845 * config/i386/i386.c (TARGET_SIMD_CLONE_ADJUST,
2846 TARGET_SIMD_CLONE_USABLE): Formatting fix.
2847 (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to
2848 ix86_omp_device_kind_arch_isa.
2849 * config/i386/i386-options.c (struct ix86_target_opts): Move type
2850 definition from ix86_target_string to file scope.
2851 (isa2_opts, isa_opts): Moved arrays from ix86_target_string function
2852 to file scope.
2853 (ix86_omp_device_kind_arch_isa): New function.
2854 (ix86_target_string): Moved struct ix86_target_opts, isa2_opts and
2855 isa_opts definitions to file scope.
2856 * config/i386/t-intelmic (omp-device-properties): New goal.
2857 * config/nvptx/t-nvptx (omp-device-properties): Likewise.
2858 * config/nvptx/nvptx.c (nvptx_omp_device_kind_arch_isa): New function.
2859 (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to
2860 nvptx_omp_device_kind_arch_isa.
2861 * configure: Regenerate.
2862 * doc/tm.texi: Regenerate.
2863
2864 PR middle-end/92231
2865 * tree.h (fndecl_built_in_p): Use fndecl_built_in_p instead of
2866 DECL_BUILT_IN in comment. Remove redundant ()s around return
2867 argument.
2868 * tree.c (free_lang_data_in_decl): Check if var is FUNCTION_DECL
2869 before calling fndecl_built_in_p.
2870 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Check if
2871 TREE_OPERAND (fn, 0) is a FUNCTION_DECL before calling
2872 fndecl_built_in_p on it.
2873
2874 2019-10-31 Andre Vieira <andre.simoesdiasvieira@arm.com>
2875
2876 * params.def (PARAM_VECT_EPILOGUES_NOMASK): Enable by default.
2877
2878 2019-10-31 Martin Liska <mliska@suse.cz>
2879
2880 * config/arm/arm.c (arm_get_pcs_model): Remove usage
2881 of cgraph_local_info and use local_info_node instead.
2882 * config/bfin/bfin.c (bfin_load_pic_reg): Likewise.
2883 (bfin_function_ok_for_sibcall): Likewise.
2884 * config/c6x/c6x.c (c6x_function_ok_for_sibcall): Likewise.
2885 (must_reload_pic_reg_p): Likewise.
2886
2887 2019-10-31 Jakub Jelinek <jakub@redhat.com>
2888
2889 PR c++/90947
2890 * tree.h (type_initializer_zero_p): Remove.
2891 * tree.c (type_initializer_zero_p): Remove.
2892
2893 2019-10-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
2894
2895 * doc/invoke.texi (-Wshadow, -Wshadow=global
2896 -Wshadow=local, -Wshadow=compatible-local): Update documentation.
2897
2898 2019-10-30 Tobias Burnus <tobias@codesourcery.com>
2899
2900 * gimplify.c (gimplify_scan_omp_clauses): Remove FE-generated
2901 GOMP_MAP_TO_PSET and GOMP_MAP_POINTER mapping for 'target update'
2902 and 'target exit data'.
2903
2904 2019-10-30 Martin Jambor <mjambor@suse.cz>
2905
2906 ipa/92278
2907 * cgraph.c (cgraph_edge::possibly_call_in_translation_unit_p): Fix
2908 availability comparison.
2909
2910 2019-10-30 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2911
2912 * config/msp430/msp430.c (msp430_expand_helper): Support expansion of
2913 calls to __mspabi_mpy* functions.
2914 * config/msp430/msp430.md (mulhisi3): New define_expand.
2915 (umulhisi3): New define_expand.
2916 (*mulhisi3_inline): Use old mulhisi3 define_insn.
2917 (*umulhisi3_inline): Use old umulhisi3 define_insn.
2918
2919 2019-10-30 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2920
2921 * config/msp430/msp430.c (msp430_check_index_not_high_mem): New.
2922 (msp430_check_plus_not_high_mem): New.
2923 (msp430_op_not_in_high_mem): Use new functions to check if the operand
2924 might be in low memory.
2925 Indicate that a 16-bit absolute address is in lower memory.
2926
2927 2019-10-30 Martin Jambor <mjambor@suse.cz>
2928
2929 * ipa-prop.c (ipa_compute_jump_functions_for_bb): Fix the call to
2930 ultimate_alias_target.
2931
2932 2019-10-30 Richard Biener <rguenther@suse.de>
2933
2934 PR tree-optimization/92275
2935 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_loops):
2936 Copy all loop-closed PHIs.
2937
2938 2019-10-30 Martin Liska <mliska@suse.cz>
2939
2940 * ipa-icf-gimple.c (func_checker::compare_ssa_name): Use
2941 const_tree as function argument.
2942 (func_checker::compare_decl): Likewise.
2943 (func_checker::operand_equal_p): Likewise.
2944 (func_checker::compare_variable_decl): Likewise.
2945 (func_checker::parse_labels): Likewise.
2946 * ipa-icf-gimple.h: Likewise.
2947
2948 2019-10-30 Martin Liska <mliska@suse.cz>
2949
2950 * ipa-icf-gimple.c (func_checker::compatible_types_p):
2951 Do not compare alias sets. It's handled by operand_equal_p.
2952
2953 2019-10-30 Martin Liska <mliska@suse.cz>
2954
2955 * ipa-icf-gimple.c (func_checker::func_checker): Do not
2956 initialize m_compare_polymorphic.
2957 (func_checker::compare_decl): Do not compare polymorphic types.
2958 * ipa-icf-gimple.h (m_compare_polymorphic): Remove.
2959 * ipa-icf.c (sem_function::equals_private): Do not call
2960 compare_polymorphic_p.
2961
2962 2019-10-30 Martin Liska <mliska@suse.cz>
2963
2964 * ipa-icf-gimple.c (func_checker::compare_ssa_name): Call
2965 compare_operand.
2966 (func_checker::compare_memory_operand): Remove.
2967 (func_checker::compare_cst_or_decl): Remove.
2968 (func_checker::operand_equal_valueize): Do not handle
2969 FIELD_DECL.
2970 (func_checker::compare_gimple_call): Call compare_operand.
2971 (func_checker::compare_gimple_assign): Likewise.
2972 * ipa-icf-gimple.h: Remove compare_cst_or_decl.
2973 * ipa-icf.c (sem_function::icf_handled_component_p): Remove.
2974 * ipa-icf.h (icf_handled_component_p): Remove.
2975
2976 2019-10-30 Martin Liska <mliska@suse.cz>
2977
2978 * ipa-icf-gimple.c (func_checker::hash_operand): New.
2979 (func_checker::compare_cst_or_decl): Remove handling
2980 of FIELD_DECL.
2981 (func_checker::compare_operand): Transform to ...
2982 (func_checker::operand_equal_p): ... this.
2983 * ipa-icf-gimple.h (class func_checker): Add
2984 operand_equal_p and hash_operand.
2985 * ipa-icf.c (sem_function::equals_private): Fix
2986 pushing and popping of cfun.
2987
2988 2019-10-30 Martin Liska <mliska@suse.cz>
2989
2990 * fold-const.c (operand_equal_p): Move to ...
2991 (operand_compare::operand_equal_p): ... here.
2992 (operand_compare::verify_hash_value): New.
2993 (add_expr): Move to ...
2994 (operand_compare::hash_operand): ... here.
2995 * fold-const.h (operand_equal_p): Move to the class.
2996 (class operand_compare): New.
2997 * tree.c (add_expr): Remove.
2998
2999 2019-10-30 Martin Liska <mliska@suse.cz>
3000
3001 * fold-const.c (operand_equal_p): Support OBJ_TYPE_REF.
3002 * tree.c (add_expr): Hash parts of OBJ_TYPE_REF.
3003
3004 2019-10-30 Martin Liska <mliska@suse.cz>
3005
3006 PR lto/91393
3007 PR lto/88220
3008 * cgraph.c (cgraph_node::get_create): Overwrite node->order
3009 from a first_clone in order to get proper LTO section
3010 in LTO stream.
3011 (cgraph_node::get_untransformed_body):
3012 Use lto_get_section_data where symtab_node::order
3013 must be provided.
3014 * cgraphclones.c (cgraph_node::find_replacement):
3015 Update also symbol order.
3016 * ipa-fnsummary.c (ipa_fn_summary_read):
3017 Use new function lto_get_summary_section_data.
3018 * ipa-hsa.c (ipa_hsa_read_summary): Likewise.
3019 * ipa-icf.c (sem_item_optimizer::read_summary):
3020 Likewise.
3021 * ipa-prop.c (ipa_prop_read_jump_functions):
3022 Likewise.
3023 (ipcp_read_transformation_summaries): Likewise.
3024 * ipa-sra.c (ipa_sra_read_summary): Likewise.
3025 * lto-cgraph.c (input_node): Add also order_base.
3026 (input_varpool_node): Likewise.
3027 (input_cgraph_1): Assign the order_base.
3028 (input_cgraph_opt_summary): Use new lto_get_summary_section_data.
3029 * lto-opts.c (lto_write_options): Pass new argument.
3030 * lto-section-in.c (lto_get_section_data): Add new argumente order.
3031 (lto_get_summary_section_data): New.
3032 (lto_get_raw_section_data): Add order argument.
3033 (lto_create_simple_input_block): Likewise.
3034 * lto-section-out.c (lto_destroy_simple_output_block):
3035 Likewise.
3036 * lto-streamer-in.c (lto_input_toplevel_asms):
3037 Use lto_get_summary_section_data.
3038 (lto_input_mode_table): Likewise.
3039 * lto-streamer-out.c (produce_asm): Pass symtab_node::order.
3040 (lto_output_toplevel_asms): Pass new argument.
3041 (copy_function_or_variable): Likewise.
3042 (produce_lto_section):Likewise.
3043 (produce_symtab): Likewise.
3044 (lto_write_mode_table): Likewise.
3045 (produce_asm_for_decls): Likewise.
3046 * lto-streamer.c (lto_get_section_name): Concat symbol name
3047 and symbol order.
3048 * lto-streamer.h (lto_get_section_data): Add order argument.
3049 (lto_get_summary_section_data): New.
3050 (lto_get_raw_section_data): Add order argument.
3051 (lto_get_section_name): Likewise.
3052 * varpool.c (varpool_node::get_constructor): Pass order argument.
3053
3054 2019-10-30 Jakub Jelinek <jakub@redhat.com>
3055
3056 PR tree-optimization/92262
3057 * tree-ssa-loop-ivopts.c (get_debug_computation_at): Don't unshare
3058 ubase or cbase here.
3059 (remove_unused_ivs): Unshare comp before using it.
3060
3061 2019-10-30 Jan Hubicka <hubicka@ucw.cz>
3062
3063 * ipa-prop.c (update_jump_functions_after_inlining):
3064 Watch for missing summaries.
3065
3066 2019-10-30 Richard Biener <rguenther@suse.de>
3067
3068 PR tree-optimization/65930
3069 * tree-vect-loop.c (vect_is_simple_reduction): For reduction
3070 chains also allow a leading and trailing conversion.
3071 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
3072 intermediate reduction chains.
3073 (vect_analyze_slp_instance): Likewise. Build a SLP
3074 node for a trailing conversion manually.
3075
3076 2019-10-30 Martin Liska <mliska@suse.cz>
3077
3078 * cgraph.c (cgraph_node::local_info): Transform to ...
3079 (cgraph_node::local_info_node): ... this.
3080 (cgraph_node::dump): Remove cgraph_local_info and
3081 put its fields directly into cgraph_node.
3082 (cgraph_node::get_availability): Likewise.
3083 (cgraph_node::make_local): Likewise.
3084 (cgraph_node::verify_node): Likewise.
3085 * cgraph.h (struct GTY): Likewise.
3086 * cgraphclones.c (set_new_clone_decl_and_node_flags): Likewise.
3087 (duplicate_thunk_for_node): Likewise.
3088 (cgraph_node::create_clone): Likewise.
3089 (cgraph_node::create_virtual_clone): Likewise.
3090 (cgraph_node::create_version_clone): Likewise.
3091 * cgraphunit.c (cgraph_node::reset): Likewise.
3092 (cgraph_node::finalize_function): Likewise.
3093 (cgraph_node::add_new_function): Likewise.
3094 (analyze_functions): Likewise.
3095 * combine.c (setup_incoming_promotions): Likewise.
3096 * config/i386/i386.c (ix86_function_regparm): Likewise.
3097 (ix86_function_sseregparm): Likewise.
3098 (init_cumulative_args): Likewise.
3099 * ipa-cp.c (determine_versionability): Likewise.
3100 (count_callers): Likewise.
3101 (set_single_call_flag): Likewise.
3102 (initialize_node_lattices): Likewise.
3103 (estimate_local_effects): Likewise.
3104 (create_specialized_node): Likewise.
3105 (identify_dead_nodes): Likewise.
3106 * ipa-fnsummary.c (compute_fn_summary): Likewise.
3107 (ipa_fn_summary_generate): Likewise.
3108 * ipa-hsa.c (check_warn_node_versionable): Likewise.
3109 (process_hsa_functions): Likewise.
3110 * ipa-icf.c (set_local): Likewise.
3111 * ipa-inline-analysis.c (initialize_inline_failed): Likewise.
3112 * ipa-inline.c (speculation_useful_p): Likewise.
3113 * ipa-profile.c (ipa_propagate_frequency): Likewise.
3114 (ipa_profile): Likewise.
3115 * ipa-split.c (split_function): Likewise.
3116 (execute_split_functions): Likewise.
3117 * ipa-sra.c (ipa_sra_preliminary_function_checks): Likewise.
3118 (ipa_sra_ipa_function_checks): Likewise.
3119 * ipa-visibility.c (function_and_variable_visibility): Likewise.
3120 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
3121 * lto-cgraph.c (lto_output_node): Likewise.
3122 (input_overwrite_node): Likewise.
3123 * multiple_target.c (expand_target_clones): Likewise.
3124 * omp-simd-clone.c (simd_clone_create): Likewise.
3125 * trans-mem.c (expand_call_tm): Likewise.
3126 (ipa_tm_mayenterirr_function): Likewise.
3127 (ipa_tm_diagnose_tm_safe): Likewise.
3128 (ipa_tm_diagnose_transaction): Likewise.
3129 (ipa_tm_create_version): Likewise.
3130 (ipa_tm_transform_calls_redirect): Likewise.
3131 (ipa_tm_execute): Likewise.
3132 * tree-inline.c (expand_call_inline): Likewise.
3133
3134 2019-10-29 Martin Liska <mliska@suse.cz>
3135
3136 * symbol-summary.h (function_summary): Pass memory location
3137 to underlaying hash_map (or vec).
3138 (V>::fast_function_summary): Likewise.
3139
3140 2019-10-29 Martin Liska <mliska@suse.cz>
3141
3142 * ggc.h (ggc_alloc_no_dtor): New function.
3143 * ipa-fnsummary.c (ipa_free_fn_summary): Call
3144 destructor and ggc_free.
3145 (ipa_free_size_summary): Call delete instead
3146 of release.
3147 * ipa-fnsummary.h: Use new function ggc_alloc_no_dtor.
3148 * ipa-prop.c (ipa_check_create_edge_args): Likewise.
3149 (ipa_free_all_edge_args): Call destructor and ggc_free.
3150 (ipa_free_all_node_params): Likewise.
3151 (ipcp_free_transformation_sum): Likewise.
3152 * ipa-prop.h (ipa_check_create_node_params):
3153 Call new ggc_alloc_no_dtor.
3154 * ipa-sra.c (ipa_sra_generate_summary): Likewise.
3155 (ipa_sra_analysis): Call destructor and ggc_free.
3156 Replace release with delete operator.
3157 * symbol-summary.h (release): Remove ..
3158 (V>::~fast_function_summary): and move logic here.
3159 Likewise for other classes.
3160
3161 2019-10-29 Richard Biener <rguenther@suse.de>
3162
3163 PR tree-optimization/92260
3164 * tree-vect-slp.c (vect_get_constant_vectors): Special-case
3165 lane-reducing ops.
3166
3167 2019-10-29 Andre Vieira <andre.simoesdiasvieira@arm.com>
3168
3169 PR tree-optimization/88915
3170 * tree-ssa-loop-niter.h (simplify_replace_tree): Change declaration.
3171 * tree-ssa-loop-niter.c (simplify_replace_tree): Add context parameter
3172 and make the valueize function pointer also take a void pointer.
3173 * tree-ssa-sccvn.c (vn_valueize_wrapper): New function to wrap
3174 around vn_valueize, to call it without a context.
3175 (process_bb): Use vn_valueize_wrapper instead of vn_valueize.
3176 * tree-vect-loop.c (_loop_vec_info): Initialize epilogue_vinfos.
3177 (~_loop_vec_info): Release epilogue_vinfos.
3178 (vect_analyze_loop_costing): Use knowledge of main VF to estimate
3179 number of iterations of epilogue.
3180 (vect_analyze_loop_2): Adapt to analyse main loop for all supported
3181 vector sizes when vect-epilogues-nomask=1. Also keep track of lowest
3182 versioning threshold needed for main loop.
3183 (vect_analyze_loop): Likewise.
3184 (find_in_mapping): New helper function.
3185 (update_epilogue_loop_vinfo): New function.
3186 (vect_transform_loop): When vectorizing epilogues re-use analysis done
3187 on main loop and call update_epilogue_loop_vinfo to update it.
3188 * tree-vect-loop-manip.c (vect_update_inits_of_drs): No longer insert
3189 stmts on loop preheader edge.
3190 (vect_do_peeling): Enable skip-vectors when doing loop versioning if
3191 we decided to vectorize epilogues. Update epilogues NITERS and
3192 construct ADVANCE to update epilogues data references where needed.
3193 * tree-vectorizer.h (_loop_vec_info): Add epilogue_vinfos.
3194 (vect_do_peeling, vect_update_inits_of_drs,
3195 determine_peel_for_niter, vect_analyze_loop): Add or update
3196 declarations.
3197 * tree-vectorizer.c (try_vectorize_loop_1): Make sure to use already
3198 created loop_vec_info's for epilogues when available. Otherwise analyse
3199 epilogue separately.
3200
3201 2019-10-29 Richard Biener <rguenther@suse.de>
3202
3203 * doc/tree-ssa.texi (Immediate Uses): Fix FOR_EACH_IMM_USE_STMT
3204 example.
3205
3206 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
3207
3208 * tree-vect-stmts.c (vectorizable_condition): Get the reduction
3209 index for the COND_EXPR from stmt_info rather than reduc_info.
3210
3211 2019-10-29 Richard Biener <rguenther@suse.de>
3212
3213 PR tree-optimization/65930
3214 * tree-vect-loop.c (check_reduction_path): Relax single-use
3215 check allowing out-of-loop uses.
3216 (vect_is_simple_reduction): SLP reduction chains cannot have
3217 intermediate stmts used outside of the loop.
3218 (vect_create_epilog_for_reduction): The adjustment might need
3219 to be converted.
3220 (vectorizable_reduction): Annotate live stmts of the reduction
3221 chain with STMT_VINFO_REDUC_DEF.
3222 * tree-vect-stms.c (process_use): Remove no longer true asserts.
3223
3224 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
3225
3226 * calls.c (pass_by_reference): Leave the target to decide whether
3227 POLY_INT_CST-sized arguments should be passed by value or reference,
3228 rather than forcing them to be passed by reference.
3229 (must_pass_in_stack_var_size): Likewise.
3230 * config/aarch64/aarch64.md (LAST_SAVED_REGNUM): Redefine from
3231 V31_REGNUM to P15_REGNUM.
3232 * config/aarch64/aarch64-protos.h (aarch64_init_cumulative_args):
3233 Take an extra "silent_p" parameter, defaulting to false.
3234 (aarch64_sve::svbool_type_p): Declare.
3235 (aarch64_sve::nvectors_if_data_type): Likewise.
3236 * config/aarch64/aarch64.h (NUM_PR_ARG_REGS): New macro.
3237 (aarch64_frame::reg_offset): Turn into poly_int64s.
3238 (aarch64_frame::save_regs_size): Likewise.
3239 (aarch64_frame::below_hard_fp_saved_regs_size): New field.
3240 (aarch64_frame::sve_callee_adjust): Likewise.
3241 (aarch64_frame::spare_reg_reg): Likewise.
3242 (ARM_PCS_SVE): New arm_pcs value.
3243 (CUMULATIVE_ARGS::aapcs_nprn): New field.
3244 (CUMULATIVE_ARGS::aapcs_nextnprn): Likewise.
3245 (CUMULATIVE_ARGS::silent_p): Likewise.
3246 (BITS_PER_SVE_PRED): New macro.
3247 * config/aarch64/aarch64.c (handle_aarch64_vector_pcs_attribute): New
3248 function. Reject aarch64_vector_pcs attributes on SVE functions.
3249 (aarch64_attribute_table): Use the above handler.
3250 (aarch64_sve_abi): New function.
3251 (aarch64_sve_argument_p): Likewise.
3252 (aarch64_returns_value_in_sve_regs_p): Likewise.
3253 (aarch64_takes_arguments_in_sve_regs_p): Likewise.
3254 (aarch64_fntype_abi): Check for SVE functions and return the SVE PCS
3255 descriptor for them.
3256 (aarch64_simd_decl_p): Delete.
3257 (aarch64_emit_cfi_for_reg_p): New function.
3258 (aarch64_reg_save_mode): Remove the fndecl argument and instead use
3259 crtl->abi to choose the mode for FP registers. Handle the SVE PCS.
3260 (aarch64_hard_regno_call_part_clobbered): Do not treat FP registers
3261 as partly clobbered for the SVE PCS.
3262 (aarch64_function_ok_for_sibcall): Check whether the two functions
3263 use the same ABI, rather than checking specifically for whether
3264 they're aarch64_vector_pcs functions.
3265 (aarch64_pass_by_reference): Raise an error for attempts to pass
3266 SVE arguments when SVE is disabled. Pass SVE arguments by reference
3267 if there are not enough free registers left, or if the argument is
3268 variadic.
3269 (aarch64_function_value): Handle SVE predicates, vectors and tuples.
3270 (aarch64_return_in_memory): Do not return SVE predicates, vectors and
3271 tuples in memory.
3272 (aarch64_layout_arg): Take a function_arg_info rather than
3273 individual properties. Handle SVE predicates, vectors and tuples.
3274 Raise an error if they are passed to unprototyped functions.
3275 (aarch64_function_arg): If the silent_p flag is set, suppress the
3276 usual error about using float registers without TARGET_FLOAT.
3277 (aarch64_init_cumulative_args): Take a silent_p parameter and store
3278 it in the cumulative_args structure. Initialize aapcs_nprn and
3279 aapcs_nextnprn. If the silent_p flag is set, suppress the usual
3280 error about using float registers without TARGET_FLOAT.
3281 If the silent_p flag is not set, also raise an error about
3282 using SVE functions when SVE is disabled.
3283 (aarch64_function_arg_advance): Update the call to aarch64_layout_arg,
3284 and call it for SVE functions too. Update aapcs_nprn similarly
3285 to the other register counts.
3286 (aarch64_layout_frame): If a big-endian function needs to save
3287 and restore Z8-Z15, search for a spare predicate that it can use.
3288 Store SVE predicates at the bottom of the register save area,
3289 followed by SVE vectors, then followed by the normal slots.
3290 Keep pointing the hard frame pointer at the base of the normal slots,
3291 above the SVE vectors. Update the various frame creation and
3292 tear-down strategies for the new layout, initializing the new
3293 sve_callee_adjust field. Add an additional layout for frames
3294 whose saved registers are all SVE registers.
3295 (aarch64_register_saved_on_entry): Cope with poly_int64 reg_offsets.
3296 (aarch64_return_address_signing_enabled): Likewise.
3297 (aarch64_push_regs, aarch64_pop_regs): Update calls to
3298 aarch64_reg_save_mode.
3299 (aarch64_adjust_sve_callee_save_base): New function.
3300 (aarch64_add_cfa_expression): Move earlier in file. Take the
3301 saved register as an rtx rather than a register number and use
3302 its mode for the MEM slot.
3303 (aarch64_save_callee_saves): Remove the mode argument and instead
3304 use aarch64_reg_save_mode to get the mode of each save slot.
3305 Add a hard_fp_valid_p parameter. Cope with poly_int64 register
3306 offsets. Allow GP offsets to be saved at a VL-based offset from
3307 the stack, handling this case using the frame pointer if available
3308 or a temporary register otherwise. Use ST1D to save Z8-Z15 for
3309 big-endian SVE functions; use normal moves for other SVE saves.
3310 Only mark the save as frame-related if aarch64_emit_cfi_for_reg_p
3311 returns true. Add explicit CFA notes when not storing via the
3312 stack pointer. Do not try to pair SVE saves.
3313 (aarch64_restore_callee_saves): Cope with poly_int64 register
3314 offsets. Use LD1D to restore Z8-Z15 for big-endian SVE functions;
3315 use normal moves for other SVE restores. Only add CFA restore notes
3316 if aarch64_emit_cfi_for_reg_p returns true. Do not try to pair
3317 SVE restores.
3318 (aarch64_get_separate_components): Always keep the first SVE save
3319 in the prologue if we need to use it as a stack probe. Don't allow
3320 Z8-Z15 saves and loads to be shrink-wrapped for big-endian targets.
3321 Likewise the spare predicate register that they need. Update the
3322 offset calculation to account for the SVE save area. Use the
3323 appropriate range check for SVE LDR and STR instructions.
3324 (aarch64_components_for_bb): Cope with poly_int64 reg_offsets.
3325 (aarch64_process_components): Likewise. Update the offset
3326 calculation to account for the SVE save area. Only mark the
3327 save as frame-related if aarch64_emit_cfi_for_reg_p returns true.
3328 Do not try to pair SVE saves.
3329 (aarch64_allocate_and_probe_stack_space): Cope with poly_int64
3330 reg_offsets. When handling the final allocation, expect the
3331 first SVE register save to be part of the initial allocation
3332 and for it to act as a probe at SP. Account for the SVE callee
3333 save area in the dump information.
3334 (aarch64_expand_prologue): Update the frame diagram. Fold the
3335 SVE callee allocation into the initial allocation if stack clash
3336 protection is enabled. Use new variables to track the offset
3337 of the frame chain (and hard frame pointer) from the current
3338 stack pointer, and likewise the offset of the bottom of the
3339 register save area. Update calls to aarch64_save_callee_saves
3340 and aarch64_add_cfa_expression. Apply sve_callee_adjust before
3341 saving the FP&SIMD registers. Save the predicate registers.
3342 (aarch64_expand_epilogue): Take below_hard_fp_saved_regs_size
3343 into account when setting the stack pointer from the frame pointer,
3344 and when deciding whether we can inherit the initial adjustment
3345 amount from the prologue. Restore the predicate registers after
3346 the vector registers, then apply sve_callee_adjust, then restore
3347 the general registers.
3348 (aarch64_secondary_reload): Don't use secondary SVE reloads
3349 for VNx16BImode.
3350 (aapcs_vfp_sub_candidate): Assert that the type is not an SVE type.
3351 (aarch64_short_vector_p): Return false for SVE types.
3352 (aarch64_vfp_is_call_or_return_candidate): Initialize *is_ha
3353 at the start of the function. Return false for SVE types.
3354 (aarch64_asm_output_variant_pcs): Output .variant_pcs for SVE
3355 functions too.
3356 (TARGET_STRICT_ARGUMENT_NAMING): Redefine to request strict naming.
3357 * config/aarch64/aarch64-sve.md (*aarch64_sve_mov<mode>_le): Extend
3358 to big-endian targets for bytewise moves.
3359 (*aarch64_sve_mov<mode>_be): Exclude the bytewise case.
3360
3361 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
3362 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
3363 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3364
3365 * config.gcc (aarch64*-*-*): Add arm_sve.h to extra_headers.
3366 Add aarch64-sve-builtins.o, aarch64-sve-builtins-shapes.o and
3367 aarch64-sve-builtins-base.o to extra_objs. Add
3368 aarch64-sve-builtins.h and aarch64-sve-builtins.cc to target_gtfiles.
3369 * config/aarch64/t-aarch64 (aarch64-sve-builtins.o): New rule.
3370 (aarch64-sve-builtins-shapes.o): Likewise.
3371 (aarch64-sve-builtins-base.o): New rules.
3372 * config/aarch64/aarch64-c.c (aarch64_pragma_aarch64): New function.
3373 (aarch64_resolve_overloaded_builtin): Likewise.
3374 (aarch64_check_builtin_call): Likewise.
3375 (aarch64_register_pragmas): Install aarch64_resolve_overloaded_builtin
3376 and aarch64_check_builtin_call in targetm. Register the GCC aarch64
3377 pragma.
3378 * config/aarch64/aarch64-protos.h (AARCH64_FOR_SVPRFOP): New macro.
3379 (aarch64_svprfop): New enum.
3380 (AARCH64_BUILTIN_SVE): New aarch64_builtin_class enum value.
3381 (aarch64_sve_int_mode, aarch64_sve_data_mode): Declare.
3382 (aarch64_fold_sve_cnt_pat, aarch64_output_sve_prefetch): Likewise.
3383 (aarch64_output_sve_cnt_pat_immediate): Likewise.
3384 (aarch64_output_sve_ptrues, aarch64_sve_ptrue_svpattern_p): Likewise.
3385 (aarch64_sve_sqadd_sqsub_immediate_p, aarch64_sve_ldff1_operand_p)
3386 (aarch64_sve_ldnf1_operand_p, aarch64_sve_prefetch_operand_p)
3387 (aarch64_ptrue_all_mode, aarch64_convert_sve_data_to_pred): Likewise.
3388 (aarch64_expand_sve_dupq, aarch64_replace_reg_mode): Likewise.
3389 (aarch64_sve::init_builtins, aarch64_sve::handle_arm_sve_h): Likewise.
3390 (aarch64_sve::builtin_decl, aarch64_sve::builtin_type_p): Likewise.
3391 (aarch64_sve::mangle_builtin_type): Likewise.
3392 (aarch64_sve::resolve_overloaded_builtin): Likewise.
3393 (aarch64_sve::check_builtin_call, aarch64_sve::gimple_fold_builtin)
3394 (aarch64_sve::expand_builtin): Likewise.
3395 * config/aarch64/aarch64.c (aarch64_sve_data_mode): Make public.
3396 (aarch64_sve_int_mode): Likewise.
3397 (aarch64_ptrue_all_mode): New function.
3398 (aarch64_convert_sve_data_to_pred): Make public.
3399 (svprfop_token): New function.
3400 (aarch64_output_sve_prefetch): Likewise.
3401 (aarch64_fold_sve_cnt_pat): Likewise.
3402 (aarch64_output_sve_cnt_pat_immediate): Likewise.
3403 (aarch64_sve_move_pred_via_while): Use gen_while with UNSPEC_WHILE_LO
3404 instead of gen_while_ult.
3405 (aarch64_replace_reg_mode): Make public.
3406 (aarch64_init_builtins): Call aarch64_sve::init_builtins.
3407 (aarch64_fold_builtin): Handle AARCH64_BUILTIN_SVE.
3408 (aarch64_gimple_fold_builtin, aarch64_expand_builtin): Likewise.
3409 (aarch64_builtin_decl, aarch64_builtin_reciprocal): Likewise.
3410 (aarch64_mangle_type): Call aarch64_sve::mangle_type.
3411 (aarch64_sve_sqadd_sqsub_immediate_p): New function.
3412 (aarch64_sve_ptrue_svpattern_p): Likewise.
3413 (aarch64_sve_pred_valid_immediate): Check
3414 aarch64_sve_ptrue_svpattern_p.
3415 (aarch64_sve_ldff1_operand_p, aarch64_sve_ldnf1_operand_p)
3416 (aarch64_sve_prefetch_operand_p, aarch64_output_sve_ptrues): New
3417 functions.
3418 * config/aarch64/aarch64.md (UNSPEC_LDNT1_SVE, UNSPEC_STNT1_SVE)
3419 (UNSPEC_LDFF1_GATHER, UNSPEC_PTRUE, UNSPEC_WHILE_LE, UNSPEC_WHILE_LS)
3420 (UNSPEC_WHILE_LT, UNSPEC_CLASTA, UNSPEC_UPDATE_FFR)
3421 (UNSPEC_UPDATE_FFRT, UNSPEC_RDFFR, UNSPEC_WRFFR)
3422 (UNSPEC_SVE_LANE_SELECT, UNSPEC_SVE_CNT_PAT, UNSPEC_SVE_PREFETCH)
3423 (UNSPEC_SVE_PREFETCH_GATHER, UNSPEC_SVE_COMPACT, UNSPEC_SVE_SPLICE):
3424 New unspecs.
3425 * config/aarch64/iterators.md (SI_ONLY, DI_ONLY, VNx8HI_ONLY)
3426 (VNx2DI_ONLY, SVE_PARTIAL, VNx8_NARROW, VNx8_WIDE, VNx4_NARROW)
3427 (VNx4_WIDE, VNx2_NARROW, VNx2_WIDE, PRED_HSD): New mode iterators.
3428 (UNSPEC_ADR, UNSPEC_BRKA, UNSPEC_BRKB, UNSPEC_BRKN, UNSPEC_BRKPA)
3429 (UNSPEC_BRKPB, UNSPEC_PFIRST, UNSPEC_PNEXT, UNSPEC_CNTP, UNSPEC_SADDV)
3430 (UNSPEC_UADDV, UNSPEC_FMLA, UNSPEC_FMLS, UNSPEC_FEXPA, UNSPEC_FTMAD)
3431 (UNSPEC_FTSMUL, UNSPEC_FTSSEL, UNSPEC_COND_CMPEQ_WIDE): New unspecs.
3432 (UNSPEC_COND_CMPGE_WIDE, UNSPEC_COND_CMPGT_WIDE): Likewise.
3433 (UNSPEC_COND_CMPHI_WIDE, UNSPEC_COND_CMPHS_WIDE): Likewise.
3434 (UNSPEC_COND_CMPLE_WIDE, UNSPEC_COND_CMPLO_WIDE): Likewise.
3435 (UNSPEC_COND_CMPLS_WIDE, UNSPEC_COND_CMPLT_WIDE): Likewise.
3436 (UNSPEC_COND_CMPNE_WIDE, UNSPEC_COND_FCADD90, UNSPEC_COND_FCADD270)
3437 (UNSPEC_COND_FCMLA, UNSPEC_COND_FCMLA90, UNSPEC_COND_FCMLA180)
3438 (UNSPEC_COND_FCMLA270, UNSPEC_COND_FMAX, UNSPEC_COND_FMIN): Likewise.
3439 (UNSPEC_COND_FMULX, UNSPEC_COND_FRECPX, UNSPEC_COND_FSCALE): Likewise.
3440 (UNSPEC_LASTA, UNSPEC_ASHIFT_WIDE, UNSPEC_ASHIFTRT_WIDE): Likewise.
3441 (UNSPEC_LSHIFTRT_WIDE, UNSPEC_LDFF1, UNSPEC_LDNF1): Likewise.
3442 (Vesize): Handle partial vector modes.
3443 (self_mask, narrower_mask, sve_lane_con, sve_lane_pair_con): New
3444 mode attributes.
3445 (UBINQOPS, ANY_PLUS, SAT_PLUS, ANY_MINUS, SAT_MINUS): New code
3446 iterators.
3447 (s, paired_extend, inc_dec): New code attributes.
3448 (SVE_INT_ADDV, CLAST, LAST): New int iterators.
3449 (SVE_INT_UNARY): Add UNSPEC_RBIT.
3450 (SVE_FP_UNARY, SVE_FP_UNARY_INT): New int iterators.
3451 (SVE_FP_BINARY, SVE_FP_BINARY_INT): Likewise.
3452 (SVE_COND_FP_UNARY): Add UNSPEC_COND_FRECPX.
3453 (SVE_COND_FP_BINARY): Add UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and
3454 UNSPEC_COND_FMULX.
3455 (SVE_COND_FP_BINARY_INT, SVE_COND_FP_ADD): New int iterators.
3456 (SVE_COND_FP_SUB, SVE_COND_FP_MUL): Likewise.
3457 (SVE_COND_FP_BINARY_I1): Add UNSPEC_COND_FMAX and UNSPEC_COND_FMIN.
3458 (SVE_COND_FP_BINARY_REG): Add UNSPEC_COND_FMULX.
3459 (SVE_COND_FCADD, SVE_COND_FP_MAXMIN, SVE_COND_FCMLA)
3460 (SVE_COND_INT_CMP_WIDE, SVE_FP_TERNARY_LANE, SVE_CFP_TERNARY_LANE)
3461 (SVE_WHILE, SVE_SHIFT_WIDE, SVE_LDFF1_LDNF1, SVE_BRK_UNARY)
3462 (SVE_BRK_BINARY, SVE_PITER): New int iterators.
3463 (optab): Handle UNSPEC_SADDV, UNSPEC_UADDV, UNSPEC_FRECPE,
3464 UNSPEC_FRECPS, UNSPEC_RSQRTE, UNSPEC_RSQRTS, UNSPEC_RBIT,
3465 UNSPEC_SMUL_HIGHPART, UNSPEC_UMUL_HIGHPART, UNSPEC_FMLA, UNSPEC_FMLS,
3466 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270,
3467 UNSPEC_FEXPA, UNSPEC_FTSMUL, UNSPEC_FTSSEL, UNSPEC_COND_FCADD90,
3468 UNSPEC_COND_FCADD270, UNSPEC_COND_FCMLA, UNSPEC_COND_FCMLA90,
3469 UNSPEC_COND_FCMLA180, UNSPEC_COND_FCMLA270, UNSPEC_COND_FMAX,
3470 UNSPEC_COND_FMIN, UNSPEC_COND_FMULX, UNSPEC_COND_FRECPX and
3471 UNSPEC_COND_FSCALE.
3472 (maxmin_uns): Handle UNSPEC_COND_FMAX and UNSPEC_COND_FMIN.
3473 (binqops_op, binqops_op_rev, last_op): New int attributes.
3474 (su): Handle UNSPEC_SADDV and UNSPEC_UADDV.
3475 (fn, ab): New int attributes.
3476 (cmp_op): Handle UNSPEC_COND_CMP*_WIDE and UNSPEC_WHILE_*.
3477 (while_optab_cmp, brk_op, sve_pred_op): New int attributes.
3478 (sve_int_op): Handle UNSPEC_SMUL_HIGHPART, UNSPEC_UMUL_HIGHPART,
3479 UNSPEC_ASHIFT_WIDE, UNSPEC_ASHIFTRT_WIDE, UNSPEC_LSHIFTRT_WIDE and
3480 UNSPEC_RBIT.
3481 (sve_fp_op): Handle UNSPEC_FRECPE, UNSPEC_FRECPS, UNSPEC_RSQRTE,
3482 UNSPEC_RSQRTS, UNSPEC_FMLA, UNSPEC_FMLS, UNSPEC_FEXPA, UNSPEC_FTSMUL,
3483 UNSPEC_FTSSEL, UNSPEC_COND_FMAX, UNSPEC_COND_FMIN, UNSPEC_COND_FMULX,
3484 UNSPEC_COND_FRECPX and UNSPEC_COND_FSCALE.
3485 (sve_fp_op_rev): Handle UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and
3486 UNSPEC_COND_FMULX.
3487 (rot): Handle UNSPEC_COND_FCADD* and UNSPEC_COND_FCMLA*.
3488 (brk_reg_con, brk_reg_opno): New int attributes.
3489 (sve_pred_fp_rhs1_operand, sve_pred_fp_rhs2_operand): Handle
3490 UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and UNSPEC_COND_FMULX.
3491 (sve_pred_fp_rhs2_immediate): Handle UNSPEC_COND_FMAX and
3492 UNSPEC_COND_FMIN.
3493 (max_elem_bits): New int attribute.
3494 (min_elem_bits): Handle UNSPEC_RBIT.
3495 * config/aarch64/predicates.md (subreg_lowpart_operator): Handle
3496 TRUNCATE as well as SUBREG.
3497 (ascending_int_parallel, aarch64_simd_reg_or_minus_one)
3498 (aarch64_sve_ldff1_operand, aarch64_sve_ldnf1_operand)
3499 (aarch64_sve_prefetch_operand, aarch64_sve_ptrue_svpattern_immediate)
3500 (aarch64_sve_qadd_immediate, aarch64_sve_qsub_immediate)
3501 (aarch64_sve_gather_immediate_b, aarch64_sve_gather_immediate_h)
3502 (aarch64_sve_gather_immediate_w, aarch64_sve_gather_immediate_d)
3503 (aarch64_sve_sqadd_operand, aarch64_sve_gather_offset_b)
3504 (aarch64_sve_gather_offset_h, aarch64_sve_gather_offset_w)
3505 (aarch64_sve_gather_offset_d, aarch64_gather_scale_operand_b)
3506 (aarch64_gather_scale_operand_h): New predicates.
3507 * config/aarch64/constraints.md (UPb, UPd, UPh, UPw, Utf, Utn, vgb)
3508 (vgd, vgh, vgw, vsQ, vsS): New constraints.
3509 * config/aarch64/aarch64-sve.md: Add a note on the FFR handling.
3510 (*aarch64_sve_reinterpret<mode>): Allow any source register
3511 instead of requiring an exact match.
3512 (*aarch64_sve_ptruevnx16bi_cc, *aarch64_sve_ptrue<mode>_cc)
3513 (*aarch64_sve_ptruevnx16bi_ptest, *aarch64_sve_ptrue<mode>_ptest)
3514 (aarch64_wrffr, aarch64_update_ffr_for_load, aarch64_copy_ffr_to_ffrt)
3515 (aarch64_rdffr, aarch64_rdffr_z, *aarch64_rdffr_z_ptest)
3516 (*aarch64_rdffr_ptest, *aarch64_rdffr_z_cc, *aarch64_rdffr_cc)
3517 (aarch64_update_ffrt): New patterns.
3518 (@aarch64_load_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>)
3519 (@aarch64_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
3520 (@aarch64_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
3521 (@aarch64_ld<fn>f1<mode>): New patterns.
3522 (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>)
3523 (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
3524 (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
3525 (@aarch64_ldnt1<mode>): New patterns.
3526 (gather_load<mode>): Use aarch64_sve_gather_offset_<Vesize> for
3527 the scalar part of the address.
3528 (mask_gather_load<SVE_S:mode>): Use aarch64_sve_gather_offset_w for the
3529 scalar part of the addresse and add an alternative for handling
3530 nonzero offsets.
3531 (mask_gather_load<SVE_D:mode>): Likewise aarch64_sve_gather_offset_d.
3532 (*mask_gather_load<mode>_sxtw, *mask_gather_load<mode>_uxtw)
3533 (@aarch64_gather_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
3534 (@aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
3535 (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw)
3536 (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw)
3537 (@aarch64_ldff1_gather<SVE_S:mode>, @aarch64_ldff1_gather<SVE_D:mode>)
3538 (*aarch64_ldff1_gather<mode>_sxtw, *aarch64_ldff1_gather<mode>_uxtw)
3539 (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
3540 (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
3541 (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw)
3542 (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw)
3543 (@aarch64_sve_prefetch<mode>): New patterns.
3544 (@aarch64_sve_gather_prefetch<SVE_I:mode><VNx4SI_ONLY:mode>)
3545 (@aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>)
3546 (*aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>_sxtw)
3547 (*aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>_uxtw)
3548 (@aarch64_store_trunc<VNx8_NARROW:mode><VNx8_WIDE:mode>)
3549 (@aarch64_store_trunc<VNx4_NARROW:mode><VNx4_WIDE:mode>)
3550 (@aarch64_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>)
3551 (@aarch64_stnt1<mode>): New patterns.
3552 (scatter_store<mode>): Use aarch64_sve_gather_offset_<Vesize> for
3553 the scalar part of the address.
3554 (mask_scatter_store<SVE_S:mode>): Use aarch64_sve_gather_offset_w for
3555 the scalar part of the addresse and add an alternative for handling
3556 nonzero offsets.
3557 (mask_scatter_store<SVE_D:mode>): Likewise aarch64_sve_gather_offset_d.
3558 (*mask_scatter_store<mode>_sxtw, *mask_scatter_store<mode>_uxtw)
3559 (@aarch64_scatter_store_trunc<VNx4_NARROW:mode><VNx4_WIDE:mode>)
3560 (@aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>)
3561 (*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_sxtw)
3562 (*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_uxtw):
3563 New patterns.
3564 (vec_duplicate<mode>): Use QI as the mode of the input operand.
3565 (extract_last_<mode>): Generalize to...
3566 (@extract_<LAST:last_op>_<mode>): ...this.
3567 (*<SVE_INT_UNARY:optab><mode>2): Rename to...
3568 (@aarch64_pred_<SVE_INT_UNARY:optab><mode>): ...this.
3569 (@cond_<SVE_INT_UNARY:optab><mode>): New expander.
3570 (@aarch64_pred_sxt<SVE_HSDI:mode><SVE_PARTIAL:mode>): New pattern.
3571 (@aarch64_cond_sxt<SVE_HSDI:mode><SVE_PARTIAL:mode>): Likewise.
3572 (@aarch64_pred_cnot<mode>, @cond_cnot<mode>): New expanders.
3573 (@aarch64_sve_<SVE_FP_UNARY_INT:optab><mode>): New pattern.
3574 (@aarch64_sve_<SVE_FP_UNARY:optab><mode>): Likewise.
3575 (*<SVE_COND_FP_UNARY:optab><mode>2): Rename to...
3576 (@aarch64_pred_<SVE_COND_FP_UNARY:optab><mode>): ...this.
3577 (@cond_<SVE_COND_FP_UNARY:optab><mode>): New expander.
3578 (*<SVE_INT_BINARY_IMM:optab><mode>3): Rename to...
3579 (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>): ...this.
3580 (@aarch64_adr<mode>, *aarch64_adr_sxtw): New patterns.
3581 (*aarch64_adr_uxtw_unspec): Likewise.
3582 (*aarch64_adr_uxtw): Rename to...
3583 (*aarch64_adr_uxtw_and): ...this.
3584 (@aarch64_adr<mode>_shift): New expander.
3585 (*aarch64_adr_shift_sxtw): New pattern.
3586 (aarch64_<su>abd<mode>_3): Rename to...
3587 (@aarch64_pred_<su>abd<mode>): ...this.
3588 (<su>abd<mode>_3): Update accordingly.
3589 (@aarch64_cond_<su>abd<mode>): New expander.
3590 (@aarch64_<SBINQOPS:su_optab><optab><mode>): New pattern.
3591 (@aarch64_<UBINQOPS:su_optab><optab><mode>): Likewise.
3592 (*<su>mul<mode>3_highpart): Rename to...
3593 (@aarch64_pred_<optab><mode>): ...this.
3594 (@cond_<MUL_HIGHPART:optab><mode>): New expander.
3595 (*cond_<MUL_HIGHPART:optab><mode>_2): New pattern.
3596 (*cond_<MUL_HIGHPART:optab><mode>_z): Likewise.
3597 (*<SVE_INT_BINARY_SD:optab><mode>3): Rename to...
3598 (@aarch64_pred_<SVE_INT_BINARY_SD:optab><mode>): ...this.
3599 (cond_<SVE_INT_BINARY_SD:optab><mode>): Add a "@" marker.
3600 (@aarch64_bic<mode>, @cond_bic<mode>): New expanders.
3601 (*v<ASHIFT:optab><mode>3): Rename to...
3602 (@aarch64_pred_<ASHIFT:optab><mode>): ...this.
3603 (@aarch64_sve_<SVE_SHIFT_WIDE:sve_int_op><mode>): New pattern.
3604 (@cond_<SVE_SHIFT_WIDE:sve_int_op><mode>): New expander.
3605 (*cond_<SVE_SHIFT_WIDE:sve_int_op><mode>_m): New pattern.
3606 (*cond_<SVE_SHIFT_WIDE:sve_int_op><mode>_z): Likewise.
3607 (@cond_asrd<mode>): New expander.
3608 (*cond_asrd<mode>_2, *cond_asrd<mode>_z): New patterns.
3609 (sdiv_pow2<mode>3): Expand to *cond_asrd<mode>_2.
3610 (*sdiv_pow2<mode>3): Delete.
3611 (@cond_<SVE_COND_FP_BINARY_INT:optab><mode>): New expander.
3612 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2): New pattern.
3613 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any): Likewise.
3614 (@aarch64_sve_<SVE_FP_BINARY:optab><mode>): New pattern.
3615 (@aarch64_sve_<SVE_FP_BINARY_INT:optab><mode>): Likewise.
3616 (*<SVE_COND_FP_BINARY_REG:optab><mode>3): Rename to...
3617 (@aarch64_pred_<SVE_COND_FP_BINARY_REG:optab><mode>): ...this.
3618 (@aarch64_pred_<SVE_COND_FP_BINARY_INT:optab><mode>): New pattern.
3619 (cond_<SVE_COND_FP_BINARY:optab><mode>): Add a "@" marker.
3620 (*add<SVE_F:mode>3): Rename to...
3621 (@aarch64_pred_add<SVE_F:mode>): ...this and add alternatives
3622 for SVE_STRICT_GP.
3623 (@aarch64_pred_<SVE_COND_FCADD:optab><mode>): New pattern.
3624 (@cond_<SVE_COND_FCADD:optab><mode>): New expander.
3625 (*cond_<SVE_COND_FCADD:optab><mode>_2): New pattern.
3626 (*cond_<SVE_COND_FCADD:optab><mode>_any): Likewise.
3627 (*sub<SVE_F:mode>3): Rename to...
3628 (@aarch64_pred_sub<SVE_F:mode>): ...this and add alternatives
3629 for SVE_STRICT_GP.
3630 (@aarch64_pred_abd<SVE_F:mode>): New expander.
3631 (*fabd<SVE_F:mode>3): Rename to...
3632 (*aarch64_pred_abd<SVE_F:mode>): ...this.
3633 (@aarch64_cond_abd<SVE_F:mode>): New expander.
3634 (*mul<SVE_F:mode>3): Rename to...
3635 (@aarch64_pred_<SVE_F:optab><mode>): ...this and add alternatives
3636 for SVE_STRICT_GP.
3637 (@aarch64_mul_lane_<SVE_F:mode>): New pattern.
3638 (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><mode>3): Rename and generalize
3639 to...
3640 (@aarch64_pred_<SVE_COND_FP_MAXMIN:optab><mode>): ...this.
3641 (*<LOGICAL:optab><PRED_ALL:mode>3_ptest): New pattern.
3642 (*<nlogical><PRED_ALL:mode>3): Rename to...
3643 (aarch64_pred_<nlogical><PRED_ALL:mode>_z): ...this.
3644 (*<nlogical><PRED_ALL:mode>3_cc): New pattern.
3645 (*<nlogical><PRED_ALL:mode>3_ptest): Likewise.
3646 (*<logical_nn><PRED_ALL:mode>3): Rename to...
3647 (aarch64_pred_<logical_nn><mode>_z): ...this.
3648 (*<logical_nn><PRED_ALL:mode>3_cc): New pattern.
3649 (*<logical_nn><PRED_ALL:mode>3_ptest): Likewise.
3650 (*fma<SVE_I:mode>4): Rename to...
3651 (@aarch64_pred_fma<SVE_I:mode>): ...this.
3652 (*fnma<SVE_I:mode>4): Rename to...
3653 (@aarch64_pred_fnma<SVE_I:mode>): ...this.
3654 (@aarch64_<sur>dot_prod_lane<vsi2qi>): New pattern.
3655 (*<SVE_FP_TERNARY:optab><mode>4): Rename to...
3656 (@aarch64_pred_<SVE_FP_TERNARY:optab><mode>): ...this.
3657 (cond_<SVE_FP_TERNARY:optab><mode>): Add a "@" marker.
3658 (@aarch64_<SVE_FP_TERNARY_LANE:optab>_lane_<mode>): New pattern.
3659 (@aarch64_pred_<SVE_COND_FCMLA:optab><mode>): Likewise.
3660 (@cond_<SVE_COND_FCMLA:optab><mode>): New expander.
3661 (*cond_<SVE_COND_FCMLA:optab><mode>_4): New pattern.
3662 (*cond_<SVE_COND_FCMLA:optab><mode>_any): Likewise.
3663 (@aarch64_<FCMLA:optab>_lane_<mode>): Likewise.
3664 (@aarch64_sve_tmad<mode>): Likewise.
3665 (vcond_mask_<SVE_ALL:mode><vpred>): Add a "@" marker.
3666 (*aarch64_sel_dup<mode>): Rename to...
3667 (@aarch64_sel_dup<mode>): ...this.
3668 (@aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide): New pattern.
3669 (*aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide_cc): Likewise.
3670 (*aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide_ptest): Likewise.
3671 (@while_ult<GPI:mode><PRED_ALL:mode>): Generalize to...
3672 (@while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>): ...this.
3673 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): Generalize to.
3674 (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_cc): ...this.
3675 (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_ptest): New pattern.
3676 (*fcm<cmp_op><mode>): Rename to...
3677 (@aarch64_pred_fcm<cmp_op><mode>): ...this. Make operand order
3678 match @aarch64_pred_cmp<cmp_op><SVE_I:mode>.
3679 (*fcmuo<mode>): Rename to...
3680 (@aarch64_pred_fcmuo<mode>): ...this. Make operand order
3681 match @aarch64_pred_cmp<cmp_op><SVE_I:mode>.
3682 (@aarch64_pred_fac<cmp_op><mode>): New expander.
3683 (@vcond_mask_<PRED_ALL:mode><mode>): New pattern.
3684 (fold_extract_last_<mode>): Generalize to...
3685 (@fold_extract_<last_op>_<mode>): ...this.
3686 (@aarch64_fold_extract_vector_<last_op>_<mode>): New pattern.
3687 (*reduc_plus_scal_<SVE_I:mode>): Replace with...
3688 (@aarch64_pred_reduc_<optab>_<mode>): ...this pattern, making the
3689 DImode result explicit.
3690 (reduc_plus_scal_<mode>): Update accordingly.
3691 (*reduc_<optab>_scal_<SVE_I:mode>): Rename to...
3692 (@aarch64_pred_reduc_<optab>_<SVE_I:mode>): ...this.
3693 (*reduc_<optab>_scal_<SVE_F:mode>): Rename to...
3694 (@aarch64_pred_reduc_<optab>_<SVE_F:mode>): ...this.
3695 (*aarch64_sve_tbl<mode>): Rename to...
3696 (@aarch64_sve_tbl<mode>): ...this.
3697 (@aarch64_sve_compact<mode>): New pattern.
3698 (*aarch64_sve_dup_lane<mode>): Rename to...
3699 (@aarch64_sve_dup_lane<mode>): ...this.
3700 (@aarch64_sve_dupq_lane<mode>): New pattern.
3701 (@aarch64_sve_splice<mode>): Likewise.
3702 (aarch64_sve_<perm_insn><mode>): Rename to...
3703 (@aarch64_sve_<perm_insn><mode>): ...this.
3704 (*aarch64_sve_ext<mode>): Rename to...
3705 (@aarch64_sve_ext<mode>): ...this.
3706 (aarch64_sve_<su>unpk<perm_hilo>_<SVE_BHSI:mode>): Add a "@" marker.
3707 (*aarch64_sve_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): Rename
3708 to...
3709 (@aarch64_sve_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): ...this.
3710 (*aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
3711 Rename to...
3712 (@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
3713 ...this.
3714 (@cond_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): New expander.
3715 (@cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): Likewise.
3716 (*cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): New pattern.
3717 (*aarch64_sve_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): Rename
3718 to...
3719 (@aarch64_sve_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): ...this.
3720 (aarch64_sve_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): Add
3721 a "@" marker.
3722 (@cond_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): New expander.
3723 (@cond_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): Likewise.
3724 (*cond_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): New
3725 pattern.
3726 (*aarch64_sve_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): Rename to...
3727 (@aarch64_sve_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): ...this.
3728 (@cond_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): New expander.
3729 (*cond_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): New pattern.
3730 (aarch64_sve_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): Add a
3731 "@" marker.
3732 (@cond_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): New expander.
3733 (*cond_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): New pattern.
3734 (aarch64_sve_punpk<perm_hilo>_<mode>): Add a "@" marker.
3735 (@aarch64_brk<SVE_BRK_UNARY:brk_op>): New pattern.
3736 (*aarch64_brk<SVE_BRK_UNARY:brk_op>_cc): Likewise.
3737 (*aarch64_brk<SVE_BRK_UNARY:brk_op>_ptest): Likewise.
3738 (@aarch64_brk<SVE_BRK_BINARY:brk_op>): Likewise.
3739 (*aarch64_brk<SVE_BRK_BINARY:brk_op>_cc): Likewise.
3740 (*aarch64_brk<SVE_BRK_BINARY:brk_op>_ptest): Likewise.
3741 (@aarch64_sve_<SVE_PITER:sve_pred_op><mode>): Likewise.
3742 (*aarch64_sve_<SVE_PITER:sve_pred_op><mode>_cc): Likewise.
3743 (*aarch64_sve_<SVE_PITER:sve_pred_op><mode>_ptest): Likewise.
3744 (aarch64_sve_cnt_pat): Likewise.
3745 (@aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode>_pat): Likewise.
3746 (*aarch64_sve_incsi_pat): Likewise.
3747 (@aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode>_pat): Likewise.
3748 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_pat): Likewise.
3749 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_pat): Likewise.
3750 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_pat): New expander.
3751 (*aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_pat): New pattern.
3752 (@aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode>_pat): Likewise.
3753 (*aarch64_sve_decsi_pat): Likewise.
3754 (@aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode>_pat): Likewise.
3755 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_pat): Likewise.
3756 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_pat): Likewise.
3757 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_pat): New expander.
3758 (*aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_pat): New pattern.
3759 (@aarch64_pred_cntp<mode>): Likewise.
3760 (@aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp):
3761 New expander.
3762 (*aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp)
3763 (*aarch64_incsi<PRED_ALL:mode>_cntp): New patterns.
3764 (@aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
3765 New expander.
3766 (*aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
3767 New pattern.
3768 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New expander.
3769 (*aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New pattern.
3770 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New expander.
3771 (*aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New pattern.
3772 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New expander.
3773 (*aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New pattern.
3774 (@aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp):
3775 New expander.
3776 (*aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp)
3777 (*aarch64_incsi<PRED_ALL:mode>_cntp): New patterns.
3778 (@aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
3779 New expander.
3780 (*aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
3781 New pattern.
3782 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New
3783 expander.
3784 (*aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New pattern.
3785 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New
3786 expander.
3787 (*aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New pattern.
3788 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New
3789 expander.
3790 (*aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New pattern.
3791 * config/aarch64/arm_sve.h: New file.
3792 * config/aarch64/aarch64-sve-builtins.h: Likewise.
3793 * config/aarch64/aarch64-sve-builtins.cc: Likewise.
3794 * config/aarch64/aarch64-sve-builtins.def: Likewise.
3795 * config/aarch64/aarch64-sve-builtins-base.h: Likewise.
3796 * config/aarch64/aarch64-sve-builtins-base.cc: Likewise.
3797 * config/aarch64/aarch64-sve-builtins-base.def: Likewise.
3798 * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
3799 * config/aarch64/aarch64-sve-builtins-shapes.h: Likewise.
3800 * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
3801
3802 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
3803
3804 * config/aarch64/aarch64-sve.md (@aarch64_sve_rev<PRED_ALL:mode>):
3805 New pattern.
3806 * config/aarch64/aarch64.c (aarch64_evpc_rev_global): Handle all
3807 SVE modes.
3808
3809 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
3810
3811 * config/aarch64/aarch64.md (FFR_REGNUM, FFRT_REGNUM): New constants.
3812 * config/aarch64/aarch64.h (FIRST_PSEUDO_REGISTER): Bump to
3813 FFRT_REGNUM + 1.
3814 (FFR_REGS, PR_AND_FFR_REGS): New register classes.
3815 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add entries for them.
3816 * config/aarch64/aarch64.c (pr_or_ffr_regnum_p): New function.
3817 (aarch64_hard_regno_nregs): Handle the new register classes.
3818 (aarch64_hard_regno_mode_ok): Likewise.
3819 (aarch64_regno_regclass): Likewise.
3820 (aarch64_class_max_nregs): Likewise.
3821 (aarch64_register_move_cost): Likewise.
3822 (aarch64_conditional_register_usage): Don't treat FFR and FFRT
3823 as general register_operands.
3824
3825 2019-10-29 Martin Liska <mliska@suse.cz>
3826
3827 * ggc-common.c: One can't subtract unsigned types
3828 in compare function.
3829
3830 2019-10-29 Martin Liska <mliska@suse.cz>
3831
3832 * cgraphunit.c (symbol_table::compile): Pass
3833 title as dump_memory_report argument.
3834 * toplev.c (dump_memory_report): New argument.
3835 (finalize): Pass new argument.
3836 * toplev.h (dump_memory_report): Add argument.
3837
3838 2019-10-29 Martin Liska <mliska@suse.cz>
3839
3840 * ggc-common.c: Move Leak to the first column.
3841
3842 2019-10-29 Martin Liska <mliska@suse.cz>
3843
3844 * cgraphunit.c (symbol_table::compile): Remove argument
3845 for dump_memory_report.
3846 * ggc-common.c (dump_ggc_loc_statistics): Likewise.
3847 (compare_final): Remove in order to make report
3848 better readable.
3849 * ggc.h (dump_ggc_loc_statistics): Remove argument.
3850 * mem-stats.h (mem_alloc_description::get_list):
3851 Do not pass cmp.
3852 (mem_alloc_description::dump): Likewise here.
3853 * toplev.c (dump_memory_report): Remove final
3854 argument.
3855 (finalize): Likewise.
3856 * toplev.h (dump_memory_report): Remove argument.
3857
3858 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
3859
3860 * config/aarch64/aarch64.c (aarch64_sve_cmp_immediate_p)
3861 (aarch64_simd_shift_imm_p): Accept scalars as well as vectors.
3862 * config/aarch64/predicates.md (aarch64_sve_cmp_vsc_immediate)
3863 (aarch64_sve_cmp_vsd_immediate): Accept "const_int", but don't
3864 accept "const".
3865
3866 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
3867
3868 * coretypes.h (string_int_pair): New typedef.
3869 * langhooks-def.h (LANG_HOOKS_SIMULATE_ENUM_DECL): Define.
3870 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Include it.
3871 * langhooks.h (lang_hooks_for_types::simulate_enum_decl): New hook.
3872
3873 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
3874
3875 * langhooks.h (lang_hooks::simulate_builtin_function_decl): New hook.
3876 (simulate_builtin_function_decl): Declare.
3877 * langhooks-def.h (LANG_HOOKS_SIMULATE_BUILTIN_FUNCTION_DECL): Define.
3878 (LANG_HOOKS_INITIALIZER): Include it.
3879 * langhooks.c (add_builtin_function_common): Rename to...
3880 (build_builtin_function): ...this. Add a location parameter and use
3881 it instead of BUILTINS_LOCATION. Remove the hook parameter and return
3882 the decl instead.
3883 (add_builtin_function): Update accordingly, passing the returned
3884 decl to the lang hook.
3885 (add_builtin_function_ext_scope): Likewise
3886 (simulate_builtin_function_decl): New function.
3887
3888 2019-10-29 Jakub Jelinek <jakub@redhat.com>
3889
3890 * doc/install.texi (--enable-offload-targets): Fix up a typo in the
3891 example, use actual names of supported offload targets.
3892
3893 PR target/92258
3894 * config/i386/sse.md (iptr): Revert 2019-10-27 change.
3895
3896 2019-10-28 Martin Sebor <msebor@redhat.com>
3897
3898 * tree-ssa-strlen.c (get_addr_stridx): Add argument and use it.
3899 (handle_store): Pass argument to get_addr_stridx.
3900
3901 2019-10-28 Martin Sebor <msebor@redhat.com>
3902
3903 PR tree-optimization/92226
3904 * tree-ssa-strlen.c (compare_nonzero_chars): Return -1 also when
3905 the offset is in the open range outlined by SI's length.
3906
3907 2019-10-28 Martin Sebor <msebor@redhat.com>
3908
3909 PR c/66970
3910 * doc/cpp.texi (__has_builtin): Document.
3911 * doc/extend.texi (__builtin_frob_return_addr): Correct spelling.
3912
3913 2019-10-28 Mihailo Stojanovic <mistojanovic@wavecomp.com>
3914
3915 PR target/82981
3916 * config/mips/mips.md (<u>mulditi3): Generate patterns for high
3917 doubleword and low doubleword result of multiplication on
3918 MIPS64R6.
3919
3920 * config/mips/mips.c (DIRECT_BUILTIN_PURE): New macro. Add a
3921 pure qualifier to the built-in.
3922 (MSA_BUILTIN_PURE): New macro. Add a pure qualifier to the MSA
3923 built-ins.
3924 (struct mips_builtin_description): Add is_pure flag.
3925 (mips_init_builtins): Mark built-in as pure if the flag in the
3926 corresponding mips_builtin_description struct is set.
3927
3928 * config/mips/mips-msa.md (msa_insert_<msaftm_f>): Add an
3929 alternative which covers the floating-point input value. Also
3930 forbid the split of insert.d pattern for floating-point values.
3931
3932 2019-10-28 Andrew Burgess <andrew.burgess@embecosm.com>
3933
3934 * config.gcc: Add riscv-sr.o to extra_objs for riscv.
3935 * config/riscv/riscv-sr.c: New file.
3936 * config/riscv/riscv.c (riscv_reorg): New function.
3937 (TARGET_MACHINE_DEPENDENT_REORG): Define.
3938 * config/riscv/riscv.h (SIBCALL_REG_P): Define.
3939 (riscv_remove_unneeded_save_restore_calls): Declare.
3940 * config/riscv/t-riscv (riscv-sr.o): New build rule.
3941
3942 2019-10-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3943
3944 PR tree-optimization/92163
3945 * tree-ssa-dse.c (delete_dead_or_redundant_assignment): New param
3946 need_eh_cleanup with default value NULL. Gate on need_eh_cleanup
3947 before calling bitmap_set_bit.
3948 (dse_optimize_redundant_stores): Pass global need_eh_cleanup to
3949 delete_dead_or_redundant_assignment.
3950 (dse_dom_walker::dse_optimize_stmt): Likewise.
3951 * tree-ssa-dse.h (delete_dead_or_redundant_assignment): Adjust prototype.
3952
3953 2019-10-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3954
3955 PR middle-end/91272
3956 * tree-vect-stmts.c (vectorizable_condition): Support
3957 EXTRACT_LAST_REDUCTION with fully-masked loops.
3958
3959 2019-10-28 Richard Biener <rguenther@suse.de>
3960
3961 PR tree-optimization/92252
3962 * tree-vect-slp.c (vect_get_and_check_slp_defs): Adjust
3963 STMT_VINFO_REDUC_IDX when swapping operands.
3964
3965 2019-10-28 Richard Biener <rguenther@suse.de>
3966
3967 PR tree-optimization/92241
3968 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): When
3969 we failed to update the reduction index do not use the pattern
3970 stmts for the reduction chain.
3971 (vectorizable_reduction): When the reduction chain is corrupt,
3972 fail.
3973 * tree-vect-patterns.c (vect_mark_pattern_stmts): Stop when we
3974 fail to update the reduction chain.
3975
3976 2019-10-28 Richard Biener <rguenther@suse.de>
3977
3978 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
3979 STMT_VINFO_REDUC_IDX from the actual stmt.
3980 (vect_transform_reduction): Likewise.
3981 (vectorizable_reduction): Compute the reduction chain length,
3982 do not recompute the reduction operand index. Remove no longer
3983 necessary restriction for condition reduction chains.
3984
3985 2019-10-28 Uroš Bizjak <ubizjak@gmail.com>
3986
3987 PR target/92225
3988 * config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE4_2
3989 condition for V2DImode.
3990
3991 2019-10-28 Uroš Bizjak <ubizjak@gmail.com>
3992
3993 * config/i386/sse.md (sse_cvtss2si<rex64namesuffix>_2):
3994 Remove %k operand modifier.
3995 (*vec_extractv2df_1_sse): Remove %q operand modifier.
3996
3997 2019-10-28 Ilya Leoshkevich <iii@linux.ibm.com>
3998
3999 PR rtl-optimization/92007
4000 * cfgcleanup.c (thread_jump): Add an assertion that we don't
4001 call it after reload if hot/cold partitioning has been done.
4002 (class pass_postreload_jump): Rename to
4003 pass_jump_after_combine.
4004 (make_pass_postreload_jump): Rename to
4005 make_pass_jump_after_combine.
4006 * passes.def(pass_postreload_jump): Move before reload, rename
4007 to pass_jump_after_combine.
4008 * tree-pass.h (make_pass_postreload_jump): Rename to
4009 make_pass_jump_after_combine.
4010
4011 2019-10-25 Jan Hubicka <hubicka@ucw.cz>
4012
4013 PR ipa/92242
4014 * ipa-fnsummary.c (ipa_merge_fn_summary_after_inlining): Check
4015 for missing EDGE_REF
4016 * ipa-prop.c (update_jump_functions_after_inlining): Likewise.
4017
4018 2019-10-25 Jiufu Guo <guojiufu@linux.ibm.com>
4019
4020 PR tree-optimization/88760
4021 * config/rs6000/rs6000-common.c (rs6000_option_optimization_table):
4022 Enable -funroll-loops for -O2 and above.
4023 * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
4024 PARAM_MAX_UNROLL_TIMES to 2 and PARAM_MAX_UNROLLED_INSNS to 20, and
4025 do not turn on web and rngreg implicitly, if the unroller is not
4026 explicitly enabled.
4027
4028 2019-10-27 Jan Hubicka <hubicka@ucw.cz>
4029
4030 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not remove
4031 jump functions.
4032
4033 2019-10-27 Eric Botcazou <ebotcazou@adacore.com>
4034
4035 * cgraph.c (cgraph_node::rtl_info): Fix cut&pasto in comment.
4036 * cgraph.h (cgraph_node::rtl_info): Likewise.
4037
4038 2019-10-27 Jan Hubicka <hubicka@ucw.cz>
4039
4040 * ipa-cp.c (propagate_constants_across_call): If args are not available
4041 just drop everything to varying.
4042 (find_aggregate_values_for_callers_subset): Watch for missing
4043 edge summary.
4044 (find_more_scalar_values_for_callers_subs): Likewise.
4045 * ipa-prop.c (ipa_compute_jump_functions_for_edge,
4046 update_jump_functions_after_inlining, propagate_controlled_uses):
4047 Watch for missing summaries.
4048 (ipa_propagate_indirect_call_infos): Remove summary after propagation
4049 is finished.
4050 (ipa_write_node_info): Watch for missing summaries.
4051 (ipa_read_edge_info): Create new ref.
4052 (ipa_edge_args_sum_t): Add remove.
4053 (IPA_EDGE_REF_GET_CREATE): New macro.
4054 * ipa-fnsummary.c (evaluate_properties_for_edge): Watch for missing
4055 edge summary.
4056 (remap_edge_change_prob): Likewise.
4057
4058 2019-10-27 Jan Hubicka <hubicka@ucw.cz>
4059
4060 * ipa-inline-transform.c (inline_call): update function summaries
4061 after expanidng thunk.
4062
4063 2019-10-27 Jan Hubicka <hubicka@ucw.cz>
4064
4065 * ipa-icf.c (sem_function::merge): Update function summaries.
4066 * ipa-prop.h (ipa_get_param): Do not sanity check for WPA.
4067
4068 2019-10-27 Hongtao Liu <hongtao.liu@intel.com>
4069
4070 * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3,
4071 <sse>_vm<multdiv_mnemonic><mode>3): Remove <iptr> since
4072 operand already has scalar mode.
4073 (iptr): Remove SF/DF.
4074
4075 2019-10-26 Segher Boessenkool <segher@kernel.crashing.org>
4076
4077 PR target/91289
4078 * config/rs6000/rs6000-logue.c (rs6000_emit_allocate_stack): Don't add
4079 an immediate to r0; use r11 instead. Save and restore r11 to r0 around
4080 this.
4081
4082 2019-10-26 Hongtao Liu <hongtao.liu@intel.com>
4083
4084 * config/i386/sse.md
4085 (<sse>_vm<plusminus_insn><mode>3<mask_scalar_name><round_scalar_name>,
4086 <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name><round_scalar_name>,
4087 <sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>,
4088 <sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>,
4089 <sse>_vmmaskcmp<mode>3):
4090 Change predicates from vector_operand to nonimmediate_operand,
4091 constraints xBm to xm, since scalar operations don't need
4092 memory address alignment.
4093 (avx512f_vmcmp<mode>3<round_saeonly_name>,
4094 avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Replace
4095 round_saeonly_nimm_predicate with
4096 round_saeonly_nimm_scalar_predicate.
4097 (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
4098 fmai_vmfnmadd_<mode><round_name>,fmai_vmfnmsub_<mode><round_name>,
4099 *fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
4100 *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>,
4101 avx512f_vmfmadd_<mode>_mask3<round_name>,
4102 avx512f_vmfmadd_<mode>_maskz_1<round_name>,
4103 *avx512f_vmfmsub_<mode>_mask<round_name>,
4104 avx512f_vmfmsub_<mode>_mask3<round_name>,
4105 *avx512f_vmfmsub_<mode>_maskz_1<round_name>,
4106 *avx512f_vmfnmadd_<mode>_mask<round_name>,
4107 *avx512f_vmfnmadd_<mode>_mask3<round_name>,
4108 *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
4109 *avx512f_vmfnmsub_<mode>_mask<round_name>,
4110 *avx512f_vmfnmsub_<mode>_mask3<round_name>,
4111 *avx512f_vmfnmsub_<mode>_maskz_1<round_name>,
4112 cvtusi2<ssescalarmodesuffix>32<round_name>,
4113 cvtusi2<ssescalarmodesuffix>64<round_name>, ): Replace
4114 round_nimm_predicate with round_nimm_scalr_predicate.
4115 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>,
4116 avx512f_sfixupimm<mode>_mask<round_saeonly_name>,
4117 avx512er_vmrcp28<mode><round_saeonly_name>,
4118 avx512er_vmrsqrt28<mode><round_saeonly_name>,
4119 ): Replace round_saeonly_nimm_predicate with
4120 round_saeonly_nimm_scalar_predicate.
4121 (avx512dq_vmfpclass<mode><mask_scalar_merge_name>): Replace
4122 vector_operand with nonimmediate_operand.
4123 * config/i386/subst.md (round_scalar_nimm_predicate,
4124 round_saeonly_scalar_nimm_predicate): Replace
4125 vector_operand with nonimmediate_operand.
4126
4127 2019-10-26 Hongtao Liu <hongtao.liu@intel.com>
4128
4129 PR target/89071
4130 * config/i386/i386.md (*rcpsf2_sse): Add
4131 avx_partial_xmm_update, prefer m constraint for TARGET_AVX.
4132 (*rsqrtsf2_sse): Ditto.
4133 (*sqrt<mode>2_sse): Ditto.
4134 (sse4_1_round<mode>2): separate constraint vm, add
4135 avx_partail_xmm_update, prefer m constraint for TARGET_AVX.
4136 * config/i386/sse.md (*sse_vmrcpv4sf2"): New define_insn used
4137 by pass rpad.
4138 (*<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>*):
4139 Ditto.
4140 (*sse_vmrsqrtv4sf2): Ditto.
4141 (*avx512f_rndscale<mode><round_saeonly_name>): Ditto.
4142 (*sse4_1_round<ssescalarmodesuffix>): Ditto.
4143 (sse4_1_round<ssescalarmodesuffix>): Add m constraint and
4144 <iptr> pointer size modifier since vround support memory operand.
4145
4146 2019-10-18 Georg-Johann Lay <avr@gjlay.de>
4147
4148 PR target/85969
4149 * config/avr/gen-avr-mmcu-specs.c (str_prefix_p): Remove unused
4150 static function.
4151
4152 2019-10-25 Cesar Philippidis <cesar@codesourcery.com>
4153 Tobias Burnus <tobias@codesourcery.com>
4154
4155 * gimplify.c (oacc_default_clause): Privatize fortran common blocks.
4156 (omp_notice_variable): Defer the expansion of DECL_VALUE_EXPR for
4157 common block decls.
4158
4159 2019-10-25 Richard Biener <rguenther@suse.de>
4160
4161 PR tree-optimization/92222
4162 * tree-vect-slp.c (_slp_oprnd_info::first_pattern): Remove.
4163 (_slp_oprnd_info::second_pattern): Likewise.
4164 (_slp_oprnd_info::any_pattern): New.
4165 (vect_create_oprnd_info): Adjust.
4166 (vect_get_and_check_slp_defs): Compute whether any stmt is
4167 in a pattern.
4168 (vect_build_slp_tree_2): Avoid building up a node from scalars
4169 if any of the operand defs, not just the first, is in a pattern.
4170
4171 2019-10-25 Richard Biener <rguenther@suse.de>
4172
4173 * tree-vect-slp.c (vect_get_and_check_slp_defs): Only fail
4174 swapping if we actually have to modify the IL on a shared stmt.
4175 (vect_build_slp_tree_2): Never fail swapping on shared stmts
4176 because we no longer modify the IL.
4177
4178 2019-10-25 Martin Liska <mliska@suse.cz>
4179
4180 * tree.c (dump_tree_statistics): Use sorted index 'j' and not 'i'.
4181
4182 2019-10-25 Richard Sandiford <richard.sandiford@arm.com>
4183
4184 * tree-vect-loop.c (vectorizable_reduction): Restrict the
4185 LOOP_VINFO_CAN_FULLY_MASK_P handling to cases that will be
4186 handled by vect_transform_reduction. Allow fully-masked loops
4187 to be used with reduction chains.
4188 * tree-vect-stmts.c (vectorizable_operation): Handle reduction
4189 operations in fully-masked loops.
4190 (vectorizable_condition): Reject EXTRACT_LAST_REDUCTION
4191 operations in fully-masked loops.
4192
4193 2019-10-25 Richard Biener <rguenther@suse.de>
4194
4195 * tree-vect-loop.c (vectorizable_reduction): Verify
4196 STMT_VINFO_REDUC_IDX on the to be vectorized stmts is set up
4197 correctly.
4198 * tree-vect-patterns.c (vect_mark_pattern_stmts): Transfer
4199 STMT_VINFO_REDUC_IDX from the original stmts to the pattern
4200 stmts.
4201
4202 2019-10-24 Jakub Jelinek <jakub@redhat.com>
4203
4204 * gimplify.h (omp_construct_selector_matches): Declare.
4205 * gimplify.c (struct gimplify_omp_ctx): Add code member.
4206 (gimplify_call_expr): Call omp_resolve_declare_variant and remap
4207 called function if needed for flag_openmp.
4208 (gimplify_scan_omp_clauses): Set ctx->code.
4209 (omp_construct_selector_matches): New function.
4210 * omp-general.h (omp_constructor_traits_to_codes,
4211 omp_context_selector_matches, omp_resolve_declare_variant): Declare.
4212 * omp-general.c (omp_constructor_traits_to_codes,
4213 omp_context_selector_matches, omp_resolve_declare_variant): New
4214 functions.
4215
4216 * config/arc/arc.c (hwloop_optimize): Add missing space in string
4217 literal.
4218 * config/rx/rx.c (rx_print_operand): Likewise.
4219 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
4220 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
4221 * ipa-sra.c (create_parameter_descriptors, process_scan_results):
4222 Likewise.
4223 * genemit.c (emit_c_code): Likewise.
4224 * plugin.c (try_init_one_plugin): Likewise. Formatting fix.
4225
4226 2019-10-24 Jan Hubicka <hubicka@ucw.cz>
4227
4228 * symbols-summary.h (fast_function_summary<T *, V>::release,
4229 fast_call_summary<T *, V>::release): Free m_vector.
4230
4231 2019-10-24 Jan Hubicka <hubicka@ucw.cz>
4232
4233 * cgraphunit.c (symbol_table::process_new_functions): Call
4234 ipa_free_size_summary.
4235 * ipa-cp.c (ipcp_cloning_candidate_p): Update.
4236 (devirtualization_time_bonus): Update.
4237 (ipcp_propagate_stage): Update.
4238 * ipa-fnsummary.c (ipa_size_summaries): New.
4239 (ipa_fn_summary_alloc): Alloc size summary.
4240 (dump_ipa_call_summary): Update.
4241 (ipa_dump_fn_summary): Update.
4242 (analyze_function_body): Update.
4243 (compute_fn_summary): Likewise.
4244 (ipa_get_stack_frame_offset): New function.
4245 (inline_update_callee_summaries): Do not update frame offsets.
4246 (ipa_merge_fn_summary_after_inlining): Update frame offsets here;
4247 remove call and function summary.
4248 (ipa_update_overall_fn_summary): Update.
4249 (inline_read_section): Update.
4250 (ipa_fn_summary_write): Update.
4251 (ipa_free_fn_summary): Do not remove summaries.
4252 (ipa_free_size_summary): New.
4253 (release summary pass): Also run at WPA.
4254 * ipa-fnsummary.h (ipa_size_summary): Declare.
4255 (ipa_fn_summary): Remove size, self_size, stack_frame_offset,
4256 estimated_self_stack_size.
4257 (ipa_size_summary_t): New type.
4258 (ipa_size_summaries): Declare.
4259 (ipa_free_size_summary): Declare.
4260 (ipa_get_stack_frame_offset): Declare.
4261 * ipa-icf.c (sem_function::merge): Update.
4262 * ipa-inline-analysis.c (estimate_size_after_inlining): Update.
4263 (estimate_growth): Update.
4264 (growth_likely_positive): Update.
4265 (clone_inlined_nodes): Update.
4266 (inline_call): Update.
4267 * ipa-inline.c (caller_growth_limits): Update.
4268 (edge_badness): Update.
4269 (recursive_inlining): Update.
4270 (inline_small_functions): Update.
4271 (inline_to_all_callers_1): Update.
4272 * ipa-prop.h (ipa_edge_args_sum_t): Update comment.
4273
4274 2019-10-24 Segher Boessenkool <segher@kernel.crashing.org>
4275
4276 * config/rs6000/altivec.md (altivec_vavgu<VI_char>): Rename to...
4277 (uavg<mode>3_ceil): ... This.
4278 (altivec_vavgs<VI_char>): Rename to...
4279 (avg<mode>3_ceil): ... This.
4280 * config/rs6000/rs6000-builtin.def (VAVGUB, VAVGSB, VAVGUH, VAVGSH,
4281 VAVGUW, VAVGSW): Adjust.
4282
4283 2019-10-24 Nathan Sidwell <nathan@acm.org>
4284
4285 * dumpfile.c (dump_begin): Reorder decls to use RAII.
4286
4287 2019-10-24 Martin Liska <mliska@suse.cz>
4288
4289 * symbol-summary.h (gt_pch_nx): Mark all functions
4290 with gcc_unreachable as we do not expect to be called.
4291
4292 2019-10-24 Richard Biener <rguenther@suse.de>
4293
4294 * tree-vect-slp.c (vect_get_and_check_slp_defs): For reduction
4295 chains try harder with operand swapping and instead of
4296 putting a shifted chain into the reduction operands put
4297 a repetition of the final reduction op there as if we'd
4298 reassociate the expression.
4299
4300 2019-10-24 Jan Hubicka <hubicka@ucw.cz>
4301
4302 * ipa-reference.c (ipa_reference_optimization_summary_d): Rename
4303 statics_not_read and statics_not_written to statics_read and
4304 statics_written respectively.
4305 (no_module_statics): New static var.
4306 (ipa_reference_get_not_read_global): Rename to ...
4307 (ipa_reference_get_read_global): ... this.
4308 (ipa_reference_get_not_written_global): Rename to ...
4309 (ipa_reference_get_written_global): ... this.
4310 (dump_static_vars_set_to_file): Dump no_module_statics.
4311 (copy_static_var_set): Add for propagation parameter.
4312 (ipa_init): Initialize no_module_statics.
4313 (ipa_ref_opt_summary_t::duplicate): Update.
4314 (ipa_ref_opt_summary_t::remove): Update.
4315 (propagate): Update.
4316 (write_node_summary_p): Look correctly for bitmap differences.
4317 (ipa_reference_write_optimization_summary): Update.
4318 (ipa_reference_read_optimization_summary): Update.
4319 * ipa-reference.h
4320 (ipa_reference_get_not_read_global): Rename to ...
4321 (ipa_reference_get_read_global): ... this.
4322 (ipa_reference_get_not_written_global): Rename to ...
4323 (ipa_reference_get_written_global): ... this.
4324 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Update.
4325 (call_may_clobber_ref_p_1): Update.
4326
4327 2019-10-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4328
4329 * config/msp430/msp430.c (msp430_hard_regno_nregs_has_padding): Remove
4330 and add comment.
4331 (msp430_hard_regno_nregs_with_padding): Remove.
4332
4333 2019-10-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4334
4335 * config/msp430/constraints.md: Allow post_inc for "Ya" constraint.
4336 * config/msp430/msp430.md (430x_shift_left): Use RLAM when the constant
4337 shift amount is between 1 and 4.
4338 (430x_arithmetic_shift_right): Use RRAM when the constant shift amount
4339 is between 1 and 4.
4340
4341 2019-10-24 Richard Biener <rguenther@suse.de>
4342
4343 PR tree-optimization/92205
4344 * tree-vect-loop.c (vectorizable_reduction): Restrict
4345 search for alternate vectype_in to lane-reducing patterns
4346 we support.
4347
4348 2019-10-24 Richard Biener <rguenther@suse.de>
4349
4350 PR tree-optimization/92203
4351 * treee-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt):
4352 Skip eliminating conversion stmts inserted by insertion.
4353
4354 2019-10-24 Ilya Leoshkevich <iii@linux.ibm.com>
4355
4356 * config/s390/s390.c (s390_get_thread_pointer): Use
4357 gen_get_thread_pointer.
4358 (s390_expand_split_stack_prologue): Likewise.
4359 * config/s390/s390.md (UNSPEC_GET_TP): New UNSPEC.
4360 (*get_tp_31): New 31-bit splitter for UNSPEC_GET_TP.
4361 (*get_tp_64): New 64-bit splitter for UNSPEC_GET_TP.
4362 (get_thread_pointer<mode>): Use UNSPEC_GET_TP, use
4363 parameterized name.
4364
4365 2019-10-24 Richard Biener <rguenther@suse.de>
4366
4367 * tree-vect-slp.c (vect_analyze_slp): When reduction group
4368 SLP discovery fails try to handle the reduction as part
4369 of SLP reduction discovery.
4370
4371 2019-10-23 Michael Meissner <meissner@linux.ibm.com>
4372
4373 * config/rs6000/rs6000-protos.h (rs6000_adjust_insn_length): New
4374 declaration.
4375 * config/rs6000/rs6000.c (rs6000_insn_cost): Use num_insns insn
4376 attribute if it exists, rather than the insn size. If we use the
4377 insn size, adjust the size to remove the extra size that prefixed
4378 instructions take.
4379 (rs6000_adjust_insn_length): New function.
4380 * config/rs6000/rs6000.h (ADJUST_INSN_LENGTH): New target hook to
4381 update the instruction sized if prefixed instructions are used.
4382 * config/rs6000/rs6000.md (prefixed_length attribute): Delete.
4383 (non_prefixed_length attribute): Delete.
4384 (num_insns attribute): New insn attribute to return the number of
4385 instructions.
4386 (max_prefixed_insns attribute): New insn attribute to return the
4387 maximum number of prefixed instructions in an insn.
4388 (length attribute): Do not adjust for prefix instructions here,
4389 punt to ADJUST_INSN_LENGTH.
4390 (mov<mode>_64bit): Set max_prefixed_insns and num_insns.
4391 (movtd_64bit_nodm): Set max_prefixed_insns and num_insns.
4392 (mov<mode>_ppc64): Set max_prefixed_insns and num_insns.
4393 * config/rs6000/vsx.md: (vsx_mov<mode>_64bit): Set
4394 max_prefixed_insns and num_insns.
4395
4396 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Reformat.
4397 (movtd_64bit_nodm): Reformat.
4398 (mov<mode>_32bit): Reformat.
4399 (mov<mode>_softfloat): Reformat.
4400 (FMOVE128_GPR splitter): Reformat.
4401 (DIFD splitter): Reformat.
4402 (TI2 splitter): Reformat.
4403 * config/rs6000/predicates.md (lwa_operand): If the bottom two
4404 bits of the offset for the memory address are non-zero, use PLWA
4405 if prefixed instructions are available.
4406
4407 2019-10-23 Jan Hubicka <hubicka@ucw.cz>
4408
4409 * lto-streamer-out.c (cmp_symbol_files): Watch for overflow.
4410
4411 2019-10-23 Jan Hubicka <hubicka@ucw.cz>
4412
4413 * ipa-reference.c (varpool_removal_hook, ipa_reference_c_finalize): Fix
4414 previous patch.
4415
4416 2019-10-23 Jan Hubicka <hubicka@ucw.cz>
4417
4418 * lto-streamer-out.c (output_constructor): Push CTORS_OUT timevar.
4419 (cmp_symbol_files): New.
4420 (lto_output): Copy sections in file order.
4421 * lto-streamer.h (lto_file_decl_data): Add field order.
4422
4423 2019-10-23 Jan Hubicka <hubicka@ucw.cz>
4424
4425 * ipa-reference.h (ipa_reference_var_uid): Move offline.
4426 * ipa-reference.c (reference_vars_map_t): new type.
4427 (ipa_reference_vars_map, ipa_reference_vars_uids): New static vars.
4428 (ipa_reference_var_uid): Implement.
4429 (varpool_node_hooks): New static var.
4430 (varpool_removal_hook): New function.
4431 (is_improper): Do not check bitmap for id==-1
4432 (get_static_name): Update.
4433 (ipa_init): Initialize new datastructures.
4434 (analyze_function): Do not recompute ids.
4435 (propagate): Free reference_vars_to_consider.
4436 (stream_out_bitmap): Update.
4437 (ipa_reference_read_optimization_summary): Update.
4438
4439 2019-10-23 qing zhao <qing.zhao@oracle.com>
4440
4441 PR gcov-profile/91971
4442 * coverage.c (coverage_init): Mangle the full path of filename when
4443 filename is a absolute path.
4444
4445 2019-10-23 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4446
4447 * config/msp430/msp430-protos.h (msp430_has_hwmult): New.
4448 * config/msp430/msp430.c (msp430_no_hwmult): Remove.
4449 (msp430_has_hwmult): New.
4450 (msp430_output_labelref):
4451 s/msp430_hwmult_type != MSP430_HWMULT_NONE/msp430_has_hwmult ()/
4452 * config/msp430/msp430.md (mulhisi3): Likewise.
4453 (umulhisi3): Likewise.
4454 (mulsidi3): Likewise.
4455 (umulsidi3): Likewise.
4456
4457 2019-10-23 Jan Hubicka <hubicka@ucw.cz>
4458
4459 PR ipa/92074
4460 * params.def (inline-heuristics-hint-percent): Set to 600.
4461
4462 2019-10-23 Richard Biener <rguenther@suse.de>
4463
4464 PR tree-optimization/65930
4465 * tree-vect-loop.c (check_reduction_path): Allow conversions
4466 that only change the sign.
4467 (vectorizable_reduction): Relax latch def stmts we handle further.
4468
4469 2019-10-23 Jakub Jelinek <jakub@redhat.com>
4470
4471 PR debug/90231
4472 * tree-ssa-loop-ivopts.c (get_debug_computation_at): New function.
4473 (remove_unused_ivs): Use it instead of get_computation_at. When
4474 choosing best candidate, only consider candidates where
4475 get_debug_computation_at actually returns non-NULL.
4476
4477 2019-10-23 Eric Botcazou <ebotcazou@adacore.com>
4478
4479 PR tree-optimization/92131
4480 * tree-vrp.c (extract_range_from_plus_minus_expr): If the resulting
4481 range would be symbolic, drop to varying for any explicit overflow
4482 in the constant part or if neither range is a singleton.
4483
4484 2019-10-23 Martin Liska <mliska@suse.cz>
4485
4486 PR middle-end/81669
4487 * fibonacci_heap.h (fibonacci_node::fibonacci_node):
4488 Initialize m_data.
4489
4490 2019-10-23 Richard Sandiford <richard.sandiford@arm.com>
4491
4492 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use
4493 int_mode_for_mode rather than mode_for_int_vector for scalars.
4494
4495 2019-10-23 Richard Biener <rguenther@suse.de>
4496
4497 PR tree-optimization/92179
4498 * tree-vect-stmts.c (vectorizable_shift): For shift args
4499 that are all the same remove type restriction in the SLP case.
4500 Adjust SLP code to handle converting of the shift arg to
4501 only apply in case the modes are different.
4502
4503 2019-10-23 Martin Liska <mliska@suse.cz>
4504
4505 PR ipa/91969
4506 * ipa-inline.c (recursive_inlining): Do not print
4507 when curr->count is not initialized.
4508
4509 2019-10-23 Richard Biener <rguenther@suse.de>
4510
4511 * tree-vect-slp.c (vect_build_slp_tree_2): Do not build
4512 op from scalars in case there's a constant operand in its
4513 definition.
4514
4515 2019-10-23 Iain Sandoe <iain@sandoe.co.uk>
4516
4517 * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard
4518 against out of range max skip or log values.
4519
4520 2019-10-22 Giuliano Belinassi <giuliano.belinassi@usp.br>
4521
4522 * cgraph.c (dump_graphviz): Change name to dump_name
4523
4524 2019-10-22 Richard Earnshaw <rearnsha@arm.com>
4525
4526 * config/arm/arm.md (rsbsi_carryin_reg): New pattern.
4527 * config/arm/arm.c (arm_rtx_costs_internal, case MINUS): Handle
4528 subtraction from a carry operation.
4529
4530 2019-10-22 Richard Earnshaw <rearnsha@arm.com>
4531
4532 * config/arm/predicates.md (arm_borrow_operation): Handle CC_ADCmode.
4533
4534 2019-10-22 Richard Biener <rguenther@suse.de>
4535
4536 PR tree-optimization/92173
4537 * tree-vect-loop.c (vectorizable_reduction): If
4538 vect_transform_reduction cannot handle code-generation try without
4539 the single-def-use-cycle optimization. Pass optab_vector to
4540 optab_for_tree_code to get vector shifts as that's what we'd
4541 generate.
4542
4543 2019-10-22 Michael Matz <matz@suse.de>
4544
4545 PR middle-end/90796
4546 * gimple-loop-jam.c (any_access_function_variant_p): New function.
4547 (adjust_unroll_factor): Use it to constrain safety, new parameter.
4548 (tree_loop_unroll_and_jam): Adjust call and profitable unroll factor.
4549
4550 2019-10-22 Richard Biener <rguenther@suse.de>
4551
4552 PR tree-optimization/92173
4553 * tree-vect-loop.c (vectorizable_reduction): If
4554 vect_transform_reduction cannot handle code-generation try without
4555 the single-def-use-cycle optimization. Pass optab_vector to
4556 optab_for_tree_code to get vector shifts as that's what we'd
4557 generate.
4558
4559 2019-10-22 Martin Liska <mliska@suse.cz>
4560
4561 * diagnostic-format-json.cc (json_from_expanded_location):
4562 Use json::integer_number.
4563 * gcov.c (output_intermediate_json_line): Use new
4564 json::integer_number.
4565 (output_json_intermediate_file): Likewise.
4566 * json.cc (number::print): Move to ...
4567 (float_number::print): ... this.
4568 (integer_number::print): New.
4569 (test_writing_numbers): Move to ...
4570 (test_writing_float_numbers): ... this.
4571 (test_writing_integer_numbers): New.
4572 (json_cc_tests): Register test_writing_integer_numbers.
4573 * json.h (class value): Add forward declaration
4574 for float_number and integer_number.
4575 (enum kind): Add JSON_INTEGER and JSON_FLOAT.
4576 (class number): Move to ...
4577 (class float_number): ... this.
4578 (class integer_number): New.
4579 * optinfo-emit-json.cc (optrecord_json_writer::impl_location_to_json):
4580 Use json::integer_number.
4581 (optrecord_json_writer::location_to_json): Likewise.
4582 (optrecord_json_writer::profile_count_to_json): Likewise.
4583 (optrecord_json_writer::pass_to_json): Likewise.
4584
4585 2019-10-22 Richard Sandiford <richard.sandiford@arm.com>
4586
4587 * tree-vect-slp.c (vect_slp_bb_region): Check whether
4588 autodetected_vector_size rather than vector_size is zero.
4589 * tree-vect-loop.c (vect_analyze_loop): Likewise.
4590 Set autodetected_vector_size immediately after calling
4591 vect_analyze_loop_2. Check for a fatal error before advancing
4592 next_size.
4593
4594 2019-10-21 Jason Merrill <jason@redhat.com>
4595
4596 * lock-and-run.sh: Check for process existence rather than timeout.
4597
4598 2019-10-21 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4599
4600 * expr.c (expand_expr_real_2): Don't widen constant op1 when expanding
4601 widening multiplication.
4602
4603 2019-10-21 Richard Earnshaw <rearnsha@arm.com>
4604
4605 * config/arm/iterators.md (t2_binop0): Fix typo in comment.
4606 * config/arm/arm.md (addsi3_carryin_shift): Simplify selection of the
4607 type attribute.
4608 (subsi3_carryin_shift): Separate into register and constant controlled
4609 alternatives. Use shift_amount_operand for operand 4. Set shift
4610 attribute and simplify type attribute.
4611 (subsi3_carryin_shift_alt): Likewise.
4612 (rsbsi3_carryin_shift): Likewise.
4613 (rsbsi3_carryin_shift_alt): Likewise.
4614 (andsi_not_shiftsi_si): Enable for TARGET_32BIT. Separate constant
4615 and register controlled shifts into distinct alternatives.
4616 (andsi_not_shiftsi_si_scc_no_reuse): Likewise.
4617 (andsi_not_shiftsi_si_scc): Likewise.
4618 (arm_cmpsi_negshiftsi_si): Likewise.
4619 (not_shiftsi): Remove redundant M constraint from alternative 1.
4620 (not_shiftsi_compare0): Likewise.
4621 (arm_cmpsi_insn): Remove redundant alternative 2.
4622 (cmpsi_shift_swp): Likewise.
4623 (sub_shiftsi): Likewise.
4624 (sub_shiftsi_compare0_scratch): Likewise.
4625 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Delete pattern.
4626 (thumb2_cmpsi_neg_shiftsi): Likewise.
4627
4628 2019-10-21 Richard Biener <rguenther@suse.de>
4629
4630 PR tree-optimization/92162
4631 * tree-vect-loop.c (vect_create_epilog_for_reduction): Lookup
4632 STMT_VINFO_REDUC_IDX in reduc_info.
4633 * tree-vect-stmts.c (vectorizable_condition): Likewise.
4634
4635 2019-10-21 Richard Biener <rguenther@suse.de>
4636
4637 * tree-vectorizer.h (_slp_tree::ops): New member.
4638 (SLP_TREE_SCALAR_OPS): New.
4639 (vect_get_slp_defs): Adjust prototype.
4640 * tree-vect-slp.c (vect_free_slp_tree): Release
4641 SLP_TREE_SCALAR_OPS.
4642 (vect_create_new_slp_node): Initialize it. New overload for
4643 initializing by an operands array.
4644 (_slp_oprnd_info::ops): New member.
4645 (vect_create_oprnd_info): Initialize it.
4646 (vect_free_oprnd_info): Release it.
4647 (vect_get_and_check_slp_defs): Populate the operands array.
4648 Do not swap operands in the IL when not necessary.
4649 (vect_build_slp_tree_2): Build SLP nodes for invariant operands.
4650 Record SLP_TREE_SCALAR_OPS for all invariant nodes. Also
4651 swap operands in the operands array. Do not swap operands in
4652 the IL.
4653 (vect_slp_rearrange_stmts): Re-arrange SLP_TREE_SCALAR_OPS as well.
4654 (vect_gather_slp_loads): Fix.
4655 (vect_detect_hybrid_slp_stmts): Likewise.
4656 (vect_slp_analyze_node_operations_1): Search for a internal
4657 def child for computing reduction SLP_TREE_NUMBER_OF_VEC_STMTS.
4658 (vect_slp_analyze_node_operations): Skip ops-only stmts for
4659 the def-type push/pop dance.
4660 (vect_get_constant_vectors): Compute number_of_vectors here.
4661 Use SLP_TREE_SCALAR_OPS and simplify greatly.
4662 (vect_get_slp_vect_defs): Use gimple_get_lhs also for PHIs.
4663 (vect_get_slp_defs): Simplify greatly.
4664 * tree-vect-loop.c (vectorize_fold_left_reduction): Simplify.
4665 (vect_transform_reduction): Likewise.
4666 * tree-vect-stmts.c (vect_get_vec_defs): Simplify.
4667 (vectorizable_call): Likewise.
4668 (vectorizable_operation): Likewise.
4669 (vectorizable_load): Likewise.
4670 (vectorizable_condition): Likewise.
4671 (vectorizable_comparison): Likewise.
4672
4673 2019-10-21 Richard Biener <rguenther@suse.de>
4674
4675 PR tree-optimization/92161
4676 * tree-vect-loop.c (vect_analyze_loop_2): Reset stmts def-type
4677 for reductions.
4678
4679 2019-10-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4680
4681 * config/aarch64/aarch64.md (UNSPEC_RNDR, UNSPEC_RNDRRS): Define.
4682 (aarch64_rndr): New define_insn.
4683 (aarch64_rndrrs): Likewise.
4684 * config/aarch64/aarch64.h (AARCH64_ISA_RNG): Define.
4685 (TARGET_RNG): Likewise.
4686 * config/aarch64/aarch64.c (aarch64_expand_builtin): Use IGNORE
4687 argument.
4688 * config/aarch64/aarch64-protos.h (aarch64_general_expand_builtin):
4689 Add fourth argument in prototype.
4690 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins):
4691 Add AARCH64_BUILTIN_RNG_RNDR, AARCH64_BUILTIN_RNG_RNDRRS.
4692 (aarch64_init_rng_builtins): Define.
4693 (aarch64_general_init_builtins): Call aarch64_init_rng_builtins.
4694 (aarch64_expand_rng_builtin): Define.
4695 (aarch64_general_expand_builtin): Use IGNORE argument, handle
4696 RNG builtins.
4697 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
4698 __ARM_FEATURE_RNG when TARGET_RNG.
4699 * config/aarch64/arm_acle.h (__rndr, __rndrrs): Define.
4700
4701 2019-10-21 Andre Vieira <andre.simoesdiasvieira@arm.com>
4702
4703 * tree-vect-stmts (ensure_base_align): Only change alignment if new
4704 alignment is more restrictive.
4705
4706 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4707
4708 * tree-vectorizer.h (vec_info::vector_size): New member variable.
4709 (vect_update_max_nunits): Update comment.
4710 (current_vector_size): Delete.
4711 * tree-vect-stmts.c (current_vector_size): Likewise.
4712 (get_vectype_for_scalar_type): Use vec_info::vector_size instead
4713 of current_vector_size.
4714 (get_mask_type_for_scalar_type): Likewise.
4715 * tree-vectorizer.c (try_vectorize_loop_1): Likewise.
4716 * tree-vect-loop.c (vect_update_vf_for_slp): Likewise.
4717 (vect_analyze_loop, vect_halve_mask_nunits): Likewise.
4718 (vect_double_mask_nunits, vect_transform_loop): Likewise.
4719 * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise.
4720 (vect_make_slp_decision, vect_slp_bb_region): Likewise.
4721
4722 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4723
4724 * tree-vectorizer.h (vect_double_mask_nunits): Take a vec_info.
4725 * tree-vect-loop.c (vect_double_mask_nunits): Likewise.
4726 * tree-vect-stmts.c (supportable_narrowing_operation): Update call
4727 accordingly.
4728
4729 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4730
4731 * tree-vectorizer.h (vect_halve_mask_nunits): Take a vec_info.
4732 * tree-vect-loop.c (vect_halve_mask_nunits): Likewise.
4733 * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): Update
4734 call accordingly.
4735 * tree-vect-stmts.c (supportable_widening_operation): Likewise.
4736
4737 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4738
4739 * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): Take
4740 a loop_vec_info.
4741 (vect_set_loop_condition_masked): Update call accordingly.
4742
4743 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4744
4745 * tree-vectorizer.h (supportable_narrowing_operation): Take a vec_info.
4746 * tree-vect-stmts.c (supportable_narrowing_operation): Likewise.
4747 (simple_integer_narrowing): Update call accordingly.
4748 (vectorizable_conversion): Likewise.
4749
4750 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4751
4752 * tree-vect-stmts.c (simple_integer_narrowing): Take a vec_info.
4753 (vectorizable_call): Update call accordingly.
4754
4755 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4756
4757 * tree-vectorizer.h (can_duplicate_and_interleave_p): Take a vec_info.
4758 * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise.
4759 (duplicate_and_interleave): Update call accordingly.
4760 * tree-vect-loop.c (vectorizable_reduction): Likewise.
4761
4762 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4763
4764 * tree-vectorizer.h (duplicate_and_interleave): Take a vec_info.
4765 * tree-vect-slp.c (duplicate_and_interleave): Likewise.
4766 (vect_get_constant_vectors): Update call accordingly.
4767 * tree-vect-loop.c (get_initial_defs_for_reduction): Likewise.
4768
4769 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4770
4771 * tree-vectorizer.h (get_vectype_for_scalar_type): Take a vec_info.
4772 * tree-vect-stmts.c (get_vectype_for_scalar_type): Likewise.
4773 (vect_prologue_cost_for_slp_op): Update call accordingly.
4774 (vect_get_vec_def_for_operand, vect_get_gather_scatter_ops)
4775 (vect_get_strided_load_store_ops, vectorizable_simd_clone_call)
4776 (vect_supportable_shift, vect_is_simple_cond, vectorizable_comparison)
4777 (get_mask_type_for_scalar_type): Likewise.
4778 (vect_get_vector_types_for_stmt): Likewise.
4779 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
4780 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
4781 (get_initial_def_for_reduction, build_vect_cond_expr): Likewise.
4782 * tree-vect-patterns.c (vect_supportable_direct_optab_p): Likewise.
4783 (vect_split_statement, vect_convert_input): Likewise.
4784 (vect_recog_widen_op_pattern, vect_recog_pow_pattern): Likewise.
4785 (vect_recog_over_widening_pattern, vect_recog_mulhs_pattern): Likewise.
4786 (vect_recog_average_pattern, vect_recog_cast_forwprop_pattern)
4787 (vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern)
4788 (vect_synth_mult_by_constant, vect_recog_mult_pattern): Likewise.
4789 (vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern)
4790 (check_bool_pattern, adjust_bool_pattern_cast, adjust_bool_pattern)
4791 (search_type_for_mask_1, vect_recog_bool_pattern): Likewise.
4792 (vect_recog_mask_conversion_pattern): Likewise.
4793 (vect_add_conversion_to_pattern): Likewise.
4794 (vect_recog_gather_scatter_pattern): Likewise.
4795 * tree-vect-slp.c (vect_build_slp_tree_2): Likewise.
4796 (vect_analyze_slp_instance, vect_get_constant_vectors): Likewise.
4797
4798 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4799
4800 * tree-vectorizer.h (get_mask_type_for_scalar_type): Take a vec_info.
4801 * tree-vect-stmts.c (get_mask_type_for_scalar_type): Likewise.
4802 (vect_check_load_store_mask): Update call accordingly.
4803 (vect_get_mask_type_for_stmt): Likewise.
4804 * tree-vect-patterns.c (check_bool_pattern): Likewise.
4805 (search_type_for_mask_1, vect_recog_mask_conversion_pattern): Likewise.
4806 (vect_convert_mask_for_vectype): Likewise.
4807
4808 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4809
4810 * tree-vect-patterns.c (vect_supportable_direct_optab_p): Take
4811 a vec_info.
4812 (vect_recog_dot_prod_pattern): Update call accordingly.
4813 (vect_recog_sad_pattern, vect_recog_pow_pattern): Likewise.
4814 (vect_recog_widen_sum_pattern): Likewise.
4815
4816 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4817
4818 * tree-vectorizer.h (vect_supportable_shift): Take a vec_info.
4819 * tree-vect-stmts.c (vect_supportable_shift): Likewise.
4820 * tree-vect-patterns.c (vect_synth_mult_by_constant): Update call
4821 accordingly.
4822
4823 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4824
4825 * tree-vectorizer.c (get_vec_alignment_for_array_type): Use
4826 get_vectype_for_scalar_type_and_size instead of
4827 get_vectype_for_scalar_type.
4828
4829 2019-10-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
4830
4831 * common.opt (-fcommon): Fix description.
4832
4833 2019-10-20 Jakub Jelinek <jakub@redhat.com>
4834
4835 * config/i386/i386-protos.h (ix86_pre_reload_split): Declare.
4836 * config/i386/i386.c (ix86_pre_reload_split): New function.
4837 * config/i386/i386.md (*fix_trunc<mode>_i387_1, *add<mode>3_eq,
4838 *add<mode>3_ne, *add<mode>3_eq_0, *add<mode>3_ne_0, *add<mode>3_eq,
4839 *add<mode>3_ne, *add<mode>3_eq_1, *add<mode>3_eq_0, *add<mode>3_ne_0,
4840 *anddi3_doubleword, *andndi3_doubleword, *<code>di3_doubleword,
4841 *one_cmpldi2_doubleword, *ashl<dwi>3_doubleword_mask,
4842 *ashl<dwi>3_doubleword_mask_1, *ashl<mode>3_mask, *ashl<mode>3_mask_1,
4843 *<shift_insn><mode>3_mask, *<shift_insn><mode>3_mask_1,
4844 *<shift_insn><dwi>3_doubleword_mask,
4845 *<shift_insn><dwi>3_doubleword_mask_1, *<rotate_insn><mode>3_mask,
4846 *<rotate_insn><mode>3_mask_1, *<btsc><mode>_mask, *<btsc><mode>_mask_1,
4847 *btr<mode>_mask, *btr<mode>_mask_1, *jcc_bt<mode>, *jcc_bt<mode>_1,
4848 *jcc_bt<mode>_mask, *popcounthi2_1, frndintxf2_<rounding>,
4849 *fist<mode>2_<rounding>_1, *<code><mode>3_1, *<code>di3_doubleword):
4850 Use ix86_pre_reload_split instead of can_create_pseudo_p in condition.
4851 * config/i386/sse.md (*sse4_1_<code>v8qiv8hi2<mask_name>_2,
4852 *avx2_<code>v8qiv8si2<mask_name>_2,
4853 *sse4_1_<code>v4qiv4si2<mask_name>_2,
4854 *sse4_1_<code>v4hiv4si2<mask_name>_2,
4855 *avx512f_<code>v8qiv8di2<mask_name>_2,
4856 *avx2_<code>v4qiv4di2<mask_name>_2, *avx2_<code>v4hiv4di2<mask_name>_2,
4857 *sse4_1_<code>v2hiv2di2<mask_name>_2,
4858 *sse4_1_<code>v2siv2di2<mask_name>_2, sse4_2_pcmpestr,
4859 sse4_2_pcmpistr): Likewise.
4860
4861 2019-10-20 Gerald Pfeifer <gerald@pfeifer.com>
4862
4863 * doc/install.texi (Configuration, --enable-objc-gc): hboehm.info
4864 now defaults to https.
4865
4866 2019-10-20 Jan Hubicka <hubicka@ucw.cz>
4867
4868 * tree-ssa-alias.c (nonoverlapping_refs_since_match_p): Do not
4869 skip non-zero array accesses.
4870
4871 2019-10-20 Richard Sandiford <richard.sandiford@arm.com>
4872
4873 * tree-vect-slp.c (vect_slp_analyze_bb_1): Take a bb_vec_info
4874 and return a boolean success value. Move the allocation and
4875 initialization of the bb_vec_info to...
4876 (vect_slp_bb_region): ...here. Update call accordingly.
4877 (vect_slp_bb): Apply PARAM_SLP_MAX_INSNS_IN_BB here rather
4878 than in vect_slp_analyze_bb_1.
4879
4880 2019-10-20 Richard Sandiford <richard.sandiford@arm.com>
4881
4882 * tree-vect-slp.c (vect_slp_analyze_bb_1): Call save_datarefs
4883 when processing the given datarefs for the first time and
4884 check_datarefs subsequently.
4885 (vect_slp_bb_region): New function, split out of...
4886 (vect_slp_bb): ...here. Don't recompute the region bounds and
4887 dataref sets when retrying with a different vector size.
4888
4889 2019-10-19 Jakub Jelinek <jakub@redhat.com>
4890 Uroš Bizjak <ubizjak@gmail.com>
4891
4892 PR target/92140
4893 * config/i386/predicates.md (int_nonimmediate_operand): New special
4894 predicate.
4895 * config/i386/i386.md (*add<mode>3_eq, *add<mode>3_ne,
4896 *add<mode>3_eq_0, *add<mode>3_ne_0, *sub<mode>3_eq, *sub<mode>3_ne,
4897 *sub<mode>3_eq_1, *sub<mode>3_eq_0, *sub<mode>3_ne_0): New
4898 define_insn_and_split patterns.
4899
4900 2019-10-19 Iain Sandoe <iain@sandoe.co.uk>
4901
4902 * config/rs6000/rs6000.md: Delete out--of-date comment about
4903 special-casing integer loads.
4904
4905 2019-10-19 JeanHeyd Meneide <phdofthehouse@gmail.com>
4906
4907 * escaped_string.h (escaped_string): New header.
4908 * tree.c (escaped_string): Remove escaped_string class.
4909
4910 2019-10-18 Martin Sebor <msebor@redhat.com>
4911
4912 PR tree-optimization/92157
4913 * tree-ssa-strlen.c (handle_builtin_string_cmp): Be prepared for
4914 compute_string_length to return a negative result.
4915
4916 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4917
4918 * config/arm/arm.md (negv<SIDI:mode>3): New expansion rule.
4919 (negvsi3, negvdi3): Delete.
4920 (negdi2_compare): Delete.
4921
4922 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4923
4924 * config/arm/arm.md (subvdi4): Decompose calculation into 32-bit
4925 operations.
4926 (subdi3_compare1): Delete pattern.
4927 (subvsi3_borrow): New insn pattern.
4928 (subvsi3_borrow_imm): Likewise.
4929
4930 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4931
4932 * config/arm/arm.md (subv<mode>4): Delete.
4933 (subvdi4): New expander pattern.
4934 (subvsi4): Likewise. Handle some immediate values.
4935 (subvsi3_intmin): New insn pattern.
4936 (subvsi3): Likewise.
4937 (subvsi3_imm1): Likewise.
4938 * config/arm/arm.c (select_cc_mode): Also allow minus for CC_V
4939 idioms.
4940
4941 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4942
4943 * config/arm/arm.md (usubvdi4): Allow registers or integers for
4944 incoming operands. Early split the calculation into SImode
4945 operations.
4946 (usubvsi3_borrow): New insn pattern.
4947 (usubvsi3_borrow_imm): Likewise.
4948
4949 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4950
4951 * config/arm/arm.md (usubv<mode>4): Delete expansion.
4952 (usubvsi4): New pattern. Allow some immediate values for inputs.
4953 (usubvdi4): New pattern.
4954
4955 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4956
4957 * config/arm/arm.c (arm_select_cc_mode): Allow either the first
4958 or second operand of the PLUS inside a DImode equality test to be
4959 sign-extend when selecting CC_Vmode.
4960 * config/arm/arm.md (addvdi4): Early-split the operation into SImode
4961 instructions.
4962 (addsi3_cin_vout_reg, addsi3_cin_vout_imm, addsi3_cin_vout_0): New
4963 expand patterns.
4964 (addsi3_cin_vout_reg_insn, addsi3_cin_vout_imm_insn): New patterns.
4965 (addsi3_cin_vout_0): Likewise.
4966 (adddi3_compareV): Delete.
4967
4968 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4969
4970 * config/arm/arm.md (addsi3_compareV_reg_nosum): New insn.
4971 (addsi3_compareV_imm_nosum): New insn. Also add peephole2 patterns
4972 to transform this back into the summation version when that leads
4973 to smaller code.
4974
4975 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4976
4977 * config/arm/arm.md (addv<mode>4): Delete.
4978 (addvsi4): New pattern. Handle immediate values that the architecture
4979 supports.
4980 (addvdi4): New pattern.
4981 (addsi3_compareV): Rename to ...
4982 (addsi3_compareV_reg): ... this. Add constraints for thumb2 variants
4983 and use COMPARE rather than NE.
4984 (addsi3_compareV_imm): New pattern.
4985 * config/arm/arm.c (arm_select_cc_mode): Return CC_Vmode for
4986 a signed-overflow check.
4987
4988 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4989
4990 * config/arm/arm-modes.def (CC_ADC): New CC mode.
4991 * config/arm/arm.c (arm_select_cc_mode): Detect selection of
4992 CC_ADCmode.
4993 (maybe_get_arm_condition_code): Handle CC_ADCmode.
4994 * config/arm/arm.md (uaddvdi4): Early expansion of unsigned addition
4995 with overflow.
4996 (addsi3_cin_cout_reg, addsi3_cin_cout_imm, addsi3_cin_cout_0): New
4997 expand patterns.
4998 (addsi3_cin_cout_reg_insn, addsi3_cin_cout_0_insn): New insn patterns
4999 (addsi3_cin_cout_imm_insn): Likewise.
5000 (adddi3_compareC): Delete insn.
5001 * config/arm/predicates.md (arm_carry_operation): Handle CC_ADCmode.
5002
5003 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
5004
5005 * config/arm/arm.md (adddi3): Call gen_addsi3_compare_op1.
5006 * (uaddv<mode>4): Delete expansion pattern.
5007 (uaddvsi4): New pattern.
5008 (uaddvdi4): Likewise.
5009 (addsi3_compareC): Delete pattern, change callers to use
5010 addsi3_compare_op1.
5011 (addsi3_compare_op1): No-longer anonymous. Clean up constraints to
5012 reduce the number of alternatives and re-work type attribute handling.
5013 (addsi3_compare_op2): Clean up constraints to reduce the number of
5014 alternatives and re-work type attribute handling.
5015 (compare_addsi2_op0): Likewise.
5016 (compare_addsi2_op1): Likewise.
5017
5018 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
5019
5020 * config/arm/arm-modes.def (CC_NCV, CC_CZ): Delete CC modes.
5021 * config/arm/arm.c (arm_select_cc_mode): Remove old selection code
5022 for DImode operands.
5023 (arm_gen_dicompare_reg): Remove unreachable expansion code.
5024 (maybe_get_arm_condition_code): Remove support for CC_CZmode and
5025 CC_NCVmode.
5026 * config/arm/arm.md (arm_cmpdi_insn): Delete.
5027 (arm_cmpdi_unsigned): Delete.
5028
5029 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
5030
5031 * config/arm/arm.c (arm_const_double_prefer_rsbs_rsc): New function.
5032 (arm_canonicalize_comparison): For GT/LE/GTU/GEU, use the constant
5033 unchanged only if that will be cheaper.
5034 (arm_select_cc_mode): Recognize a swapped comparison that will
5035 be regenerated using RSBS or RSCS. Relax restriction on selecting
5036 CC_RSBmode.
5037 (arm_gen_dicompare_reg): Handle LE/GT/LEU/GEU comparisons against
5038 a constant.
5039 (arm_gen_compare_reg): Handle compare (CONST, X) when the mode
5040 is CC_RSBmode.
5041 (maybe_get_arm_condition_code): CC_RSBmode now returns the same codes
5042 as CCmode.
5043 * config/arm/arm.md (rsb_imm_compare_scratch): New pattern.
5044 (rscsi3_<CC_EXTEND>out_scratch): New pattern.
5045
5046 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
5047
5048 * config/arm/arm-modes.def (CC_NV, CC_B): New CC modes.
5049 * config/arm/arm.c (arm_select_cc_mode): Recognize constructs that
5050 need these modes.
5051 (arm_gen_dicompare_reg): New code to early expand the sub-operations
5052 of EQ, NE, LT, GE, LTU and GEU.
5053 * config/arm/iterators.md (CC_EXTEND): New code attribute.
5054 * config/arm/predicates.md (arm_adcimm_operand): New predicate..
5055 * config/arm/arm.md (cmpsi3_carryin_<CC_EXTEND>out): New pattern.
5056 (cmpsi3_imm_carryin_<CC_EXTEND>out): Likewise.
5057 (cmpsi3_0_carryin_<CC_EXTEND>out): Likewise.
5058
5059 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
5060
5061 * config/arm/arm.md (cbranchdi4): Accept reg_or_int_operand for
5062 operand 2.
5063 (cstoredi4): Similarly, but for operand 3.
5064 * config/arm/arm.c (arm_canoncialize_comparison): Allow
5065 canonicalization of unsigned compares with a constant on Arm.
5066 Prefer using const+1 and adjusting the comparison over swapping the
5067 operands whenever the original constant was not valid.
5068 (arm_gen_dicompare_reg): If Y is not a valid operand, force it to a
5069 register here.
5070 (arm_validize_comparison): Do not force invalid DImode operands to
5071 registers here.
5072
5073 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
5074
5075 * config/arm/arm.c (arm_select_cc_mode): For DImode equality tests
5076 return CC_Zmode if comparing against a constant where one word is
5077 zero.
5078 (arm_gen_compare_reg): Split DImode handling to ...
5079 (arm_gen_dicompare_reg): ... here. Handle equality comparisons
5080 against simple constants.
5081 * config/arm/arm.md (arm_cmpdi_zero): Delete pattern.
5082
5083 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
5084
5085 * config/arm/arm.md (subsi3_carryin_shift_alt): New pattern.
5086 (rsbsi3_carryin_shift_alt): Likewise.
5087
5088 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
5089
5090 * config/arm/arm.md (negscc_borrow): New pattern.
5091 (mov_negscc): Don't split if the insn would match negscc_borrow.
5092 * config/arm/thumb2.md (thumb2_mov_negscc): Likewise.
5093 (thumb2_mov_negscc_strict_it): Likewise.
5094
5095 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
5096
5097 * config/arm/arm.c (arm_insn_cost): New function.
5098 (TARGET_INSN_COST): Override default definition.
5099
5100 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
5101
5102 * config/arm/arm.c (arm_rtx_costs_internal, case MINUS): Handle
5103 borrow operations.
5104
5105 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
5106
5107 * config/arm/arm.c (strip_carry_operation): New function.
5108 (arm_rtx_costs_internal, case PLUS): Handle addtion with carry-in
5109 for SImode.
5110
5111 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
5112
5113 * config/arm/predicates.md (arm_carry_operation): New special
5114 predicate.
5115 * config/arm/iterators.md (LTUGEU): Delete iterator.
5116 (cnb): Delete code attribute.
5117 (optab): Delete ltu and geu elements.
5118 * config/arm/arm.md (addsi3_carryin): Renamed from
5119 addsi3_carryin_<optab>. Remove iterator and use arm_carry_operand.
5120 (add0si3_carryin): Similarly, but from add0si3_carryin_<optab>.
5121 (addsi3_carryin_alt2): Similarly, but from addsi3_carryin_alt2_<optab>.
5122 (addsi3_carryin_clobercc): Similarly.
5123 (addsi3_carryin_shift): Similarly. Do not allow register shifts in
5124 Thumb2 state.
5125
5126 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
5127
5128 * config/arm/arm.md (arm_subdi3): Delete insn.
5129 (zextendsidi_negsi, negdi_extendsidi): Delete insn_and_split.
5130
5131 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
5132
5133 * config/arm/arm-modes.def (CC_RSB): New CC mode.
5134 * config/arm/predicates.md (arm_borrow_operation): Handle CC_RSBmode.
5135 * config/arm/arm.c (arm_select_cc_mode): Detect when we should
5136 return CC_RSBmode.
5137 (maybe_get_arm_condition_code): Handle CC_RSBmode.
5138 * config/arm/arm.md (subsi3_carryin): Make this pattern available to
5139 expand.
5140 (subdi3): Rewrite to early-expand the sub-operations.
5141 (rsb_im_compare): New pattern.
5142 (negdi2): Delete.
5143 (negdi2_insn): Delete.
5144 (arm_negsi2): Correct type attribute to alu_imm.
5145 (negsi2_0compare): New insn pattern.
5146 (negsi2_carryin): New insn pattern.
5147
5148 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
5149
5150 * config/arm/arm.md (addsi3_carryin_alt2): Use arm_not_operand for
5151 operand 2.
5152
5153 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
5154
5155 * config/arm/arm.md (addsi3_carryin_shift_<optab>): Reorder operands
5156 to match canonical form.
5157
5158 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
5159
5160 * config/arm/arm.md (zero_extend<mode>di2): Convert to define_expand.
5161 (extend<mode>di2): Likewise.
5162
5163 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
5164
5165 * config/arm/arm-protos.h (arm_decompose_di_binop): New prototype.
5166 * config/arm/arm.c (arm_decompose_di_binop): New function.
5167 * config/arm/arm.md (adddi3): Also accept any const_int for op2.
5168 If not generating Thumb-1 code, decompose the operation into 32-bit
5169 pieces.
5170 * add0si_carryin_<optab>: New pattern.
5171
5172 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
5173
5174 * arm.md (adddi3): Only accept register operands.
5175 (arm_adddi3): Convert to simple insn with no split. Do not accept
5176 constants.
5177 (adddi_sesidi_di): Delete patern.
5178 (adddi_zesidi_di): Likewise.
5179 (uaddv<mode>4): Use LTU as condition for branch.
5180 (adddi3_compareV): Convert to simple insn with no split.
5181 (addsi3_compareV_upper): Delete pattern.
5182 (adddi3_compareC): Convert to simple insn with no split. Correct
5183 flags setting expression.
5184 (addsi3_compareC_upper): Delete pattern.
5185 (addsi3_compareC): Correct flags setting expression.
5186 (subdi3_compare1): Convert to simple insn with no split.
5187 (subsi3_carryin_compare): Delete pattern.
5188 (arm_subdi3): Convert to simple insn with no split.
5189 (subdi_zesidi): Delete pattern.
5190 (subdi_di_sesidi): Delete pattern.
5191 (subdi_zesidi_di): Delete pattern.
5192 (subdi_sesidi_di): Delete pattern.
5193 (subdi_zesidi_zesidi): Delete pattern.
5194 (negvdi3): Use s_register_operand.
5195 (negdi2_compare): Convert to simple insn with no split.
5196 (negdi2_insn): Likewise.
5197 (negsi2_carryin_compare): Delete pattern.
5198 (negdi_zero_extendsidi): Delete pattern.
5199 (arm_cmpdi_insn): Convert to simple insn with no split.
5200 (negdi2): Don't call gen_negdi2_neon.
5201 * config/arm/neon.md (adddi3_neon): Delete pattern.
5202 (subdi3_neon): Delete pattern.
5203 (negdi2_neon): Delete pattern.
5204 (splits for negdi2_neon): Delete splits.
5205
5206 2019-10-18 Jakub Jelinek <jakub@redhat.com>
5207
5208 PR middle-end/92153
5209 * ggc-page.c (release_pages): Read g->alloc_size before free rather
5210 than after it.
5211
5212 2019-10-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
5213
5214 * config/arm/t-multilib: Add rule to regenerate mutlilib header file
5215 with any change to t-multilib, t-aprofile and t-rmprofile. Also add
5216 new multilib variants and new mappings.
5217
5218 2019-10-18 Georg-Johann Lay <avr@gjlay.de>
5219
5220 PR target/86040
5221 * config/avr/avr.c (avr_out_lpm): Do not shortcut-return.
5222
5223 2019-10-18 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5224 Richard Sandiford <richard.sandiford@arm.com>
5225
5226 PR target/86753
5227 * tree-vectorizer.h (scalar_cond_masked_key): New struct,
5228 and define hashmap traits for it.
5229 (loop_vec_info::scalar_cond_masked_set): New member.
5230 (vect_record_loop_mask): Adjust prototype.
5231 * tree-vectorizer.c (scalar_cond_masked_key::get_cond_ops_from_tree):
5232 Implement method.
5233 * tree-vect-loop.c (vectorizable_reduction): Pass NULL as last arg to
5234 vect_record_loop_mask.
5235 (vectorizable_live_operation): Likewise.
5236 (vect_record_loop_mask): New param scalar_mask. Add entry
5237 cond, loop_mask to scalar_cond_masked_set if scalar_mask is non NULL.
5238 * tree-vect-stmts.c (check_load_store_masking): New param scalar_mask.
5239 Pass it as last arg to vect_record_loop_mask.
5240 (vectorizable_call): Pass scalar_mask as last arg to
5241 vect_record_loop_mask.
5242 (vectorizable_store): Likewise.
5243 (vectorizable_load): Likewise.
5244 (vectorizable_condition): Check if another part of vectorized code
5245 applies loop_mask to condition or to it's inverse, and if yes,
5246 apply loop_mask to result of vector comparison.
5247
5248 2019-10-17 John David Anglin <danglin@gcc.gnu.org>
5249
5250 * config/pa/pa.c (pa_output_indirect_call): Fix typos in last change.
5251
5252 2019-10-18 Jakub Jelinek <jakub@redhat.com>
5253
5254 PR tree-optimization/92056
5255 * tree-ssa-strlen.c (determine_min_objsize): Call init_object_sizes
5256 before calling compute_builtin_object_size.
5257
5258 2019-10-17 Iain Sandoe <iain@sandoe.co.uk>
5259
5260 PR target/65342
5261 * config/rs6000/darwin.md (movdi_low, movsi_low_st): Delete.
5262 (movdi_low_st): Delete.
5263 * config/rs6000/rs6000.c
5264 (darwin_rs6000_legitimate_lo_sum_const_p): New.
5265 (mem_operand_gpr): Validate Mach-O LO_SUM cases separately.
5266 * config/rs6000/rs6000.md (movsi_low): Delete.
5267
5268 2019-10-17 Jason Merrill <jason@redhat.com>
5269
5270 * gimplify.h (get_initialized_tmp_var): Add default argument to
5271 post_p.
5272 * gimplify.c (gimplify_self_mod_expr, gimplify_omp_atomic): Remove
5273 NULL post_p argument.
5274 * targhooks (std_gimplify_va_arg_expr): Likewise.
5275
5276 2019-10-17 Richard Biener <rguenther@suse.de>
5277
5278 * tree-vectorizer.h (_stmt_vec_info::cond_reduc_code): Remove.
5279 (STMT_VINFO_VEC_COND_REDUC_CODE): Likewise.
5280 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Do not
5281 initialize STMT_VINFO_VEC_COND_REDUC_CODE.
5282 * tree-vect-loop.c (vect_is_simple_reduction): Set
5283 STMT_VINFO_REDUC_CODE.
5284 (vectorizable_reduction): Remove dead and redundant code, use
5285 STMT_VINFO_REDUC_CODE instead of STMT_VINFO_VEC_COND_REDUC_CODE.
5286
5287 2019-10-17 Georg-Johann Lay <avr@gjlay.de>
5288
5289 Fix breakage introduced by r276985.
5290
5291 * config/avr/avr.c (avr_option_override): Remove set of
5292 PARAM_ALLOW_STORE_DATA_RACES.
5293 * common/config/avr/avr-common.c (avr_option_optimization_table)
5294 [OPT_LEVELS_ALL]: Turn on -fallow-store-data-races.
5295
5296 2019-10-17 H.J. Lu <hongjiu.lu@intel.com>
5297
5298 * config/i386/i386.h (processor_costs): Add clear_ratio.
5299 (CLEAR_RATIO): Remove MIN and use ix86_cost->clear_ratio.
5300 * config/i386/x86-tune-costs.h: Set clear_ratio to the minimum
5301 of 6 and move_ratio in all cost models.
5302
5303 2019-10-17 Richard Biener <rguenther@suse.de>
5304
5305 * tree-vect-loop.c (check_reduction_path): Compute reduction
5306 operation here.
5307 (vect_is_simple_reduction): Remove special-case of single-stmt
5308 reduction path detection.
5309
5310 2019-10-17 Richard Earnshaw <rearnsha@arm.com>
5311
5312 * config/arm/arm-cpus.in (marvel-pj4): Add +fp to the architecture.
5313
5314 2019-10-17 Yuliang Wang <yuliang.wang@arm.com>
5315
5316 * config/aarch64/aarch64-sve2.md (aarch64_sve2_eor3<mode>)
5317 (aarch64_sve2_nor<mode>, aarch64_sve2_nand<mode>)
5318 (aarch64_sve2_bsl<mode>, aarch64_sve2_nbsl<mode>)
5319 (aarch64_sve2_bsl1n<mode>, aarch64_sve2_bsl2n<mode>):
5320 New combine patterns.
5321 * config/aarch64/iterators.md (BSL_DUP): New int iterator for the
5322 above.
5323 (bsl_1st, bsl_2nd, bsl_dup, bsl_mov): Attributes for the above.
5324
5325 2019-10-17 Aldy Hernandez <aldyh@redhat.com>
5326
5327 * tree-vrp.c (value_range_base::dump): Display +INF for both
5328 pointers and integers when appropriate.
5329
5330 2019-10-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
5331
5332 * tree-vect-loop.c (vect_analyze_loop_2): Use same condition to decide
5333 when to use versioning threshold.
5334
5335 2019-10-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
5336
5337 * tree-vect-loop.c (determine_peel_for_niter): New function contained
5338 outlined code from ...
5339 (vect_analyze_loop_2): ... here.
5340
5341 2019-10-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
5342
5343 * tree-vect-loop.c (vect_transform_loop): Move code from here...
5344 * tree-vect-loop-manip.c (vect_loop_versioning): ... to here.
5345 * tree-vectorizer.h (vect_loop_versioning): Remove unused parameters.
5346
5347 2019-10-17 Richard Biener <rguenther@suse.de>
5348
5349 * tree-vect-loop.c (needs_fold_left_reduction_p): Export.
5350 (vect_is_simple_reduction): Move all validity checks ...
5351 (vectorizable_reduction): ... here. Compute whether we
5352 need a fold-left reduction here.
5353 * tree-vect-patterns.c (vect_reassociating_reduction_p): Merge
5354 both overloads, check needs_fold_left_reduction_p directly.
5355 * tree-vectorizer.h (needs_fold_left_reduction_p): Declare.
5356
5357 2019-10-17 Richard Biener <rguenther@suse.de>
5358
5359 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Fix
5360 TARGET_MEM_REF creation.
5361
5362 2019-10-17 Richard Biener <rguenther@suse.de>
5363
5364 PR tree-optimization/92129
5365 * tree-vect-loop.c (vectorizable_reduction): Also fail
5366 on GIMPLE_SINGLE_RHS.
5367
5368 2019-10-17 Jakub Jelinek <jakub@redhat.com>
5369
5370 PR tree-optimization/92056
5371 * tree-object-size.c (cond_expr_object_size): Return early if then_
5372 processing resulted in unknown size.
5373
5374 PR tree-optimization/92115
5375 * tree-ssa-ifcombine.c (ifcombine_ifandif): Force condition into
5376 temporary if it could trap.
5377
5378 2019-10-17 Richard Biener <rguenther@suse.de>
5379
5380 PR debug/91887
5381 * dwarf2out.c (gen_formal_parameter_die): Also try to match
5382 context_die against a DW_TAG_GNU_formal_parameter_pack parent.
5383
5384 2019-10-16 Jakub Jelinek <jakub@redhat.com>
5385
5386 * tree-ssa-strlen.c (maybe_invalidate): Use
5387 HOST_WIDE_INT_PRINT_UNSIGNED instead of "%zu".
5388
5389 2019-10-16 Andrew Burgess <andrew.burgess@embecosm.com>
5390 Jim Wilson <jimw@sifive.com>
5391
5392 * config/riscv/riscv.h (REG_CLASS_CONTENTS): Add argument passing
5393 regs to SIBCALL_REGS.
5394 * config/riscv/riscv.c (riscv_regno_to_class): Change argument
5395 passing regs to SIBCALL_REGS.
5396
5397 2019-10-16 Martin Sebor <msebor@redhat.com>
5398
5399 PR tree-optimization/83821
5400 * tree-ssa-strlen.c (maybe_invalidate): Add argument. Consider
5401 the length of a string when available.
5402 (handle_builtin_memset) Add argument.
5403 (handle_store, strlen_check_and_optimize_call): Same.
5404 (check_and_optimize_stmt): Same. Pass it to callees.
5405
5406 2019-10-16 Martin Sebor <msebor@redhat.com>
5407
5408 PR tree-optimization/91996
5409 * tree-ssa-strlen.c (maybe_warn_pointless_strcmp): Improve location
5410 information.
5411 (compare_nonzero_chars): Add an overload.
5412 (count_nonzero_bytes): Add an argument. Call overload above.
5413 Handle non-constant lengths in some range.
5414 (handle_store): Add an argument.
5415 (check_and_optimize_stmt): Pass an argument to handle_store.
5416
5417 2019-10-16 Richard Earnshaw <rearnsha@arm.com>
5418
5419 * config/arm/arm.c (neon_valid_immediate): Clear bytes before use.
5420
5421 2019-10-16 Mihailo Stojanovic <mistojanovic@wavecomp.com>
5422
5423 * config/mips/mips.c (mips_expand_builtin_insn): Force the
5424 operands which correspond to the same input-output register to
5425 have the same pseudo assigned to them.
5426
5427 2019-10-16 Ilya Leoshkevich <iii@linux.ibm.com>
5428
5429 * cfgrtl.c (find_partition_fixes): Remove bbs_in_cold_partition.
5430
5431 2019-10-16 Wilco Dijkstra <wdijkstr@arm.com>
5432
5433 * config/aarch64/aarch64.c (aarch64_classify_symbol):
5434 Apply reasonable limit to symbol offsets.
5435
5436 2019-10-16 Richard Biener <rguenther@suse.de>
5437
5438 * tree-vect-loop.c (vect_valid_reduction_input_p): Remove.
5439 (vect_is_simple_reduction): Delay checking to
5440 vectorizable_reduction and relax the checking.
5441 (vectorizable_reduction): Check we have a simple use. Check
5442 for bogus condition reductions.
5443 * tree-vect-stmts.c (vect_transform_stmt): Make sure we
5444 are looking at the last stmt in a pattern sequence when
5445 filling in backedge PHI values.
5446
5447 2019-10-16 Peter Bergner <bergner@linux.ibm.com>
5448 Jiufu Guo <guojiufu@linux.ibm.com>
5449
5450 PR target/70010
5451 * config/rs6000/rs6000.c (rs6000_can_inline_p): Prohibit inlining if
5452 the callee explicitly disables some isa_flags the caller is using.
5453
5454 2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
5455
5456 * function-abi.cc (expr_callee_abi): Assert for POINTER_TYPE_P.
5457
5458 2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
5459
5460 * genmodes.c (mode_data::order): New field.
5461 (blank_mode): Update accordingly.
5462 (VECTOR_MODES_WITH_PREFIX): Add an order parameter.
5463 (make_vector_modes): Likewise.
5464 (VECTOR_MODES): Update use accordingly.
5465 (cmp_modes): Sort by the new order field ahead of sorting by size.
5466 * config/aarch64/aarch64-modes.def (VNx2QI, VN2xHI, VNx2SI)
5467 (VNx4QI, VNx4HI, VNx8QI): New partial vector modes.
5468 * config/aarch64/aarch64.c (VEC_PARTIAL): New flag value.
5469 (aarch64_classify_vector_mode): Handle the new partial modes.
5470 (aarch64_vl_bytes): New function.
5471 (aarch64_hard_regno_nregs): Use it instead of BYTES_PER_SVE_VECTOR
5472 when counting the number of registers in an SVE mode.
5473 (aarch64_class_max_nregs): Likewise.
5474 (aarch64_hard_regno_mode_ok): Don't allow partial vectors
5475 in registers yet.
5476 (aarch64_classify_address): Treat partial vectors analogously
5477 to full vectors.
5478 (aarch64_print_address_internal): Consolidate the printing of
5479 MUL VL addresses, using aarch64_vl_bytes as the number of
5480 bytes represented by "VL".
5481 (aarch64_vector_mode_supported_p): Reject partial vector modes.
5482
5483 2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
5484
5485 * config/aarch64/aarch64.c (aarch64_layout_frame): Use is_constant
5486 rather than known_lt when choosing frame layouts.
5487
5488 2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
5489
5490 * config/aarch64/aarch64.c (aarch64_layout_frame): Assert
5491 that all the adjustments add up to the full frame size.
5492 Use crtl->outgoing_args_size directly as the final adjustment
5493 where appropriate.
5494
5495 2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
5496
5497 * config/aarch64/aarch64.c (aarch64_layout_frame): Use a local
5498 "frame" reference instead of always referring directly to
5499 "cfun->machine->frame".
5500
5501 2019-10-16 Richard Biener <rguenther@suse.de>
5502
5503 PR tree-optimization/92119
5504 * tree-vect-patterns.c (vect_recog_rotate_pattern): Guard
5505 against missing bswap lhs.
5506
5507 2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
5508
5509 PR middle-end/92033
5510 * poly-int.h (constant_lower_bound_with_limit): New function.
5511 (constant_upper_bound_with_limit): Likewise.
5512 * doc/poly-int.texi: Document them.
5513 * tree-vrp.c (value_range_base::set): Convert POLY_INT_CST bounds
5514 into the worst-case INTEGER_CST bounds.
5515
5516 2019-10-16 Feng Xue <fxue@os.amperecomputing.com>
5517
5518 PR ipa/91088
5519 * doc/invoke.texi (ipa-max-param-expr-ops): Document new option.
5520 * params.def (PARAM_IPA_MAX_PARAM_EXPR_OPS): New.
5521 * ipa-predicat.h (struct expr_eval_op): New struct.
5522 (expr_eval_ops): New typedef.
5523 (struct condition): Add type and param_ops fields, remove size field.
5524 (add_condition): Replace size parameter with type parameter, add
5525 param_ops parameter.
5526 * ipa-predicat.c (expr_eval_ops_equal_p): New function.
5527 (predicate::add_clause): Add comparisons on type and param_ops.
5528 (dump_condition): Add debug dump for param_ops.
5529 (remap_after_inlining): Adjust call arguments to add_condition.
5530 (add_condition): Replace size parameter with type parameter, add
5531 param_ops parameter. Unshare constant value used in conditions.
5532 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Fold
5533 parameter expressions using param_ops.
5534 (decompose_param_expr): New function.
5535 (set_cond_stmt_execution_predicate): Use call to decompose_param_expr
5536 to replace call to unmodified_parm_or_parm_agg_item.
5537 (set_switch_stmt_execution_predicate): Likewise.
5538 (will_be_nonconstant_expr_predicate): Likewise. Replace usage of size
5539 with type.
5540 (inline_read_section): Read param_ops from summary stream.
5541 (ipa_fn_summary_write): Write param_ops to summary stream.
5542
5543 2019-10-15 Segher Boessenkool <segher@kernel.crashing.org>
5544
5545 PR rtl-optimization/92107
5546 * genattrtab.c (write_attr_value) <do_operator>: Parenthesize the
5547 expression written.
5548
5549 2019-10-15 Iain Sandoe <iain@sandoe.co.uk>
5550
5551 * config/darwin.c: Update description of fix and continue.
5552
5553 2019-10-15 Iain Sandoe <iain@sandoe.co.uk>
5554
5555 * config/darwin.c (darwin_binds_local_p): Update to call
5556 default_binds_local_p_3 () directly. amend comments.
5557
5558 2019-10-15 Richard Biener <rguenther@suse.de>
5559
5560 * lto-streamer-out.c (lto_variably_modified_type_p): New.
5561 (tree_is_indexable): Use it.
5562 * tree-streamer-out.c (pack_ts_type_common_value_fields):
5563 Stream variably_modified_type_p as TYPE_LANG_FLAG_0.
5564 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
5565
5566 2019-10-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
5567
5568 * config/msp430/msp430.md (zero_extendqipsi2): New.
5569 (zero_extendqisi2): Optimize case where src register and base dst
5570 register are the same.
5571 (zero_extendhipsi2): Don't use 430X insn for rYs->r case.
5572 (zero_extendpsisi2): Optimize r->m case.
5573 Add unnamed insn patterns to catch insns combine searches for when
5574 optimizing pointer manipulation.
5575
5576 2019-10-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
5577
5578 * config/msp430/msp430.md: Group zero_extend* insns together.
5579
5580 2019-10-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
5581
5582 * config/msp430/constraints.md: Allow post_inc operand for "Ya"
5583 constraint.
5584 * config/msp430/msp430.c (msp430_legitimate_address_p): Handle
5585 POST_INC.
5586 (msp430_subreg): Likewise.
5587 (msp430_split_addsi): Likewise.
5588 (msp430_print_operand_addr): Likewise.
5589 * config/msp430/msp430.h (HAVE_POST_INCREMENT): Define.
5590 (USE_STORE_POST_INCREMENT): Define.
5591 * config/msp430/msp430.md: Use the msp430_general_dst_operand or
5592 msp430_general_dst_nonv_operand predicates for the lvalues of insns.
5593 * config/msp430/predicates.md (msp430_nonpostinc_operand): New.
5594 (msp430_general_dst_operand): New.
5595 (msp430_general_dst_nonv_operand): New.
5596 (msp430_nonsubreg_operand): Remove.
5597 (msp430_nonsubreg_dst_operand): New.
5598 (msp430_nonsubreg_or_imm_operand): Allow reg or mem operands in place
5599 of defunct msp430_nonsubreg_operand.
5600 (msp430_nonsubregnonpostinc_or_imm_operand): New.
5601
5602 2019-10-15 Richard Biener <rguenther@suse.de>
5603
5604 PR tree-optimization/91929
5605 * tree-ssa-pre.c (pre_expr_d::loc): New member.
5606 (get_or_alloc_expr_for_name): Initialize it.
5607 (get_or_alloc_expr_for_constant): Likewise.
5608 (phi_translate_1): Copy it.
5609 (create_expression_by_pieces): Use the original location
5610 of the expression for the inserted stmt.
5611 (compute_avail): Record the location of the stmt for the
5612 expressions created.
5613
5614 2019-10-15 Richard Sandiford <richard.sandiford@arm.com>
5615
5616 * tree-ssa-strlen.c (count_nonzero_bytes): Check tree_fits_uhwi_p
5617 before using tree_to_uhwi.
5618
5619 2019-10-15 Ilya Leoshkevich <iii@linux.ibm.com>
5620
5621 * config/s390/s390.md: Run %a0:DI splitters only after reload.
5622
5623 2019-10-15 Richard Biener <rguenther@suse.de>
5624
5625 PR tree-optimization/92094
5626 * tree-vect-loop.c (vectorizable_reduction): For nested cycles
5627 do not adjust the reduction definition def type.
5628 * tree-vect-stmts.c (vect_transform_stmt): Verify the scalar stmt
5629 defines the latch argument of the PHI.
5630
5631 2019-10-15 Hongyu Wang <hongtao.wang@intel.com>
5632
5633 PR target/92035
5634 * config/i386/avx512fintrin.h (_mm_mask_roundscale_ss,
5635 _mm_maskz_roundscale_ss, _mm_maskz_roundscale_round_ss,
5636 _mm_maskz_roundscale_round_ss, _mm_mask_roundscale_sd,
5637 _mm_maskz_roundscale_sd, _mm_mask_roundscale_round_sd,
5638 _mm_maskz_roundscale_round_sd): New intrinsics.
5639 (_mm_roundscale_ss, _mm_roundscale_round_ss): Use
5640 __builtin_ia32_rndscales?_mask_round builtins instead of
5641 __builtin_ia32_rndscales?_round.
5642 * config/i386/i386-builtin.def (__builtin_ia32_rndscaless_round,
5643 __builtin_ia32_rndscalesd_round): Remove.
5644 (__builtin_ia32_rndscaless_mask_round,
5645 __builtin_ia32_rndscalesd_mask_round): New intrinsics.
5646 * config/i386/sse.md
5647 (avx512f_rndscale<mode><round_saeonly_name>): Renamed to ...
5648 (avx512f_rndscale<mode><mask_scalar_name><round_saeonly_scalar_name>):
5649 ... this, adjust and add subst atrributes to make it maskable.
5650
5651 2019-10-15 Richard Biener <rguenther@suse.de>
5652
5653 PR middle-end/92046
5654 * common.opt (fallow-store-data-races): New.
5655 * params.def (PARAM_ALLOW_STORE_DATA_RACES): Remove.
5656 * params.h (ALLOW_STORE_DATA_RACES): Likewise.
5657 * doc/invoke.texi (fallow-store-data-races): Document.
5658 (--param allow-store-data-races): Remove docs.
5659 * opts.c (default_options_table): Enable -fallow-store-data-races
5660 at -Ofast.
5661 (default_options_optimization): Do not enable --param
5662 allow-store-data-races at -Ofast.
5663 * tree-if-conv.c (ifcvt_memrefs_wont_trap): Use flag_store_data_races
5664 instead of PARAM_ALLOW_STORE_DATA_RACES.
5665 * tree-ssa-loop-im.c (execute_sm): Likewise.
5666
5667 2019-10-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5668
5669 PR tree-optimization/92085
5670 * tree-if-conv.c (ifcvt_local_dce): Call gsi_next in else clause,
5671 instead of calling it unconditionally after
5672 delete_dead_or_redundant_assignment and fix indentation.
5673
5674 2019-10-15 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
5675
5676 * config/arm/vfp.md (fma<SDF:mode>4): Enable DF only when
5677 TARGET_VFP_DOUBLE.
5678 (*fmsub<SDF:mode>4): Likewise.
5679 *fnmsub<SDF:mode>4): Likewise.
5680 (*fnmadd<SDF:mode>4): Likewise.
5681
5682 2019-10-14 Joel Hutton <Joel.Hutton@arm.com>
5683
5684 * doc/tree-ssa.texi: Update renamed macro name.
5685
5686 2019-10-14 Mihailo Stojanovic <mistojanovic@wavecomp.com>
5687
5688 * config/mips/mips.c (mips_cannot_force_const_mem): Reject
5689 vector constants.
5690
5691 2019-10-14 Iain Sandoe <iain@sandoe.co.uk>
5692
5693 * config/darwin.c: Use unsigned ints for the picbase label
5694 counters, initialise the vars explicitly.
5695 (update_pic_label_number_if_needed): Move a variable declaration
5696 to where it's needed.
5697 (machopic_output_function_base_name): Use a more strict checking
5698 assert, and and unsigned int for the picbase label counter.
5699 (machopic_get_function_picbase): Likewise.
5700
5701 2019-10-14 Richard Biener <rguenther@suse.de>
5702
5703 PR middle-end/92046
5704 * dse.c (scan_insn): Use param max_active_local_stores.
5705 (dse_step1): Get PARAM_MAX_DSE_ACTIVE_LOCAL_STORES and adjust
5706 based on optimization level.
5707 * loop-invariant.c (move_loop_invariants): Adjust
5708 LOOP_INVARIANT_MAX_BBS_IN_LOOP based on optimization level.
5709 * opts.c (default_options_optimization): Do not adjust
5710 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES and
5711 LOOP_INVARIANT_MAX_BBS_IN_LOOP here.
5712
5713 2019-10-14 Wilco Dijkstra <wdijkstr@arm.com>
5714
5715 * config/arm/arm.c (arm_legitimize_address): Remove Thumb-2 bailout.
5716
5717 2019-10-14 Wilco Dijkstra <wdijkstr@arm.com>
5718
5719 * config/arm/arm.c (arm_option_override): Don't override sched
5720 pressure algorithm.
5721
5722 2019-10-14 Richard Biener <rguenther@suse.de>
5723
5724 PR tree-optimization/92069
5725 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): For nested
5726 cycles do not set vect_nested_cycle on the latch definition.
5727
5728 2019-10-14 Richard Sandiford <richard.sandiford@arm.com>
5729
5730 * function-abi.h (expr_callee_abi): Declare.
5731 * function-abi.cc (expr_callee_abi): New function.
5732
5733 2019-10-14 Aldy Hernandez <aldyh@redhat.com>
5734
5735 * tree-vrp.c (value_range_base::set): Normalize unsigned ~[0,0]
5736 into [1,MAX].
5737 * tree-vrp.h (value_range_base::nonzero_p): Adjust for unsigned
5738 non-zero being represented as [1,MAX].
5739
5740 2019-10-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
5741
5742 * tree-sra.c (dump_access): Add missing braces.
5743
5744 2019-10-13 Iain Sandoe <iain@sandoe.co.uk>
5745
5746 * config/darwin.c (machopic_indirection_name): Rework the
5747 function to emit linker-visible symbols only for indirections
5748 in the data section. Clean up the code and update comments.
5749
5750 2019-10-13 Iain Sandoe <iain@sandoe.co.uk>
5751
5752 * config/darwin.c (machopic_indirect_data_reference): Remove
5753 redundant code.
5754
5755 2019-10-13 Nathan Sidwell <nathan@acm.org>
5756
5757 * gengtype-lex.l (CXX_KEYWORD): Add 'mutable'.
5758
5759 2019-10-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5760
5761 * doc/sourcebuild.texi (Test Directives, Add Options): Remove
5762 c99_runtime.
5763
5764 2019-10-12 Jan Hubicka <hubicka@ucw.cz>
5765
5766 * lto-streamer-out.c (collect_block_tree_leafs): Renumber statements
5767 so non-virutal are before virutals.
5768 (output_function): Avoid body modifications.
5769
5770 2019-10-12 John David Anglin <danglin@gcc.gnu.org>
5771
5772 * config/pa/pa.c (pa_output_call): Load descriptor address to register
5773 %r22. Load function address before global pointer.
5774 (pa_attr_length_indirect_call): Adjust length of inline versions of
5775 $$dyncall.
5776 (pa_output_indirect_call): Remove fast inline version of $$dyncall
5777 before normal cases. Update inline $$dyncall sequences to preserve
5778 function descriptor address in register %r22.
5779 (TRAMPOLINE_CODE_SIZE): Adjust.
5780 (pa_asm_trampoline_template): Revise 32-bit trampoline. Don't assume
5781 register %r22 contains trampoline address.
5782 (pa_trampoline_init): Adjust offsets.
5783 (pa_trampoline_adjust_address): Likewise.
5784 * config/pa/pa.h (TRAMPOLINE_SIZE): Adjust 32-bit size.
5785
5786 2019-10-12 Iain Sandoe <iain@sandoe.co.uk>
5787
5788 PR target/67183
5789 * config/darwin.c (machopic_indirection): New field to flag
5790 non-lazy-symbol-pointers in the data section.
5791 (machopic_indirection_name): Compute if an indirection should
5792 appear in the data section.
5793 (machopic_output_data_section_indirection): New callback split
5794 from machopic_output_indirection.
5795 (machopic_output_stub_indirection): Likewise.
5796 (machopic_output_indirection): Retain the code for non-lazy
5797 symbol pointers in their regular section.
5798 (machopic_finish): Use the new callbacks to order the indirection
5799 output.
5800
5801 2019-10-12 Iain Sandoe <iain@sandoe.co.uk>
5802
5803 * config/darwin-protos.h (machopic_finish): Delete.
5804 * config/darwin.c (machopic_finish): Make static.
5805
5806 2019-10-12 Iain Sandoe <iain@sandoe.co.uk>
5807
5808 * config/darwin.c (darwin_file_end): Only emit empty CTOR/DTOR
5809 sections when building kernel extension code.
5810
5811 2019-10-12 Palmer Dabbelt <palmer@sifive.com>
5812
5813 * doc/extend.texi (Alternate Keywords): Change "-std=c11" to "a
5814 later standard."
5815
5816 2019-10-12 John David Anglin <danglin@gcc.gnu.org>
5817
5818 * config/pa/pa.c (pa_option_override): Remove trailing comma
5819 from warning.
5820
5821 2019-10-12 Jakub Jelinek <jakub@redhat.com>
5822
5823 PR middle-end/92063
5824 * tree-eh.c (operation_could_trap_helper_p) <case COND_EXPR>
5825 <case VEC_COND_EXPR>: Return false with *handled = false.
5826 (tree_could_trap_p): For {,VEC_}COND_EXPR return false instead of
5827 recursing on the first operand.
5828 * fold-const.c (simple_operand_p_2): Use generic_expr_could_trap_p
5829 instead of tree_could_trap_p.
5830 * tree-ssa-sccvn.c (vn_nary_may_trap): Formatting fixes.
5831
5832 2019-10-11 Jim Wilson <jimw@sifive.com>
5833
5834 PR rtl-optimization/91860
5835 * combine.c (subst): If new_rtx is a constant, also check for
5836 SIGN_EXTEND when deciding whether to call simplify_unary_operation.
5837
5838 2019-10-11 Richard Sandiford <richard.sandiford@arm.com>
5839
5840 * expr.c (store_expr): Use rtx_to_poly_int64 rather than
5841 INTVAL when calling store_bit_field.
5842
5843 2019-10-11 Wilco Dijkstra <wdijkstr@arm.com>
5844
5845 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Set when optimizing for
5846 size.
5847
5848 2019-10-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
5849
5850 * tree-vect-loop.c (vect_analyze_loop_operations): Adjust call to
5851 vectorizable_live_operation.
5852 (vectorizable_live_operation): Adjust parameters.
5853 * tree-vect-stmts.c (vect_init_vector,
5854 vect_gen_widened_results_half): Fix typo in function comment.
5855 (can_vectorize_live_stmts): Adjust function comment.
5856 Adjust parameters. Adjust call to vectorizable_live_operation.
5857 (vect_analyze_stmt): Adjust call to can_vectorize_live_stmts.
5858 (vect_transform_stmt): Adjust function comment. Adjust call to
5859 can_vectorize_live_stmts.
5860 * tree-vectorizer.h (vectorizable_live_operation): Adjust parameters.
5861
5862 2019-10-11 Richard Biener <rguenther@suse.de>
5863
5864 PR tree-optimization/90883
5865 PR tree-optimization/91091
5866 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use correct
5867 alias-sets both for recording VN table entries and continuing
5868 walking after translating through copies. Handle same-sized
5869 reads from SSA names by returning the plain SSA name.
5870 (eliminate_dom_walker::eliminate_stmt): Properly handle
5871 non-size precision stores in redundant store elimination.
5872
5873 2019-10-11 Jan Hubicka <hubicka@ucw.cz>
5874
5875 * ggc-page.c (release_pages): Output statistics when !quiet_flag.
5876 (ggc_collect): Dump later to not interfere with release_page dump.
5877 (ggc_trim): New function.
5878 * ggc-none.c (ggc_trim): New.
5879 * ggc.h (ggc_trim): Declare.
5880
5881 2019-10-11 Richard Biener <rguenther@suse.de>
5882
5883 PR tree-optimization/92066
5884 PR tree-optimization/92046
5885 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
5886 Fix bogus cost model check.
5887
5888 2019-10-11 Tobias Burnus <tobias@codesourcery.com>
5889
5890 * langhooks-def.h (LANG_HOOKS_OMP_IS_ALLOCATABLE_OR_PTR): Define.
5891 (LANG_HOOKS_DECLS): Add it.
5892 * langhooks.h (lang_hooks_for_decls): Add omp_is_allocatable_or_ptr;
5893 update comment for omp_is_optional_argument.
5894 * omp-general.c (omp_is_allocatable_or_ptr): New.
5895 * omp-general.h (omp_is_allocatable_or_ptr): Declare.
5896 * omp-low.c (scan_sharing_clauses, lower_omp_target): Handle
5897 Fortran's optional arguments and allocatable/pointer scalars
5898 with use_device_addr.
5899
5900 2019-10-11 Ilya Leoshkevich <iii@linux.ibm.com>
5901
5902 PR target/77918
5903 * config/s390/2827.md: Add new opcodes.
5904 * config/s390/2964.md: Likewise.
5905 * config/s390/3906.md: Likewise.
5906 * config/s390/8561.md: Likewise.
5907 * config/s390/s390-builtins.def (s390_vfchesb): Use
5908 the new vec_cmpgev4sf_quiet_nocc.
5909 (s390_vfchedb): Use the new vec_cmpgev2df_quiet_nocc.
5910 (s390_vfchsb): Use the new vec_cmpgtv4sf_quiet_nocc.
5911 (s390_vfchdb): Use the new vec_cmpgtv2df_quiet_nocc.
5912 (vec_cmplev4sf): Use the new vec_cmplev4sf_quiet_nocc.
5913 (vec_cmplev2df): Use the new vec_cmplev2df_quiet_nocc.
5914 (vec_cmpltv4sf): Use the new vec_cmpltv4sf_quiet_nocc.
5915 (vec_cmpltv2df): Use the new vec_cmpltv2df_quiet_nocc.
5916 * config/s390/s390-modes.def (CCSFPS): New mode.
5917 * config/s390/s390.c (s390_match_ccmode_set): Support CCSFPS.
5918 (s390_select_ccmode): Return CCSFPS for LT, LE, GT, GE and LTGT.
5919 (s390_branch_condition_mask): Reuse CCS for CCSFPS.
5920 (s390_expand_vec_compare): Use non-signaling patterns where
5921 necessary.
5922 (s390_reverse_condition): Support CCSFPS.
5923 * config/s390/s390.md (*cmp<mode>_ccsfps): New pattern.
5924 * config/s390/vector.md: (VFCMP_HW_OP): Remove.
5925 (asm_fcmp_op): Likewise.
5926 (*smaxv2df3_vx): Use pattern for quiet comparison.
5927 (*sminv2df3_vx): Likewise.
5928 (*vec_cmp<VFCMP_HW_OP:code><mode>_nocc): Remove.
5929 (*vec_cmpeq<mode>_quiet_nocc): New pattern.
5930 (vec_cmpgt<mode>_quiet_nocc): Likewise.
5931 (vec_cmplt<mode>_quiet_nocc): New expander.
5932 (vec_cmpge<mode>_quiet_nocc): New pattern.
5933 (vec_cmple<mode>_quiet_nocc): New expander.
5934 (*vec_cmpeq<mode>_signaling_nocc): New pattern.
5935 (*vec_cmpgt<mode>_signaling_nocc): Likewise.
5936 (*vec_cmpgt<mode>_signaling_finite_nocc): Likewise.
5937 (*vec_cmpge<mode>_signaling_nocc): Likewise.
5938 (*vec_cmpge<mode>_signaling_finite_nocc): Likewise.
5939 (vec_cmpungt<mode>): New expander.
5940 (vec_cmpunge<mode>): Likewise.
5941 (vec_cmpuneq<mode>): Use quiet patterns.
5942 (vec_cmpltgt<mode>): Allow only on z14+.
5943 (vec_cmpordered<mode>): Use quiet patterns.
5944 (vec_cmpunordered<mode>): Likewise.
5945 (VEC_CMP_EXPAND): Add ungt and unge.
5946
5947 2019-10-11 Jan Hubicka <hubicka@ucw.cz>
5948
5949 * gimple-streamer-out.c (output_gimple_stmt): Add explicit function
5950 parameter.
5951 * lto-streamer-out.c: Include tree-dfa.h.
5952 (output_cfg): Do not use cfun.
5953 (lto_prepare_function_for_streaming): New.
5954 (output_function): Do not push cfun; do not initialize loop optimizer.
5955 * lto-streamer.h (lto_prepare_function_for_streaming): Declare.
5956 * passes.c (ipa_write_summaries): Use it.
5957 (ipa_write_optimization_summaries): Do not modify bodies.
5958 * tree-dfa.c (renumber_gimple_stmt_uids): Add function parameter.
5959 * tree.dfa.h (renumber_gimple_stmt_uids): Update prototype.
5960 * tree-ssa-dse.c (pass_dse::execute): Update use of
5961 renumber_gimple_stmt_uids.
5962 * tree-ssa-math-opts.c (pass_optimize_widening_mul::execute): Likewise.
5963
5964 2019-10-11 Kewen Lin <linkw@gcc.gnu.org>
5965
5966 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Lower
5967 vec_promote_demote cost to 1 for non-Power7 VSX architectures.
5968
5969 2019-10-10 Joseph Myers <joseph@codesourcery.com>
5970
5971 * ginclude/float.h [!__DEC32_MANT_DIG__]: Do not define DFP
5972 macros.
5973 [__STDC_WANT_IEC_60559_DFP_EXT__ || __STDC_VERSION__ > 201710L]:
5974 Also define DFP macros for these conditions.
5975 [!__STDC_WANT_DEC_FP__] (DEC32_SUBNORMAL_MIN, DEC64_SUBNORMAL_MIN,
5976 DEC128_SUBNORMAL_MIN): Do not define.
5977 [__STDC_WANT_IEC_60559_DFP_EXT__ || __STDC_VERSION__ > 201710L]
5978 (DEC32_TRUE_MIN, DEC64_TRUE_MIN, DEC128_TRUE_MIN): New macros.
5979
5980 2019-10-10 Xiong Hu Luo <luoxhu@linux.ibm.com>
5981 Sandra Loosemore <sandra@codesourcery.com>
5982
5983 PR middle-end/26241
5984 * doc/lto.texi (IPA): Reference to the IPA passes.
5985 * doc/passes.texi (Pass manager): Add node IPA passes and
5986 description for each IPA pass.
5987
5988 2019-10-10 Jan Hubicka <hubicka@ucw.cz>
5989
5990 * ipa-reference.c: Do not include splay-tree.h
5991 (reference_vars_to_consider): Turn to hash map.
5992 (get_static_name, ipa_init, analyze_function, propagate,
5993 stream_out_bitmap, ipa_reference_write_optimization_summary,
5994 ipa_reference_write_optimization_summary): Update.
5995
5996 2019-10-10 Jan Hubicka <hubicka@ucw.cz>
5997
5998 * ipa-reference.c (propagate): Fix releasing of IPA summaries.
5999
6000 2019-10-10 Iain Sandoe <iain@sandoe.co.uk>
6001
6002 * config/darwin.c: Lookup Objective C metadata and force indirection
6003 for IVAR refs.
6004
6005 2019-10-10 Michael Meissner <meissner@linux.ibm.com>
6006
6007 * config/rs6000/rs6000.c (quad_address_p): Add check for prefixed
6008 addresses.
6009 (mem_operand_gpr): Add check for prefixed addresses.
6010 (mem_operand_ds_form): Add check for prefixed addresses.
6011 (rs6000_legitimate_offset_address_p): If we support prefixed
6012 addresses, check for a 34-bit offset instead of 16-bit.
6013 (rs6000_legitimate_address_p): Add check for prefixed addresses.
6014 Do not allow load/store with update if the address is prefixed.
6015 (rs6000_mode_dependent_address): If we support prefixed
6016 addresses, check for a 34-bit offset instead of 16-bit.
6017
6018 2019-10-10 Ilya Leoshkevich <iii@linux.ibm.com>
6019
6020 PR target/77918
6021 * config/s390/vector.md (vcond_comparison_operator): New
6022 predicate.
6023 (vcond<V_HW:mode><V_HW2:mode>): Use vcond_comparison_operator.
6024
6025 2019-10-10 David Malcolm <dmalcolm@redhat.com>
6026
6027 PR 87488
6028 * Makefile.in (CFLAGS-opts.o): Pass in DOCUMENTATION_ROOT_URL via
6029 -D.
6030 * configure.ac (--with-documentation-root-url): New option.
6031 * configure: Regenerate.
6032 * diagnostic-format-json.cc (json_end_diagnostic): If there is an
6033 option URL, add it as a new string field of the diagnostic option.
6034 * diagnostic.c (diagnostic_initialize): Initialize get_option_url.
6035 (print_option_information): If get_option_url is non-NULL, call
6036 it, and if the result is non-NULL, potentially emit an escape
6037 sequence to markup the option text with the resulting URL.
6038 * diagnostic.h (diagnostic_context::get_option_url): New callback.
6039 * doc/invoke.texi (-fdiagnostics-format=): Add "option_url" to
6040 example of JSON output.
6041 * opts-diagnostic.h (get_option_url): New decl.
6042 * opts.c (get_option_url): New function.
6043 * toplev.c (general_init): Initialize the get_option_url callback.
6044
6045 2019-10-10 David Malcolm <dmalcolm@redhat.com>
6046
6047 PR 87488
6048 * common.opt (fdiagnostics-urls=): New option.
6049 (diagnostic-url.h): Add SourceInclude.
6050 (diagnostic_url_rule): New enum.
6051 * diagnostic-color.c: Include "diagnostic-url.h".
6052 (diagnostic_urls_enabled_p): New function.
6053 * diagnostic-url.h: New file.
6054 * diagnostic.c: Include "diagnostic-url.h".
6055 (diagnostic_urls_init): New function.
6056 * diagnostic.h (diagnostic_urls_init): New decl.
6057 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
6058 -fdiagnostics-urls to the list.
6059 (-fdiagnostics-urls): New option.
6060 * gcc.c (driver_handle_option): Handle OPT_fdiagnostics_urls_.
6061 (driver::global_initializations): Call diagnostic_urls_init.
6062 * opts-global.c (init_options_once): Likewise.
6063 * opts.c (common_handle_option): Handle OPT_fdiagnostics_urls_.
6064 * pretty-print.c (pretty_printer::pretty_printer): Initialize
6065 show_urls.
6066 (pp_begin_url): New function.
6067 (pp_end_url): New function.
6068 (selftest::test_urls): New selftest.
6069 (selftest::pretty_print_c_tests): Call it.
6070 * pretty-print.h (pretty_printer::show_urls): New field.
6071 (pp_begin_url): New decl.
6072 (pp_end_url): New decl.
6073
6074 2019-10-10 Uroš Bizjak <ubizjak@gmail.com>
6075
6076 PR target/92022
6077 * config/alpha/alpha.c (alpha_handle_trap_shadows): Skip DEBUG_INSN.
6078
6079 2019-10-10 Oleg Endo <olegendo@gcc.gnu.org>
6080
6081 PR target/88630
6082 * config/sh/sh.h (TARGET_FPU_SH4_300): New macro.
6083 * config/sh/sh.c (sh_option_override): Enable fsca and fsrra insns
6084 also for TARGET_FPU_SH4_300.
6085 (sh_emit_mode_set): Check for TARGET_FPU_SH4_300 instead of
6086 TARGET_SH4_300.
6087 * config/sh/sh.md (toggle_pr): Add TARGET_FPU_SH4_300 condition.
6088 (negsf2): Expand to either negsf2_fpscr or negsf2_no_fpscr.
6089 (*negsf2_i): Split into ...
6090 (negsf2_fpscr, negsf2_no_fpscr): ... these new patterns.
6091 (abssf2): Expand to either abssf2_fpsc or abssf2_no_fpsc.
6092 (**abssf2_i): Split into ...
6093 (abssf2_fpscr, abssf2_no_fpscr): ... these new patterns.
6094 (negdf2): Expand to either negdf2_fpscr or negdf2_no_fpscr.
6095 (*negdf2_i): Split into ...
6096 (negdf2_fpscr, negdf2_no_fpscr): ... these new patterns.
6097 (absdf2): Expand to either absdf2_fpscr or absdf2_no_fpsc.
6098 (**abssf2_i): Split into ...
6099 (absdf2_fpscr, absdf2_no_fpscr): ... these new patterns.
6100
6101 2019-10-10 Richard Biener <rguenther@suse.de>
6102
6103 PR middle-end/92046
6104 * opts.c (finish_options): Do not influence global --params
6105 from options that are adjustable per function.
6106 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
6107 Apply --param adjustment based on active cost-model.
6108 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Disable
6109 further store-sinking when vectorization or if-conversion
6110 are not enabled.
6111
6112 2019-10-10 Jan Hubicka <hubicka@ucw.cz>
6113
6114 PR middle-end/92037
6115 * cgraph.c (symbol_table_test::symbol_table_test): Use ggc_alloc
6116 rather than ggc_alloc_cleared to alloc symbol table.
6117 * toplev.c (general_init): Likewise.
6118 * cgraph.h (symbol_table): Explicitly construct every field.
6119
6120 2019-10-10 Andreas Krebbel <krebbel@linux.ibm.com>
6121
6122 * common/config/s390/s390-common.c (PF_ARCH13): Rename to...
6123 (PF_Z15): ... this.
6124 * config.gcc: Add z15 as option for --with-arch and --with-tune
6125 configure switches.
6126 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Add
6127 error reporting for unsupported builtins.
6128 * config/s390/s390-opts.h (enum processor_type): Rename
6129 PROCESSOR_8561_ARCH13 to PROCESSOR_8561_Z15.
6130 * config/s390/8561.md: Rename arch13 to z15 throughout the file.
6131 * config/s390/driver-native.c (s390_host_detect_local_cpu):
6132 Likewise.
6133 * config/s390/s390-builtins.def: Likewise.
6134 * config/s390/s390.c (processor_table): Add z15 as option and keep arch13 as alternative.
6135 (s390_expand_builtin): Add missing check for unsupported builtins.
6136 (s390_canonicalize_comparison): Rename TARGET_ARCH13 to TARGET_Z15.
6137 (s390_rtx_costs): Likewise.
6138 (s390_get_sched_attrmask): Rename arch13 to z15.
6139 (s390_get_unit_mask): Likewise.
6140 (s390_is_fpd): Likewise.
6141 (s390_is_fxd): Likewise.
6142 * config/s390/s390.h (enum processor_flags): Likewise.
6143 * config/s390/s390.md: Likewise.
6144 * config/s390/vector.md: Likewise.
6145 * config/s390/vx-builtins.md: Likewise.
6146 * config/s390/s390.opt: Add z15 to processor_type value.
6147
6148 2019-10-10 Andreas Krebbel <krebbel@linux.ibm.com>
6149
6150 PR target/91035
6151 * config/s390/s390-protos.h (s390_output_split_stack_data): Add
6152 prototype.
6153 * config/s390/s390.md (UNSPECV_SPLIT_STACK_DATA): Remove.
6154 ("split_stack_data", "split_stack_call")
6155 ("split_stack_call_<mode>", "split_stack_cond_call")
6156 ("split_stack_cond_call_<mode>"): Remove.
6157 ("@split_stack_call<mode>", "@split_stack_cond_call<mode>"): New
6158 insn definition.
6159 * config/s390/s390.c (s390_output_split_stack_data): New function.
6160 (s390_expand_split_stack_prologue): Use the merged expander.
6161
6162 2019-10-09 Martin Sebor <msebor@redhat.com>
6163
6164 PR tree-optimization/90879
6165 * builtins.c (check_access): Avoid using maxbound when null.
6166 * calls.c (maybe_warn_nonstring_arg): Adjust to get_range_strlen change.
6167 * doc/invoke.texi (-Wstring-compare): Document new warning option.
6168 * gimple-fold.c (get_range_strlen_tree): Make setting maxbound
6169 conditional.
6170 (get_range_strlen): Overwrite initial maxbound when non-null.
6171 * gimple-ssa-sprintf.c (get_string_length): Adjust to get_range_strlen
6172 changes.
6173 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Same.
6174 (used_only_for_zero_equality): New function.
6175 (handle_builtin_memcmp): Call it.
6176 (determine_min_objsize): Return an integer instead of tree.
6177 (get_len_or_size, strxcmp_eqz_result): New functions.
6178 (maybe_warn_pointless_strcmp): New function.
6179 (handle_builtin_string_cmp): Call it. Fold zero-equality of strcmp
6180 between a longer string and a smaller array.
6181 (get_range_strlen_dynamic): Overwrite initial maxbound when non-null.
6182
6183 2019-10-09 Iain Sandoe <iain@sandoe.co.uk>
6184
6185 * config/darwin.c (darwin_override_options): Make the check for
6186 Objective-C ABI version more specific for 64bit code.
6187
6188 2019-10-09 Iain Sandoe <iain@sandoe.co.uk>
6189
6190 * config/darwin.c (machopic_indirect_data_reference): Set flag to
6191 indicate that the new symbol is an indirection.
6192 (machopic_indirect_call_target): Likewise.
6193 * config/darwin.h (MACHO_SYMBOL_FLAG_INDIRECTION): New.
6194 (MACHO_SYMBOL_INDIRECTION_P): New.
6195 (MACHO_SYMBOL_FLAG_STATIC): Adjust bit number.
6196
6197 2019-10-08 Jason Merrill <jason@redhat.com>
6198
6199 * doc/invoke.texi: Document -fconcepts-ts.
6200
6201 2019-10-09 Richard Biener <rguenther@suse.de>
6202
6203 * tree-vect-loop.c (vect_is_simple_reduction): Simplify and
6204 allow stmts other than GIMPLE_ASSIGN in nested cycles.
6205
6206 2019-10-08 Richard Biener <rguenther@suse.de>
6207
6208 * tree-vectorizer.h (_stmt_vec_info::reduc_vectype_in): New.
6209 (_stmt_vec_info::force_single_cycle): Likewise.
6210 (STMT_VINFO_FORCE_SINGLE_CYCLE): New.
6211 (STMT_VINFO_REDUC_VECTYPE_IN): Likewise.
6212 * tree-vect-loop.c (vectorizable_reduction): Set
6213 STMT_VINFO_REDUC_VECTYPE_IN and STMT_VINFO_FORCE_SINGLE_CYCLE.
6214 (vect_transform_reduction): Use them to remove redundant code.
6215 (vect_transform_cycle_phi): Likewise.
6216
6217 2019-10-08 Dmitrij Pochepko <dmitrij.pochepko@bell-sw.com>
6218
6219 PR tree-optimization/90836
6220 * match.pd (popcount): New pattern.
6221
6222 2019-10-08 Martin Sebor <msebor@redhat.com>
6223
6224 PR middle-end/92026
6225 PR middle-end/92014
6226 * tree-ssa-strlen.c (count_nonzero_bytes): Avoid recursing for MEM_REF
6227 again once nbytes has been set. Set the access size when not yet set.
6228
6229 2019-10-08 Iain Sandoe <iain@sandoe.co.uk>
6230
6231 * config/darwin.c (machopic_select_section): Remove dead code for
6232 old Objective-C section selection method, replace with unreachable.
6233
6234 2019-10-08 Iain Sandoe <iain@sandoe.co.uk>
6235
6236 * config/darwin.c (machopic_indirect_data_reference): Check for
6237 required indirections before making direct access to defined
6238 values.
6239 (machopic_output_indirection): Place the indirected pointes for
6240 required indirections into the non-lazy symbol pointers section.
6241 (darwin_encode_section_info):
6242 * config/darwin.h (MACHO_SYMBOL_FLAG_MUST_INDIRECT): New.
6243 (MACHO_SYMBOL_MUST_INDIRECT_P): New.
6244
6245 2019-10-08 Uroš Bizjak <ubizjak@gmail.com>
6246
6247 PR target/91994
6248 * config/i386/i386.c (x86_avx_u128_mode_needed): Use SSE_REG
6249 instead of ALL_SSE_REG to check if function call preserves some
6250 256-bit SSE registers.
6251
6252 2019-10-08 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
6253
6254 * config.gcc: Move -L usage from LINK_OS_EXTRA_SPEC32 and
6255 LINK_OS_EXTRA_SPEC64 to MD_STARTFILE_PREFIX and
6256 MD_STARTFILE_PREFIX_1 when using --with-advance-toolchain.
6257
6258 2019-10-08 Richard Biener <rguenther@suse.de>
6259
6260 * tree-vectorizer.h (_stmt_vec_info::v_reduc_type): Remove.
6261 (_stmt_vec_info::is_reduc_info): Add.
6262 (STMT_VINFO_VEC_REDUCTION_TYPE): Remove.
6263 (vectorizable_condition): Remove.
6264 (vectorizable_shift): Likewise.
6265 (vectorizable_reduction): Adjust.
6266 (info_for_reduction): New.
6267 * tree-vect-loop.c (vect_force_simple_reduction): Fold into...
6268 (vect_analyze_scalar_cycles_1): ... here.
6269 (vect_analyze_loop_operations): Adjust.
6270 (needs_fold_left_reduction_p): Simplify for single caller.
6271 (vect_is_simple_reduction): Likewise. Remove stmt restriction
6272 for nested cycles not part of double reductions.
6273 (vect_model_reduction_cost): Pass in the reduction type.
6274 (info_for_reduction): New function.
6275 (vect_create_epilog_for_reduction): Use it, access reduction
6276 meta off the stmt info it returns. Use STMT_VINFO_REDUC_TYPE
6277 instead of STMT_VINFO_VEC_REDUCTION_TYPE.
6278 (vectorize_fold_left_reduction): Remove pointless assert.
6279 (vectorizable_reduction): Analyze the full reduction when
6280 visiting the outermost PHI. Simplify. Use STMT_VINFO_REDUC_TYPE
6281 instead of STMT_VINFO_VEC_REDUCTION_TYPE. Direct reduction
6282 stmt code-generation to vectorizable_* in most cases. Verify
6283 code-generation only for cases handled by
6284 vect_transform_reductuon.
6285 (vect_transform_reduction): Use info_for_reduction to get at
6286 reduction meta. Simplify.
6287 (vect_transform_cycle_phi): Likewise.
6288 (vectorizable_live_operation): Likewise.
6289 * tree-vect-patterns.c (vect_reassociating_reduction_p): Look
6290 at the PHI node for STMT_VINFO_REDUC_TYPE.
6291 * tree-vect-slp.c (vect_schedule_slp_instance): Remove no
6292 longer necessary code.
6293 * tree-vect-stmts.c (vectorizable_shift): Make static again.
6294 (vectorizable_condition): Likewise. Get at reduction related
6295 info via info_for_reduction.
6296 (vect_analyze_stmt): Adjust.
6297 (vect_transform_stmt): Likewise.
6298 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
6299 STMT_VINFO_REDUC_TYPE instead of STMT_VINFO_VEC_REDUCTION_TYPE.
6300
6301 2019-10-08 Joseph Myers <joseph@codesourcery.com>
6302
6303 * doc/invoke.texi (-ffp-int-builtin-inexact): Document
6304 -fno-fp-int-builtin-inexact default for C2X.
6305
6306 2019-10-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6307 Richard Biener <rguenther@suse.de>
6308
6309 PR tree-optimization/91532
6310 * tree-if-conv.c: Include tree-ssa-dse.h.
6311 (ifcvt_local_dce): Change param from bb to loop,
6312 and call dse_classify_store.
6313 (tree_if_conversion): Pass loop instead of loop->header as arg
6314 to ifcvt_local_dce.
6315 * tree-ssa-dse.c: Include tree-ssa-dse.h.
6316 (delete_dead_or_redundant_assignment): Remove static qualifier from
6317 declaration, and add prototype in tree-ssa-dse.h.
6318 (dse_store_status): Move to tree-ssa-dse.h.
6319 (dse_classify_store): Remove static qualifier and add new tree param
6320 stop_at_vuse, and add prototype in tree-ssa-dse.h.
6321 * tree-ssa-dse.h: New header.
6322
6323 2019-10-07 Iain Sandoe <iain@sandoe.co.uk>
6324
6325 * config/darwin.c (machopic_output_indirection): Don't put
6326 hidden symbol indirections into the .data section, use the
6327 non-lazy symbol pointers section as normal.
6328 (darwin_encode_section_info): Record if a symbol is hidden.
6329 * config/darwin.h (MACHO_SYMBOL_FLAG_HIDDEN_VIS): New.
6330 (MACHO_SYMBOL_HIDDEN_VIS_P): New.
6331
6332 2019-10-07 Iain Sandoe <iain@sandoe.co.uk>
6333
6334 * config/darwin.c (machopic_symbol_defined_p): Use symbol flag
6335 predicates instead of accessing bits directly.
6336 (machopic_indirect_call_target): Likewise.
6337 (machopic_output_indirection): Likewise.
6338 (darwin_encode_section_info): Improve description. Use renamed
6339 symbol flags. Use predicate macros for variables and functions.
6340 * config/darwin.h:
6341 Rename MACHO_SYMBOL_VARIABLE to MACHO_SYMBOL_FLAG_VARIABLE.
6342 Rename MACHO_SYMBOL_DEFINED to MACHO_SYMBOL_FLAG_DEFINED.
6343 Rename MACHO_SYMBOL_STATIC to MACHO_SYMBOL_FLAG_STATIC.
6344 (MACHO_SYMBOL_VARIABLE_P): New.
6345 (MACHO_SYMBOL_DEFINED_P):New.
6346 (MACHO_SYMBOL_STATIC_P): New.
6347 * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Delete.
6348 (SYMBOL_FLAG_SUBT_DEP): New.
6349 * config/rs6000/darwin.h (SYMBOL_FLAG_SUBT_DEP): New.
6350
6351 2019-10-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
6352
6353 * config/msp430/msp430.c (msp430_file_end): s/msp_/msp430_/
6354 (msp430_expand_epilogue): Likewise.
6355 * config/msp430/predicates.md: Likewise.
6356 * config/msp430/msp430.md: Likewise.
6357 Replace blocks of 8 spaces with tabs.
6358
6359 2019-10-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
6360
6361 * config/msp430/msp430-protos.h (msp430_split_addsi): New prototype.
6362 * config/msp430/msp430.c (msp430_split_addsi): New.
6363 * config/msp430/msp430.md: Call msp430_split_addsi () instead of using
6364 a block of C code for splitting addsi.
6365
6366 2019-10-07 Uroš Bizjak <ubizjak@gmail.com>
6367
6368 * config/i386/i386-expand.c (ix86_expand_floorceildf_32,
6369 ix86_expand_rounddf_32): Reorder functions.
6370 * config/i386/i386-protos.h: Update.
6371
6372 2019-10-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
6373
6374 * config.in: Regenerate.
6375 * config/msp430/constraints.md: Fix docstring for "Ys" constraint.
6376 Add new "Yx" constraint.
6377 * config/msp430/driver-msp430.c (msp430_propagate_region_opt): New spec
6378 function.
6379 * config/msp430/msp430-protos.h (msp430_op_not_in_high_mem): New
6380 prototype.
6381 * config/msp430/msp430.c (msp430_option_override): Allow the lower
6382 code/data region to be selected in the small memory model.
6383 (msp430_section_attr): Don't warn if the "section" and "lower"
6384 attributes are used together.
6385 (msp430_handle_generic_attribute): Likewise.
6386 (msp430_var_in_low_mem): New function.
6387 (TARGET_ENCODE_SECTION_INFO): Define.
6388 (msp430_encode_section_info): New function.
6389 (gen_prefix): Return early in the small memory model.
6390 Require TARGET_USE_LOWER_REGION_PREFIX to be set before adding the
6391 ".lower" prefix if -m{code,data}-region=lower have been passed.
6392 (msp430_output_aligned_decl_common): Emit common symbols when
6393 -mdata-region=lower is passed unless TARGET_USE_LOWER_REGION_PREFIX is
6394 set.
6395 (TARGET_ASM_FILE_END): Define.
6396 (msp430_file_end): New function.
6397 (msp430_do_not_relax_short_jumps): Allow relaxation when
6398 function will be in the lower region.
6399 (msp430_op_not_in_high_mem): New function.
6400 (msp430_print_operand): Check "msp430_op_not_in_high_mem" for
6401 the 'X' operand selector.
6402 Clarify comment for 'x' operand selector.
6403 * config/msp430/msp430.h (LINK_SPEC): Propagate
6404 -m{code,data}-region to the linker via spec function
6405 msp430_propagate_region_opt.
6406 (msp430_propagate_region_opt): New prototype.
6407 (EXTRA_SPEC_FUNCTIONS): Add msp430_propagate_region_opt.
6408 (SYMBOL_FLAG_LOW_MEM): Define.
6409 * config/msp430/msp430.md (addsipsi3): Add missing "%X" operand
6410 selector.
6411 (zero_extendqihi2): Fix operand number used by "%X" selector.
6412 (zero_extendqisi2): Likewise.
6413 (zero_extendhisi2): Likewise.
6414 (movqi): Use "Yx" constraint in place of "%X" operand selector.
6415 (movhi): Likewise.
6416 (addqi3): Likewise.
6417 (addhi3): Likewise.
6418 (addsi3): Likewise.
6419 (addhi3_cy): Likewise.
6420 (addchi4_cy): Likewise.
6421 (subqi3): Likewise.
6422 (subhi3): Likewise.
6423 (subsi3): Likewise.
6424 (bic<mode>3): Likewise.
6425 (and<mode>3): Likewise.
6426 (ior<mode>3): Likewise.
6427 (xor<mode>3): Likewise.
6428 (slli_1): Add missing "%X" operand selector.
6429 (slll_1): Likewise.
6430 (slll_2): Likewise.
6431 (srai_1): Likewise.
6432 (sral_1): Likewise.
6433 (sral_2): Likewise.
6434 (srli_1): Likewise.
6435 (srll_1): Likewise.
6436 (cbranchqi4_real): Use "Yx" constraint in place of "%X" operand
6437 selector.
6438 (cbranchhi4_real): Likewise.
6439 (cbranchqi4_reversed): Likewise.
6440 (cbranchhi4_reversed): Likewise.
6441 (*bitbranch<mode>4): Likewise.
6442 (*bitbranch<mode>4_z): Remove unnecessary "%x" operand selector.
6443 * config/msp430/msp430.opt (mcode-region=): Set default to
6444 MSP430_REGION_LOWER. Improve docstring.
6445 (mdata-region=): Likewise.
6446 (muse-lower-region-prefix): New option.
6447 * config/msp430/t-msp430 (MULTILIB_OPTIONS): Add
6448 mdata-region=none multilib.
6449 (MULTILIB_MATCHES): Set mdata-region={upper,either} to match
6450 mdata-region=none multilib.
6451 MULTILIB_EXCEPTIONS: Remove.
6452 MULTILIB_REQUIRED: Define.
6453 * configure: Regenerate.
6454 * configure.ac: Define HAVE_AS_GNU_ATTRIBUTE and
6455 HAVE_AS_MSPABI_ATTRIBUTE if GAS version >= 2.33.50.
6456 * doc/extend.texi: Clarify comment for {upper,lower,either}
6457 function attributes.
6458 Add separate description for "lower" variable attribute.
6459
6460 2019-10-07 Ilya Leoshkevich <iii@linux.ibm.com>
6461
6462 PR target/77918
6463 * optabs-tree.c (vcond_icode_p): New function.
6464 (vcond_eq_icode_p): Likewise.
6465 (expand_vec_cond_expr_p): Use vcond_icode_p and
6466 vcond_eq_icode_p.
6467 * optabs.c (can_vcond_compare_p): New function.
6468 * optabs.h (can_vcond_compare_p): Likewise.
6469
6470 2019-10-07 Ilya Leoshkevich <iii@linux.ibm.com>
6471
6472 PR target/77918
6473 * gimple-expr.c (gimple_cond_get_ops_from_tree): Assert that the
6474 caller passes a non-trapping condition.
6475 (is_gimple_condexpr): Allow trapping conditions.
6476 (is_gimple_condexpr_1): New helper function.
6477 (is_gimple_condexpr_for_cond): New function, acts like old
6478 is_gimple_condexpr.
6479 * gimple-expr.h (is_gimple_condexpr_for_cond): New function.
6480 * gimple.c (gimple_could_trap_p_1): Handle COND_EXPR and
6481 VEC_COND_EXPR. Fix an issue with statements like i = (fp < 1.).
6482 * gimplify.c (gimplify_cond_expr): Use
6483 is_gimple_condexpr_for_cond.
6484 (gimplify_expr): Allow is_gimple_condexpr_for_cond.
6485 * tree-eh.c (operation_could_trap_p): Assert on COND_EXPR and
6486 VEC_COND_EXPR.
6487 (tree_could_trap_p): Handle COND_EXPR and VEC_COND_EXPR.
6488 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Use
6489 is_gimple_condexpr_for_cond, remove pointless tmp check
6490 (forward_propagate_into_cond): Remove pointless tmp check.
6491
6492 2019-10-07 Vladislav Ivanishin <vlad@ispras.ru>
6493
6494 * gimple-iterator.h (gsi_next_nonvirtual_phi): Change the semantics to
6495 match that of other gsi_next_* functions. Adjust the comment.
6496 (gsi_start_nonvirtual_phis): New function.
6497 * ipa-icf.c (sem_function::compare_phi_node): Update uses of
6498 gsi_next_nonvirtual_phi accordingly. (No functional change.)
6499
6500 2019-10-07 Vladislav Ivanishin <vlad@ispras.ru>
6501
6502 * doc/invoke.texi (-Wuninitialized): Don't mention the clobbered by
6503 setjmp situation here. Fix a verb's ending: "the exact variables or
6504 elements for which there are warnings depends" -> "... depend".
6505
6506 2019-10-07 Aldy Hernandez <aldyh@redhat.com>
6507
6508 * ipa-prop.c (ipa_vr::nonzero_p): Add TYPE_UNSIGNED check.
6509
6510 2019-10-07 Aldy Hernandez <aldyh@redhat.com>
6511
6512 * ipa-prop.c (ipa_vr::nonzero_p): New.
6513 (ipcp_update_vr): Use nonzero_p instead of open-coding check for
6514 non-zero range.
6515 * ipa-prop.h (class ipa_vr): Add nonzero_p.
6516 * tree-vrp.c (range_has_numeric_bounds_p): New.
6517 (range_int_cst_p): Use range_has_numeric_bounds_p.
6518 (get_range_op_handler): New.
6519 (supported_types_p): New.
6520 (defined_ranges_p): New.
6521 (drop_undefines_to_varying): New.
6522 (range_fold_binary_symbolics_p): New.
6523 (range_fold_unary_symbolics_p): New.
6524 (range_fold_unary_expr): Extract out into above functions.
6525 (range_fold_binary_expr): Same.
6526 (value_range_base::normalize_addresses): New.
6527 (value_range_base::normalize_symbolics): Normalize addresses.
6528 * tree-vrp.h (class value_range_base): Add normalize_addresses.
6529
6530 2019-10-07 Aldy Hernandez <aldyh@redhat.com>
6531
6532 * tree-vrp.c (value_range_base::singleton_p): Use
6533 value_range_base::num_pairs instead of vrp_val_is* to check
6534 if a range has one sub-range.
6535
6536 2019-10-07 Richard Sandiford <richard.sandiford@arm.com>
6537
6538 * ira-lives.c (check_and_make_def_conflict): Handle cases in which
6539 DEF is not a true earlyclobber but is tied to a specific input
6540 operand, and so is effectively earlyclobber wrt inputs that have
6541 different values.
6542 (make_early_clobber_and_input_conflicts): Pass this case to the above.
6543
6544 2019-10-07 Richard Sandiford <richard.sandiford@arm.com>
6545
6546 * machmode.h (opt_mode): Mark constructors with CONSTEXPR.
6547 (pod_mode): Mark operators likewise.
6548 (scalar_int_mode): Mark non-default constructors and
6549 operators with CONSTEXPR.
6550 (scalar_float_mode, scalar_mode, complex_mode): Likewise.
6551 (fixed_size_mode): Likewise.
6552
6553 2019-10-07 Richard Sandiford <richard.sandiford@arm.com>
6554
6555 PR target/91994
6556 * config/i386/sse.md (avx_vzeroupper): Turn into a define_expand
6557 and wrap the unspec_volatile in a parallel.
6558 (*avx_vzeroupper): New define_insn. Use a match_parallel around
6559 the unspec_volatile.
6560 * config/i386/predicates.md (vzeroupper_pattern): Expect the
6561 unspec_volatile to be wrapped in a parallel.
6562 * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper)
6563 (ix86_add_reg_usage_to_vzerouppers): New functions.
6564 (rest_of_handle_insert_vzeroupper): Use them to add register
6565 usage information to the vzeroupper instructions.
6566
6567 2019-10-07 Richard Biener <rguenther@suse.de>
6568
6569 PR tree-optimization/91975
6570 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Consistently
6571 handle invariants.
6572
6573 2019-10-06 Richard Sandiford <richard.sandiford@arm.com>
6574
6575 * var-tracking.c (dataflow_set_clear_at_call): Hoist temporary
6576 function result outside of EXECUTE_IF_SET_IN_HARD_REG_SET.
6577
6578 2019-10-06 Iain Sandoe <iain@sandoe.co.uk>
6579
6580 * config/darwin.c (darwin_override_options): Adjust objective-c
6581 ABI version error messages to avoid punctuation and contracted
6582 negations.
6583
6584 2019-10-05 Jan Hubicka <hubicka@ucw.cz>
6585
6586 * ipa-inline.c: Fix type; compute size rather than self_size
6587 for size of caller function.
6588
6589 2019-10-05 Iain Sandoe <iain@sandoe.co.uk>
6590
6591 PR target/59888
6592 * config/darwin.c (darwin_rodata_section): Add relocation flag,
6593 choose const_data section for constants with relocations.
6594 (machopic_select_section): Pass relocation flag to
6595 darwin_rodata_section ().
6596
6597 2019-10-05 Jakub Jelinek <jakub@redhat.com>
6598
6599 PR tree-optimization/91734
6600 * generic-match-head.c: Include fold-const-call.h.
6601 * match.pd (sqrt(x) cmp c): Check the boundary value and
6602 in case inexact computation of c*c affects comparison of the boundary,
6603 turn LT_EXPR into LE_EXPR, GE_EXPR into GT_EXPR, LE_EXPR into LT_EXPR
6604 or GT_EXPR into GE_EXPR. Punt for sqrt comparisons against NaN and
6605 for -frounding-math. For c2, try the next smaller or larger floating
6606 point constant depending on comparison code and if it has the same
6607 sqrt as c2, use it instead of c2.
6608
6609 2019-10-04 Martin Sebor <msebor@redhat.com>
6610
6611 PR middle-end/91977
6612 * tree-ssa-strlen.c (count_nonzero_bytes): Handle assignments with
6613 MEM_REF right operand. Avoid failing for MEM_REF assignments from
6614 uninitialized objects.
6615
6616 2019-10-04 Martin Sebor <msebor@redhat.com>
6617
6618 * builtins.c (compute_objsize): Add an argument.
6619 * tree-object-size.c (addr_object_size): Same.
6620 (compute_builtin_object_size): Same.
6621 * tree-object-size.h (compute_builtin_object): Same.
6622
6623 2019-10-04 Jan Hubicka <hubicka@ucw.cz>
6624
6625 * ipa-inline.c (inline_insns_single, inline_insns_auto): Fix typo.
6626
6627 2019-10-04 Rafael Tsuha <rafael.tsuha@usp.br>
6628
6629 * match.pd (sinh (x) / cosh (x)): New simplification rule.
6630
6631 2019-10-04 Martin Jambor <mjambor@suse.cz>
6632
6633 * tree-ssa-forwprop.c (simplify_builtin_call): Set gimple call
6634 fntype when switching to calling memcpy instead of memset.
6635
6636 2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
6637
6638 * hash-table.h (hash_table::empty_slow): Don't assign
6639 size_t values to int variables.
6640
6641 2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
6642
6643 * expr.c (convert_mode_scalar): Remove shadowing local var.
6644 (emit_block_move): Rename local vars.
6645 (block_move_libcall_safe_for_call_parm): Remove shadowing local var.
6646 (emit_push_insn): Rename local vars.
6647 (expand_assignment): Fix wrong mode in assign_stack_temp. Remove
6648 shadowing local vars.
6649 (store_constructor): Remove shadowing local vars. Rename local var.
6650 (store_field, expand_cond_expr_using_cmove,
6651 expand_expr_real_2): Remove shadowing local vars.
6652 (expand_expr_real_1,
6653 do_store_flag): Remove shadowing local vars. Rename local vars.
6654
6655 2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
6656
6657 * cgraph.h (FOR_EACH_ALIAS): Avoid shadowing the loop variable.
6658
6659 2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
6660
6661 * genmatch.c (commutate): Rename local var.
6662 (lower_cond): Reuse local var.
6663 (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1,
6664 dt_operand::gen, dt_operand::gen_gimple_expr,
6665 dt_simplify::gen): Add a param. Rename generated vars.
6666 (decision_tree::insert_operand,
6667 (capture_info::walk_match, capture_info::walk_result,
6668 capture_info::walk_c_expr): Rename local vars.
6669 (expr::gen_transform): Rename generated vars.
6670 Use snprintf. Rename local vars.
6671 (capture::gen_transform, dt_operand::get_name,
6672 dt_operand::gen_opname): Rename generated vars.
6673 (write_predicate): Adjust call to gen_kids.
6674 (parser::get_internal_capture_id): Rename generated vars.
6675 (parser::parse_expr): Rename local vars.
6676 (parser::parse_if): Remove local var.
6677 (parser::parse_pattern, add_operator): Rename local vars.
6678
6679 2019-10-04 Joseph Myers <joseph@codesourcery.com>
6680
6681 * builtins.def (DEF_C2X_BUILTIN): New macro.
6682 (exp10, exp10f, exp10l, fabsd32, fabsd64, fabsd128, nand32)
6683 (nand64, nand128, roundeven, roundevenf, roundevenl, strdup)
6684 (strndup): Use DEF_C2X_BUILTIN.
6685 * coretypes.h (enum function_class): Add function_c2x_misc.
6686
6687 2019-10-04 Maya Rashish <coypu@sdf.org>
6688
6689 * ira-color.c (update_costs_from_allocno): Call
6690 ira_init_register_move_cost_if_necessary.
6691
6692 2019-10-04 Jeff Law <law@redhat.com>
6693
6694 * config/h8300/h8300.md (cpymemsi): Disable.
6695 (movmd, movmd_internal_<mode>, movstr, movsd):
6696 (movstr, movsd, stpcpy_internal_<mode>: Likewise.
6697 (movmd splitter, movsd splitter): Likewise.
6698
6699 * range-op.cc (range_tests): Avoid two tests when ints and
6700 shorts are the same size.
6701
6702 2019-10-04 Richard Biener <rguenther@suse.de>
6703
6704 PR lto/91968
6705 * tree.c (find_decls_types_r): Do not remove LABEL_DECLs from
6706 BLOCK_VARS.
6707
6708 2019-10-04 Richard Biener <rguenther@suse.de>
6709
6710 PR tree-optimization/91982
6711 * tree-vect-loop.c (vectorizable_live_operation): Also guard
6712 against EXTRACT_LAST_REDUCTION.
6713 * tree-vect-stmts.c (vect_transform_stmt): Likewise.
6714
6715 2019-10-04 Aldy Hernandez <aldyh@redhat.com>
6716
6717 * range-op.o (value_range_from_overflowed_bounds): Rename from
6718 adjust_overflow_bound.
6719 (value_range_with_overflow): Rename from
6720 create_range_with_overflow.
6721 (create_possibly_reversed_range): Adjusted for above renames.
6722 (operator_*::wi_fold): Same.
6723 (cross_product_operator::wi_cross_productor): Same.
6724
6725 2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
6726
6727 * doc/invoke.texi (-Wshadow=global, -Wshadow=local,
6728 -Wshadow=compatible-local): Fix description.
6729 Add an example where -Wshadow=compatible-local does not
6730 warn.
6731
6732 2019-10-03 John David Anglin <danglin@gcc.gnu.org>
6733
6734 * config/pa/pa.h (MAX_PCREL17F_OFFSET): Adjust.
6735
6736 * config/pa/pa.c (pa_output_call): Remove 64-bit sibcall sequence.
6737 (pa_attr_length_call): Adjust length for 64-bit plabel sequence.
6738
6739 2019-10-03 Aaron Sawdey <acsawdey@linux.ibm.com>
6740
6741 * expr.c (emit_block_move_hints): Slightly cleaner fix to
6742 can_move_by_pieces issue.
6743
6744 2019-10-03 Iain Sandoe <iain@sandoe.co.uk>
6745
6746 PR target/87243
6747 * config/darwin-driver.c (maybe_get_sysroot_from_sdkroot): New.
6748 (darwin_driver_init): Use the sysroot provided by SDKROOT when that
6749 is available and the user has not set one on the command line.
6750
6751 2019-10-03 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
6752
6753 PR target/91769
6754 * config/mips/mips.c (mips_split_move): Use reg_overlap_mentioned_p
6755 instead of REGNO equality check on addr.reg.
6756
6757 2019-10-03 Jan Hubicka <hubicka@ucw.cz>
6758
6759 * params.def (PARAM_INLINE_HEURISTICS_HINT_PERCENT,
6760 PARAM_INLINE_HEURISTICS_HINT_PERCENT_O2): New.
6761 * doc/invoke.texi (inline-heuristics-hint-percent,
6762 inline-heuristics-hint-percent-O2): Document.
6763 * tree-inline.c (inline_insns_single, inline_insns_auto): Add new
6764 hint attribute.
6765 (can_inline_edge_by_limits_p): Use it.
6766
6767 2019-10-03 Richard Sandiford <richard.sandiford@arm.com>
6768
6769 * config/arm/arm.c (arm_print_value): Use real_to_decimal
6770 to print CONST_DOUBLEs.
6771
6772 2019-10-03 Andrea Corallo <andrea.corallo@arm.com>
6773
6774 * ipa-cp.c (ipa_cp_c_finalize): Release ipcp_transformation_sum.
6775 * ipa-prop.c (ipcp_free_transformation_sum): New function.
6776 * ipa-prop.h (ipcp_free_transformation_sum): Add declaration.
6777
6778 2019-10-03 Aldy Hernandez <aldyh@redhat.com>
6779
6780 * Makefile.in (OBJS): Add range.o and range-op.o.
6781 Remove wide-int-range.o.
6782 * function-tests.c (test_ranges): New.
6783 (function_tests_c_tests): Call test_ranges.
6784 * ipa-cp.c (ipa_vr_operation_and_type_effects): Call
6785 range_fold_unary_expr instead of extract_range_from_unary_expr.
6786 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Same.
6787 * range-op.cc: New file.
6788 * range-op.h: New file.
6789 * range.cc: New file.
6790 * range.h: New file.
6791 * selftest.h (range_tests): New prototype.
6792 * ssa.h: Include range.h.
6793 * tree-vrp.c (value_range_base::value_range_base): New
6794 constructors.
6795 (value_range_base::singleton_p): Do not call
6796 ranges_from_anti_range until sure we will need to.
6797 (value_range_base::type): Rename gcc_assert to
6798 gcc_checking_assert.
6799 (vrp_val_is_max): New argument.
6800 (vrp_val_is_min): Same.
6801 (wide_int_range_set_zero_nonzero_bits): Move from
6802 wide-int-range.cc.
6803 (extract_range_into_wide_ints): Remove.
6804 (extract_range_from_multiplicative_op): Remove.
6805 (extract_range_from_pointer_plus_expr): Abstract POINTER_PLUS code
6806 from extract_range_from_binary_expr.
6807 (extract_range_from_plus_minus_expr): Abstract PLUS/MINUS code
6808 from extract_range_from_binary_expr.
6809 (extract_range_from_binary_expr): Remove.
6810 (normalize_for_range_ops): New.
6811 (range_fold_binary_expr): New.
6812 (range_fold_unary_expr): New.
6813 (value_range_base::num_pairs): New.
6814 (value_range_base::lower_bound): New.
6815 (value_range_base::upper_bound): New.
6816 (value_range_base::upper_bound): New.
6817 (value_range_base::contains_p): New.
6818 (value_range_base::invert): New.
6819 (value_range_base::union_): New.
6820 (value_range_base::intersect): New.
6821 (range_compatible_p): New.
6822 (value_range_base::operator==): New.
6823 (determine_value_range_1): Call range_fold_*expr instead of
6824 extract_range_from_*expr.
6825 * tree-vrp.h (class value_range_base): Add new constructors.
6826 Add methods for union_, intersect, operator==, contains_p,
6827 num_pairs, lower_bound, upper_bound, invert.
6828 (vrp_val_is_min): Add handle_pointers argument.
6829 (vrp_val_is_max): Same.
6830 (extract_range_from_unary_expr): Remove.
6831 (extract_range_from_binary_expr): Remove.
6832 (range_fold_unary_expr): New.
6833 (range_fold_binary_expr): New.
6834 * vr-values.c (vr_values::extract_range_from_binary_expr): Call
6835 range_fold_binary_expr instead of extract_range_from_binary_expr.
6836 (vr_values::extract_range_basic): Same.
6837 (vr_values::extract_range_from_unary_expr): Call
6838 range_fold_unary_expr instead of extract_range_from_unary_expr.
6839 * wide-int-range.cc: Remove.
6840 * wide-int-range.h: Remove.
6841
6842 2019-10-02 Michael Meissner <meissner@linux.ibm.com>
6843
6844 * config/rs6000/rs6000.c (mem_operand_gpr): Use
6845 SIGNED_16BIT_OFFSET_EXTRA_P macro.
6846 (mem_operand_ds_form): Use SIGNED_16BIT_OFFSET_EXTRA_P macro.
6847 (rs6000_mode_dependent_address): Use SIGNED_16BIT_OFFSET_EXTRA_P
6848 macro.
6849
6850 2019-10-02 Joseph Myers <joseph@codesourcery.com>
6851
6852 * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Change
6853 condition on WIDTH macros to [__STDC_WANT_IEC_60559_BFP_EXT__ ||
6854 (__STDC_VERSION__ && __STDC_VERSION__ > 201710L)].
6855 * glimits.h: Likewise.
6856
6857 2019-10-03 Jakub Jelinek <jakub@redhat.com>
6858
6859 PR rtl-optimization/91976
6860 * expr.c (emit_block_move_hints): Don't call can_move_by_pieces if
6861 size is not CONST_INT_P, set pieces_ok to false in that case. Simplify
6862 CONST_INT_P (size) && pieces_ok to pieces_ok. Formatting fix.
6863
6864 2019-10-02 Martin Sebor <msebor@redhat.com>
6865
6866 PR tree-optimization/80936
6867 * builtins.def (bcmp, bcopy, bzero): Declare nonnull.
6868
6869 2019-10-02 Richard Sandiford <richard.sandiford@arm.com>
6870
6871 * cgraph.c (cgraph_node::rtl_info): Use SET_HARD_REG_SET
6872 instead of reg_class_contents[ALL_REGS].
6873
6874 2019-09-30 Jason Merrill <jason@redhat.com>
6875
6876 Add some hash_map_safe_* functions like vec_safe_*.
6877 * hash-map.h (default_hash_map_size): New variable.
6878 (create_ggc): Use it as default argument.
6879 (hash_map_maybe_create, hash_map_safe_get)
6880 (hash_map_safe_get_or_insert, hash_map_safe_put): New fns.
6881
6882 2019-10-02 Jan Hubicka <hubicka@ucw.cz>
6883
6884 * cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT,
6885 MAX_INLINE_INSNS_AUTO_O2_LIMIT): New.
6886 * ipa-inline.c (inline_insns_single, inline_insns_auto): New functions.
6887 (can_inline_edge_by_limits_p): Use it.
6888 (big_speedup_p): Use PARAM_INLINE_MIN_SPEEDUP_O2.
6889 (want_inline_small_function_p): Use O2 bounds.
6890 (edge_badness): LIkewise.
6891 * opts.c (default_options): Add OPT_finline_functions.
6892 * params.def (PARAM_INLINE_MIN_SPEEDUP_O2,
6893 PARAM_MAX_INLINE_INSNS_SINGLE_O2, PARAM_MAX_INLINE_INSNS_AUTO_O2):
6894 New parameters.
6895 * doc/invoke.texi (-finline-functions): Update documentation.
6896 (max-inline-insns-single-O2, max-inline-insns-auto-O2,
6897 inline-min-speedup-O2): Document.
6898 (early-inlining-insns-O2): Simplify docs.
6899
6900 2019-10-02 Alexander Monakov <amonakov@ispras.ru>
6901
6902 PR rtl-optimization/87047
6903 * ifcvt.c (average_cost): New static function. Use it...
6904 (noce_process_if_block): ... here.
6905
6906 2019-10-02 Aaron Sawdey <acsawdey@linux.ibm.com>
6907
6908 * config/rs6000/rs6000-protos.h (expand_block_move): Change prototype.
6909 * config/rs6000/rs6000-string.c (expand_block_move): Add
6910 might_overlap parm.
6911 * config/rs6000/rs6000.md (movmemsi): Add new pattern.
6912 (cpymemsi): Add might_overlap parm to expand_block_move() call.
6913
6914 2019-10-02 Aaron Sawdey <acsawdey@linux.ibm.com>
6915
6916 * builtins.c (expand_builtin_memory_copy_args): Add might_overlap parm.
6917 (expand_builtin_memcpy): Use might_overlap parm.
6918 (expand_builtin_mempcpy_args): Use might_overlap parm.
6919 (expand_builtin_memmove): Call expand_builtin_memory_copy_args.
6920 (expand_builtin_memory_copy_args): Add might_overlap parm.
6921 * expr.c (emit_block_move_via_cpymem): Rename to
6922 emit_block_move_via_pattern, add might_overlap parm, use cpymem
6923 or movmem optab as appropriate.
6924 (emit_block_move_hints): Add might_overlap parm, do the right
6925 thing for might_overlap==true.
6926 * expr.h (emit_block_move_hints): Update prototype.
6927
6928 2019-10-02 Eric Botcazou <ebotcazou@adacore.com>
6929
6930 * tree-eh.h (unsplit_eh_edges): Declare.
6931 * tree-eh.c (maybe_remove_unreachable_handlers): Detect more cases.
6932 (unsplit_eh_edges): New function wrapping unsplit_all_eh.
6933 * gimple-ssa-store-merging.c: Include cfganal.h cfgcleanup.h except.h.
6934 (struct store_immediate_info): Add lp_nr field.
6935 (store_immediate_info::store_immediate_info): Add NR2 parameter and
6936 initialize lp_nr with it.
6937 (struct merged_store_group): Add lp_nr and only_constants fields.
6938 (merged_store_group::merged_store_group): Initialize them.
6939 (merged_store_group::can_be_merged_into): Deal with them.
6940 (pass_store_merging): Rename terminate_and_release_chain into
6941 terminate_and_process_chain.
6942 (pass_store_merging::terminate_and_process_all_chains): Adjust to above
6943 renaming and remove useless assertions.
6944 (pass_store_merging::terminate_all_aliasing_chains): Small tweak.
6945 (stmts_may_clobber_ref_p): Be prepared for different basic blocks.
6946 (imm_store_chain_info::coalesce_immediate_stores): Use only_constants
6947 instead of always recomputing it and compare lp_nr.
6948 (imm_store_chain_info::output_merged_store): If the group is in an
6949 active EH region, register new stores if they can throw. Moreover,
6950 if the insertion has created new basic blocks, adjust the PHI nodes
6951 of the post landing pad.
6952 (imm_store_chain_info::output_merged_stores): If the original stores
6953 are in an active EH region, deregister them.
6954 (lhs_valid_for_store_merging_p): Prettify.
6955 (adjust_bit_pos): New function extracted from...
6956 (mem_valid_for_store_merging): ...here. Use it for the base address
6957 and also for the offset if it is the addition of a constant.
6958 (lp_nr_for_store): New function.
6959 (pass_store_merging::process_store): Change return type to bool.
6960 Call lp_nr_for_store to initialize the store info. Propagate the
6961 return status of various called functions to the return value.
6962 (store_valid_for_store_merging_p): New predicate.
6963 (enum basic_block_status): New enumeration.
6964 (get_status_for_store_merging): New function.
6965 (pass_store_merging::execute): If the function can throw and catch
6966 non-call exceptions, unsplit the EH edges on entry and clean up the
6967 CFG on exit if something changed. Call get_status_for_store_merging
6968 for every basic block and keep the chains open across basic blocks
6969 when possible. Terminate and process open chains at the end, if any.
6970
6971 2019-10-02 Richard Sandiford <richard.sandiford@arm.com>
6972
6973 * reginfo.c (globalize_reg): Fix shadowed variable in
6974 function_abis walk.
6975
6976 2019-10-02 Martin Jambor <mjambor@suse.cz>
6977
6978 * cgraph.c (symbol_table::create_edge): New parameter cloning_p,
6979 do not compute some stuff when set.
6980 (cgraph_node::create_edge): Likewise.
6981 (cgraph_node::create_indirect_edge): Renamed last parameter to
6982 coning_p and flipped its meaning, don't even calculate
6983 inline_failed when set.
6984 * cgraph.h (cgraph_node::create_edge): Add new parameter.
6985 (symbol_table::::create_edge): Likewise.
6986 (cgraph_node::create_indirect_edge): Rename last parameter, flip
6987 the default value.
6988 * cgraphclones.c (cgraph_edge::clone): Pass true cloning_p to all
6989 call graph edge creating functions.
6990
6991 2019-10-01 Jan Hubicka <hubicka@ucw.cz>
6992
6993 PR c++/91222
6994 * ipa-devirt.c (warn_types_mismatch): Fix conditional on anonymous
6995 namespace types.
6996
6997 2019-10-02 Shahab Vahedi <shahab@synopsys.com>
6998
6999 * config/arc/arc.h (ASM_SPEC): Pass -mcode-density.
7000
7001 2019-10-02 Richard Biener <rguenther@suse.de>
7002
7003 * tree-vectorizer.h (vect_transform_reduction): Declare.
7004 * tree-vect-stmts.c (vect_transform_stmt): Use it.
7005 * tree-vect-loop.c (vectorizable_reduction): Split out reduction
7006 stmt transform to ...
7007 (vect_transform_reduction): ... this.
7008
7009 2019-10-02 Tobias Burnus <tobias@codesourcery.com>
7010
7011 * omp-low.c (lower_omp_target): Dereference optional argument
7012 to work with the right pointer.
7013
7014 2019-10-02 Kwok Cheung Yeung <kcy@codesourcery.com>
7015
7016 * langhooks-def.h (LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT): Default to
7017 false.
7018 (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT.
7019 * langhooks.h (omp_is_optional_argument): New hook.
7020 * omp-general.c (omp_is_optional_argument): New.
7021 * omp-general.h (omp_is_optional_argument): New declaration.
7022 * omp-low.c (lower_omp_target): Create temporary for received value
7023 and take the address for new_var if the original variable was a
7024 DECL_BY_REFERENCE. Use size of referenced object when a
7025 pass-by-reference optional argument used as argument to firstprivate.
7026
7027 2019-10-02 Jakub Jelinek <jakub@redhat.com>
7028
7029 PR tree-optimization/91940
7030 * tree-vect-patterns.c: Include tree-vector-builder.h and
7031 vec-perm-indices.h.
7032 (vect_recog_rotate_pattern): Also handle __builtin_bswap16, either by
7033 unpromoting the argument back to uint16_t, or by converting into a
7034 rotate, or into shifts plus ior.
7035
7036 2019-10-02 Richard Biener <rguenther@suse.de>
7037
7038 * tree-vectorizer.h (stmt_vec_info_type::cycle_phi_info_type):
7039 New.
7040 (vect_transform_cycle_phi): Declare.
7041 * tree-vect-stmts.c (vect_transform_stmt): Call
7042 vect_transform_cycle_phi.
7043 * tree-vect-loop.c (vectorizable_reduction): Split out
7044 PHI transformation stage to ...
7045 (vect_transform_cycle_phi): ... here.
7046
7047 2019-10-02 Richard Sandiford <richard.sandiford@arm.com>
7048
7049 PR middle-end/91957
7050 * lra-lives.c (make_hard_regno_dead): Don't record conflicts for
7051 eliminable registers.
7052 (make_hard_regno_live): Likewise, and don't make them live.
7053
7054 2019-10-01 David Malcolm <dmalcolm@redhat.com>
7055
7056 * diagnostic-show-locus.c (layout::print_gap_in_line_numbering):
7057 Call pp_emit_prefix.
7058 (layout::print_source_line): Likewise.
7059 (layout::start_annotation_line): Likewise.
7060 (diagnostic_show_locus): Remove call to temporarily clear the
7061 prefix.
7062 (selftest::test_one_liner_fixit_remove): Add test coverage for the
7063 interaction of pp_set_prefix with rulers and fix-it hints.
7064 * diagnostic.c (default_diagnostic_finalizer): Temporarily clear
7065 prefix when calling diagnostic_show_locus, rather than destroying
7066 it afterwards.
7067 (print_parseable_fixits): Temporarily clear prefix.
7068 * pretty-print.c (pp_format): Save and restore line_length, rather
7069 than assuming it is zero.
7070 (pp_output_formatted_text): Remove assertion that line_length is
7071 zero.
7072
7073 2019-10-01 Jan Hubicka <hubicka@ucw.cz>
7074
7075 * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p):
7076 Rename to ...
7077 (nonoverlapping_refs_since_match_p): ... this; handle also
7078 ARRAY_REFs.
7079 (alias_stats): Update stats.
7080 (dump_alias_stats): Likewise.
7081 (cheap_array_ref_low_bound): New function.
7082 (aliasing_matching_component_refs_p): Add partial_overlap
7083 argument;
7084 pass it to nonoverlapping_refs_since_match_p.
7085 (aliasing_component_refs_walk): Update call of
7086 aliasing_matching_component_refs_p
7087 (nonoverlapping_array_refs_p): New function.
7088 (decl_refs_may_alias_p, indirect_ref_may_alias_decl_p,
7089 indirect_refs_may_alias_p): Update calls of
7090 nonoverlapping_refs_since_match_p.
7091
7092 2019-10-01 Maya Rashish <coypu@sdf.org>
7093
7094 PR target/85401
7095 * ira-color.c (allocno_copy_cost_saving): Call
7096 ira_init_register_move_cost_if_necessary.
7097
7098 2019-10-01 Maciej W. Rozycki <macro@wdc.com>
7099
7100 * Makefile.in (gnat_install_lib): New variable.
7101 * configure.ac: Substitute it.
7102 * configure: Regenerate.
7103
7104 2019-10-01 Jan Hubicka <hubicka@ucw.cz>
7105
7106 PR lto/91222
7107 * ipa-devirt.c (warn_types_mismatch): Do not ICE when anonymous type
7108 is matched with non-C++ type
7109
7110 2019-10-01 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7111
7112 * tree-if-conv.c (tree_if_conversion): Move call to ifcvt_local_dce
7113 after local CSE.
7114
7115 2019-10-01 Jan Hubicka <hubicka@ucw.cz>
7116
7117 * doc/invoke.texi (early-inlining-insns-O2): Document.
7118 (early-inlining-insns): Update.
7119 * params.def (early-inlining-insns-O2): New bound.
7120 (early-inlining-insns): Update docs.
7121 * ipa-inline.c (want_early_inline_function_p): Use new bound.
7122
7123 2019-10-01 Oleg Endo <olegendo@gcc.gnu.org>
7124
7125 PR target/88562
7126 * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Use
7127 sh_check_add_incdec_notes to preserve REG_INC notes when replacing
7128 a memory access insn.
7129
7130 2019-10-01 Bill Schmidt <wschmidt@linux.ibm.com>
7131
7132 * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Don't swap
7133 vpmsumd.
7134
7135 2019-10-01 Ilya Leoshkevich <iii@linux.ibm.com>
7136
7137 PR target/77918
7138 * config/s390/s390.c (s390_expand_vec_compare): Use
7139 gen_vec_cmpordered and gen_vec_cmpunordered.
7140 * config/s390/vector.md (vec_cmpuneq, vec_cmpltgt, vec_ordered,
7141 vec_unordered): Delete.
7142 (vec_ordered<mode>): Rename to vec_cmpordered<mode>.
7143 (vec_unordered<mode>): Rename to vec_cmpunordered<mode>.
7144 (VEC_CMP_EXPAND): New iterator for the generic dispatcher.
7145 (vec_cmp<code>): Generic dispatcher.
7146
7147 2019-10-01 Ilya Leoshkevich <iii@linux.ibm.com>
7148
7149 PR target/77918
7150 * config/s390/vector.md (V_HW): Add V1TI in order to make
7151 vcond$a$b generate vcondv1tiv1tf.
7152
7153 2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
7154
7155 PR rtl-optimization/91948
7156 * ira-build.c (ira_create_allocno): Initialize
7157 ALLOCNO_CROSSED_CALLS_ABIS.
7158 * ira-color.c (allocno_reload_assign): Pass hard_regno rather
7159 than regno to ira_need_caller_save_p.
7160
7161 2019-10-01 Alexandre Oliva <oliva@adacore.com>
7162
7163 * config/i386/i386-options.c
7164 (ix86_recompute_optlev_based_flags): New, moved out of...
7165 (ix86_option_override_internal): ... this. Call it.
7166 (ix86_override_options_after_change): Call it here too.
7167
7168 PR debug/91507
7169 * dwarf2out.c (override_type_for_decl_p): New.
7170 (gen_variable_die): Use it.
7171
7172 2019-10-01 Richard Biener <rguenther@suse.de>
7173
7174 * tree-vect-loop.c (vectorizable_reduction): Move variables
7175 to where they are used.
7176
7177 2019-10-01 Segher Boessenkool <segher@kernel.crashing.org>
7178
7179 * regrename.c (hide_operands): Use pc_rtx instead of cc0_rtx.
7180 (build_def_use): Use PC instead of CC0 in a comment.
7181
7182 2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
7183
7184 * rtl.def (CLOBBER_HIGH): Delete.
7185 * doc/rtl.texi (clobber_high): Remove documentation.
7186 * rtl.h (SET_DEST): Remove CLOBBER_HIGH from the list of codes.
7187 (reg_is_clobbered_by_clobber_high): Delete.
7188 (gen_hard_reg_clobber_high): Likewise.
7189 * alias.c (record_set): Remove CLOBBER_HIGH handling.
7190 * cfgexpand.c (expand_gimple_stmt): Likewise.
7191 * combine-stack-adj.c (single_set_for_csa): Likewise.
7192 * combine.c (find_single_use_1, set_nonzero_bits_and_sign_copies)
7193 (can_combine_p, is_parallel_of_n_reg_sets, try_combine)
7194 (record_dead_and_set_regs_1, reg_dead_at_p_1): Likewise.
7195 * cse.c (invalidate_reg): Remove clobber_high parameter.
7196 (invalidate): Update call accordingly.
7197 (canonicalize_insn): Remove CLOBBER_HIGH handling.
7198 (invalidate_from_clobbers, invalidate_from_sets_and_clobbers)
7199 (count_reg_usage, insn_live_p): Likewise.
7200 * cselib.h (cselib_invalidate_rtx): Remove sett argument.
7201 * cselib.c (cselib_invalidate_regno, cselib_invalidate_rtx): Likewise.
7202 (cselib_invalidate_rtx_note_stores): Update call accordingly.
7203 (cselib_expand_value_rtx_1): Remove CLOBBER_HIGH handling.
7204 (cselib_invalidate_regno, cselib_process_insn): Likewise.
7205 * dce.c (deletable_insn_p, mark_nonreg_stores_1): Likewise.
7206 (mark_nonreg_stores_2): Likewise.
7207 * df-scan.c (df_find_hard_reg_defs, df_uses_record): Likewise.
7208 (df_get_call_refs): Likewise.
7209 * dwarf2out.c (mem_loc_descriptor): Likewise.
7210 * emit-rtl.c (verify_rtx_sharing): Likewise.
7211 (copy_insn_1, copy_rtx_if_shared_1): Likewise.
7212 (hard_reg_clobbers_high, gen_hard_reg_clobber_high): Delete.
7213 * genconfig.c (walk_insn_part): Remove CLOBBER_HIGH handling.
7214 * genemit.c (gen_exp, gen_insn): Likewise.
7215 * genrecog.c (validate_pattern, remove_clobbers): Likewise.
7216 * haifa-sched.c (haifa_classify_rtx): Likewise.
7217 * ira-build.c (create_insn_allocnos): Likewise.
7218 * ira-costs.c (scan_one_insn): Likewise.
7219 * ira.c (equiv_init_movable_p, memref_referenced_p): Likewise.
7220 (rtx_moveable_p, interesting_dest_for_shprep): Likewise.
7221 * jump.c (mark_jump_label_1): Likewise.
7222 * lra-int.h (lra_insn_reg::clobber_high): Delete.
7223 * lra-eliminations.c (lra_eliminate_regs_1): Remove CLOBBER_HIGH
7224 handling.
7225 (mark_not_eliminable): Likewise.
7226 * lra-lives.c (process_bb_lives): Likewise.
7227 * lra.c (new_insn_reg): Remove clobber_high parameter.
7228 (collect_non_operand_hard_regs): Likewise. Update call to new
7229 insn_reg. Remove CLOBBER_HIGH handling.
7230 (lra_set_insn_recog_data): Remove CLOBBER_HIGH handling. Update call
7231 to collect_non_operand_hard_regs.
7232 (add_regs_to_insn_regno_info): Remove CLOBBER_HIGH handling.
7233 Update call to new_insn_reg.
7234 (lra_update_insn_regno_info): Remove CLOBBER_HIGH handling.
7235 * postreload.c (reload_cse_simplify, reload_combine_note_use)
7236 (move2add_note_store): Likewise.
7237 * print-rtl.c (print_pattern): Likewise.
7238 * recog.c (store_data_bypass_p_1, store_data_bypass_p): Likewise.
7239 (if_test_bypass_p): Likewise.
7240 * regcprop.c (kill_clobbered_value, kill_set_value): Likewise.
7241 * reginfo.c (reg_scan_mark_refs): Likewise.
7242 * reload1.c (maybe_fix_stack_asms, eliminate_regs_1): Likewise.
7243 (elimination_effects, mark_not_eliminable, scan_paradoxical_subregs)
7244 (forget_old_reloads_1): Likewise.
7245 * reorg.c (find_end_label, try_merge_delay_insns, redundant_insn)
7246 (own_thread_p, fill_simple_delay_slots, fill_slots_from_thread)
7247 (dbr_schedule): Likewise.
7248 * resource.c (update_live_status, mark_referenced_resources)
7249 (mark_set_resources): Likewise.
7250 * rtl.c (copy_rtx): Likewise.
7251 * rtlanal.c (reg_referenced_p, set_of_1, single_set_2, noop_move_p)
7252 (note_pattern_stores): Likewise.
7253 (reg_is_clobbered_by_clobber_high): Delete.
7254 * sched-deps.c (sched_analyze_reg, sched_analyze_insn): Remove
7255 CLOBBER_HIGH handling.
7256
7257 2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
7258
7259 PR target/91452
7260 * config/aarch64/aarch64.h (ARM_PCS_TLSDESC): New arm_pcs.
7261 * config/aarch64/aarch64-protos.h (aarch64_tlsdesc_abi_id): Declare.
7262 * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
7263 Handle ARM_PCS_TLSDESC.
7264 (aarch64_tlsdesc_abi_id): New function.
7265 * config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use a call
7266 rtx instead of a list of clobbers and clobber_highs.
7267 (tlsdesc_small_<mode>): Update accordingly.
7268
7269 2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
7270
7271 * config/aarch64/aarch64-protos.h (aarch64_expand_call): Take an
7272 extra callee_abi argument.
7273 * config/aarch64/aarch64.c (aarch64_expand_call): Likewise.
7274 Insert a CALLEE_ABI unspec into the call pattern as the second
7275 element in the PARALLEL.
7276 (aarch64_simd_call_p): Delete.
7277 (aarch64_insn_callee_abi): Get the arm_pcs of the callee from
7278 the new CALLEE_ABI element of the PARALLEL.
7279 (aarch64_init_cumulative_args): Get the arm_pcs of the callee
7280 from the function type, if given.
7281 (aarch64_function_arg_advance): Handle ARM_PCS_SIMD.
7282 (aarch64_function_arg): Likewise. Return the arm_pcs of the callee
7283 when passed the function_arg_info end marker.
7284 (aarch64_output_mi_thunk): Pass the arm_pcs of the callee as the
7285 final argument of gen_sibcall.
7286 * config/aarch64/aarch64.md (UNSPEC_CALLEE_ABI): New unspec.
7287 (call): Make operand 2 a const_int_operand and pass it to expand_call.
7288 Wrap it in an UNSPEC_CALLEE_ABI unspec for the dummy define_expand
7289 pattern.
7290 (call_value): Likewise operand 3.
7291 (sibcall): Likewise operand 2. Place the unspec before rather than
7292 after the return.
7293 (sibcall_value): Likewise operand 3.
7294 (*call_insn, *call_value_insn): Include an UNSPEC_CALLEE_ABI.
7295 (tlsgd_small_<mode>, *tlsgd_small_<mode>): Likewise.
7296 (*sibcall_insn, *sibcall_value_insn): Likewise. Remove empty
7297 constraint strings.
7298 (untyped_call): Pass const0_rtx as the callee ABI to gen_call.
7299
7300 2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
7301
7302 * regs.h (HARD_REGNO_CALLER_SAVE_MODE): Update call to
7303 choose_hard_reg_mode.
7304 * config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
7305
7306 2019-10-01 Segher Boessenkool <segher@kernel.crashing.org>
7307
7308 * doc/md.texi (vec_pack_trunc_@var{m}): Fix typo.
7309 (vec_pack_sfix_trunc_@var{m}, vec_pack_ufix_trunc_@var{m}): Ditto.
7310 (vec_packs_float_@var{m}, vec_packu_float_@var{m}): Ditto.
7311
7312 2019-09-30 David Malcolm <dmalcolm@redhat.com>
7313
7314 * diagnostic-show-locus.c (line_label::line_label): Initialize
7315 m_has_vbar.
7316 (line_label::comparator): Reverse the sort order by m_state_idx,
7317 so that when the list is walked backwards the labels appear in
7318 order of insertion into the rich_location.
7319 (line_label::m_has_vbar): New field.
7320 (layout::print_any_labels): When dealing with multiple labels at
7321 the same line and column, only print vertical bars for the one
7322 with the highest label_line.
7323 (selftest::test_one_liner_labels): Update test for multiple labels
7324 to expect the labels to be in the order of insertion into the
7325 rich_location. Add a test for many such labels, where the column
7326 numbers are out-of-order relative to the insertion order.
7327
7328 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7329
7330 * config/i386/i386.h (ix86_frame::expensive_p): New field.
7331 (ix86_frame::expensive_count): Likewise.
7332 * config/i386/i386.c (ix86_compute_frame_layout): Make the choice
7333 of use_fast_prologue_epilogue robust against incidental changes
7334 in function size.
7335
7336 2019-09-30 Ilya Leoshkevich <iii@linux.ibm.com>
7337
7338 PR target/77918
7339 * config/s390/vector.md (vec_unordered<mode>): Call
7340 gen_vec_ordered<mode>.
7341
7342 2019-09-30 Yuliang Wang <yuliang.wang@arm.com>
7343
7344 * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3):
7345 New pattern for ASRD.
7346 * config/aarch64/iterators.md (UNSPEC_ASRD): New unspec.
7347 * internal-fn.def (IFN_DIV_POW2): New internal function.
7348 * optabs.def (sdiv_pow2_optab): New optab.
7349 * tree-vect-patterns.c (vect_recog_divmod_pattern):
7350 Modify pattern to support new operation.
7351 * doc/md.texi (sdiv_pow2$var{m3}): Documentation for the above.
7352 * doc/sourcebuild.texi (vect_sdiv_pow2_si):
7353 Document new target selector.
7354
7355 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7356
7357 * config/aarch64/aarch64.c (aarch64_layout_frame): Use crtl->abi
7358 to test whether we're compiling a vector PCS function and to test
7359 whether the function needs to save a particular register.
7360 Remove the vector PCS handling of df_set_regs_ever_live.
7361 (aarch64_components_for_bb): Use crtl->abi to test whether
7362 the function needs to save a particular register.
7363 (aarch64_process_components): Use crtl->abi to test whether
7364 we're compiling a vector PCS function.
7365 (aarch64_expand_prologue, aarch64_expand_epilogue): Likewise.
7366 (aarch64_epilogue_uses): Remove handling of vector PCS functions.
7367
7368 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7369
7370 * config/aarch64/aarch64-protos.h (aarch64_use_simple_return_insn_p):
7371 Delete.
7372 * config/aarch64/aarch64.c (aarch64_components_for_bb): Check
7373 whether the block calls a function that clobbers more registers
7374 than the current function is allowed to.
7375 (aarch64_use_simple_return_insn_p): Delete.
7376 * config/aarch64/aarch64.md (simple_return): Remove condition.
7377
7378 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7379
7380 * function-abi.h (function_abi_aggregator): New class.
7381 * function-abi.cc (function_abi_aggregator::caller_save_regs): New
7382 function.
7383 * ira.c (update_equiv_regs_prescan): New function. Call
7384 set_paradoxical_subreg here rather than...
7385 (update_equiv_regs): ...here.
7386 (ira): Call update_equiv_regs_prescan.
7387
7388 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7389
7390 * hard-reg-set.h (regs_invalidated_by_call): Only define if
7391 IN_TARGET_CODE.
7392 (call_used_or_fixed_regs): Likewise.
7393 (call_used_or_fixed_reg_p): Likewise.
7394 * reginfo.c (regs_invalidated_by_call): New macro.
7395
7396 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7397
7398 * shrink-wrap.c: Include function-abi.h.
7399 (requires_stack_frame_p): Use crtl->abi to test whether the
7400 current function can use a register without saving it first.
7401
7402 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7403
7404 * sel-sched-ir.h (_def::crosses_call): Replace with...
7405 (_def::crossed_call_abis): ..this new field.
7406 (def_list_add): Take a mask of ABIs instead of a crosses_call
7407 boolean.
7408 * sel-sched-ir.c (def_list_add): Likewise. Update initialization
7409 of _def accordingly.
7410 * sel-sched.c: Include function-abi.h.
7411 (hard_regs_data::regs_for_call_clobbered): Delete.
7412 (reg_rename::crosses_call): Replace with...
7413 (reg_rename::crossed_call_abis): ...this new field.
7414 (fur_static_params::crosses_call): Replace with...
7415 (fur_static_params::crossed_call_abis): ...this new field.
7416 (init_regs_for_mode): Don't initialize sel_hrd.regs_for_call_clobbered.
7417 (init_hard_regs_data): Use crtl->abi to test which registers the
7418 current function would need to save before it uses them.
7419 (mark_unavailable_hard_regs): Update handling of call-clobbered
7420 registers, using call_clobbers_in_region to find out which registers
7421 might be call-clobbered (but without taking -fipa-ra into account
7422 for now). Remove separate handling of partially call-clobbered
7423 registers.
7424 (verify_target_availability): Use crossed_call_abis instead of
7425 crosses_call.
7426 (get_spec_check_type_for_insn, find_used_regs): Likewise.
7427 (fur_orig_expr_found, fur_on_enter, fur_orig_expr_not_found): Likewise.
7428
7429 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7430
7431 * sched-deps.c (deps_analyze_insn): Use the ABI of the target
7432 function to test whether a register is fully or partly clobbered.
7433
7434 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7435
7436 * rtlanal.c: Include function-abi.h.
7437 (reg_set_p): Use insn_callee_abi to get the ABI of the called
7438 function and clobbers_reg_p to test whether the register
7439 is call-clobbered.
7440 (find_all_hard_reg_sets): When implicit is true, use insn_callee_abi
7441 to get the ABI of the called function and full_reg_clobbers to
7442 get the set of fully call-clobbered registers. Warn about the
7443 pitfalls of using this mode.
7444
7445 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7446
7447 * reload.c: Include function-abi.h.
7448 (find_equiv_reg): Use clobbers_reg_p to test whether either
7449 of the equivalent registers is clobbered by a call.
7450 * reload1.c: Include function-abi.h.
7451 (reg_reloaded_call_part_clobbered): Delete.
7452 (reload): Use crtl->abi to test which registers would need
7453 saving in the prologue before use.
7454 (find_reg): Likewise.
7455 (emit_reload_insns): Remove code for reg_reloaded_call_part_clobbered.
7456 (reload_as_needed): Likewise. Use full_and_partial_reg_clobbers
7457 instead of call_used_or_fixed_regs | reg_reloaded_call_part_clobbered.
7458
7459 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7460
7461 * regrename.h (du_head::call_clobber_mask): New field.
7462 (du_head::need_caller_save_reg): Replace with...
7463 (du_head::call_abis): ...this new field.
7464 * regrename.c: Include function-abi.h.
7465 (call_clobbered_in_chain_p): New function.
7466 (check_new_reg_p): Use crtl->abi when deciding whether a register
7467 is free for use after RA. Use call_clobbered_in_chain_p to test
7468 whether a candidate register would be clobbered by a call.
7469 (find_rename_reg): Don't add call-clobber conflicts here.
7470 (rename_chains): Check call_abis instead of need_caller_save_reg.
7471 (merge_chains): Update for changes to du_head.
7472 (build_def_use): Use insn_callee_abi to get the ABI of the call insn
7473 target. Record the ABI identifier in call_abis and the set of
7474 fully or partially clobbered registers in call_clobber_mask.
7475 Add fully-clobbered registers to hard_conflicts here rather
7476 than in find_rename_reg.
7477 * config/aarch64/cortex-a57-fma-steering.c: Include function-abi.h.
7478 (rename_single_chain): Check call_abis instead of need_caller_save_reg.
7479 * config/aarch64/falkor-tag-collision-avoidance.c: Include
7480 function-abi.h.
7481 * config/c6x/c6x.c: Likewise.
7482
7483 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7484
7485 * regcprop.c (copyprop_hardreg_forward_1): Use the recorded
7486 mode of the register when deciding whether it is no longer
7487 available after a call.
7488
7489 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7490
7491 * recog.c: Include function-abi.h.
7492 (peep2_find_free_register): Use crtl->abi when deciding whether
7493 a register is free for use after RA.
7494
7495 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7496
7497 * postreload-gcse.c: Include regs.h and function-abi.h.
7498 (record_opr_changes): Use insn_callee_abi to get the ABI of the
7499 call insn target. Conservatively assume that partially-clobbered
7500 registers are altered.
7501
7502 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7503
7504 * postreload.c (reload_combine_recognize_pattern): Use crtl->abi
7505 when deciding whether a register is free for use after RA.
7506 (reload_combine): Remove unnecessary use of fixed_reg_set.
7507 (reload_cse_move2add): Use insn_callee_abi to get the ABI of the
7508 call insn target. Use reg_mode when testing whether a register
7509 is no longer available.
7510
7511 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7512
7513 * target.def (return_call_with_max_clobbers): Delete.
7514 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): Delete.
7515 * doc/tm.texi: Regenerate.
7516 * config/aarch64/aarch64.c (aarch64_return_call_with_max_clobbers)
7517 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): Delete.
7518 * lra-int.h (lra_reg::actual_call_used_reg_set): Delete.
7519 (lra_reg::call_insn): Delete.
7520 * lra.c: Include function-abi.h.
7521 (initialize_lra_reg_info_element): Don't initialize the fields above.
7522 (lra): Use crtl->abi to test whether the current function needs to
7523 save a register in the prologue. Remove special pre-inheritance
7524 lra_create_live_ranges pass for flag_ipa_ra.
7525 * lra-assigns.c: Include function-abi.h
7526 (find_hard_regno_for_1): Use crtl->abi to test whether the current
7527 function needs to save a register in the prologue.
7528 (lra_assign): Assert that registers aren't allocated to a
7529 conflicting register, rather than checking only for overlaps
7530 with call_used_or_fixed_regs. Do this even for flag_ipa_ra,
7531 and for registers that are not live across a call.
7532 * lra-constraints.c (last_call_for_abi): New variable.
7533 (full_and_partial_call_clobbers): Likewise.
7534 (setup_next_usage_insn): Remove the register from
7535 full_and_partial_call_clobbers.
7536 (need_for_call_save_p): Use call_clobbered_in_region_p to test
7537 whether the register needs a caller save.
7538 (need_for_split_p): Use full_and_partial_reg_clobbers instead
7539 of call_used_or_fixed_regs.
7540 (inherit_in_ebb): Initialize and maintain last_call_for_abi and
7541 full_and_partial_call_clobbers.
7542 * lra-lives.c (check_pseudos_live_through_calls): Replace
7543 last_call_used_reg_set and call_insn arguments with an abi argument.
7544 Remove handling of lra_reg::call_insn. Use function_abi::mode_clobbers
7545 as the set of conflicting registers.
7546 (calls_have_same_clobbers_p): Delete.
7547 (process_bb_lives): Track the ABI of the last call instead of an
7548 insn/HARD_REG_SET pair. Update calls to
7549 check_pseudos_live_through_calls. Use eh_edge_abi to calculate
7550 the set of registers that could be clobbered by an EH edge.
7551 Include partially-clobbered as well as fully-clobbered registers.
7552 (lra_create_live_ranges_1): Don't initialize lra_reg::call_insn.
7553 * lra-remat.c: Include function-abi.h.
7554 (call_used_regs_arr_len, call_used_regs_arr): Delete.
7555 (set_bb_regs): Use insn_callee_abi to get the set of call-clobbered
7556 registers and bitmap_view to combine them into dead_regs.
7557 (call_used_input_regno_present_p): Take a function_abi argument
7558 and use it to test whether a register is call-clobbered.
7559 (calculate_gen_cands): Use insn_callee_abi to get the ABI of the
7560 call insn target. Update tje call to call_used_input_regno_present_p.
7561 (do_remat): Likewise.
7562 (lra_remat): Remove the initialization of call_used_regs_arr_len
7563 and call_used_regs_arr.
7564
7565 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7566
7567 * loop-iv.c: Include regs.h and function-abi.h.
7568 (simplify_using_initial_values): Use insn_callee_abi to get the
7569 ABI of the call insn target. Conservatively assume that
7570 partially-clobbered registers are altered.
7571
7572 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7573
7574 * function-abi.h (call_clobbers_in_region): Declare.
7575 (call_clobbered_in_region_p): New function.
7576 * function-abi.cc (call_clobbers_in_region): Likewise.
7577 * ira-int.h: Include function-abi.h.
7578 (ira_allocno::crossed_calls_abis): New field.
7579 (ALLOCNO_CROSSED_CALLS_ABIS): New macro.
7580 (ira_need_caller_save_regs): New function.
7581 (ira_need_caller_save_p): Likewise.
7582 * ira.c (setup_reg_renumber): Use ira_need_caller_save_p instead
7583 of call_used_or_fixed_regs.
7584 (do_reload): Use crtl->abi to test whether the current function
7585 needs to save a register in the prologue. Count registers that
7586 need to be saved rather than registers that don't.
7587 * ira-build.c (create_cap_allocno): Copy ALLOCNO_CROSSED_CALLS_ABIS.
7588 Remove unnecessary | from ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
7589 (propagate_allocno_info): Merge ALLOCNO_CROSSED_CALLS_ABIS too.
7590 (propagate_some_info_from_allocno): Likewise.
7591 (copy_info_to_removed_store_destinations): Likewise.
7592 (ira_flattening): Say that ALLOCNO_CROSSED_CALLS_ABIS and
7593 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS are handled conservatively.
7594 (ira_build): Use ira_need_caller_save_regs instead of
7595 call_used_or_fixed_regs.
7596 * ira-color.c (calculate_saved_nregs): Use crtl->abi to test
7597 whether the current function would need to save a register
7598 before using it.
7599 (calculate_spill_cost): Likewise.
7600 (allocno_reload_assign): Use ira_need_caller_save_regs and
7601 ira_need_caller_save_p instead of call_used_or_fixed_regs.
7602 * ira-conflicts.c (ira_build_conflicts): Use
7603 ira_need_caller_save_regs rather than call_used_or_fixed_regs
7604 as the set of call-clobbered registers. Remove the
7605 call_used_or_fixed_regs mask from the calculation of
7606 temp_hard_reg_set and mask its use instead. Remove special
7607 handling of partially-clobbered registers.
7608 * ira-costs.c (ira_tune_allocno_costs): Use ira_need_caller_save_p.
7609 * ira-lives.c (process_bb_node_lives): Use mode_clobbers to
7610 calculate the set of conflicting registers for calls that
7611 can throw. Record the ABIs of calls in ALLOCNO_CROSSED_CALLS_ABIS.
7612 Use full_and_partial_reg_clobbers rather than full_reg_clobbers
7613 for the calculation of ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
7614 Use eh_edge_abi to calculate the set of registers that could
7615 be clobbered by an EH edge. Include partially-clobbered as
7616 well as fully-clobbered registers.
7617
7618 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7619
7620 * haifa-sched.c: Include function-abi.h.
7621 (alloc_global_sched_pressure_data): Use crtl->abi to check whether
7622 the function would need to save a register before using it.
7623
7624 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7625
7626 * gcse.c: Include function-abi.h.
7627 (compute_hash_table_work): Use insn_callee_abi to get the ABI of
7628 the call insn target. Invalidate partially call-clobbered
7629 registers as well as fully call-clobbered ones.
7630
7631 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7632
7633 * function.c (aggregate_value_p): Work out which ABI the
7634 function is using before testing which registers are at least
7635 partly preserved by a call.
7636
7637 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7638
7639 * early-remat.c: Include regs.h and function-abi.h.
7640 (early_remat::maybe_add_candidate): Don't check for call-clobbered
7641 registers here.
7642 (early_remat::restrict_remat_for_unavail_regs): New function.
7643 (early_remat::restrict_remat_for_call): Likewise.
7644 (early_remat::process_block): Before calling emit_remat_insns
7645 for a previous call in the block, invalidate any candidates
7646 that would clobber call-preserved registers.
7647 (early_remat::emit_remat_insns_for_block): Likewise for the
7648 final call in a block. Do the same thing for live-in registers
7649 when calling emit_remat_insns at the head of a block.
7650
7651 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7652
7653 * df-scan.c (df_get_entry_block_def_set): Use crtl->abi to test
7654 whether the current function needs to save at least part of a
7655 register before using it.
7656 (df_get_exit_block_use_set): Likewise for epilogue restores.
7657
7658 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7659
7660 * df-problems.c: Include regs.h and function-abi.h.
7661 (df_rd_problem_data): Rename sparse_invalidated_by_call to
7662 sparse_invalidated_by_eh and dense_invalidated_by_call to
7663 dense_invalidated_by_eh.
7664 (df_print_bb_index): Update accordingly.
7665 (df_rd_alloc, df_rd_start_dump, df_rd_confluence_n): Likewise.
7666 (df_lr_confluence_n): Use eh_edge_abi to get the set of registers
7667 that are clobbered by an EH edge. Clobber partially-clobbered
7668 registers as well as fully-clobbered ones.
7669 (df_md_confluence_n): Likewise.
7670 (df_rd_local_compute): Likewise. Update for changes to
7671 df_rd_problem_data.
7672 * df-scan.c (df_scan_start_dump): Use eh_edge_abi to get the set
7673 of registers that are clobbered by an EH edge. Includde partially-
7674 clobbered registers as well as fully-clobbered ones.
7675
7676 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7677
7678 * cselib.c (cselib_process_insn): If we know what mode a
7679 register was set in, check whether it is clobbered in that
7680 mode by a call. Only fall back to reg_raw_mode if that fails.
7681
7682 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7683
7684 * cse.c: Include regs.h and function-abi.h.
7685 (invalidate_for_call): Take the call insn as an argument.
7686 Use insn_callee_abi to get the ABI of the call and invalidate
7687 partially clobbered registers as well as fully clobbered ones.
7688 (cse_insn): Update call accordingly.
7689
7690 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7691
7692 * combine.c: Include function-abi.h.
7693 (record_dead_and_set_regs): Use insn_callee_abi to get the ABI
7694 of the target of call insns. Invalidate partially-clobbered
7695 registers as well as fully-clobbered ones.
7696
7697 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7698
7699 * cfgloopanal.c: Include regs.h and function-abi.h.
7700 (init_set_costs): Use default_function_abi to test whether
7701 a general register is call-clobbered.
7702
7703 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7704
7705 * cfgcleanup.c (old_insns_match_p): Compare the ABIs of calls
7706 instead of the call-clobbered sets.
7707
7708 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7709
7710 * caller-save.c (setup_save_areas): Remove redundant |s of
7711 fixed_reg_set.
7712 (save_call_clobbered_regs): Likewise. Use the call ABI rather
7713 than call_used_or_fixed_regs to decide whether a REG_RETURNED
7714 value is useful.
7715
7716 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7717
7718 * rtl.h (predefined_function_abi): Declare.
7719 (choose_hard_reg_mode): Take a pointer to a predefined_function_abi
7720 instead of a boolean call_save flag.
7721 * config/gcn/gcn.c (gcn_hard_regno_caller_save_mode): Update call
7722 accordingly.
7723 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
7724 * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
7725 * config/mips/mips.c (mips_hard_regno_caller_save_mode): Likewise.
7726 * config/msp430/msp430.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
7727 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
7728 * config/sh/sh.c (sh_hard_regno_caller_save_mode): Likewise.
7729 * reginfo.c (init_reg_modes_target): Likewise.
7730 (choose_hard_reg_mode): Take a pointer to a predefined_function_abi
7731 instead of a boolean call_save flag.
7732 * targhooks.c: Include function-abi.h.
7733 (default_dwarf_frame_reg_mode): Update call to choose_hard_reg_mode,
7734 using eh_edge_abi to choose the mode.
7735
7736 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7737
7738 * target.def (hard_regno_call_part_clobbered): Take an ABI
7739 identifier instead of an rtx_insn.
7740 * doc/tm.texi: Regenerate.
7741 * hooks.h (hook_bool_insn_uint_mode_false): Delete.
7742 (hook_bool_uint_uint_mode_false): New function.
7743 * hooks.c (hook_bool_insn_uint_mode_false): Delete.
7744 (hook_bool_uint_uint_mode_false): New function.
7745 * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
7746 Take an ABI identifier instead of an rtx_insn.
7747 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Likewise.
7748 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Likewise.
7749 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
7750 * config/pru/pru.c (pru_hard_regno_call_part_clobbered): Likewise.
7751 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
7752 Likewise.
7753 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Likewise.
7754 * cselib.c: Include function-abi.h.
7755 (cselib_process_insn): Update call to
7756 targetm.hard_regno_call_part_clobbered, using insn_callee_abi
7757 to get the appropriate ABI identifier.
7758 * function-abi.cc (predefined_function_abi::initialize): Update call
7759 to targetm.hard_regno_call_part_clobbered.
7760 * ira-conflicts.c (ira_build_conflicts): Likewise.
7761 * ira-costs.c (ira_tune_allocno_costs): Likewise.
7762 * lra-constraints.c: Include function-abi.h.
7763 (need_for_call_save_p): Update call to
7764 targetm.hard_regno_call_part_clobbered, using insn_callee_abi
7765 to get the appropriate ABI identifier.
7766 * lra-lives.c (check_pseudos_live_through_calls): Likewise.
7767 * regcprop.c (copyprop_hardreg_forward_1): Update call
7768 to targetm.hard_regno_call_part_clobbered.
7769 * reginfo.c (choose_hard_reg_mode): Likewise.
7770 * regrename.c (check_new_reg_p): Likewise.
7771 * reload.c (find_equiv_reg): Likewise.
7772 * reload1.c (emit_reload_insns): Likewise.
7773 * sched-deps.c: Include function-abi.h.
7774 (deps_analyze_insn): Update call to
7775 targetm.hard_regno_call_part_clobbered, using insn_callee_abi
7776 to get the appropriate ABI identifier.
7777 * sel-sched.c (init_regs_for_mode, mark_unavailable_hard_regs): Update
7778 call to targetm.hard_regno_call_part_clobbered.
7779 * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
7780
7781 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7782
7783 * config/i386/i386.c: Include function-abi.h.
7784 (ix86_avx_u128_mode_needed): Treat function calls as AVX_U128_ANY
7785 if they preserve some 256-bit or 512-bit SSE registers.
7786
7787 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7788
7789 * target.def (insn_callee_abi): New hook.
7790 (remove_extra_call_preserved_regs): Delete.
7791 * doc/tm.texi.in (TARGET_INSN_CALLEE_ABI): New macro.
7792 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): Delete.
7793 * doc/tm.texi: Regenerate.
7794 * targhooks.h (default_remove_extra_call_preserved_regs): Delete.
7795 * targhooks.c (default_remove_extra_call_preserved_regs): Delete.
7796 * config/aarch64/aarch64.c (aarch64_simd_call_p): Constify the
7797 insn argument.
7798 (aarch64_remove_extra_call_preserved_regs): Delete.
7799 (aarch64_insn_callee_abi): New function.
7800 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): Delete.
7801 (TARGET_INSN_CALLEE_ABI): New macro.
7802 * rtl.h (get_call_fndecl): Declare.
7803 (cgraph_rtl_info): Fix formatting. Tweak comment for
7804 function_used_regs. Remove function_used_regs_valid.
7805 * rtlanal.c (get_call_fndecl): Moved from final.c
7806 * function-abi.h (insn_callee_abi): Declare.
7807 (target_function_abi_info): Mention insn_callee_abi.
7808 * function-abi.cc (fndecl_abi): Handle flag_ipa_ra in a similar
7809 way to get_call_reg_set_usage did.
7810 (insn_callee_abi): New function.
7811 * regs.h (get_call_reg_set_usage): Delete.
7812 * final.c: Include function-abi.h.
7813 (collect_fn_hard_reg_usage): Add fixed and stack registers to
7814 function_used_regs before the main loop rather than afterwards.
7815 Use insn_callee_abi instead of get_call_reg_set_usage. Exit early
7816 if function_used_regs ends up not being useful.
7817 (get_call_fndecl): Move to rtlanal.c
7818 (get_call_cgraph_rtl_info, get_call_reg_set_usage): Delete.
7819 * caller-save.c: Include function-abi.h.
7820 (setup_save_areas, save_call_clobbered_regs): Use insn_callee_abi
7821 instead of get_call_reg_set_usage.
7822 * cfgcleanup.c: Include function-abi.h.
7823 (old_insns_match_p): Use insn_callee_abi instead of
7824 get_call_reg_set_usage.
7825 * cgraph.h (cgraph_node::rtl_info): Take a const_tree instead of
7826 a tree.
7827 * cgraph.c (cgraph_node::rtl_info): Likewise. Initialize
7828 function_used_regs.
7829 * df-scan.c: Include function-abi.h.
7830 (df_get_call_refs): Use insn_callee_abi instead of
7831 get_call_reg_set_usage.
7832 * ira-lives.c: Include function-abi.h.
7833 (process_bb_node_lives): Use insn_callee_abi instead of
7834 get_call_reg_set_usage.
7835 * lra-lives.c: Include function-abi.h.
7836 (process_bb_lives): Use insn_callee_abi instead of
7837 get_call_reg_set_usage.
7838 * postreload.c: Include function-abi.h.
7839 (reload_combine): Use insn_callee_abi instead of
7840 get_call_reg_set_usage.
7841 * regcprop.c: Include function-abi.h.
7842 (copyprop_hardreg_forward_1): Use insn_callee_abi instead of
7843 get_call_reg_set_usage.
7844 * resource.c: Include function-abi.h.
7845 (mark_set_resources, mark_target_live_regs): Use insn_callee_abi
7846 instead of get_call_reg_set_usage.
7847 * var-tracking.c: Include function-abi.h.
7848 (dataflow_set_clear_at_call): Use insn_callee_abi instead of
7849 get_call_reg_set_usage.
7850
7851 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7852
7853 * target.def (fntype_abi): New target hook.
7854 * doc/tm.texi.in (TARGET_FNTYPE_ABI): Likewise.
7855 * doc/tm.texi: Regenerate.
7856 * target.h (predefined_function_abi): Declare.
7857 * function-abi.cc (fntype_abi): Call targetm.calls.fntype_abi,
7858 if defined.
7859 * config/aarch64/aarch64.h (ARM_PCS_SIMD): New arm_pcs value.
7860 * config/aarch64/aarch64.c: Include function-abi.h.
7861 (aarch64_simd_abi, aarch64_fntype_abi): New functions.
7862 (TARGET_FNTYPE_ABI): Define.
7863
7864 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7865
7866 * Makefile.in (OBJS): Add function-abi.o.
7867 (GTFILES): Add function-abi.h.
7868 * function-abi.cc: New file.
7869 * function-abi.h: Likewise.
7870 * emit-rtl.h (rtl_data::abi): New field.
7871 * function.c: Include function-abi.h.
7872 (prepare_function_start): Initialize crtl->abi.
7873 * read-rtl-function.c: Include regs.h and function-abi.h.
7874 (read_rtl_function_body): Initialize crtl->abi.
7875 (read_rtl_function_body_from_file_range): Likewise.
7876 * reginfo.c: Include function-abi.h.
7877 (init_reg_sets_1): Initialize default_function_abi.
7878 (globalize_reg): Call add_full_reg_clobber for each predefined ABI
7879 when making a register global.
7880 * target-globals.h (this_target_function_abi_info): Declare.
7881 (target_globals::function_abi_info): New field.
7882 (restore_target_globals): Copy it.
7883 * target-globals.c: Include function-abi.h.
7884 (default_target_globals): Initialize the function_abi_info field.
7885 (target_globals): Allocate it.
7886 (save_target_globals): Free it.
7887
7888 2019-09-30 Nick Clifton <nickc@redhat.com>
7889
7890 PR target/85978
7891 * config/frv/frv.c (frv_register_move_cost): Add break statements
7892 to avoid falling through to the wrong cases. Tidy code.
7893
7894 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7895
7896 * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
7897 For multi-registers modes, test how big each register part is.
7898
7899 2019-09-30 Nick Clifton <nickc@redhat.com>
7900
7901 PR target/59205
7902 * config/iq2000/iq2000.c (iq2000_select_section): Delete.
7903 (TARGET_ASM_SELECT_SECTION): Remove definition.
7904 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Allow definition.
7905
7906 2019-09-30 Ilya Leoshkevich <iii@linux.ibm.com>
7907
7908 * emit-rtl.c (init_raw_REG): New function.
7909 (gen_raw_REG): Use init_raw_REG.
7910 * gengenrtl.c (gendef): Emit init_* functions and alloca_*
7911 macros.
7912 * rtl.c (rtx_alloc_stat_v): Use rtx_init.
7913 * rtl.h (rtx_init): New function.
7914 (rtx_alloca): New function.
7915 (init_raw_REG): New function.
7916 (alloca_raw_REG): New macro.
7917
7918 2019-09-30 Michael Meissner <meissner@linux.ibm.com>
7919
7920 * config/rs6000/predicates.md (pcrel_address): Delete predicate.
7921 (pcrel_local_address): Replace pcrel_address predicate, use the
7922 new function address_to_insn_form.
7923 (pcrel_external_address): Replace with new implementation using
7924 address_to_insn_form..
7925 (prefixed_mem_operand): Delete predicate which is now unused.
7926 (pcrel_external_mem_operand): Delete predicate which is now
7927 unused.
7928 * config/rs6000/rs6000-protos.h (enum insn_form): New
7929 enumeration.
7930 (enum non_prefixed_form): New enumeration.
7931 (address_to_insn_form): New declaration.
7932 (prefixed_load_p): New declaration.
7933 (prefixed_store_p): New declaration.
7934 (prefixed_paddi_p): New declaration.
7935 (rs6000_asm_output_opcode): New declaration.
7936 (rs6000_final_prescan_insn): Move declaration and update calling
7937 signature.
7938 (address_is_prefixed): New helper inline function.
7939 * config/rs6000/rs6000.c(print_operand_address): Check for either
7940 PC-relative local symbols or PC-relative external symbols.
7941 (rs6000_emit_move): Support loading PC-relative addresses.
7942 (mode_supports_prefixed_address_p): Delete, no longer used.
7943 (rs6000_prefixed_address_mode_p): Delete, no longer used.
7944 (address_to_insn_form): New function to decode an address format.
7945 (reg_to_non_prefixed): New function to identify what the
7946 non-prefixed memory instruction format is for a register.
7947 (prefixed_load_p): New function to identify prefixed loads.
7948 (prefixed_store_p): New function to identify prefixed stores.
7949 (prefixed_paddi_p): New function to identify prefixed load
7950 immediates.
7951 (next_insn_prefixed_p): New static state variable.
7952 (rs6000_final_prescan_insn): New function to determine if an insn
7953 uses a prefixed instruction.
7954 (rs6000_asm_output_opcode): New function to emit 'p' in front of a
7955 prefixed instruction.
7956 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): New target hook.
7957 (ASM_OUTPUT_OPCODE): New target hook.
7958 * config/rs6000/rs6000.md (prefixed): New insn attribute for
7959 prefixed instructions.
7960 (prefixed_length): New insn attribute for the size of prefixed
7961 instructions.
7962 (non_prefixed_length): New insn attribute for the size of
7963 non-prefixed instructions.
7964 (pcrel_local_addr): New insn to load up a local PC-relative
7965 address.
7966 (pcrel_extern_addr): New insn to load up an external PC-relative
7967 address.
7968 (mov<mode>_64bit_dm): Split the alternatives for loading 0.0 to a
7969 GPR and loading a 128-bit floating point type to a GPR.
7970
7971 2019-09-30 Richard Biener <rguenther@suse.de>
7972
7973 * gimple.c (gimple_get_lhs): For PHIs return the result.
7974 * tree-vectorizer.h (vectorizable_live_operation): Also get the
7975 SLP instance as argument.
7976 * tree-vect-loop.c (vect_analyze_loop_operations): Also handle
7977 double-reduction PHIs with vectorizable_lc_phi.
7978 (vect_analyze_loop_operations): Adjust.
7979 (vect_create_epilog_for_reduction): Remove all code not dealing
7980 with reduction LC PHI or epilogue generation.
7981 (vectorizable_live_operation): Call vect_create_epilog_for_reduction
7982 for live stmts of reductions.
7983 * tree-vect-stmts.c (vectorizable_condition): When !for_reduction
7984 do not handle defs that are not vect_internal_def.
7985 (can_vectorize_live_stmts): Adjust.
7986 (vect_analyze_stmt): When the vectorized stmt defined a value
7987 used on backedges adjust the backedge uses of vectorized PHIs.
7988
7989 2019-09-30 Martin Jambor <mjambor@suse.cz>
7990
7991 PR ipa/91853
7992 * tree-inline.c (force_value_to_type): New function.
7993 (setup_one_parameter): Use force_value_to_type to convert type.
7994 * tree-inline.c (force_value_to_type): Declare.
7995 * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Deal
7996 with register type mismatches.
7997
7998 2019-09-30 Andreas Tobler <andreast@gcc.gnu.org>
7999
8000 * config.gcc: Use the secure-plt on FreeBSD 13 and upwards for
8001 32-bit PowerPC.
8002 Define TARGET_FREEBSD32_SECURE_PLT for 64-bit PowerPC.
8003 * config/rs6000/t-freebsd64: Make use of the above define and build
8004 the 32-bit libraries with secure-plt.
8005
8006 2019-09-30 Jakub Jelinek <jakub@redhat.com>
8007
8008 PR target/91931
8009 * config/i386/i386-expand.c (ix86_expand_adjust_ufix_to_sfix_si): Use
8010 gen_int_mode instead of GEN_INT.
8011
8012 2019-09-29 Iain Sandoe <iain@sandoe.co.uk>
8013
8014 * config/darwin.c (gen_macho_low): Amend to include the mode
8015 argument.
8016 (machopic_indirect_data_reference): Amend gen_macho_low call
8017 to include mode argument
8018 * config/rs6000/rs6000.c (emit_move): Likewise. Amend a comment.
8019 * config/rs6000/darwin.md (@macho_low_<mode>): New, replaces
8020 the macho_high expander and two define_insn entries.
8021
8022 2019-09-29 Jakub Jelinek <jakub@redhat.com>
8023
8024 PR bootstrap/90543
8025 * optc-save-gen.awk: Fix up printing string option differences.
8026
8027 2019-09-29 Kewen Lin <linkw@gcc.gnu.org>
8028
8029 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Lower
8030 vec_perm cost to 1 for non-Power7 VSX architectures.
8031
8032 2019-09-29 Kewen Lin <linkw@gcc.gnu.org>
8033
8034 * config/rs6000/vsx.md (vec_pack[su]_float_v2di): New define_expand.
8035 (vec_unpack_[su]fix_trunc_hi_v4sf): Likewise.
8036 (vec_unpack_[su]fix_trunc_lo_v4sf): Likewise.
8037
8038 2019-09-28 Iain Sandoe <iain@sandoe.co.uk>
8039
8040 * config/darwin.c (gen_macho_high): Amend to include the mode
8041 argument.
8042 (machopic_indirect_data_reference): Amend gen_macho_high call
8043 to include mode argument.
8044 (machopic_legitimize_pic_address): Likewise.
8045 * config/rs6000/rs6000.c (rs6000_legitimize_address):
8046 * config/rs6000/darwin.md (@macho_high_<mode>): New, replaces
8047 the macho_high expander and two define_insn entries.
8048
8049 2019-09-28 Oleg Endo <olegendo@gcc.gnu.org>
8050
8051 PR target/86805
8052 * config/sh/sh.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
8053
8054 2019-09-28 Oleg Endo <olegendo@gcc.gnu.org>
8055
8056 PR target/80672
8057 * config/sh/sh.c (parse_validate_atomic_model_option): Use
8058 std::string::compare instead of std::string::find.
8059
8060 2019-09-27 Maciej W. Rozycki <macro@wdc.com>
8061
8062 * configure: Regenerate.
8063
8064 2019-09-27 Jakub Jelinek <jakub@redhat.com>
8065
8066 PR middle-end/91920
8067 * gimplify.c (omp_default_clause): Predetermine DECL_IN_CONSTANT_POOL
8068 variables as shared.
8069
8070 2019-09-27 Iain Sandoe <iain@sandoe.co.uk>
8071
8072 * config/rs6000/darwin.md (@macho_correct_pic_<mode>): New,
8073 replaces the expander and two define_insn entries.
8074 (@reload_macho_picbase_<mode>): Update gen_macho_correct_pic
8075 call.
8076 * config/rs6000/rs6000.md (builtin_setjmp_receiver): Likewise.
8077
8078 2019-09-27 David Malcolm <dmalcolm@redhat.com>
8079
8080 * fibonacci_heap.h (fibonacci_heap::empty): Make const.
8081 (fibonacci_heap::nodes): Likewise.
8082 (fibonacci_heap::min_key): Likewise.
8083 (fibonacci_heap::min): Likewise.
8084
8085 2019-09-27 David Malcolm <dmalcolm@redhat.com>
8086
8087 * cgraph.c (cgraph_node::get_fun): Make const.
8088 * cgraph.h (cgraph_node::get_fun): Likewise.
8089
8090 2019-09-27 Jakub Jelinek <jakub@redhat.com>
8091
8092 PR target/91919
8093 * config/arm/arm.md (<US>mlal): Remove SE wrappers around operands
8094 of SImode MULT.
8095
8096 2019-09-27 Richard Biener <rguenther@suse.de>
8097
8098 * tree-vectorizer.h (_stmt_vec_info::reduc_fn): New.
8099 (STMT_VINFO_REDUC_FN): Likewise.
8100 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
8101 STMT_VINFO_REDUC_FN.
8102 * tree-vect-loop.c (vect_is_simple_reduction): Fix STMT_VINFO_REDUC_IDX
8103 for condition reductions.
8104 (vect_create_epilog_for_reduction): Compute all required state
8105 from the stmt to be vectorized.
8106 (vectorizable_reduction): Simplify vect_create_epilog_for_reduction
8107 invocation and remove then dead code. For single def-use chains
8108 record only a single vector stmt.
8109
8110 2019-09-27 Richard Sandiford <richard.sandiford@arm.com>
8111
8112 * config/aarch64/aarch64-protos.h (aarch64_builtin_class): New enum.
8113 (AARCH64_BUILTIN_SHIFT, AARCH64_BUILTIN_CLASS): New constants.
8114 (aarch64_gimple_fold_builtin, aarch64_mangle_builtin_type)
8115 (aarch64_fold_builtin, aarch64_init_builtins, aarch64_expand_builtin):
8116 (aarch64_builtin_decl, aarch64_builtin_rsqrt): Delete.
8117 (aarch64_general_mangle_builtin_type, aarch64_general_init_builtins):
8118 (aarch64_general_fold_builtin, aarch64_general_gimple_fold_builtin):
8119 (aarch64_general_expand_builtin, aarch64_general_builtin_decl):
8120 (aarch64_general_builtin_rsqrt): Declare.
8121 * config/aarch64/aarch64-builtins.c (aarch64_general_add_builtin):
8122 New function.
8123 (aarch64_mangle_builtin_type): Rename to...
8124 (aarch64_general_mangle_builtin_type): ...this.
8125 (aarch64_init_fcmla_laneq_builtins, aarch64_init_simd_builtins)
8126 (aarch64_init_crc32_builtins, aarch64_init_builtin_rsqrt)
8127 (aarch64_init_pauth_hint_builtins, aarch64_init_tme_builtins): Use
8128 aarch64_general_add_builtin instead of add_builtin_function.
8129 (aarch64_init_builtins): Rename to...
8130 (aarch64_general_init_builtins): ...this. Use
8131 aarch64_general_add_builtin instead of add_builtin_function.
8132 (aarch64_builtin_decl): Rename to...
8133 (aarch64_general_builtin_decl): ...this and remove the unused
8134 arguments.
8135 (aarch64_expand_builtin): Rename to...
8136 (aarch64_general_expand_builtin): ...this and remove the unused
8137 arguments.
8138 (aarch64_builtin_rsqrt): Rename to...
8139 (aarch64_general_builtin_rsqrt): ...this.
8140 (aarch64_fold_builtin): Rename to...
8141 (aarch64_general_fold_builtin): ...this. Take the function subcode
8142 and return type as arguments. Remove the "ignored" argument.
8143 (aarch64_gimple_fold_builtin): Rename to...
8144 (aarch64_general_gimple_fold_builtin): ...this. Take the function
8145 subcode and gcall as arguments, and return the new function call.
8146 * config/aarch64/aarch64.c (aarch64_init_builtins)
8147 (aarch64_fold_builtin, aarch64_gimple_fold_builtin)
8148 (aarch64_expand_builtin, aarch64_builtin_decl): New functions.
8149 (aarch64_builtin_reciprocal): Call aarch64_general_builtin_rsqrt
8150 instead of aarch64_builtin_rsqrt.
8151 (aarch64_mangle_type): Call aarch64_general_mangle_builtin_type
8152 instead of aarch64_mangle_builtin_type.
8153
8154 2019-09-27 Richard Sandiford <richard.sandiford@arm.com>
8155
8156 * target.def (check_builtin_call): New target hook.
8157 * doc/tm.texi.in (TARGET_CHECK_BUILTIN_CALL): New @hook.
8158 * doc/tm.texi: Regenerate.
8159
8160 2019-09-27 Richard Sandiford <richard.sandiford@arm.com>
8161
8162 PR tree-optimization/91909
8163 * tree-vect-loop.c (vect_create_epilog_for_reduction): Take a
8164 reduc_index parameter. When handling COND_REDUCTION, make sure
8165 that the reduction phi operand is in the correct arm of the
8166 VEC_COND_EXPR.
8167 (vectorizable_reduction): Pass reduc_index to the above.
8168
8169 2019-09-27 Yuliang Wang <yuliang.wang@arm.com>
8170
8171 * config/aarch64/aarch64-sve2.md (aarch64_sve2_sra<mode>):
8172 New combine pattern.
8173
8174 2019-09-26 Max Filippov <jcmvbkbc@gmail.com>
8175
8176 * config/xtensa/xtensa.c (hwloop_optimize): Insert zero overhead
8177 loop instruction into new basic block before the loop when basic
8178 block that precedes the loop is empty.
8179
8180 2019-09-26 Jakub Jelinek <jakub@redhat.com>
8181
8182 * function.c (gimplify_parameters): Use build_clobber function.
8183 * tree-ssa.c (execute_update_addresses_taken): Likewise.
8184 * tree-inline.c (expand_call_inline): Likewise.
8185 * tree-sra.c (clobber_subtree): Likewise.
8186 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Likewise.
8187 * omp-low.c (lower_rec_simd_input_clauses, lower_rec_input_clauses,
8188 lower_omp_single, lower_depend_clauses, lower_omp_taskreg,
8189 lower_omp_target): Likewise.
8190 * omp-expand.c (expand_omp_for_generic): Likewise.
8191 * omp-offload.c (ompdevlow_adjust_simt_enter): Likewise.
8192
8193 2019-09-26 Will Schmidt <will_schmidt@vnet.ibm.com>
8194
8195 * config/rs6000/rs6000-builtin.def: (LVSL, LVSR, LVEBX, LVEHX,
8196 LVEWX, LVXL, LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI,
8197 LVXL_V16QI, LVX, LVX_V1TI, LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI,
8198 LVX_V8HI, LVX_V16QI, LVLX, LVLXL, LVRX, LVRXL, LXSDX, LXVD2X_V1TI,
8199 LXVD2X_V2DF, LXVD2X_V2DI, LXVDSX, LXVW4X_V4SF, LXVW4X_V4SI,
8200 LXVW4X_V8HI, LXVW4X_V16QI, LD_ELEMREV_V1TI, LD_ELEMREV_V2DF,
8201 LD_ELEMREV_V2DI, LD_ELEMREV_V4SF, LD_ELEMREV_V4SI, LD_ELEMREV_V8HI,
8202 LD_ELEMREV_V16QI): Use the PURE attribute.
8203
8204 2019-09-26 Iain Sandoe <iain@sandoe.co.uk>
8205
8206 * config/rs6000/darwin.md: Replace the expanders for
8207 load_macho_picbase and reload_macho_picbase with use of '@'
8208 and <mode> in their respective define_insns.
8209 (nonlocal_goto_receiver): Pass Pmode to gen_reload_macho_picbase.
8210 * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Pass
8211 Pmode to gen_load_macho_picbase.
8212 * config/rs6000/rs6000.md: Likewise.
8213
8214 2019-09-25 Richard Biener <rguenther@suse.de>
8215
8216 PR tree-optimization/91896
8217 * tree-vect-loop.c (vectorizable_reduction): The single
8218 def-use cycle optimization cannot apply when there's more
8219 than one pattern stmt involved.
8220
8221 2019-09-26 Richard Biener <rguenther@suse.de>
8222
8223 * tree-vect-loop.c (vect_analyze_loop_operations): Analyze
8224 loop-closed PHIs that are vect_internal_def.
8225 (vect_create_epilog_for_reduction): Exit early for nested cycles.
8226 Simplify.
8227 (vectorizable_lc_phi): New.
8228 * tree-vect-stmts.c (vect_analyze_stmt): Call vectorize_lc_phi.
8229 (vect_transform_stmt): Likewise.
8230 * tree-vectorizer.h (stmt_vec_info_type): Add lc_phi_info_type.
8231 (vectorizable_lc_phi): Declare.
8232
8233 2019-09-26 Richard Biener <rguenther@suse.de>
8234
8235 * tree-vect-loop.c (vect_analyze_loop_operations): Also call
8236 vectorizable_reduction for vect_double_reduction_def.
8237 (vect_transform_loop): Likewise.
8238 (vect_create_epilog_for_reduction): Move double-reduction
8239 PHI creation and preheader argument setting of PHIs ...
8240 (vectorizable_reduction): ... here. Also process
8241 vect_double_reduction_def PHIs, creating the vectorized
8242 PHI nodes, remembering the scalar adjustment computed for
8243 the epilogue in STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT.
8244 Remember the original reduction code in STMT_VINFO_REDUC_CODE.
8245 * tree-vectorizer.c (vec_info::new_stmt_vec_info):
8246 Initialize STMT_VINFO_REDUC_CODE.
8247 * tree-vectorizer.h (_stmt_vec_info::reduc_epilogue_adjustment): New.
8248 (_stmt_vec_info::reduc_code): Likewise.
8249 (STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT): Likewise.
8250 (STMT_VINFO_REDUC_CODE): Likewise.
8251
8252 2019-09-26 Matt Turner <mattst88@gmail.com>
8253
8254 PR driver/69471
8255 * config/aarch64/aarch64.opt (march=): Add Negative(march=).
8256 (mtune=): Add Negative(mtune=).
8257 (mcpu=): Add Negative(mcpu=).
8258 * config/arm/arm.opt: Likewise.
8259
8260 2019-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8261
8262 * config/arm/arm.md (arm_<simd32_op>): New define_insn.
8263 * config/arm/arm_acle.h (__smlald, __smlaldx, __smlsld, __smlsldx):
8264 Define.
8265 * config/arm/arm_acle.h: Define builtins for the above.
8266 * config/arm/iterators.md (SIMD32_DIMODE): New int_iterator.
8267 (simd32_op): Handle the above.
8268 * config/arm/unspecs.md: Define unspecs for the above.
8269
8270 2019-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8271
8272 * config/arm/arm.md (arm_<simd32_op>): New define_insn.
8273 (arm_<sup>xtb16): Likewise.
8274 (arm_usada8): Likewise.
8275 * config/arm/arm_acle.h (__qadd8, __qsub8, __shadd8, __shsub8,
8276 __uhadd8, __uhsub8, __uqadd8, __uqsub8, __qadd16, __qasx, __qsax,
8277 __qsub16, __shadd16, __shasx, __shsax, __shsub16, __uhadd16, __uhasx,
8278 __uhsax, __uhsub16, __uqadd16, __uqasx, __uqsax, __uqsub16, __sxtab16,
8279 __sxtb16, __uxtab16, __uxtb16): Define.
8280 * config/arm/arm_acle_builtins.def: Define builtins for the above.
8281 * config/arm/unspecs.md: Define unspecs for the above.
8282 * config/arm/iterators.md (SIMD32_NOGE_BINOP): New int_iterator.
8283 (USXTB16): Likewise.
8284 (simd32_op): New int_attribute.
8285 (sup): Handle UNSPEC_SXTB16, UNSPEC_UXTB16.
8286 * doc/sourcebuild.exp (arm_simd32_ok): Document.
8287
8288 2019-09-26 Martin Jambor <mjambor@suse.cz>
8289
8290 * ipa-sra.c (verify_splitting_accesses): Fix quoting in a call to
8291 internal_error.
8292
8293 2019-09-26 Martin Jambor <mjambor@suse.cz>
8294
8295 * ipa-sra.c (process_scan_results): Fix continue condition.
8296
8297 2019-09-26 Martin Liska <mliska@suse.cz>
8298
8299 PR tree-optimization/91885
8300 * tree-vectorizer.c (try_vectorize_loop_1): Add
8301 TODO_update_ssa_only_virtuals similarly to what slp pass does.
8302
8303 2019-09-26 Richard Sandiford <richard.sandiford@arm.com>
8304
8305 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use
8306 aarch64_plus_immediate rather than aarch64_uimm12_shift
8307 to test for valid PLUS immediates.
8308
8309 2019-09-25 Martin Jambor <mjambor@suse.cz>
8310
8311 * tree-sra.c (no_accesses_p): Remove.
8312 (no_accesses_representant): Likewise.
8313
8314 2019-09-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8315
8316 * config/aarch64/arm_neon.h (vaba_s8): Use __ in identifiers
8317 consistenly.
8318 (vaba_s16): Likewise.
8319 (vaba_s32): Likewise.
8320 (vaba_u8): Likewise.
8321 (vaba_u16): Likewise.
8322 (vaba_u32): Likewise.
8323 (vabal_high_s8): Likewise.
8324 (vabal_high_s16): Likewise.
8325 (vabal_high_s32): Likewise.
8326 (vabal_high_u8): Likewise.
8327 (vabal_high_u16): Likewise.
8328 (vabal_high_u32): Likewise.
8329 (vabal_s8): Likewise.
8330 (vabal_s16): Likewise.
8331 (vabal_s32): Likewise.
8332 (vabal_u8): Likewise.
8333 (vabal_u16): Likewise.
8334 (vabal_u32): Likewise.
8335 (vabaq_s8): Likewise.
8336 (vabaq_s16): Likewise.
8337 (vabaq_s32): Likewise.
8338 (vabaq_u8): Likewise.
8339 (vabaq_u16): Likewise.
8340 (vabaq_u32): Likewise.
8341 (vabd_s8): Likewise.
8342 (vabd_s16): Likewise.
8343 (vabd_s32): Likewise.
8344 (vabd_u8): Likewise.
8345 (vabd_u16): Likewise.
8346 (vabd_u32): Likewise.
8347 (vabdl_high_s8): Likewise.
8348 (vabdl_high_s16): Likewise.
8349 (vabdl_high_s32): Likewise.
8350 (vabdl_high_u8): Likewise.
8351 (vabdl_high_u16): Likewise.
8352 (vabdl_high_u32): Likewise.
8353 (vabdl_s8): Likewise.
8354 (vabdl_s16): Likewise.
8355 (vabdl_s32): Likewise.
8356 (vabdl_u8): Likewise.
8357 (vabdl_u16): Likewise.
8358 (vabdl_u32): Likewise.
8359 (vabdq_s8): Likewise.
8360 (vabdq_s16): Likewise.
8361 (vabdq_s32): Likewise.
8362 (vabdq_u8): Likewise.
8363 (vabdq_u16): Likewise.
8364 (vabdq_u32): Likewise.
8365 (vaddlv_s8): Likewise.
8366 (vaddlv_s16): Likewise.
8367 (vaddlv_u8): Likewise.
8368 (vaddlv_u16): Likewise.
8369 (vaddlvq_s8): Likewise.
8370 (vaddlvq_s16): Likewise.
8371 (vaddlvq_s32): Likewise.
8372 (vaddlvq_u8): Likewise.
8373 (vaddlvq_u16): Likewise.
8374 (vaddlvq_u32): Likewise.
8375 (vcvtx_f32_f64): Likewise.
8376 (vcvtx_high_f32_f64): Likewise.
8377 (vcvtxd_f32_f64): Likewise.
8378 (vmla_n_f32): Likewise.
8379 (vmla_n_s16): Likewise.
8380 (vmla_n_s32): Likewise.
8381 (vmla_n_u16): Likewise.
8382 (vmla_n_u32): Likewise.
8383 (vmla_s8): Likewise.
8384 (vmla_s16): Likewise.
8385 (vmla_s32): Likewise.
8386 (vmla_u8): Likewise.
8387 (vmla_u16): Likewise.
8388 (vmla_u32): Likewise.
8389 (vmlal_high_n_s16): Likewise.
8390 (vmlal_high_n_s32): Likewise.
8391 (vmlal_high_n_u16): Likewise.
8392 (vmlal_high_n_u32): Likewise.
8393 (vmlal_high_s8): Likewise.
8394 (vmlal_high_s16): Likewise.
8395 (vmlal_high_s32): Likewise.
8396 (vmlal_high_u8): Likewise.
8397 (vmlal_high_u16): Likewise.
8398 (vmlal_high_u32): Likewise.
8399 (vmlal_n_s16): Likewise.
8400 (vmlal_n_s32): Likewise.
8401 (vmlal_n_u16): Likewise.
8402 (vmlal_n_u32): Likewise.
8403 (vmlal_s8): Likewise.
8404 (vmlal_s16): Likewise.
8405 (vmlal_s32): Likewise.
8406 (vmlal_u8): Likewise.
8407 (vmlal_u16): Likewise.
8408 (vmlal_u32): Likewise.
8409 (vmlaq_n_f32): Likewise.
8410 (vmlaq_n_s16): Likewise.
8411 (vmlaq_n_s32): Likewise.
8412 (vmlaq_n_u16): Likewise.
8413 (vmlaq_n_u32): Likewise.
8414 (vmlaq_s8): Likewise.
8415 (vmlaq_s16): Likewise.
8416 (vmlaq_s32): Likewise.
8417 (vmlaq_u8): Likewise.
8418 (vmlaq_u16): Likewise.
8419 (vmlaq_u32): Likewise.
8420 (vmls_n_f32): Likewise.
8421 (vmls_n_s16): Likewise.
8422 (vmls_n_s32): Likewise.
8423 (vmls_n_u16): Likewise.
8424 (vmls_n_u32): Likewise.
8425 (vmls_s8): Likewise.
8426 (vmls_s16): Likewise.
8427 (vmls_s32): Likewise.
8428 (vmls_u8): Likewise.
8429 (vmls_u16): Likewise.
8430 (vmls_u32): Likewise.
8431 (vmlsl_high_n_s16): Likewise.
8432 (vmlsl_high_n_s32): Likewise.
8433 (vmlsl_high_n_u16): Likewise.
8434 (vmlsl_high_n_u32): Likewise.
8435 (vmlsl_high_s8): Likewise.
8436 (vmlsl_high_s16): Likewise.
8437 (vmlsl_high_s32): Likewise.
8438 (vmlsl_high_u8): Likewise.
8439 (vmlsl_high_u16): Likewise.
8440 (vmlsl_high_u32): Likewise.
8441 (vmlsl_n_s16): Likewise.
8442 (vmlsl_n_s32): Likewise.
8443 (vmlsl_n_u16): Likewise.
8444 (vmlsl_n_u32): Likewise.
8445 (vmlsl_s8): Likewise.
8446 (vmlsl_s16): Likewise.
8447 (vmlsl_s32): Likewise.
8448 (vmlsl_u8): Likewise.
8449 (vmlsl_u16): Likewise.
8450 (vmlsl_u32): Likewise.
8451 (vmlsq_n_f32): Likewise.
8452 (vmlsq_n_s16): Likewise.
8453 (vmlsq_n_s32): Likewise.
8454 (vmlsq_n_u16): Likewise.
8455 (vmlsq_n_u32): Likewise.
8456 (vmlsq_s8): Likewise.
8457 (vmlsq_s16): Likewise.
8458 (vmlsq_s32): Likewise.
8459 (vmlsq_u8): Likewise.
8460 (vmlsq_u16): Likewise.
8461 (vmlsq_u32): Likewise.
8462 (vmovl_high_s8): Likewise.
8463 (vmovl_high_s16): Likewise.
8464 (vmovl_high_s32): Likewise.
8465 (vmovl_high_u8): Likewise.
8466 (vmovl_high_u16): Likewise.
8467 (vmovl_high_u32): Likewise.
8468 (vmovl_s8): Likewise.
8469 (vmovl_s16): Likewise.
8470 (vmovl_s32): Likewise.
8471 (vmovl_u8): Likewise.
8472 (vmovl_u16): Likewise.
8473 (vmovl_u32): Likewise.
8474 (vmovn_high_s16): Likewise.
8475 (vmovn_high_s32): Likewise.
8476 (vmovn_high_s64): Likewise.
8477 (vmovn_high_u16): Likewise.
8478 (vmovn_high_u32): Likewise.
8479 (vmovn_high_u64): Likewise.
8480 (vmovn_s16): Likewise.
8481 (vmovn_s32): Likewise.
8482 (vmovn_s64): Likewise.
8483 (vmovn_u16): Likewise.
8484 (vmovn_u32): Likewise.
8485 (vmovn_u64): Likewise.
8486 (vmull_high_n_s16): Likewise.
8487 (vmull_high_n_s32): Likewise.
8488 (vmull_high_n_u16): Likewise.
8489 (vmull_high_n_u32): Likewise.
8490 (vmull_high_p8): Likewise.
8491 (vmull_high_s8): Likewise.
8492 (vmull_high_s16): Likewise.
8493 (vmull_high_s32): Likewise.
8494 (vmull_high_u8): Likewise.
8495 (vmull_high_u16): Likewise.
8496 (vmull_high_u32): Likewise.
8497 (vmull_n_s16): Likewise.
8498 (vmull_n_s32): Likewise.
8499 (vmull_n_u16): Likewise.
8500 (vmull_n_u32): Likewise.
8501 (vmull_p8): Likewise.
8502 (vmull_s8): Likewise.
8503 (vmull_s16): Likewise.
8504 (vmull_s32): Likewise.
8505 (vmull_u8): Likewise.
8506 (vmull_u16): Likewise.
8507 (vmull_u32): Likewise.
8508 (vpadal_s8): Likewise.
8509 (vpadal_s16): Likewise.
8510 (vpadal_s32): Likewise.
8511 (vpadal_u8): Likewise.
8512 (vpadal_u16): Likewise.
8513 (vpadal_u32): Likewise.
8514 (vpadalq_s8): Likewise.
8515 (vpadalq_s16): Likewise.
8516 (vpadalq_s32): Likewise.
8517 (vpadalq_u8): Likewise.
8518 (vpadalq_u16): Likewise.
8519 (vpadalq_u32): Likewise.
8520 (vpaddl_s8): Likewise.
8521 (vpaddl_s16): Likewise.
8522 (vpaddl_s32): Likewise.
8523 (vpaddl_u8): Likewise.
8524 (vpaddl_u16): Likewise.
8525 (vpaddl_u32): Likewise.
8526 (vpaddlq_s8): Likewise.
8527 (vpaddlq_s16): Likewise.
8528 (vpaddlq_s32): Likewise.
8529 (vpaddlq_u8): Likewise.
8530 (vpaddlq_u16): Likewise.
8531 (vpaddlq_u32): Likewise.
8532 (vpaddq_s8): Likewise.
8533 (vpaddq_s16): Likewise.
8534 (vpaddq_s32): Likewise.
8535 (vpaddq_s64): Likewise.
8536 (vpaddq_u8): Likewise.
8537 (vpaddq_u16): Likewise.
8538 (vpaddq_u32): Likewise.
8539 (vpaddq_u64): Likewise.
8540 (vqdmulh_n_s16): Likewise.
8541 (vqdmulh_n_s32): Likewise.
8542 (vqdmulhq_n_s16): Likewise.
8543 (vqdmulhq_n_s32): Likewise.
8544 (vqmovn_high_s16): Likewise.
8545 (vqmovn_high_s32): Likewise.
8546 (vqmovn_high_s64): Likewise.
8547 (vqmovn_high_u16): Likewise.
8548 (vqmovn_high_u32): Likewise.
8549 (vqmovn_high_u64): Likewise.
8550 (vqmovun_high_s16): Likewise.
8551 (vqmovun_high_s32): Likewise.
8552 (vqmovun_high_s64): Likewise.
8553 (vqrdmulh_n_s16): Likewise.
8554 (vqrdmulh_n_s32): Likewise.
8555 (vqrdmulhq_n_s16): Likewise.
8556 (vqrdmulhq_n_s32): Likewise.
8557 (vrsqrte_u32): Likewise.
8558 (vrsqrteq_u32): Likewise.
8559 (vtst_p8): Likewise.
8560 (vtst_p16): Likewise.
8561 (vtst_p64): Likewise.
8562 (vtstq_p8): Likewise.
8563 (vtstq_p16): Likewise.
8564 (vtstq_p64): Likewise.
8565 (vaddlv_s32): Likewise.
8566 (vaddlv_u32): Likewise.
8567 (vqtbl1_p8): Likewise.
8568 (vqtbl1_s8): Likewise.
8569 (vqtbl1_u8): Likewise.
8570 (vqtbl1q_p8): Likewise.
8571 (vqtbl1q_s8): Likewise.
8572 (vqtbl1q_u8): Likewise.
8573 (vqtbx1_s8): Likewise.
8574 (vqtbx1_u8): Likewise.
8575 (vqtbx1_p8): Likewise.
8576 (vqtbx1q_s8): Likewise.
8577 (vqtbx1q_u8): Likewise.
8578 (vqtbx1q_p8): Likewise.
8579 (vtbl1_s8): Likewise.
8580 (vtbl1_u8): Likewise.
8581 (vtbl1_p8): Likewise.
8582 (vtbl2_s8): Likewise.
8583 (vtbl2_u8): Likewise.
8584 (vtbl2_p8): Likewise.
8585 (vtbl3_s8): Likewise.
8586 (vtbl3_u8): Likewise.
8587 (vtbl3_p8): Likewise.
8588 (vtbl4_s8): Likewise.
8589 (vtbl4_u8): Likewise.
8590 (vtbl4_p8): Likewise.
8591 (vtbx2_s8): Likewise.
8592 (vtbx2_u8): Likewise.
8593 (vtbx2_p8): Likewise.
8594 (vld1_f32): Likewise.
8595 (vld1_f64): Likewise.
8596 (vld1_p8): Likewise.
8597 (vld1_p16): Likewise.
8598 (vld1_p64): Likewise.
8599 (vld1_s8): Likewise.
8600 (vld1_s16): Likewise.
8601 (vld1_s32): Likewise.
8602 (vld1_s64): Likewise.
8603 (vld1_u8): Likewise.
8604 (vld1_u16): Likewise.
8605 (vld1_u32): Likewise.
8606 (vld1_u64): Likewise.
8607 (vld1q_f32): Likewise.
8608 (vld1q_f64): Likewise.
8609 (vld1q_p8): Likewise.
8610 (vld1q_p16): Likewise.
8611 (vld1q_p64): Likewise.
8612 (vld1q_s8): Likewise.
8613 (vld1q_s16): Likewise.
8614 (vld1q_s32): Likewise.
8615 (vld1q_s64): Likewise.
8616 (vld1q_u8): Likewise.
8617 (vld1q_u16): Likewise.
8618 (vld1q_u32): Likewise.
8619 (vld1q_u64): Likewise.
8620 (vpmax_s8): Likewise.
8621 (vpmax_s16): Likewise.
8622 (vpmax_s32): Likewise.
8623 (vpmax_u8): Likewise.
8624 (vpmax_u16): Likewise.
8625 (vpmax_u32): Likewise.
8626 (vpmaxq_s8): Likewise.
8627 (vpmaxq_s16): Likewise.
8628 (vpmaxq_s32): Likewise.
8629 (vpmaxq_u8): Likewise.
8630 (vpmaxq_u16): Likewise.
8631 (vpmaxq_u32): Likewise.
8632 (vpmax_f32): Likewise.
8633 (vpmaxq_f32): Likewise.
8634 (vpmaxq_f64): Likewise.
8635 (vpmaxqd_f64): Likewise.
8636 (vpmaxs_f32): Likewise.
8637 (vpmaxnm_f32): Likewise.
8638 (vpmaxnmq_f32): Likewise.
8639 (vpmaxnmq_f64): Likewise.
8640 (vpmaxnmqd_f64): Likewise.
8641 (vpmaxnms_f32): Likewise.
8642 (vpmin_s8): Likewise.
8643 (vpmin_s16): Likewise.
8644 (vpmin_s32): Likewise.
8645 (vpmin_u8): Likewise.
8646 (vpmin_u16): Likewise.
8647 (vpmin_u32): Likewise.
8648 (vpminq_s8): Likewise.
8649 (vpminq_s16): Likewise.
8650 (vpminq_s32): Likewise.
8651 (vpminq_u8): Likewise.
8652 (vpminq_u16): Likewise.
8653 (vpminq_u32): Likewise.
8654 (vpmin_f32): Likewise.
8655 (vpminq_f32): Likewise.
8656 (vpminq_f64): Likewise.
8657 (vpminqd_f64): Likewise.
8658 (vpmins_f32): Likewise.
8659 (vpminnm_f32): Likewise.
8660 (vpminnmq_f32): Likewise.
8661 (vpminnmq_f64): Likewise.
8662 (vpminnmqd_f64): Likewise.
8663 (vpminnms_f32): Likewise.
8664 (vmla_f32): Likewise.
8665 (vmlaq_f32): Likewise.
8666 (vmlaq_f64): Likewise.
8667 (vmls_f32): Likewise.
8668 (vmlsq_f32): Likewise.
8669 (vmlsq_f64): Likewise.
8670 (vqtbl2_s8): Likewise.
8671 (vqtbl2_u8): Likewise.
8672 (vqtbl2_p8): Likewise.
8673 (vqtbl2q_s8): Likewise.
8674 (vqtbl2q_u8): Likewise.
8675 (vqtbl2q_p8): Likewise.
8676 (vqtbl3_s8): Likewise.
8677 (vqtbl3_u8): Likewise.
8678 (vqtbl3_p8): Likewise.
8679 (vqtbl3q_s8): Likewise.
8680 (vqtbl3q_u8): Likewise.
8681 (vqtbl3q_p8): Likewise.
8682 (vqtbl4_s8): Likewise.
8683 (vqtbl4_u8): Likewise.
8684 (vqtbl4_p8): Likewise.
8685 (vqtbl4q_s8): Likewise.
8686 (vqtbl4q_u8): Likewise.
8687 (vqtbl4q_p8): Likewise.
8688 (vqtbx2_s8): Likewise.
8689 (vqtbx2_u8): Likewise.
8690 (vqtbx2_p8): Likewise.
8691 (vqtbx2q_s8): Likewise.
8692 (vqtbx2q_u8): Likewise.
8693 (vqtbx2q_p8): Likewise.
8694 (vqtbx3_s8): Likewise.
8695 (vqtbx3_u8): Likewise.
8696 (vqtbx3_p8): Likewise.
8697 (vqtbx3q_s8): Likewise.
8698 (vqtbx3q_u8): Likewise.
8699 (vqtbx3q_p8): Likewise.
8700 (vqtbx4_s8): Likewise.
8701 (vqtbx4_u8): Likewise.
8702 (vqtbx4_p8): Likewise.
8703 (vqtbx4q_s8): Likewise.
8704 (vqtbx4q_u8): Likewise.
8705 (vqtbx4q_p8): Likewise.
8706 (vrev16_p8): Likewise.
8707 (vrev16_s8): Likewise.
8708 (vrev16_u8): Likewise.
8709 (vrev16q_p8): Likewise.
8710 (vrev16q_s8): Likewise.
8711 (vrev16q_u8): Likewise.
8712 (vrev32_p8): Likewise.
8713 (vrev32_p16): Likewise.
8714 (vrev32_s8): Likewise.
8715 (vrev32_s16): Likewise.
8716 (vrev32_u8): Likewise.
8717 (vrev32_u16): Likewise.
8718 (vrev32q_p8): Likewise.
8719 (vrev32q_p16): Likewise.
8720 (vrev32q_s8): Likewise.
8721 (vrev32q_s16): Likewise.
8722 (vrev32q_u8): Likewise.
8723 (vrev32q_u16): Likewise.
8724 (vrev64_f32): Likewise.
8725 (vrev64_p8): Likewise.
8726 (vrev64_p16): Likewise.
8727 (vrev64_s8): Likewise.
8728 (vrev64_s16): Likewise.
8729 (vrev64_s32): Likewise.
8730 (vrev64_u8): Likewise.
8731 (vrev64_u16): Likewise.
8732 (vrev64_u32): Likewise.
8733 (vrev64q_f32): Likewise.
8734 (vrev64q_p8): Likewise.
8735 (vrev64q_p16): Likewise.
8736 (vrev64q_s8): Likewise.
8737 (vrev64q_s16): Likewise.
8738 (vrev64q_s32): Likewise.
8739 (vrev64q_u8): Likewise.
8740 (vrev64q_u16): Likewise.
8741 (vrev64q_u32): Likewise.
8742 (vsha1cq_u32): Likewise.
8743 (vsha1mq_u32): Likewise.
8744 (vsha1pq_u32): Likewise.
8745 (vsha1h_u32): Likewise.
8746 (vsha1su0q_u32): Likewise.
8747 (vsha1su1q_u32): Likewise.
8748 (vsha256hq_u32): Likewise.
8749 (vsha256h2q_u32): Likewise.
8750 (vsha256su0q_u32): Likewise.
8751 (vsha256su1q_u32): Likewise.
8752 (vmull_p64): Likewise.
8753 (vmull_high_p64): Likewise.
8754 (vsqrt_f32): Likewise.
8755 (vsqrtq_f32): Likewise.
8756 (vsqrt_f64): Likewise.
8757 (vsqrtq_f64): Likewise.
8758 (vst1_f32): Likewise.
8759 (vst1_f64): Likewise.
8760 (vst1_p8): Likewise.
8761 (vst1_p16): Likewise.
8762 (vst1_p64): Likewise.
8763 (vst1_s8): Likewise.
8764 (vst1_s16): Likewise.
8765 (vst1_s32): Likewise.
8766 (vst1_s64): Likewise.
8767 (vst1_u8): Likewise.
8768 (vst1_u16): Likewise.
8769 (vst1_u32): Likewise.
8770 (vst1_u64): Likewise.
8771 (vst1q_f32): Likewise.
8772 (vst1q_f64): Likewise.
8773 (vst1q_p8): Likewise.
8774 (vst1q_p16): Likewise.
8775 (vst1q_p64): Likewise.
8776 (vst1q_s8): Likewise.
8777 (vst1q_s16): Likewise.
8778 (vst1q_s32): Likewise.
8779 (vst1q_s64): Likewise.
8780 (vst1q_u8): Likewise.
8781 (vst1q_u16): Likewise.
8782 (vst1q_u32): Likewise.
8783 (vst1q_u64): Likewise.
8784 (vst1_s64_x2): Likewise.
8785 (vst1_u64_x2): Likewise.
8786 (vst1_f64_x2): Likewise.
8787 (vst1_s8_x2): Likewise.
8788 (vst1_p8_x2): Likewise.
8789 (vst1_s16_x2): Likewise.
8790 (vst1_p16_x2): Likewise.
8791 (vst1_s32_x2): Likewise.
8792 (vst1_u8_x2): Likewise.
8793 (vst1_u16_x2): Likewise.
8794 (vst1_u32_x2): Likewise.
8795 (vst1_f16_x2): Likewise.
8796 (vst1_f32_x2): Likewise.
8797 (vst1_p64_x2): Likewise.
8798 (vst1q_s8_x2): Likewise.
8799 (vst1q_p8_x2): Likewise.
8800 (vst1q_s16_x2): Likewise.
8801 (vst1q_p16_x2): Likewise.
8802 (vst1q_s32_x2): Likewise.
8803 (vst1q_s64_x2): Likewise.
8804 (vst1q_u8_x2): Likewise.
8805 (vst1q_u16_x2): Likewise.
8806 (vst1q_u32_x2): Likewise.
8807 (vst1q_u64_x2): Likewise.
8808 (vst1q_f16_x2): Likewise.
8809 (vst1q_f32_x2): Likewise.
8810 (vst1q_f64_x2): Likewise.
8811 (vst1q_p64_x2): Likewise.
8812 (vst1_s64_x3): Likewise.
8813 (vst1_u64_x3): Likewise.
8814 (vst1_f64_x3): Likewise.
8815 (vst1_s8_x3): Likewise.
8816 (vst1_p8_x3): Likewise.
8817 (vst1_s16_x3): Likewise.
8818 (vst1_p16_x3): Likewise.
8819 (vst1_s32_x3): Likewise.
8820 (vst1_u8_x3): Likewise.
8821 (vst1_u16_x3): Likewise.
8822 (vst1_u32_x3): Likewise.
8823 (vst1_f16_x3): Likewise.
8824 (vst1_f32_x3): Likewise.
8825 (vst1_p64_x3): Likewise.
8826 (vst1q_s8_x3): Likewise.
8827 (vst1q_p8_x3): Likewise.
8828 (vst1q_s16_x3): Likewise.
8829 (vst1q_p16_x3): Likewise.
8830 (vst1q_s32_x3): Likewise.
8831 (vst1q_s64_x3): Likewise.
8832 (vst1q_u8_x3): Likewise.
8833 (vst1q_u16_x3): Likewise.
8834 (vst1q_u32_x3): Likewise.
8835 (vst1q_u64_x3): Likewise.
8836 (vst1q_f16_x3): Likewise.
8837 (vst1q_f32_x3): Likewise.
8838 (vst1q_f64_x3): Likewise.
8839 (vst1q_p64_x3): Likewise.
8840 (vst2_s64): Likewise.
8841 (vst2_u64): Likewise.
8842 (vst2_f64): Likewise.
8843 (vst2_s8): Likewise.
8844 (vst2_p8): Likewise.
8845 (vst2_s16): Likewise.
8846 (vst2_p16): Likewise.
8847 (vst2_s32): Likewise.
8848 (vst2_u8): Likewise.
8849 (vst2_u16): Likewise.
8850 (vst2_u32): Likewise.
8851 (vst2_f16): Likewise.
8852 (vst2_f32): Likewise.
8853 (vst2_p64): Likewise.
8854 (vst2q_s8): Likewise.
8855 (vst2q_p8): Likewise.
8856 (vst2q_s16): Likewise.
8857 (vst2q_p16): Likewise.
8858 (vst2q_s32): Likewise.
8859 (vst2q_s64): Likewise.
8860 (vst2q_u8): Likewise.
8861 (vst2q_u16): Likewise.
8862 (vst2q_u32): Likewise.
8863 (vst2q_u64): Likewise.
8864 (vst2q_f16): Likewise.
8865 (vst2q_f32): Likewise.
8866 (vst2q_f64): Likewise.
8867 (vst2q_p64): Likewise.
8868 (vst3_s64): Likewise.
8869 (vst3_u64): Likewise.
8870 (vst3_f64): Likewise.
8871 (vst3_s8): Likewise.
8872 (vst3_p8): Likewise.
8873 (vst3_s16): Likewise.
8874 (vst3_p16): Likewise.
8875 (vst3_s32): Likewise.
8876 (vst3_u8): Likewise.
8877 (vst3_u16): Likewise.
8878 (vst3_u32): Likewise.
8879 (vst3_f16): Likewise.
8880 (vst3_f32): Likewise.
8881 (vst3_p64): Likewise.
8882 (vst3q_s8): Likewise.
8883 (vst3q_p8): Likewise.
8884 (vst3q_s16): Likewise.
8885 (vst3q_p16): Likewise.
8886 (vst3q_s32): Likewise.
8887 (vst3q_s64): Likewise.
8888 (vst3q_u8): Likewise.
8889 (vst3q_u16): Likewise.
8890 (vst3q_u32): Likewise.
8891 (vst3q_u64): Likewise.
8892 (vst3q_f16): Likewise.
8893 (vst3q_f32): Likewise.
8894 (vst3q_f64): Likewise.
8895 (vst3q_p64): Likewise.
8896 (vst4_s64): Likewise.
8897 (vst4_u64): Likewise.
8898 (vst4_f64): Likewise.
8899 (vst4_s8): Likewise.
8900 (vst4_p8): Likewise.
8901 (vst4_s16): Likewise.
8902 (vst4_p16): Likewise.
8903 (vst4_s32): Likewise.
8904 (vst4_u8): Likewise.
8905 (vst4_u16): Likewise.
8906 (vst4_u32): Likewise.
8907 (vst4_f16): Likewise.
8908 (vst4_f32): Likewise.
8909 (vst4_p64): Likewise.
8910 (vst4q_s8): Likewise.
8911 (vst4q_p8): Likewise.
8912 (vst4q_s16): Likewise.
8913 (vst4q_p16): Likewise.
8914 (vst4q_s32): Likewise.
8915 (vst4q_s64): Likewise.
8916 (vst4q_u8): Likewise.
8917 (vst4q_u16): Likewise.
8918 (vst4q_u32): Likewise.
8919 (vst4q_u64): Likewise.
8920 (vst4q_f16): Likewise.
8921 (vst4q_f32): Likewise.
8922 (vst4q_f64): Likewise.
8923 (vst4q_p64): Likewise.
8924 (vtbx4_s8): Likewise.
8925 (vtbx4_u8): Likewise.
8926 (vtbx4_p8): Likewise.
8927 (vtrn_f32): Likewise.
8928 (vtrn_p8): Likewise.
8929 (vtrn_p16): Likewise.
8930 (vtrn_s8): Likewise.
8931 (vtrn_s16): Likewise.
8932 (vtrn_s32): Likewise.
8933 (vtrn_u8): Likewise.
8934 (vtrn_u16): Likewise.
8935 (vtrn_u32): Likewise.
8936 (vtrnq_f32): Likewise.
8937 (vtrnq_p8): Likewise.
8938 (vtrnq_p16): Likewise.
8939 (vtrnq_s8): Likewise.
8940 (vtrnq_s16): Likewise.
8941 (vtrnq_s32): Likewise.
8942 (vtrnq_u8): Likewise.
8943 (vtrnq_u16): Likewise.
8944 (vtrnq_u32): Likewise.
8945 (vrsqrte_f16): Likewise.
8946 (vrsqrteq_f16): Likewise.
8947 (vsqrt_f16): Likewise.
8948 (vsqrtq_f16): Likewise.
8949 (vabd_f16): Likewise.
8950 (vabdq_f16): Likewise.
8951 (vpadd_f16): Likewise.
8952 (vpaddq_f16): Likewise.
8953 (vpmax_f16): Likewise.
8954 (vpmaxq_f16): Likewise.
8955 (vpmaxnm_f16): Likewise.
8956 (vpmaxnmq_f16): Likewise.
8957 (vpmin_f16): Likewise.
8958 (vpminq_f16): Likewise.
8959 (vpminnm_f16): Likewise.
8960 (vpminnmq_f16): Likewise.
8961 (vrsqrts_f16): Likewise.
8962 (vrsqrtsq_f16): Likewise.
8963
8964 2019-09-25 Richard Biener <rguenther@suse.de>
8965
8966 PR tree-optimization/91896
8967 * tree-vect-loop.c (vectorizable_reduction): The single
8968 def-use cycle optimization cannot apply when there's more
8969 than one pattern stmt involved.
8970
8971 2019-09-24 Iain Sandoe <iain@sandoe.co.uk>
8972
8973 * config/rs6000/rs6000.md (load_macho_picbase_<mode>): New, using
8974 the 'P' mode iterator, replacing the (removed) SI and DI variants.
8975 (reload_macho_picbase_<mode>): Likewise.
8976
8977 2019-09-24 Iain Sandoe <iain@sandoe.co.uk>
8978
8979 * config/rs6000/rs6000.md: Move darwin.md include until
8980 after the definition of the mode iterators.
8981
8982 2019-09-23 Martin Sebor <msebor@redhat.com>
8983
8984 PR tree-optimization/91570
8985 * tree-ssa-strlen.c (get_range_strlen_dynamic): Handle null and
8986 non-constant minlen, maxlen and maxbound.
8987
8988 2019-09-24 Richard Biener <rguenther@suse.de>
8989
8990 * tree-vectorizer.h (_stmt_vec_info::const_cond_reduc_code):
8991 Rename to...
8992 (_stmt_vec_info::cond_reduc_code): ... this.
8993 (_stmt_vec_info::induc_cond_initial_val): Add.
8994 (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): Rename to...
8995 (STMT_VINFO_VEC_COND_REDUC_CODE): ... this.
8996 (STMT_VINFO_VEC_INDUC_COND_INITIAL_VAL): Add.
8997 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Adjust.
8998 * tree-vect-loop.c (get_initial_def_for_reduction): Pass in
8999 the reduction code.
9000 (vect_create_epilog_for_reduction): Drop special
9001 induction condition reduction params, pass in reduction code
9002 and simplify.
9003 (vectorizable_reduction): Perform condition reduction kind
9004 selection only at analysis time. Adjust passing on state.
9005
9006 2019-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9007
9008 * config/aarch64/aarch64.md (mov<mode>): Don't call
9009 aarch64_split_dimode_const_store on volatile MEM.
9010
9011 2019-09-24 Stamatis Markianos-Wright <stam.markianos-wright@arm.com>
9012
9013 * config/aarch64/aarch64-option-extensions.def (fp16fml):
9014 Update hwcap string for fp16fml.
9015
9016 2019-09-24 Jakub Jelinek <jakub@redhat.com>
9017
9018 PR middle-end/91866
9019 * match.pd (((T)(A)) + CST -> (T)(A + CST)): Formatting fix.
9020 (((T)(A + CST1)) + CST2 -> (T)(A) + (T)CST1 + CST2): New optimization.
9021
9022 2019-09-24 Martin Liska <mliska@suse.cz>
9023
9024 * cfgexpand.c (gimple_assign_rhs_to_tree): Use switch statement
9025 instead of if-elseif-elseif-...
9026 * gimple-expr.c (extract_ops_from_tree): Likewise.
9027 * gimple.c (get_gimple_rhs_num_ops): Likewise.
9028 * tree-ssa-forwprop.c (rhs_to_tree): Likewise.
9029
9030 2019-09-24 Martin Jambor <mjambor@suse.cz>
9031
9032 PR ipa/91831
9033 * ipa-param-manipulation.c (carry_over_param): Make a method of
9034 ipa_param_body_adjustments, remove now unnecessary argument. Also copy
9035 in case of a context mismatch.
9036 (ipa_param_body_adjustments::common_initialization): Adjust call to
9037 carry_over_param.
9038 * ipa-param-manipulation.h (class ipa_param_body_adjustments): Add
9039 private method carry_over_param.
9040
9041 2019-09-24 Martin Jambor <mjambor@suse.cz>
9042
9043 PR ipa/91832
9044 * ipa-sra.c (scan_expr_access): Check that offset is non-negative.
9045
9046 2019-09-24 Richard Biener <rguenther@suse.de>
9047
9048 * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize MEM_REF
9049 base.
9050
9051 2019-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9052
9053 * config/arm/t-arm (arm-builtins.o): Add dependency on
9054 arm_acle_builtins.def.
9055
9056 2019-09-23 Richard Sandiford <richard.sandiford@arm.com>
9057
9058 PR target/91823
9059 * config/rs6000/altivec.md (altivec_copysign_v4sf3): Generate
9060 canonical CONST_INTs. Use gen_rtvec.
9061
9062 2019-09-23 Richard Biener <rguenther@suse.de>
9063
9064 * tree-vect-loop.c (get_initial_def_for_reduction): Simplify,
9065 avoid adjusting by + 0 or * 1.
9066 (vect_create_epilog_for_reduction): Get reduction code only
9067 when necessary. Deal with adjustment_def only when necessary.
9068
9069 2019-09-23 Richard Sandiford <richard.sandiford@arm.com>
9070
9071 * config/aarch64/atomics.md (aarch64_store_exclusive_pair): Fix
9072 memmodel index.
9073
9074 2019-09-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9075
9076 PR ipa/91835
9077 * lto-section-in.c (lto_section_name): Use "ipa_sra" instead of
9078 "ipa-sra".
9079
9080 2019-09-22 Iain Sandoe <iain@sandoe.co.uk>
9081
9082 * config/rs6000/rs6000.c (machopic_output_stub): Remove dead
9083 code. Merge code blocks with common conditionals. Use declared
9084 macro instead of a magic number for PIC level.
9085
9086 2019-09-21 Martin Sebor <msebor@redhat.com>
9087
9088 PR middle-end/91830
9089 * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset):
9090 Simplify computation of the offset of the referenced subobject.
9091
9092 2019-09-21 Iain Sandoe <iain@sandoe.co.uk>
9093
9094 * config/darwin.c (machopic_legitimize_pic_address): Check
9095 for lra not reload.
9096
9097 2019-09-21 Richard Sandiford <richard.sandiford@arm.com>
9098
9099 * ira-conflicts.c (can_use_same_reg_p): New function.
9100 (process_reg_shuffles): Take an insn parameter. Ignore cases
9101 in which input operand op_num could seemingly never be allocated
9102 to the same register as the destination.
9103 (add_insn_allocno_copies): Update call to process_reg_shuffles.
9104
9105 2019-09-21 Richard Sandiford <richard.sandiford@arm.com>
9106
9107 * simplify-rtx.c (neg_const_int): Replace with...
9108 (neg_poly_int_rtx): ...this new function.
9109 (simplify_binary_operation_1): Extend (minus x C) -> (plus X -C)
9110 to all CONST_SCALAR_INTs and to CONST_POLY_INT.
9111 (simplify_plus_minus): Likewise for constant terms here.
9112
9113 2019-09-20 Jonas Pfeil <jonas.pfeil@uli-ulm.de>
9114
9115 * config/microblaze/microblaze.h (ASM_OUTPUT_SKIP): Use
9116 HOST_WIDE_PRINT_UNSIGNED.
9117
9118 2019-09-20 John David Anglin <danglin@gcc.gnu.org>
9119
9120 * config/pa/pa.c (pa_trampoline_init): Remove spurious extended
9121 character.
9122
9123 2019-09-20 Maya Rashish <coypu@sdf.org>
9124
9125 PR target/86811
9126 * config/vax/vax.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
9127 Define to speculation_safe_value_not_needed.
9128
9129 2019-09-20 Richard Biener <rguenther@suse.de>
9130 Uros Bizjak <ubizjak@gmail.com>
9131
9132 PR target/91814
9133 * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): Revert
9134 previous change.
9135 (general_scalar_chain::convert_op): Force not suitable memory
9136 operands to a register.
9137
9138 2019-09-20 Richard Biener <rguenther@suse.de>
9139
9140 PR tree-optimization/91821
9141 * tree-vect-loop.c (check_reduction_path): Check we can compute
9142 reduc_idx.
9143 (vect_is_simple_reduction): Set STMT_VINFO_REDUC_IDX.
9144 * tree-vect-patterns.c (vect_reassociating_reduction_p): Return
9145 operands in canonical order.
9146 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
9147 STMT_VINFO_REDUC_IDX.
9148 * tree-vectorizer.h (_stmt_vec_info::reduc_idx): New.
9149 (STMT_VINFO_REDUC_IDX): Likewise.
9150
9151 2019-09-20 Eric Botcazou <ebotcazou@adacore.com>
9152
9153 PR target/91269
9154 * config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
9155
9156 2019-09-20 Richard Biener <rguenther@suse.de>
9157
9158 PR tree-optimization/91822
9159 * tree-vectorizer.h (vectorizable_condition): Restore for_reduction
9160 parameter.
9161 * tree-vect-loop.c (vectorizable_reduction): Adjust asserts
9162 for reduc_index in nested cycles, adjust vectorizable_condition
9163 calls.
9164 * tree-vect-stmts.c (vectorizable_condition): Restore for_reduction
9165 parameter.
9166 (vect_analyze_stmt): Adjust.
9167 (vect_transform_stmt): Likewise.
9168
9169 2019-09-20 Richard Biener <rguenther@suse.de>
9170
9171 PR target/91767
9172 * config/i386/i386-features.c (general_scalar_chain::convert_registers):
9173 Ensure there's a sequence point between allocating the new register
9174 and passing a reference to a reg via regno_reg_rtx.
9175
9176 2019-09-20 Martin Jambor <mjambor@suse.cz>
9177
9178 * coretypes.h (cgraph_edge): Declare.
9179 * ipa-param-manipulation.c: Rewrite.
9180 * ipa-param-manipulation.h: Likewise.
9181 * Makefile.in (GTFILES): Added ipa-param-manipulation.h and ipa-sra.c.
9182 (OBJS): Added ipa-sra.o.
9183 * cgraph.h (ipa_replace_map): Removed fields old_tree, replace_p
9184 and ref_p, added fields param_adjustments and performed_splits.
9185 (struct cgraph_clone_info): Remove ags_to_skip and
9186 combined_args_to_skip, new field param_adjustments.
9187 (cgraph_node::create_clone): Changed parameters to use
9188 ipa_param_adjustments.
9189 (cgraph_node::create_virtual_clone): Likewise.
9190 (cgraph_node::create_virtual_clone_with_body): Likewise.
9191 (tree_function_versioning): Likewise.
9192 (cgraph_build_function_type_skip_args): Removed.
9193 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Convert to
9194 using ipa_param_adjustments.
9195 (clone_of_p): Likewise.
9196 * cgraphclones.c (cgraph_build_function_type_skip_args): Removed.
9197 (build_function_decl_skip_args): Likewise.
9198 (duplicate_thunk_for_node): Adjust parameters using
9199 ipa_param_body_adjustments, copy param_adjustments instead of
9200 args_to_skip.
9201 (cgraph_node::create_clone): Convert to using ipa_param_adjustments.
9202 (cgraph_node::create_virtual_clone): Likewise.
9203 (cgraph_node::create_version_clone_with_body): Likewise.
9204 (cgraph_materialize_clone): Likewise.
9205 (symbol_table::materialize_all_clones): Likewise.
9206 * ipa-fnsummary.c (ipa_fn_summary_t::duplicate): Simplify
9207 ipa_replace_map check.
9208 * ipa-cp.c (get_replacement_map): Do not initialize removed fields.
9209 (initialize_node_lattices): Make aware that some parameters might have
9210 already been removed.
9211 (want_remove_some_param_p): New function.
9212 (create_specialized_node): Convert to using ipa_param_adjustments and
9213 deal with possibly pre-existing adjustments.
9214 * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.
9215 (output_node_opt_summary): Do not stream removed fields. Stream
9216 parameter adjustments instead of argumetns to skip.
9217 (input_node_opt_summary): Likewise.
9218 (input_node_opt_summary): Likewise.
9219 * lto-section-in.c (lto_section_name): Added ipa-sra section.
9220 * lto-streamer.h (lto_section_type): Likewise.
9221 * tree-inline.h (copy_body_data): New fields killed_new_ssa_names and
9222 param_body_adjs.
9223 (copy_decl_to_var): Declare.
9224 * tree-inline.c (update_clone_info): Do not remap old_tree.
9225 (remap_gimple_stmt): Use ipa_param_body_adjustments to modify gimple
9226 statements, walk all extra generated statements and remap their
9227 operands.
9228 (redirect_all_calls): Add killed SSA names to a hash set.
9229 (remap_ssa_name): Do not remap killed SSA names.
9230 (copy_arguments_for_versioning): Renames to copy_arguments_nochange,
9231 half of functionality moved to ipa_param_body_adjustments.
9232 (copy_decl_to_var): Make exported.
9233 (copy_body): Destroy killed_new_ssa_names hash set.
9234 (expand_call_inline): Remap performed splits.
9235 (update_clone_info): Likewise.
9236 (tree_function_versioning): Simplify tree_map processing. Updated to
9237 accept ipa_param_adjustments and use ipa_param_body_adjustments.
9238 * omp-simd-clone.c (simd_clone_vector_of_formal_parm_types): Adjust
9239 for the new interface.
9240 (simd_clone_clauses_extract): Likewise, make args an auto_vec.
9241 (simd_clone_compute_base_data_type): Likewise.
9242 (simd_clone_init_simd_arrays): Adjust for the new interface.
9243 (simd_clone_adjust_argument_types): Likewise.
9244 (struct modify_stmt_info): Likewise.
9245 (ipa_simd_modify_stmt_ops): Likewise.
9246 (ipa_simd_modify_function_body): Likewise.
9247 (simd_clone_adjust): Likewise.
9248 * tree-sra.c: Removed IPA-SRA. Include tree-sra.h.
9249 (type_internals_preclude_sra_p): Make public.
9250 * tree-sra.h: New file.
9251 * ipa-inline-transform.c (save_inline_function_body): Update to
9252 refelct new tree_function_versioning signature.
9253 * ipa-prop.c (adjust_agg_replacement_values): Use a helper from
9254 ipa_param_adjustments to get current parameter indices.
9255 (ipcp_modif_dom_walker::before_dom_children): Likewise.
9256 (ipcp_update_bits): Likewise.
9257 (ipcp_update_vr): Likewise.
9258 * ipa-split.c (split_function): Convert to using ipa_param_adjustments.
9259 * ipa-sra.c: New file.
9260 * multiple_target.c (create_target_clone): Update to reflet new type
9261 of create_version_clone_with_body.
9262 * trans-mem.c (ipa_tm_create_version): Update to reflect new type of
9263 tree_function_versioning.
9264 (modify_function): Update to reflect new type of
9265 tree_function_versioning.
9266 * params.def (PARAM_IPA_SRA_MAX_REPLACEMENTS): New.
9267 * passes.def: Remove old IPA-SRA and add new one.
9268 * tree-pass.h (make_pass_early_ipa_sra): Remove declaration.
9269 (make_pass_ipa_sra): Declare.
9270 * dbgcnt.def: Remove eipa_sra. Added ipa_sra_params and
9271 ipa_sra_retvalues.
9272 * doc/invoke.texi (ipa-sra-max-replacements): New.
9273
9274 2019-09-19 Martin Sebor <msebor@redhat.com>
9275
9276 PR middle-end/91631
9277 * builtins.c (component_size): Correct trailing array computation,
9278 rename to component_ref_size and move...
9279 (compute_objsize): Adjust.
9280 * gimple-ssa-warn-restrict.c (builtin_memref::refsize): New member.
9281 (builtin_access::strict): Do not consider memmove.
9282 (builtin_access::write_off): New function.
9283 (builtin_memref::builtin_memref): Initialize refsize.
9284 (builtin_memref::set_base_and_offset): Adjust refoff and compute
9285 refsize.
9286 (builtin_memref::offset_out_of_bounds): Use ooboff input values.
9287 Handle refsize.
9288 (builtin_access::builtin_access): Initialize dstoff to destination
9289 refeence offset here instead of in maybe_diag_overlap. Adjust
9290 referencess even to unrelated objects. Adjust sizrange of bounded
9291 string functions to reflect bound. For strcat, adjust destination
9292 sizrange by that of source.
9293 (builtin_access::strcat_overlap): Adjust offsets and sizes
9294 to reflect the increase in destination sizrange above.
9295 (builtin_access::overlap): Do not set dstoff here but instead
9296 in builtin_access::builtin_access.
9297 (check_bounds_or_overlap): Use builtin_access::write_off.
9298 (maybe_diag_access_bounds): Add argument. Add informational notes.
9299 (dump_builtin_memref, dump_builtin_access): New functions.
9300 * tree.c (component_ref_size): ...to here.
9301 * tree.h (component_ref_size): Declare.
9302 * tree-ssa-strlen (handle_builtin_strcat): Include the terminating
9303 nul in the size of the source string.
9304
9305 2019-09-19 Lewis Hyatt <lhyatt@gmail.com>
9306
9307 PR c/67224
9308 * doc/cpp.texi: Document support for extended characters in
9309 identifiers.
9310 * doc/cppopts.texi: Likewise.
9311
9312 2019-09-19 Richard Biener <rguenther@suse.de>
9313
9314 * tree-vect-loop.c (vect_is_slp_reduction): Remove.
9315 (check_reduction_path): New overload having the path as result.
9316 (vect_is_simple_reduction): From the detected reduction
9317 path build a SLP reduction chain if possible.
9318
9319 2019-09-19 Richard Biener <rguenther@suse.de>
9320
9321 PR target/91814
9322 * config/i386/i386-features.c (gen_gpr_to_xmm_move_src):
9323 Force operand to a register if it isn't nonimmediate_operand.
9324
9325 2019-09-19 Wilco Dijkstra <wdijkstr@arm.com>
9326
9327 * config/arm/arm.md (<logical_op>di3): Use <optab> and <CODE>.
9328 * config/arm/iterators.md (optab): Add and, ior, xor entries.
9329 (logical_op): Remove code attribute.
9330 (logical_OP): Likewise.
9331
9332 2019-09-19 Martin Liska <mliska@suse.cz>
9333
9334 * ipa-icf.c (sort_congruence_class_groups_by_decl_uid):
9335 Use proper casting.
9336
9337 2019-09-19 Richard Henderson <richard.henderson@linaro.org>
9338
9339 * config/aarch64/aarch64.c (aarch64_print_operand): Allow integer
9340 registers with %R.
9341
9342 * config/aarch64/aarch64.c (aarch64_gen_compare_reg): Add support
9343 for NE comparison of TImode values.
9344 (aarch64_emit_load_exclusive): Add support for TImode.
9345 (aarch64_emit_store_exclusive): Likewise.
9346 (aarch64_split_compare_and_swap): Disable strong_zero_p for TImode.
9347 * config/aarch64/atomics.md (@atomic_compare_and_swap<ALLI_TI>):
9348 Change iterator from ALLI to ALLI_TI.
9349 (@atomic_compare_and_swap<JUST_TI>): New.
9350 (@atomic_compare_and_swap<JUST_TI>_lse): New.
9351 (aarch64_load_exclusive_pair): New.
9352 (aarch64_store_exclusive_pair): New.
9353 * config/aarch64/iterators.md (JUST_TI): New.
9354
9355 * config/aarch64/aarch64 (aarch64_split_compare_and_swap): Disable
9356 strong_zero_p for aarch64_track_speculation; unify some code paths;
9357 use aarch64_gen_compare_reg instead of open-coding.
9358
9359 * config/aarch64/aarch64.opt (-moutline-atomics): New.
9360 * config/aarch64/aarch64.c (aarch64_atomic_ool_func): New.
9361 (aarch64_ool_cas_names, aarch64_ool_swp_names): New.
9362 (aarch64_ool_ldadd_names, aarch64_ool_ldset_names): New.
9363 (aarch64_ool_ldclr_names, aarch64_ool_ldeor_names): New.
9364 (aarch64_expand_compare_and_swap): Honor TARGET_OUTLINE_ATOMICS.
9365 * config/aarch64/atomics.md (atomic_exchange<ALLI>): Likewise.
9366 (atomic_<atomic_op><ALLI>): Likewise.
9367 (atomic_fetch_<atomic_op><ALLI>): Likewise.
9368 (atomic_<atomic_op>_fetch<ALLI>): Likewise.
9369 * doc/invoke.texi: Document -moutline-atomics.
9370
9371 2019-09-19 Feng Xue <fxue@os.amperecomputing.com>
9372
9373 * ipa-fnsummary.c (set_cond_stmt_execution_predicate): Do not compute
9374 trivial predicate for condition branch.
9375 (set_switch_stmt_execution_predicate): Do not compute trivial predicate
9376 for switch case.
9377 (compute_bb_predicates): Update predicate based on post-dominating
9378 relationship.
9379 (analyze_function_body): Calculate post-dominating information.
9380
9381 2019-09-19 Richard Sandiford <richard.sandiford@arm.com>
9382
9383 * tree-vectorizer.h (vectorizable_condition): Take an int
9384 reduction index instead of a boolean flag.
9385 * tree-vect-stmts.c (vectorizable_condition): Likewise.
9386 Swap the "then" and "else" values for EXTRACT_LAST_REDUCTION
9387 reductions if the reduction accumulator is the "then" rather
9388 than the "else" value.
9389 (vect_analyze_stmt): Update call accordingly.
9390 (vect_transform_stmt): Likewise.
9391 * tree-vect-loop.c (vectorizable_reduction): Likewise,
9392 asserting that the index is > 0.
9393
9394 2019-09-19 Martin Liska <mliska@suse.cz>
9395
9396 * ipa-icf.c (sort_sem_items_by_decl_uid): Simplify comparator.
9397 (sort_congruence_classes_by_decl_uid): Likewise.
9398 (sort_congruence_class_groups_by_decl_uid): Use std::pair for
9399 easier sorting.
9400 (sem_item_optimizer::merge_classes): Likewise.
9401
9402 2019-09-19 Richard Biener <rguenther@suse.de>
9403
9404 PR tree-optimization/91812
9405 * tree-ssa-phiprop.c (propagate_with_phi): Do not replace
9406 volatile loads.
9407
9408 2019-09-19 Richard Sandiford <richard.sandiford@arm.com>
9409
9410 * defaults.h (TARGET_UNIT): New macro.
9411 (target_unit): New type.
9412 * rtl.h (native_encode_rtx, native_decode_rtx)
9413 (native_decode_vector_rtx, subreg_size_lsb): Declare.
9414 (subreg_lsb_1): Turn into an inline wrapper around subreg_size_lsb.
9415 * rtlanal.c (subreg_lsb_1): Delete.
9416 (subreg_size_lsb): New function.
9417 * simplify-rtx.c: Include rtx-vector-builder.h
9418 (simplify_immed_subreg): Delete.
9419 (native_encode_rtx, native_decode_vector_rtx, native_decode_rtx)
9420 (simplify_const_vector_byte_offset, simplify_const_vector_subreg): New
9421 functions.
9422 (simplify_subreg): Use them.
9423 (test_vector_subregs_modes, test_vector_subregs_repeating)
9424 (test_vector_subregs_fore_back, test_vector_subregs_stepped)
9425 (test_vector_subregs): New functions.
9426 (test_vector_ops): Call test_vector_subregs for integer vector
9427 modes with at least 2 elements.
9428
9429 2019-09-19 Richard Biener <rguenther@suse.de>
9430
9431 * tree-parloops.c (parloops_is_slp_reduction): Do not set
9432 LOOP_VINFO_OPERANDS_SWAPPED.
9433 (parloops_is_simple_reduction): Likewise.
9434 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Do not
9435 initialize operands_swapped.
9436 (_loop_vec_info::~_loop_vec_info): Do not re-canonicalize stmts.
9437 (vect_is_slp_reduction): Do not swap operands.
9438 * tree-vectorizer.h (_loop_vec_info::operands_swapped): Remove.
9439 (LOOP_VINFO_OPERANDS_SWAPPED): Likewise.
9440
9441 2019-09-19 Hongtao Liu <hongtao.liu@intel.com>
9442
9443 PR target/87007
9444 * config/i386.md (*floatuns<SWI48:mode><MODEF:mode>2_avx512):
9445 Add avx_partial_xmm_update.
9446
9447 2019-09-18 Jim Wilson <jimw@sifive.com>
9448
9449 PR target/91683
9450 * config/riscv/riscv-protos.h (riscv_split_symbol): New bool parameter.
9451 (riscv_move_integer): Likewise.
9452 * config/riscv/riscv.c (riscv_split_integer): Pass FALSE for new
9453 riscv_move_integer arg.
9454 (riscv_legitimize_move): Likewise.
9455 (riscv_force_temporary): New parameter in_splitter. Don't call
9456 force_reg if true.
9457 (riscv_unspec_offset_high): Pass FALSE for new riscv_force_temporary
9458 arg.
9459 (riscv_add_offset): Likewise.
9460 (riscv_split_symbol): New parameter in_splitter. Pass to
9461 riscv_force_temporary.
9462 (riscv_legitimize_address): Pass FALSE for new riscv_split_symbol
9463 arg.
9464 (riscv_move_integer): New parameter in_splitter. New local
9465 can_create_psuedo. Don't call riscv_split_integer or force_reg when
9466 in_splitter TRUE.
9467 (riscv_legitimize_const_move): Pass FALSE for new riscv_move_integer,
9468 riscv_split_symbol, and riscv_force_temporary args.
9469 * config/riscv/riscv.md (low<mode>+1): Pass TRUE for new
9470 riscv_move_integer arg.
9471 (low<mode>+2): Pass TRUE for new riscv_split_symbol arg.
9472
9473 2019-09-18 H.J. Lu <hongjiu.lu@intel.com>
9474
9475 PR target/90878
9476 * config/i386/x86-tune-costs.h (skylake_cost): Restore SImode
9477 hard register store cost to 6.
9478
9479 2019-09-18 H.J. Lu <hongjiu.lu@intel.com>
9480
9481 PR target/91446
9482 * config/i386/x86-tune-costs.h (skylake_cost): Increase SImode
9483 pseudo register store cost from 3 to 6 to make it the same as
9484 QImode and HImode.
9485
9486 2019-09-18 Wilco Dijkstra <wdijkstr@arm.com>
9487
9488 PR target/91738
9489 * config/arm/arm.md (<logical_op>di3): Expand explicitly.
9490 (one_cmpldi2): Likewise.
9491 * config/arm/arm.c (const_ok_for_dimode_op): Return true if one
9492 of the constant parts is simple.
9493 * config/arm/iterators.md (LOGICAL): Add new code iterator.
9494 (logical_op): Add new code attribute.
9495 (logical_OP): Likewise.
9496 * config/arm/predicates.md (arm_anddi_operand): Add predicate.
9497 (arm_iordi_operand): Add predicate.
9498 (arm_xordi_operand): Add predicate.
9499
9500 2019-09-18 Wilco Dijkstra <wdijkstr@arm.com>
9501
9502 * config/arm/arm.md (maddsidi4): Remove expander.
9503 (mulsidi3adddi): Remove pattern.
9504 (mulsidi3adddi_v6): Likewise.
9505 (mulsidi3_nov6): Likewise.
9506 (mulsidi3_v6): Likewise.
9507 (umulsidi3): Remove expander.
9508 (umulsidi3_nov6): Remove pattern.
9509 (umulsidi3_v6): Likewise.
9510 (umulsidi3adddi): Likewise.
9511 (umulsidi3adddi_v6): Likewise.
9512 (<Us>mulsidi3): Add combined expander.
9513 (<Us>maddsidi4): Likewise.
9514 (<US>mull): Add combined umull and smull pattern.
9515 (<US>mlal): Likewise.
9516 * config/arm/iterators.md (Us): Add new iterator.
9517
9518 2019-09-18 Richard Biener <rguenther@suse.de>
9519
9520 * tree-vect-loop.c (vect_is_simple_reduction): Remove operand
9521 swapping.
9522 (vectorize_fold_left_reduction): Remove assert.
9523 (vectorizable_reduction): Also expect COND_EXPR non-reduction
9524 operand in position 2. Remove assert.
9525
9526 2019-09-18 Wilco Dijkstra <wdijkstr@arm.com>
9527
9528 * config/arm/arm.md (smulsi3_highpart): Use <US> and <SE> iterators.
9529 (smulsi3_highpart_nov6): Remove pattern.
9530 (smulsi3_highpart_v6): Likewise.
9531 (umulsi3_highpart): Likewise.
9532 (umulsi3_highpart_nov6): Likewise.
9533 (umulsi3_highpart_v6): Likewise.
9534 (<US>mull_high): Add new combined multiply pattern.
9535
9536 2019-09-18 Wilco Dijkstra <wdijkstr@arm.com>
9537
9538 * config/arm/arm.md (arm_mulsi3): Remove pattern.
9539 (arm_mulsi3_v6): Likewise.
9540 (mulsi3addsi_v6): Likewise.
9541 (mulsi3subsi): Likewise.
9542 (mul): Add new multiply pattern.
9543 (mla): Likewise.
9544 (mls): Likewise.
9545
9546 2019-09-18 Richard Biener <rguenther@suse.de>
9547
9548 * tree-parloops.c (report_ploop_op): Copy from report_vect_op.
9549 (parloops_valid_reduction_input_p): Copy from
9550 valid_reduction_input_p.
9551 (parloops_is_slp_reduction): Copy from vect_is_slp_reduction.
9552 (parloops_needs_fold_left_reduction_p): Copy from
9553 needs_fold_left_reduction_p.
9554 (parloops_is_simple_reduction): Copy from
9555 vect_is_simple_reduction.
9556 (parloops_force_simple_reduction): Copy from
9557 vect_force_simple_reduction.
9558 (gather_scalar_reductions): Adjust.
9559 * tree-vect-loop.c (vect_force_simple_reduction): Make static.
9560 * tree-vectorizer.h (vect_force_simple_reduction): Remove.
9561
9562 2019-09-18 Richard Biener <rguenther@suse.de>
9563
9564 * tree-vectorizer.h (get_initial_def_for_reduction): Remove.
9565 * tree-vect-loop.c (get_initial_def_for_reduction): Make
9566 static.
9567 (vect_create_epilog_for_reduction): Remove dead code.
9568
9569 2019-09-18 Richard Sandiford <richard.sandiford@arm.com>
9570
9571 * varasm.c (assemble_real): Generate canonical const_ints.
9572
9573 2019-09-18 Richard Biener <rguenther@suse.de>
9574
9575 PR lto/91763
9576 * lto-streamer-in.c (input_eh_regions): Move EH init to
9577 lto_materialize_function.
9578 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers):
9579 Likewise.
9580
9581 2019-09-18 Richard Sandiford <richard.sandiford@arm.com>
9582
9583 * tree-ssa-ccp.c (get_value_for_expr): Check whether CONSTANTs
9584 are INTEGER_CSTs.
9585
9586 2019-09-18 Richard Sandiford <richard.sandiford@arm.com>
9587
9588 * gimplify.c (gimplify_decl_expr): Use poly_int_tree_p instead
9589 of checking specifically for INTEGER_CST.
9590
9591 2019-09-18 Richard Sandiford <richard.sandiford@arm.com>
9592
9593 * stor-layout.c (compute_record_mode): Operate on poly_uint64
9594 sizes instead of uhwi sizes.
9595
9596 2019-09-18 Richard Sandiford <richard.sandiford@arm.com>
9597
9598 * dwarf2out.c (loc_list_from_tree_1): Handle POLY_INT_CST.
9599 (add_const_value_attribute): Handle CONST_POLY_INT.
9600
9601 2019-09-18 Martin Liska <mliska@suse.cz>
9602
9603 * dbgcnt.def (store_merging): New counter.
9604 * gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_stores):
9605 Use it in store merging.
9606
9607 2019-09-17 Richard Sandiford <richard.sandiford@arm.com>
9608
9609 * config/aarch64/aarch64.c (aarch64_sched_variable_issue): New
9610 function.
9611 (TARGET_SCHED_VARIABLE_ISSUE): New macro.
9612 * config/arm/arm.c (arm_sched_variable_issue): New function.
9613 (TARGET_SCHED_VARIABLE_ISSUE): New macro.
9614
9615 2019-09-17 Richard Sandiford <richard.sandiford@arm.com>
9616
9617 * config/arm/types.md (no_reservation): New reservation.
9618 * config/aarch64/falkor.md (falkor_other_0_nothing): Don't handle
9619 no_insn here.
9620 * config/aarch64/saphira.md (saphira_other_0_nothing): Likewise.
9621 * config/aarch64/thunderx2t99.md (thunderx2t99_nothing): Likewise.
9622 * config/aarch64/tsv110.md (tsv110_alu): Likewise.
9623 * config/arm/arm1020e.md (1020alu_op): Likewise.
9624 * config/arm/arm1026ejs.md (alu_op): Likewise.
9625 * config/arm/arm1136jfs.md (11_alu_op): Likewise.
9626 * config/arm/arm926ejs.md (9_alu_op): Likewise.
9627 * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
9628 * config/arm/cortex-a17.md (cortex_a17_alu): Likewise.
9629 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
9630 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
9631 * config/arm/cortex-a57.md (cortex_a57_alu): Likewise.
9632 * config/arm/cortex-a7.md (cortex_a7_alu_shift): Likewise.
9633 * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
9634 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
9635 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
9636 * config/arm/cortex-m7.md (cortex_m7_alu_simple): Likewise.
9637 * config/arm/cortex-r4.md (cortex_r4_alu_shift_reg): Likewise.
9638 * config/arm/fa526.md (526_alu_op): Likewise.
9639 * config/arm/fa606te.md (606te_alu_op): Likewise.
9640 * config/arm/fa626te.md (626te_alu_op): Likewise.
9641 * config/arm/fa726te.md (726te_alu_op): Likewise.
9642 * config/arm/xgene1.md (xgene1_nop): Likewise.
9643
9644 2019-09-17 Richard Sandiford <richard.sandiford@arm.com>
9645
9646 * config/arm/thumb1.md (*thumb1_tablejump): Change type from
9647 "no_insn" to "branch".
9648
9649 2019-09-17 Richard Sandiford <richard.sandiford@arm.com>
9650
9651 * array-traits.h (array_traits<T[N]>::size): Remove parameter name.
9652
9653 2019-09-17 Richard Biener <rguenther@suse.de>
9654
9655 PR debug/91772
9656 * dwarf2out.c (dwarf2out_late_global_decl): If early dwarf
9657 was missing generate locations only once.
9658
9659 2019-09-17 Feng Xue <fxue@os.amperecomputing.com>
9660
9661 PR ipa/91089
9662 * doc/invoke.texi (ipa-max-switch-predicate-bounds): Document new
9663 option.
9664 * params.def (PARAM_IPA_MAX_SWITCH_PREDICATE_BOUNDS): New.
9665 * ipa-fnsummary.c (set_switch_stmt_execution_predicate): Add predicate
9666 for switch default case using range analysis information.
9667
9668 2019-09-17 Christophe Lyon <christophe.lyon@linaro.org>
9669
9670 PR target/91749
9671 * config/arm/arm.c (arm_valid_target_attribute_rec): Make sure the
9672 mode attributed is supported by FDPIC.
9673
9674 2019-09-17 Richard Biener <rguenther@suse.de>
9675
9676 PR tree-optimization/91790
9677 * tree-vect-stmts.c (vectorizable_load): For BB vectorization
9678 use the correct DR for setting up realignment.
9679
9680 2019-09-16 Uroš Bizjak <ubizjak@gmail.com>
9681
9682 PR target/91719
9683 * config/i386/i386.h (TARGET_USE_XCHG_FOR_ATOMIC_STORE): New macro.
9684 * config/i386/x86-tune.def (X86_TUNE_USE_XCHG_FOR_ATOMIC_STORE): New.
9685 * config/i386/sync.md (atomic_store<mode>): emit XCHG for
9686 TARGET_USE_XCHG_FOR_ATOMIC_STORE.
9687
9688 2019-09-16 Jason Merrill <jason@redhat.com>
9689
9690 * Makefile.in (build/genmatch.o): Depend on $(CPPLIB_H).
9691
9692 2019-09-16 Martin Liska <mliska@suse.cz>
9693
9694 * gimple-fold.c (or_comparisons_1): Remove rules moved
9695 to ...
9696 * match.pd: ... here.
9697
9698 2019-09-16 Martin Liska <mliska@suse.cz>
9699
9700 * gimple-fold.c (or_comparisons_1): Remove rules
9701 moved to ...
9702 * match.pd: ... here.
9703
9704 2019-09-16 Martin Liska <mliska@suse.cz>
9705
9706 * genmatch.c (dt_node::append_simplify): Do not print
9707 warning when we have duplicate patterns belonging
9708 to a same simplify rule.
9709 * gimple-fold.c (and_comparisons_1): Remove matching moved to match.pd.
9710 (maybe_fold_comparisons_from_match_pd): Handle
9711 tcc_comparison as a results.
9712 * match.pd: Handle (X == CST1) && (X OP2 CST2) conditions.
9713
9714 2019-09-16 Li Jia He <helijia@linux.ibm.com>
9715 Qi Feng <ffengqi@linux.ibm.com>
9716
9717 PR middle-end/88784
9718 * match.pd (x > y && x != XXX_MIN): Optimize into 'x > y'.
9719 (x > y && x == XXX_MIN): Optimize into 'false'.
9720 (x <= y && x == XXX_MIN): Optimize into 'x == XXX_MIN'.
9721 (x < y && x != XXX_MAX): Optimize into 'x < y'.
9722 (x < y && x == XXX_MAX): Optimize into 'false'.
9723 (x >= y && x == XXX_MAX): Optimize into 'x == XXX_MAX'.
9724 (x > y || x != XXX_MIN): Optimize into 'x != XXX_MIN'.
9725 (x <= y || x != XXX_MIN): Optimize into 'true'.
9726 (x <= y || x == XXX_MIN): Optimize into 'x <= y'.
9727 (x < y || x != XXX_MAX): Optimize into 'x != XXX_MAX'.
9728 (x >= y || x != XXX_MAX): Optimize into 'true'.
9729 (x >= y || x == XXX_MAX): Optimize into 'x >= y'.
9730
9731 2019-09-16 Li Jia He <helijia@linux.ibm.com>
9732 Martin Liska <mliska@suse.cz>
9733
9734 * gimple-fold.c (and_comparisons_1): Add type as first
9735 argument.
9736 (and_var_with_comparison): Likewise.
9737 (and_var_with_comparison_1): Likewise.
9738 (or_comparisons_1): Likewise.
9739 (or_var_with_comparison): Likewise.
9740 (or_var_with_comparison_1): Likewise.
9741 (maybe_fold_and_comparisons): Call maybe_fold_comparisons_from_match_pd.
9742 (maybe_fold_or_comparisons): Likewise.
9743 (maybe_fold_comparisons_from_match_pd): New.
9744 * gimple-fold.h (maybe_fold_and_comparisons): Add type argument.
9745 (maybe_fold_or_comparisons): Likewise.
9746 * gimple.c (gimple_size): Make it public and add num_ops argument.
9747 (gimple_init): New function.
9748 (gimple_alloc): Call gimple_init.
9749 * gimple.h (gimple_size): New.
9750 (gimple_init): Likewise.
9751 * tree-if-conv.c (fold_or_predicates): Pass type.
9752 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
9753 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Likewise.
9754 (optimize_vec_cond_expr): Likewise.
9755 (ovce_extract_ops): Return type of conditional expression.
9756 * tree-ssanames.c (init_ssa_name_imm_use): New.
9757 (make_ssa_name_fn): Use init_ssa_name_imm_use.
9758 * tree-ssanames.h (init_ssa_name_imm_use): New.
9759
9760 2019-09-16 Richard Biener <rguenther@suse.de>
9761
9762 PR tree-optimization/91756
9763 PR tree-optimization/87132
9764 * tree-ssa-alias.h (enum translate_flags): New.
9765 (get_continuation_for_phi): Use it instead of simple bool flag.
9766 (walk_non_aliased_vuses): Likewise.
9767 * tree-ssa-alias.c (maybe_skip_until): Adjust.
9768 (get_continuation_for_phi): When looking across backedges only
9769 disallow valueization.
9770 (walk_non_aliased_vuses): Adjust.
9771 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid valueization
9772 if requested.
9773
9774 2019-09-14 Kewen Lin <linkw@gcc.gnu.org>
9775
9776 PR middle-end/80791
9777 * config/rs6000/rs6000.c (TARGET_HAVE_COUNT_REG_DECR_P): New macro.
9778 (TARGET_DOLOOP_COST_FOR_GENERIC): Likewise.
9779 (TARGET_DOLOOP_COST_FOR_ADDRESS): Likewise.
9780 * target.def (have_count_reg_decr_p): New hook.
9781 (doloop_cost_for_generic): Likewise.
9782 (doloop_cost_for_address): Likewise.
9783 * doc/tm.texi.in (TARGET_HAVE_COUNT_REG_DECR_P): Likewise.
9784 (TARGET_DOLOOP_COST_FOR_GENERIC): Likewise.
9785 (TARGET_DOLOOP_COST_FOR_ADDRESS): Likewise.
9786 * doc/tm.texi: Regenerate.
9787 * tree-ssa-loop-ivopts.c (comp_cost::operator+=): Consider infinite cost
9788 addend.
9789 (record_group): Init doloop_p.
9790 (add_candidate_1): Add optional argument doloop, change the handlings
9791 accordingly.
9792 (add_candidate): Likewise.
9793 (generic_predict_doloop_p): Update attribute.
9794 (force_expr_to_var_cost): Add costing for expressions COND_EXPR/LT_EXPR/
9795 LE_EXPR/GT_EXPR/GE_EXPR/EQ_EXPR/NE_EXPR/UNORDERED_EXPR/ORDERED_EXPR/
9796 UNLT_EXPR/UNLE_EXPR/UNGT_EXPR/UNGE_EXPR/UNEQ_EXPR/LTGT_EXPR/MAX_EXPR/
9797 MIN_EXPR.
9798 (get_computation_cost): Update for doloop IV cand extra cost.
9799 (determine_group_iv_cost_cond): Update for doloop IV cand.
9800 (determine_iv_cost): Likewise.
9801 (ivopts_estimate_reg_pressure): Likewise.
9802 (may_eliminate_iv): Update handlings for doloop IV cand.
9803 (add_iv_candidate_for_doloop): New function.
9804 (find_iv_candidates): Call function add_iv_candidate_for_doloop.
9805 (iv_ca_set_no_cp): Update for doloop IV cand.
9806 (iv_ca_set_cp): Likewise.
9807 (iv_ca_dump): Dump register cost.
9808 (find_doloop_use): New function.
9809 (analyze_and_mark_doloop_use): Likewise.
9810 (tree_ssa_iv_optimize_loop): Call function analyze_and_mark_doloop_use.
9811
9812 2019-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
9813
9814 PR middle-end/91708
9815 * cse.c (cse_insn): Do not replace anything with a
9816 MEM.
9817
9818 2019-09-13 Ian Lance Taylor <iant@golang.org>
9819
9820 * doc/invoke.texi (Optimize Options): Fix typo.
9821
9822 2019-09-12 Uroš Bizjak <ubizjak@gmail.com>
9823
9824 PR tree-optimization/89386
9825 * config/i386/sse.md (smulhrs<mode>3): New expander.
9826 (smulhrsv4hi3): Ditto.
9827
9828 2019-09-12 Richard Biener <rguenther@suse.de>
9829
9830 PR tree-optimization/91750
9831 * tree-vect-loop.c (vectorizable_induction): Compute IV increments
9832 in the type of the evolution.
9833
9834 2019-09-12 Yuliang Wang <yuliang.wang@arm.com>
9835
9836 PR tree-optimization/89386
9837 * config/aarch64/aarch64-sve2.md (<su>mull<bt><Vwide>)
9838 (<r>shrnb<mode>, <r>shrnt<mode>): New SVE2 patterns.
9839 (<su>mulh<r>s<mode>3): New pattern for MULHRS.
9840 * config/aarch64/iterators.md (UNSPEC_SMULLB, UNSPEC_SMULLT)
9841 (UNSPEC_UMULLB, UNSPEC_UMULLT, UNSPEC_SHRNB, UNSPEC_SHRNT)
9842 (UNSPEC_RSHRNB, UNSPEC_RSHRNT, UNSPEC_SMULHS, UNSPEC_SMULHRS)
9843 UNSPEC_UMULHS, UNSPEC_UMULHRS): New unspecs.
9844 (MULLBT, SHRNB, SHRNT, MULHRS): New int iterators.
9845 (su, r): Handle the unspecs above.
9846 (bt): New int attribute.
9847 * internal-fn.def (IFN_MULHS, IFN_MULHRS): New internal functions.
9848 * internal-fn.c (first_commutative_argument): Commutativity info for
9849 above.
9850 * optabs.def (smulhs_optab, smulhrs_optab, umulhs_optab)
9851 (umulhrs_optab): New optabs.
9852 * doc/md.texi (smulhs$var{m3}, umulhs$var{m3})
9853 (smulhrs$var{m3}, umulhrs$var{m3}): Documentation for the above.
9854 * tree-vect-patterns.c (vect_recog_mulhs_pattern): New pattern
9855 function.
9856 (vect_vect_recog_func_ptrs): Add it.
9857
9858 2019-09-11 Michael Meissner <meissner@linux.ibm.com>
9859
9860 * config/rs6000/predicates.md (non_add_cint_operand): Simplify the
9861 code.
9862
9863 2019-09-11 Nathan Sidwell <nathan@acm.org>
9864
9865 * tree.h (MARK_TS_TYPE_NON_COMMON): New.
9866 * tree.c (tree_node_structure_for_code): Reformat and alphabetize.
9867
9868 2019-09-11 Richard Biener <rguenther@suse.de>
9869
9870 * lto-opts.c (lto_write_options): Stream -g when debug is enabled.
9871 * lto-wrapper.c (merge_and_complain): Pick up -g.
9872 (append_compiler_options): Likewise.
9873 (run_gcc): Re-instantiate handling -g0 at link-time.
9874 * doc/invoke.texi (flto): Document debug info generation.
9875
9876 2019-09-11 Richard Biener <rguenther@suse.de>
9877
9878 PR tree-optimization/90387
9879 * vr-values.c (vr_values::extract_range_basic): After inlining
9880 simplify non-constant __builtin_constant_p to false.
9881
9882 2019-09-11 Eric Botcazou <ebotcazou@adacore.com>
9883
9884 PR rtl-optimization/89795
9885 * rtlanal.c (nonzero_bits1) <SUBREG>: Do not propagate results from
9886 inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set.
9887
9888 2019-09-11 Jakub Jelinek <jakub@redhat.com>
9889
9890 PR tree-optimization/91723
9891 * tree-vect-stmts.c (vectorizable_call): Use types_compatible_p check
9892 instead of pointer equality when checking if argument vectypes are
9893 the same.
9894
9895 PR middle-end/91725
9896 * match.pd ((A / (1 << B)) -> (A >> B)): Call tree_nonzero_bits instead
9897 of get_nonzero_bits, only call it for integral types.
9898
9899 2019-09-11 Richard Biener <rguenther@suse.de>
9900
9901 Revert
9902 2019-09-09 Barnaby Wilks <barnaby.wilks@arm.com>
9903
9904 * match.pd: Add flag_unsafe_math_optimizations check
9905 before deciding on the widest type in a binary math operation.
9906
9907 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
9908
9909 * doc/tm.texi.in: Document that exactly one of CALL_USED_REGISTERS
9910 and CALL_REALLY_USED_REGISTERS must be defined, and that
9911 CALL_REALLY_USED_REGISTERS is preferred.
9912 * doc/tm.texi: Regenerate.
9913 * hard-reg-set.h (target_hard_regs::x_call_really_used_regs): Delete.
9914 (call_really_used_regs): Likewise.
9915 * reginfo.c: Raise an #error if both CALL_USED_REGISTERS and
9916 CALL_REALLY_USED_REGISTERS are defined.
9917 (initial_call_used_regs): Use CALL_REALLY_USED_REGISTERS as the
9918 initial value if defined.
9919 (initial_call_really_used_regs): Delete.
9920 (saved_call_really_used_regs): Likewise.
9921 (CALL_REALLY_USED_REGNO_P): Likewise.
9922 (init_reg_sets): Remove handling of call_really_used_regs.
9923 (save_register_info, restore_register_info, globalize_reg): Likewise.
9924 (init_reg_sets_1): Likewise. Use call_used_regs instead of
9925 CALL_REALLY_USED_REGNO_P. Don't set call_used_regs for registers
9926 outside operand_reg_set.
9927 (fix_register): Don't change call_used_regs if
9928 CALL_REALLY_USED_REGISTERS is defined.
9929 * config/csky/csky.h (CALL_USED_REGISTERS): Delete.
9930 * config/csky/csky.c (get_csky_live_regs): Use call_used_regs
9931 instead of call_really_used_regs.
9932 (csky_conditional_register_usage): Remove the old handling of
9933 call_used_regs and change the handling of call_really_used_regs
9934 to use call_used_regs instead.
9935 * config/ia64/ia64.h (CALL_USED_REGISTERS): Delete.
9936 * config/ia64/ia64.c (fix_range): Don't set call_used_regs when
9937 making a register fixed.
9938 * config/m32r/m32r.h (CALL_USED_REGISTERS): Delete.
9939 * config/m32r/m32r.c (MUST_SAVE_REGISTER): Use call_used_regs
9940 instead of call_really_used_regs.
9941 (m32r_conditional_register_usage): Don't set call_used_regs when
9942 making a register fixed.
9943 * config/mips/mips.h (CALL_USED_REGISTERS): Delete.
9944 * config/mips/mips.c (mips_global_pointer): Use call_used_regs
9945 instead of call_really_used_regs.
9946 (mips_interrupt_extra_call_saved_reg_p): Likewise.
9947 (mips_cfun_call_saved_reg_p): Likewise.
9948 (mips_swap_registers): Remove the old handling of call_used_regs
9949 and change the handling of call_really_used_regs to use call_used_regs
9950 instead.
9951 (mips_conditional_register_usage): Likewise.
9952 * config/mn10300/mn10300.h (CALL_USED_REGISTERS): Delete.
9953 * config/mn10300/mn10300.c (fp_regs_to_save): Use call_used_regs
9954 instead of call_really_used_regs.
9955 (mn10300_get_live_callee_saved_regs): Likewise.
9956 (mn10300_expand_prologue, mn10300_expand_epilogue): Likewise.
9957 (mn10300_conditional_register_usage): Don't set call_used_regs when
9958 making a register fixed.
9959 * config/rs6000/rs6000.h (CALL_USED_REGISTERS): Delete.
9960 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
9961 Remove the old handling of call_used_regs and change the handling
9962 of call_really_used_regs to use call_used_regs instead.
9963 * config/s390/s390.h (CALL_USED_REGISTERS): Delete.
9964 * config/s390/s390.c (s390_regs_ever_clobbered): Use call_used_regs
9965 instead of call_really_used_regs.
9966 (s390_register_info_gprtofpr, s390_register_info): Likewise.
9967 (s390_hard_regno_rename_ok, s390_hard_regno_scratch_ok): Likewise.
9968 (s390_emit_prologue, s300_set_up_by_prologue): Likewise.
9969 (s390_can_use_return_insn, s390_optimize_prologue): Likewise.
9970 (s390_conditional_register_usage): Remove the old handling of
9971 call_used_regs and change the handling of call_really_used_regs
9972 to use call_used_regs instead.
9973 * config/sh/sh.h (CALL_USED_REGISTERS): Delete.
9974 * config/sh/sh.c (output_stack_adjust, calc_live_regs): Likewise.
9975 (sh_fix_range, reg_unused_after): Likewise.
9976 (sh_conditional_register_usage): Remove the old handling of
9977 call_used_regs and change the handling of call_really_used_regs
9978 to use call_used_regs instead.
9979 * config/sparc/sparc.h (CALL_USED_REGISTERS): Delete.
9980 * config/sparc/sparc.c (sparc_conditional_register_usage): Don't set
9981 call_used_regs when making a register fixed.
9982 * config/tilegx/tilegx.h (CALL_USED_REGISTERS): Delete.
9983 * config/tilegx/tilegx.c (tilegx_conditional_register_usage): Don't set
9984 call_used_regs when making a register fixed.
9985 * config/tilepro/tilepro.h (CALL_USED_REGISTERS): Delete.
9986 * config/tilepro/tilepro.c (tilepro_conditional_register_usage): Don't
9987 set call_used_regs when making a register fixed.
9988 * config/visium/visium.h (CALL_USED_REGISTERS): Delete.
9989 * config/visium/visium.c (visium_conditional_register_usage): Remove
9990 the old handling of call_used_regs and change the handling of
9991 call_really_used_regs to use call_used_regs instead.
9992
9993 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
9994
9995 * hard-reg-set.h (call_used_regs): Only define if IN_TARGET_CODE.
9996 (call_used_or_fixed_reg_p): Expand definition of call_used_regs.
9997 * reginfo.c (call_used_regs): New macro.
9998
9999 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
10000
10001 * config/alpha/alpha.c (alpha_compute_frame_layout): Remove redundant
10002 fixed_regs test.
10003 * config/bpf/bpf.c (bpf_compute_frame_layout, bpf_expand_prologue)
10004 (bpf_expand_epilogue): Likewise.
10005 * config/c6x/c6x.c (c6x_save_reg): Likewise.
10006 * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
10007 (ft32_expand_epilogue): Likewise.
10008 * config/i386/i386.c (ix86_save_reg): Likewise.
10009 * config/moxie/moxie.c (moxie_expand_prologue): Likewise.
10010 (moxie_expand_epilogue): Likewise.
10011 * config/tilegx/tilegx.c (need_to_save_reg): Likewise.
10012 * config/tilepro/tilepro.c (need_to_save_reg): Likewise.
10013 * config/xtensa/xtensa.c (xtensa_call_save_reg): Likewise.
10014
10015 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
10016
10017 * hard-reg-set.h (call_used_or_fixed_reg_p): New macro.
10018 * cfgloopanal.c (init_set_costs): Use call_used_or_fixed_reg_p
10019 instead of testing call_used_regs directly.
10020 * config/aarch64/aarch64.c (aarch64_layout_frame): Likewise.
10021 (aarch64_components_for_bb): Likewise.
10022 * config/alpha/alpha.c (alpha_compute_frame_layout): Likewise.
10023 * config/arc/arc.c (arc_must_save_register): Likewise.
10024 (arc_epilogue_uses): Likewise.
10025 * config/arm/arm.c (arm_option_override, use_return_insn): Likewise.
10026 (legitimize_pic_address, callee_saved_reg_p): Likewise.
10027 (arm_compute_save_reg0_reg12_mask): Likewise.
10028 (arm_compute_save_core_reg_mask): Likewise.
10029 (arm_get_vfp_saved_size, arm_compute_frame_layout): Likewise.
10030 (arm_save_coproc_regs, thumb1_extra_regs_pushed): Likewise.
10031 (cmse_nonsecure_entry_clear_before_return): Likewise.
10032 (thumb1_expand_epilogue, arm_expand_epilogue_apcs_frame): Likewise.
10033 (arm_expand_epilogue): Likewise.
10034 * config/avr/avr.c (avr_regs_to_save, sequent_regs_live): Likewise.
10035 (avr_function_arg_advance, avr_find_unused_d_reg): Likewise.
10036 (_reg_unused_after): Likewise.
10037 * config/bfin/bfin.c (must_save_p, expand_prologue_reg_save): Likewise.
10038 (expand_epilogue_reg_restore, n_regs_saved_by_prologue): Likewise.
10039 (add_to_reg, hwloop_optimize): Likewise.
10040 * config/bpf/bpf.c (bpf_compute_frame_layout, bpf_expand_prologue)
10041 (bpf_expand_epilogue): Likewise.
10042 * config/c6x/c6x.c (c6x_save_reg, c6x_regno_reg_class): Likewise.
10043 * config/cr16/cr16.c (cr16_compute_save_regs): Likewise.
10044 * config/cris/cris.c (cris_reg_saved_in_regsave_area): Likewise.
10045 * config/epiphany/epiphany.c (epiphany_init_reg_tables): Likewise.
10046 (epiphany_compute_function_type, MUST_SAVE_REGISTER): Likewise.
10047 (epiphany_output_mi_thunk, epiphany_start_function): Likewise.
10048 * config/fr30/fr30.c (fr30_num_arg_regs): Likewise.
10049 * config/frv/frv.c (frv_stack_info): Likewise.
10050 * config/ft32/ft32.c (ft32_compute_frame): Likewise.
10051 (ft32_expand_prologue, ft32_expand_epilogue): Likewise.
10052 * config/gcn/gcn.c (gcn_compute_frame_offsets): Likewise.
10053 (move_callee_saved_registers): Likewise.
10054 * config/h8300/h8300.c (byte_reg): Likewise.
10055 * config/i386/i386-options.c (ix86_set_current_function): Likewise.
10056 * config/i386/i386.c (ix86_save_reg, ix86_expand_prologue): Likewise.
10057 (ix86_expand_epilogue, x86_order_regs_for_local_alloc): Likewise.
10058 * config/i386/predicates.md (sibcall_memory_operand): Likewise.
10059 * config/ia64/ia64.c (emit_safe_across_calls, find_gr_spill): Likewise.
10060 (next_scratch_gr_reg, ia64_compute_frame_size): Likewise.
10061 * config/iq2000/iq2000.h (MUST_SAVE_REGISTER): Likewise.
10062 * config/lm32/lm32.c (lm32_compute_frame_size): Likewise.
10063 * config/m32c/m32c.c (need_to_save): Likewise.
10064 * config/m68k/m68k.c (m68k_save_reg): Likewise.
10065 * config/mcore/mcore.c (calc_live_regs): Likewise.
10066 * config/microblaze/microblaze.c (microblaze_must_save_register):
10067 Likewise.
10068 * config/mmix/mmix.c (mmix_local_regno): Likewise.
10069 (mmix_initial_elimination_offset, mmix_reorg): Likewise.
10070 (mmix_use_simple_return, mmix_expand_prologue): Likewise.
10071 (mmix_expand_epilogue): Likewise.
10072 * config/moxie/moxie.c (moxie_compute_frame): Likewise.
10073 (moxie_expand_prologue, moxie_expand_epilogue): Likewise.
10074 * config/msp430/msp430.c (msp430_preserve_reg_p): Likewise.
10075 * config/nds32/nds32.h (nds32_16bit_address_type): Likewise.
10076 (NDS32_REQUIRED_CALLEE_SAVED_P): Likewise.
10077 * config/nios2/nios2.c (prologue_saved_reg_p): Likewise.
10078 * config/or1k/or1k.c (callee_saved_regno_p): Likewise.
10079 * config/pa/pa.c (pa_expand_prologue, pa_expand_epilogue): Likewise.
10080 * config/pdp11/pdp11.c (pdp11_saved_regno): Likewise.
10081 * config/pru/pru.c (prologue_saved_reg_p): Likewise.
10082 * config/riscv/riscv.c (riscv_save_reg_p): Likewise.
10083 (riscv_epilogue_uses, riscv_hard_regno_mode_ok): Likewise.
10084 * config/rl78/rl78.c (need_to_save): Likewise.
10085 * config/rs6000/rs6000-logue.c (save_reg_p): Likewise.
10086 (rs6000_stack_info, generate_set_vrsave): Likewise.
10087 (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.
10088 * config/rs6000/rs6000.c (rs6000_debug_reg_print): Likewise.
10089 * config/rx/rx.c (rx_get_stack_layout): Likewise.
10090 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
10091 * config/sh/sh.c (calc_live_regs, sh_output_mi_thunk): Likewise.
10092 * config/sparc/sparc.c (save_global_or_fp_reg_p): Likewise.
10093 (save_local_or_in_reg_p): Likewise.
10094 * config/stormy16/stormy16.c (REG_NEEDS_SAVE): Likewise.
10095 (xstormy16_epilogue_uses): Likewise.
10096 * config/tilegx/tilegx.c (need_to_save_reg): Likewise.
10097 * config/tilepro/tilepro.c (need_to_save_reg): Likewise.
10098 * config/v850/v850.c (compute_register_save_size): Likewise.
10099 * config/vax/vax.c (vax_expand_prologue): Likewise.
10100 * config/visium/visium.c (visium_save_reg_p): Likewise.
10101 * config/xtensa/xtensa.c (xtensa_call_save_reg): Likewise.
10102 * cselib.c (cselib_process_insn): Likewise.
10103 * df-scan.c (df_get_entry_block_def_set): Likewise.
10104 * function.c (aggregate_value_p): Likewise.
10105 * haifa-sched.c (alloc_global_sched_pressure_data): Likewise.
10106 * ira-lives.c (process_bb_node_lives): Likewise.
10107 * ira.c (do_reload): Likewise.
10108 * lra-lives.c (process_bb_lives): Likewise.
10109 * lra-remat.c (lra_remat): Likewise.
10110 * lra.c (lra): Likewise.
10111 * postreload.c (reload_combine_recognize_pattern): Likewise.
10112 (reload_cse_move2add): Likewise.
10113 * recog.c (peep2_find_free_register): Likewise.
10114 * regrename.c (check_new_reg_p): Likewise.
10115 * reload.c (find_equiv_reg): Likewise.
10116 * reload1.c (reload, find_reg): Likewise.
10117 * sel-sched.c (init_hard_regs_data): Likewise.
10118
10119 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
10120
10121 * config/frv/frv.c (frv_ifcvt_modify_tests): Use
10122 regs_invalidated_by_call & ~fixed_reg_set instead of
10123 call_used_or_fixed_regs & ~fixed_reg_set.
10124 * config/sh/sh.c (output_stack_adjust): Likewise.
10125
10126 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
10127
10128 * hard-reg-set.h (target_hard_regs::x_call_used_reg_set): Delete.
10129 (call_used_reg_set): Delete.
10130 (call_used_or_fixed_regs): New macro.
10131 * reginfo.c (init_reg_sets_1, globalize_reg): Remove initialization
10132 of call_used_reg_set.
10133 * caller-save.c (setup_save_areas): Use call_used_or_fixed_regs
10134 instead of call_used_regs.
10135 (save_call_clobbered_regs): Likewise.
10136 * cfgcleanup.c (old_insns_match_p): Likewise.
10137 * config/c6x/c6x.c (c6x_call_saved_register_used): Likewise.
10138 * config/epiphany/epiphany.c (epiphany_conditional_register_usage):
10139 Likewise.
10140 * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
10141 * config/sh/sh.c (output_stack_adjust): Likewise.
10142 * final.c (collect_fn_hard_reg_usage): Likewise.
10143 * ira-build.c (ira_build): Likewise.
10144 * ira-color.c (calculate_saved_nregs): Likewise.
10145 (allocno_reload_assign, calculate_spill_cost): Likewise.
10146 * ira-conflicts.c (ira_build_conflicts): Likewise.
10147 * ira-costs.c (ira_tune_allocno_costs): Likewise.
10148 * ira-lives.c (process_bb_node_lives): Likewise.
10149 * ira.c (setup_reg_renumber): Likewise.
10150 * lra-assigns.c (find_hard_regno_for_1, lra_assign): Likewise.
10151 * lra-constraints.c (need_for_call_save_p): Likewise.
10152 (need_for_split_p, inherit_in_ebb): Likewise.
10153 * lra-lives.c (process_bb_lives): Likewise.
10154 * lra-remat.c (call_used_input_regno_present_p): Likewise.
10155 * postreload.c (reload_combine): Likewise.
10156 * regrename.c (find_rename_reg): Likewise.
10157 * reload1.c (reload_as_needed): Likewise.
10158 * rtlanal.c (find_all_hard_reg_sets): Likewise.
10159 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
10160 * shrink-wrap.c (requires_stack_frame_p): Likewise.
10161
10162 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
10163
10164 * hard-reg-set.h (target_hard_regs::x_no_caller_save_reg_set): Delete.
10165 (no_caller_save_reg_set): Delete.
10166 * caller-save.c (init_caller_save): Don't initialize it.
10167 * ira-conflicts.c (ira_build_conflicts): Calculate
10168 no_caller_save_reg_set locally from call_used_reg_set and savable_regs.
10169
10170 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
10171
10172 * hard-reg-set.h (target_hard_regs::x_call_fixed_reg_set): Delete.
10173 (target_hard_regs::x_savable_regs): New field.
10174 (call_fixed_reg_set): Delete.
10175 (savable_regs): New macro,
10176 * reginfo.c (globalize_reg): Don't set call_fixed_reg_set.
10177 (init_reg_sets_1): Likewise. Initialize savable_regs.
10178 * caller-save.c (init_caller_save): Invoke HARD_REGNO_CALLER_SAVE_MODE
10179 for all registers. Set savable_regs instead of call_fixed_reg_set.
10180 (setup_save_areas, save_call_clobbered_regs): Replace uses of
10181 ~call_fixed_reg_set with ~fixed_reg_set & savable_regs.
10182 * config/sh/sh.c (output_stack_adjust): Likewise.
10183
10184 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
10185
10186 * config/c6x/c6x-protos.h (c6x_set_return_address): Declare.
10187 * config/c6x/c6x.h (REGNO_REG_CLASS): Move implementation to
10188 * config/c6x/c6x.c (c6x_regno_reg_class): ...this new function.
10189
10190 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
10191
10192 * rtl.h (get_call_rtx_from): Take a const rtx_insn * instead of an rtx.
10193 * rtlanal.c (get_call_rtx_from): Likewise.
10194 * dwarf2out.c (dwarf2out_var_location): Pass the insn rather
10195 than the pattern to get_call_rtx_from.
10196 * config/i386/i386-expand.h (ix86_notrack_prefixed_insn_p): Take
10197 an rtx_insn * instead of an rtx.
10198 * config/i386/i386-expand.c (ix86_notrack_prefixed_insn_p): Likewise.
10199
10200 2019-09-10 Martin Liska <mliska@suse.cz>
10201
10202 * common.opt: Use newly added WarnRemoved.
10203 * config/aarch64/aarch64.opt: Likewise.
10204 * config/arm/arm.opt: Likewise.
10205 * config/i386/i386.opt: Likewise.
10206 * config/ia64/ia64.opt: Likewise.
10207 * config/rs6000/rs6000.opt: Likewise.
10208 * doc/options.texi: Document WarnRemoved properly.
10209 * dwarf2out.c (gen_producer_string): Handle renamed
10210 OPT_SPECIAL_warn_removed.
10211 * lto-opts.c (lto_write_options): Likewise.
10212 * lto-wrapper.c (merge_and_complain): Likewise.
10213 * opts-common.c (decode_cmdline_option): Likewise.
10214 (prune_options): Likewise.
10215 (read_cmdline_option): Likewise.
10216 (control_warning_option): Likewise.
10217 * opts.c (print_filtered_help): Likewise.
10218 * optc-gen.awk: Parse for WarnRemoved and make usage
10219 of Deprecated an error.
10220 * opth-gen.awk: Generate new OPT_SPECIAL_warn_removed.
10221
10222 2019-09-10 Arnaud Charlet <charlet@adacore.com>
10223
10224 * doc/install.texi: Fix syntax for html generation.
10225
10226 2019-09-10 Jakub Jelinek <jakub@redhat.com>
10227
10228 PR middle-end/91680
10229 * match.pd ((A / (1 << B)) -> (A >> B)): Allow widening cast from
10230 the shift type to type.
10231
10232 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
10233
10234 * config/arm/arm.md (stack_protect_combined_set_insn): Handle
10235 FDPIC mode.
10236 (stack_protect_combined_test_insn): Likewise.
10237
10238 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
10239 Mickaël Guêné <mickael.guene@st.com>
10240
10241 * config/arm/arm.c (arm_load_tp): Add FDPIC support.
10242 * config/arm/arm.md (FDPIC_REGNUM): New constant.
10243 (load_tp_soft_fdpic): New pattern.
10244 (load_tp_soft): Disable in FDPIC mode.
10245
10246 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
10247 Mickaël Guêné <mickael.guene@st.com>
10248
10249 * config/arm/arm.c (tls_reloc): Add TLS_GD32_FDPIC,
10250 TLS_LDM32_FDPIC and TLS_IE32_FDPIC.
10251 (arm_call_tls_get_addr): Add FDPIC support.
10252 (legitimize_tls_address): Likewise.
10253 (arm_emit_tls_decoration): Likewise.
10254
10255 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
10256 Mickaël Guêné <mickael.guene@st.com>
10257
10258 * config/arm/arm.c (arm_asm_trampoline_template): Add FDPIC
10259 support.
10260 (arm_trampoline_init): Likewise.
10261 (arm_trampoline_adjust_address): Likewise.
10262 * config/arm/arm.h (TRAMPOLINE_SIZE): Likewise.
10263
10264 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
10265 Mickaël Guêné <mickael.guene@st.com>
10266
10267 * config/arm/arm.c (arm_fdpic_local_funcdesc_p): New function.
10268 (legitimize_pic_address): Enforce binding rules on function
10269 pointers in FDPIC mode.
10270 (arm_assemble_integer): Likewise.
10271
10272 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
10273 Mickaël Guêné <mickael.guene@st.com>
10274
10275 * config/arm/arm.h (PIC_REGISTER_MAY_NEED_SAVING): New helper.
10276 * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Handle
10277 FDPIC.
10278
10279 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
10280 Mickaël Guêné <mickael.guene@st.com>
10281
10282 * ginclude/unwind-arm-common.h (unwinder_cache): Add reserved5
10283 field.
10284
10285 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
10286 Mickaël Guêné <mickael.guene@st.com>
10287
10288 * config/arm/arm-c.c (__FDPIC__): Define new pre-processor macro
10289 in FDPIC mode.
10290 * config/arm/arm-protos.h (arm_load_function_descriptor): Declare
10291 new function.
10292 * config/arm/arm.c (arm_option_override): Define pic register to
10293 FDPIC_REGNUM.
10294 (arm_function_ok_for_sibcall): Disable sibcall optimization if we
10295 have no decl or go through PLT.
10296 (calculate_pic_address_constant): New function.
10297 (legitimize_pic_address): Call calculate_pic_address_constant.
10298 (arm_load_pic_register): Handle TARGET_FDPIC.
10299 (arm_is_segment_info_known): New function.
10300 (arm_pic_static_addr): Add support for FDPIC.
10301 (arm_load_function_descriptor): New function.
10302 (arm_emit_call_insn): Add support for FDPIC.
10303 (arm_assemble_integer): Add support for FDPIC.
10304 * config/arm/arm.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED):
10305 Define. (FDPIC_REGNUM): New define.
10306 * config/arm/arm.md (call): Add support for FDPIC.
10307 (call_value): Likewise.
10308 (restore_pic_register_after_call): New pattern.
10309 (untyped_call): Disable if FDPIC.
10310 (untyped_return): Likewise.
10311 * config/arm/unspecs.md (UNSPEC_PIC_RESTORE): New.
10312
10313 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
10314 Mickaël Guêné <mickael.guene@st.com>
10315
10316 * config.gcc: Handle arm*-*-uclinuxfdpiceabi.
10317 * config/arm/bpabi.h (TARGET_FDPIC_ASM_SPEC): New.
10318 (SUBTARGET_EXTRA_ASM_SPEC): Use TARGET_FDPIC_ASM_SPEC.
10319 * config/arm/linux-eabi.h (FDPIC_CC1_SPEC): New.
10320 (CC1_SPEC): Use FDPIC_CC1_SPEC.
10321 (MUSL_DYNAMIC_LINKER): Add -fdpic suffix when needed.
10322 * config/arm/uclinuxfdpiceabi.h: New file.
10323
10324 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
10325
10326 * config.gcc: Handle *-*-uclinuxfdpiceabi.
10327
10328 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
10329 Mickaël Guêné <mickael.guene@st.com>
10330
10331 * config/arm/arm.opt: Add -mfdpic option.
10332 * doc/invoke.texi: Add documentation for -mfdpic.
10333
10334 2019-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de>
10335
10336 * expmed.c (extract_bit_field): Update function comment
10337 regarding alt_rtl.
10338 * expr.c (expand_expr_real): Update function comment
10339 regarding alt_rtl.
10340 (expand_misaligned_mem_ref): New helper function.
10341 (expand_expr_real_2): Use expand_misaligned_mem_ref.
10342 Remove duplicate assignment to "base" at case MEM_REF.
10343 Remove a shadowed variable "unsignedp" at case VCE.
10344
10345 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
10346
10347 * regset.h (regs_invalidated_by_call_regset): Delete.
10348 (fixed_reg_set_regset): Likewise.
10349 * reginfo.c (regs_invalidated_by_call_regset): Likewise.
10350 (fixed_reg_set_regset, persistent_obstack): Likewise.
10351 (init_reg_sets_1, globalize_reg): Update accordingly.
10352 * df.h (df_print_regset, df_print_word_regset): Take a const_bitmap
10353 instead of a bitmap.
10354 * df-core.c (df_print_regset, df_print_word_regset): Likewise.
10355 * df-problems.c (df_rd_local_compute): Use regs_invalidated_by_call
10356 instead of regs_invalidated_by_call_regset.
10357 (df_lr_confluence_n, df_md_confluence_n): Likewise.
10358 * df-scan.c (df_scan_start_dump): Likewise.
10359 * dse.c (copy_fixed_regs): Likewise.
10360 * config/sh/sh.c (sh_find_equiv_gbr_addr): Likewise.
10361
10362 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
10363
10364 * array-traits.h: New file.
10365 * coretypes.h (array_traits, bitmap_view): New types.
10366 * bitmap.h: Include "array-traits.h"
10367 (bitmap_bit_p): Take a const_bitmap instead of a bitmap.
10368 (base_bitmap_view, bitmap_view): New classes.
10369 * bitmap.c (bitmap_bit_p): Take a const_bitmap instead of a bitmap.
10370 * hard-reg-set.h: Include array-traits.h.
10371 (array_traits<HARD_REG_SET>): New struct.
10372 * regset.h (IOR_REG_SET_HRS): New macro.
10373 * loop-iv.c (simplify_using_initial_values): Use IOR_REG_SET_HRS
10374 rather than iterating over each hard register.
10375 * sched-deps.c (sched_analyze_insn): Likewise.
10376 * sel-sched-ir.c (setup_id_implicit_regs): Likewise.
10377
10378 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
10379
10380 * ira-int.h (ior_hard_reg_conflicts): Take a const_hard_reg_set
10381 instead of a HARD_REG_SET *.
10382 * ira-build.c (ior_hard_reg_conflicts): Likewise.
10383 (ira_build): Update call accordingly.
10384 * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
10385
10386 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
10387
10388 * hard-reg-set.h (HARD_REG_SET::operator==): New function.
10389 (HARD_REG_SET::operator!=): Likewise.
10390 (hard_reg_set_equal_p): Delete.
10391 * cfgcleanup.c (old_insns_match_p): Use == instead of
10392 hard_reg_set_equal_p and != instead of !hard_reg_set_equal_p.
10393 * ira-color.c (allocno_hard_regs_hasher::equal): Likewise.
10394 (add_allocno_hard_regs_to_forest): Likewise.
10395 (setup_allocno_available_regs_num): Likewise.
10396 * ira.c (setup_pressure_classes): Likewise.
10397 (setup_allocno_and_important_classes): Likewise.
10398 (setup_reg_class_relations): Likewise.
10399 * lra-lives.c (process_bb_lives): Likewise.
10400 * reg-stack.c (change_stack, convert_regs_1): Likewise.
10401
10402 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
10403
10404 * hard-reg-set.h (IOR_COMPL_HARD_REG_SET): Delete.
10405 * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
10406 Use "|~" instead of IOR_COMPL_HARD_REG_SET.
10407 * config/aarch64/falkor-tag-collision-avoidance.c (init_unavailable):
10408 Likewise.
10409 * ira-build.c (ira_create_object, ira_set_allocno_class): Likewise.
10410 * ira.c (setup_reg_renumber): Likewise.
10411 * lra-assigns.c (find_hard_regno_for_1): Likewise.
10412 * regrename.c (regrename_find_superclass): Likewise.
10413 * reload1.c (find_reg): Likewise.
10414
10415 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
10416
10417 * hard-reg-set.h (AND_COMPL_HARD_REG_SET): Delete.
10418 * caller-save.c (setup_save_areas): Use "&~" instead of
10419 AND_COMPL_HARD_REG_SET.
10420 (save_call_clobbered_regs): Likewise.
10421 * config/epiphany/epiphany.c (epiphany_conditional_register_usage):
10422 Likewise.
10423 * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
10424 * config/gcn/gcn.c (gcn_md_reorg): Likewise.
10425 * config/i386/i386.c (ix86_conditional_register_usage): Likewise.
10426 * config/mips/mips.c (mips_class_max_nregs): Likewise.
10427 (mips_conditional_register_usage): Likewise.
10428 * config/sh/sh.c (output_stack_adjust): Likewise.
10429 * ira-color.c (form_allocno_hard_regs_nodes_forest): Likewise.
10430 (setup_profitable_hard_regs): Likewise.
10431 (get_conflict_and_start_profitable_regs): Likewise.
10432 * ira-conflicts.c (print_allocno_conflicts): Likewise.
10433 (ira_build_conflicts): Likewise.
10434 * ira-costs.c (restrict_cost_classes): Likewise.
10435 (setup_regno_cost_classes_by_aclass): Likewise.
10436 * ira-lives.c (process_bb_node_lives): Likewise.
10437 * ira.c (setup_class_hard_regs, setup_reg_subclasses): Likewise.
10438 (setup_class_subset_and_memory_move_costs, setup_pressure_classes)
10439 (setup_allocno_and_important_classes, setup_class_translate_array)
10440 (setup_reg_class_relations, setup_prohibited_class_mode_regs):
10441 Likewise.
10442 * lra-assigns.c (find_hard_regno_for_1): Likewise.
10443 * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
10444 (process_alt_operands, inherit_in_ebb): Likewise.
10445 * lra-eliminations.c (update_reg_eliminate): Likewise.
10446 * lra-lives.c (process_bb_lives): Likewise.
10447 * reload1.c (update_eliminables_and_spill, reload_as_needed): Likewise.
10448 * resource.c (find_dead_or_set_registers): Likewise.
10449 (mark_target_live_regs): Likewise.
10450 * sched-deps.c (get_implicit_reg_pending_clobbers): Likewise.
10451 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
10452 (implicit_clobber_conflict_p): Likewise.
10453 * shrink-wrap.c (requires_stack_frame_p): Likewise.
10454 (try_shrink_wrapping): Likewise.
10455
10456 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
10457
10458 * hard-reg-set.h (HARD_REG_SET::operator|): New function.
10459 (HARD_REG_SET::operator|=): Likewise.
10460 (IOR_HARD_REG_SET): Delete.
10461 * config/gcn/gcn.c (gcn_md_reorg): Use "|" instead of
10462 IOR_HARD_REG_SET.
10463 * config/m32c/m32c.c (m32c_register_move_cost): Likewise.
10464 * config/s390/s390.c (s390_adjust_loop_scan_osc): Likewise.
10465 * final.c (collect_fn_hard_reg_usage): Likewise.
10466 * hw-doloop.c (scan_loop, optimize_loop): Likewise.
10467 * ira-build.c (merge_hard_reg_conflicts): Likewise.
10468 (ior_hard_reg_conflicts, create_cap_allocno, propagate_allocno_info)
10469 (propagate_some_info_from_allocno): Likewise.
10470 (copy_info_to_removed_store_destinations): Likewise.
10471 * ira-color.c (add_allocno_hard_regs_to_forest, assign_hard_reg)
10472 (allocno_reload_assign, ira_reassign_pseudos): Likewise.
10473 (fast_allocation): Likewise.
10474 * ira-conflicts.c (ira_build_conflicts): Likewise.
10475 * ira-lives.c (make_object_dead, process_single_reg_class_operands)
10476 (process_bb_node_lives): Likewise.
10477 * ira.c (setup_pressure_classes, setup_reg_class_relations): Likewise.
10478 * lra-assigns.c (find_hard_regno_for_1): Likewise.
10479 (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
10480 * lra-constraints.c (process_alt_operands, inherit_in_ebb): Likewise.
10481 * lra-eliminations.c (spill_pseudos, update_reg_eliminate): Likewise.
10482 * lra-lives.c (mark_pseudo_dead, check_pseudos_live_through_calls)
10483 (process_bb_lives): Likewise.
10484 * lra-spills.c (assign_spill_hard_regs): Likewise.
10485 * postreload.c (reload_combine): Likewise.
10486 * reginfo.c (init_reg_sets_1): Likewise.
10487 * regrename.c (merge_overlapping_regs, find_rename_reg)
10488 (merge_chains): Likewise.
10489 * reload1.c (maybe_fix_stack_asms, order_regs_for_reload, find_reg)
10490 (find_reload_regs, finish_spills, choose_reload_regs_init)
10491 (emit_reload_insns): Likewise.
10492 * reorg.c (redundant_insn): Likewise.
10493 * resource.c (find_dead_or_set_registers, mark_set_resources)
10494 (mark_target_live_regs): Likewise.
10495 * rtlanal.c (find_all_hard_reg_sets): Likewise.
10496 * sched-deps.c (sched_analyze_insn): Likewise.
10497 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
10498 (find_best_reg_for_expr): Likewise.
10499 * shrink-wrap.c (try_shrink_wrapping): Likewise.
10500
10501 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
10502
10503 * hard-reg-set.h (HARD_REG_SET::operator&): New function.
10504 (HARD_REG_SET::operator&): Likewise.
10505 (AND_HARD_REG_SET): Delete.
10506 * caller-save.c (setup_save_areas): Use "&" instead of
10507 AND_HARD_REG_SET.
10508 (save_call_clobbered_regs): Likewise.
10509 * config/gcn/gcn.c (gcn_md_reorg): Likewise.
10510 * config/m32c/m32c.c (reduce_class): Likewise.
10511 * config/rs6000/rs6000.c (rs6000_register_move_cost): Likewise.
10512 * final.c (get_call_reg_set_usage): Likewise.
10513 * ira-color.c (add_allocno_hard_regs_to_forest): Likewise.
10514 (setup_left_conflict_sizes_p): Likewise.
10515 * ira-conflicts.c (print_allocno_conflicts): Likewise.
10516 (ira_build_conflicts): Likewise.
10517 * ira-costs.c (restrict_cost_classes): Likewise.
10518 * ira.c (setup_stack_reg_pressure_class, setup_class_translate_array)
10519 (setup_reg_class_relations): Likewise.
10520 * reginfo.c (init_reg_sets_1, record_subregs_of_mode): Likewise.
10521 * reload1.c (maybe_fix_stack_asms, finish_spills): Likewise.
10522 * resource.c (find_dead_or_set_registers): Likewise.
10523 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
10524
10525 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
10526
10527 * hard-reg-set.h (HARD_REG_SET::operator~): New function.
10528 (COMPL_HARD_REG_SET): Delete.
10529 * config/c6x/c6x.c (c6x_call_saved_register_used): Use ~ instead
10530 of COMPL_HARD_REG_SET.
10531 (try_rename_operands): Likewise.
10532 * config/sh/sh.c (push_regs): Likewise.
10533 * lra-assigns.c (find_hard_regno_for_1): Likewise.
10534 * lra-constraints.c (contains_reg_p): Likewise.
10535 * reload1.c (finish_spills, choose_reload_regs_init): Likewise.
10536
10537 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
10538
10539 * hard-reg-set.h (COPY_HARD_REG_SET): Delete.
10540 * caller-save.c (save_call_clobbered_regs): Use assignment instead
10541 of COPY_HARD_REG_SET.
10542 * config/epiphany/epiphany.c (epiphany_compute_frame_size): Likewise.
10543 (epiphany_conditional_register_usage): Likewise.
10544 * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
10545 * config/gcn/gcn.c (gcn_md_reorg): Likewise.
10546 * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
10547 * config/m32c/m32c.c (m32c_register_move_cost): Likewise.
10548 * config/m68k/m68k.c (m68k_conditional_register_usage): Likewise.
10549 * config/mips/mips.c (mips_class_max_nregs): Likewise.
10550 * config/pdp11/pdp11.c (pdp11_conditional_register_usage): Likewise.
10551 * config/rs6000/rs6000.c (rs6000_register_move_cost): Likewise.
10552 * config/sh/sh.c (output_stack_adjust): Likewise.
10553 * final.c (collect_fn_hard_reg_usage): Likewise.
10554 (get_call_reg_set_usage): Likewise.
10555 * ira-build.c (ira_create_object, remove_low_level_allocnos)
10556 (ira_flattening): Likewise.
10557 * ira-color.c (add_allocno_hard_regs, add_allocno_hard_regs_to_forest)
10558 (setup_left_conflict_sizes_p, setup_profitable_hard_regs)
10559 (get_conflict_and_start_profitable_regs, allocno_reload_assign)
10560 (ira_reassign_pseudos): Likewise.
10561 * ira-conflicts.c (print_allocno_conflicts): Likewise.
10562 (ira_build_conflicts): Likewise.
10563 * ira-costs.c (restrict_cost_classes): Likewise.
10564 (setup_regno_cost_classes_by_aclass): Likewise.
10565 * ira.c (setup_class_hard_regs, setup_alloc_regs): Likewise.
10566 (setup_reg_subclasses, setup_class_subset_and_memory_move_costs)
10567 (setup_stack_reg_pressure_class, setup_pressure_classes)
10568 (setup_allocno_and_important_classes, setup_class_translate_array)
10569 (setup_reg_class_relations, setup_prohibited_class_mode_regs)
10570 (ira_setup_eliminable_regset): Likewise.
10571 * lra-assigns.c (find_hard_regno_for_1): Likewise.
10572 (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
10573 * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
10574 (process_alt_operands, inherit_in_ebb): Likewise.
10575 * lra-lives.c (process_bb_lives): Likewise.
10576 * lra-spills.c (assign_spill_hard_regs): Likewise.
10577 * lra.c (lra): Likewise.
10578 * mode-switching.c (new_seginfo): Likewise.
10579 * postreload.c (reload_combine): Likewise.
10580 * reg-stack.c (straighten_stack): Likewise.
10581 * reginfo.c (save_register_info, restore_register_info): Likewise.
10582 (init_reg_sets_1, record_subregs_of_mode): Likewise
10583 * regrename.c (create_new_chain, rename_chains): Likewise.
10584 * reload1.c (order_regs_for_reload, find_reg): Likewise.
10585 (find_reload_regs): Likewise.
10586 * resource.c (find_dead_or_set_registers): Likewise.
10587 (mark_target_live_regs): Likewise.
10588 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
10589
10590 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
10591
10592 * rtl.h (CALL_INSN_FUNCTION_USAGE): Document what SETs mean.
10593 (note_pattern_stores): Declare.
10594 (note_stores): Take an rtx_insn *.
10595 * rtlanal.c (set_of): Use note_pattern_stores instead of note_stores.
10596 (find_all_hard_reg_sets): Pass the insn rather than its pattern to
10597 note_stores. Remove explicit handling of CALL_INSN_FUNCTION_USAGE.
10598 (note_stores): Take an rtx_insn * as argument and process
10599 CALL_INSN_FUNCTION_USAGE. Rename old function to...
10600 (note_pattern_stores): ...this.
10601 (find_first_parameter_load): Pass the insn rather than
10602 its pattern to note_stores.
10603 * alias.c (memory_modified_in_insn_p, init_alias_analysis): Likewise.
10604 * caller-save.c (setup_save_areas, save_call_clobbered_regs)
10605 (insert_one_insn): Likewise.
10606 * combine.c (combine_instructions): Likewise.
10607 (likely_spilled_retval_p): Likewise.
10608 (try_combine): Use note_pattern_stores instead of note_stores.
10609 (record_dead_and_set_regs): Pass the insn rather than its pattern
10610 to note_stores.
10611 (reg_dead_at_p): Likewise.
10612 * config/bfin/bfin.c (workaround_speculation): Likewise.
10613 * config/c6x/c6x.c (maybe_clobber_cond): Likewise. Take an rtx_insn *
10614 rather than an rtx.
10615 * config/frv/frv.c (frv_registers_update): Use note_pattern_stores
10616 instead of note_stores.
10617 (frv_optimize_membar_local): Pass the insn rather than its pattern
10618 to note_stores.
10619 * config/gcn/gcn.c (gcn_md_reorg): Likewise.
10620 * config/i386/i386.c (ix86_avx_u128_mode_after): Likewise.
10621 * config/mips/mips.c (vr4130_true_reg_dependence_p): Likewise.
10622 (r10k_needs_protection_p, mips_sim_issue_insn): Likewise.
10623 (mips_reorg_process_insns): Likewise.
10624 * config/s390/s390.c (s390_regs_ever_clobbered): Likewise.
10625 * config/sh/sh.c (flow_dependent_p): Likewise. Take rtx_insn *s
10626 rather than rtxes.
10627 * cse.c (delete_trivially_dead_insns): Pass the insn rather than
10628 its pattern to note_stores.
10629 * cselib.c (cselib_record_sets): Use note_pattern_stores instead
10630 of note_stores.
10631 * dce.c (mark_nonreg_stores): Remove the "body" parameter and pass
10632 the insn to note_stores.
10633 (prescan_insns_for_dce): Update call accordingly.
10634 * ddg.c (mem_write_insn_p): Pass the insn rather than its pattern
10635 to note_stores.
10636 * df-problems.c (can_move_insns_across): Likewise.
10637 * dse.c (emit_inc_dec_insn_before, replace_read): Likewise.
10638 * function.c (assign_parm_setup_reg): Likewise.
10639 * gcse-common.c (record_last_mem_set_info_common): Likewise.
10640 * gcse.c (load_killed_in_block_p, compute_hash_table_work): Likewise.
10641 (single_set_gcse): Likewise.
10642 * ira.c (validate_equiv_mem): Likewise.
10643 (update_equiv_regs): Use note_pattern_stores rather than note_stores
10644 for no_equiv.
10645 * loop-doloop.c (doloop_optimize): Pass the insn rather than its
10646 pattern to note_stores.
10647 * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
10648 * loop-iv.c (simplify_using_initial_values): Likewise.
10649 * mode-switching.c (optimize_mode_switching): Likewise.
10650 * optabs.c (emit_libcall_block_1): Likewise.
10651 (expand_atomic_compare_and_swap): Likewise.
10652 * postreload-gcse.c (load_killed_in_block_p): Likewise.
10653 (record_opr_changes): Likewise. Remove explicit handling of
10654 CALL_INSN_FUNCTION_USAGE.
10655 * postreload.c (reload_combine, reload_cse_move2add): Likewise.
10656 * regcprop.c (kill_clobbered_values): Likewise.
10657 (copyprop_hardreg_forward_1): Pass the insn rather than its pattern
10658 to note_stores.
10659 * regrename.c (build_def_use): Likewise.
10660 * reload1.c (reload): Use note_pattern_stores instead of note_stores
10661 for mark_not_eliminable.
10662 (reload_as_needed): Pass the insn rather than its pattern
10663 to note_stores.
10664 (emit_output_reload_insns): Likewise.
10665 * resource.c (mark_target_live_regs): Likewise.
10666 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
10667 * sched-rgn.c (sets_likely_spilled): Use note_pattern_stores
10668 instead of note_stores.
10669 * shrink-wrap.c (try_shrink_wrapping): Pass the insn rather than
10670 its pattern to note_stores.
10671 * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Likewise.
10672 * var-tracking.c (adjust_insn, add_with_sets): Likewise.
10673
10674 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
10675
10676 * hard-reg-set.h (HARD_REG_SET): Define using a typedef rather
10677 than a #define. Use a structure rather than an array as the
10678 fallback definition. Remove special cases for low array sizes.
10679 (const_hard_reg_set): New typedef.
10680 (hard_reg_set_subset_p): Use it instead of "const HARD_REG_SET".
10681 (hard_reg_set_equal_p, hard_reg_set_intersect_p): Likewise.
10682 (hard_reg_set_empty_p): Likewise.
10683 (SET_HARD_REG_BIT): Use a function rather than a macro to
10684 handle the case in which HARD_REG_SET is a structure.
10685 (CLEAR_HARD_REG_BIT, TEST_HARD_REG_BIT, CLEAR_HARD_REG_SET)
10686 (SET_HARD_REG_SET, COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
10687 (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
10688 (IOR_COMPL_HARD_REG_SET): Likewise.
10689 (hard_reg_set_iterator::pset): Constify the pointer target.
10690 (hard_reg_set_iter_init): Take a const_hard_reg_set instead
10691 of a "const HARD_REG_SET". Update the handling of non-integer
10692 HARD_REG_SETs.
10693 * recog.h: Test HARD_CONST instead of CLEAR_HARD_REG_SET.
10694 * reload.h: Likewise.
10695 * rtl.h (choose_hard_reg_mode): Remove unnecessary line break.
10696 * regs.h (in_hard_reg_set_p): Take a const_hard_reg_set instead
10697 of a "const HARD_REG_SET".
10698 (overlaps_hard_reg_set_p, range_overlaps_hard_reg_set_p): Likewise.
10699 (range_in_hard_reg_set_p): Likewise.
10700 * ira-costs.c (restrict_cost_classes): Likewise.
10701 * shrink-wrap.c (move_insn_for_shrink_wrap): Likewise.
10702 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
10703 Pass a NO_REGS HARD_REG_SET rather than NULL to emit_set_fp_mode.
10704 * config/ia64/ia64.c (rws_insn): In the CHECKING_P version,
10705 use unsigned HOST_WIDEST_FAST_INT rather than HARD_REG_ELT_TYPE.
10706 (rws_insn_set, rws_insn_test): In the CHECKING_P version,
10707 take an unsigned int and open-code the HARD_REG_SET operations.
10708
10709 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
10710
10711 * Makefile.in (OBJS): Remove bt-load.o.
10712 * doc/invoke.texi (fbranch-target-load-optimize): Delete.
10713 (fbranch-target-load-optimize2, fbtr-bb-exclusive): Likewise.
10714 * common.opt (fbranch-target-load-optimize): Mark as Ignore and
10715 document that the option no longer does anything.
10716 (fbranch-target-load-optimize2, fbtr-bb-exclusive): Likewise.
10717 * target.def (branch_target_register_class): Delete.
10718 (branch_target_register_callee_saved): Likewise.
10719 * doc/tm.texi.in (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
10720 (TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise.
10721 * doc/tm.texi: Regenerate.
10722 * tree-pass.h (make_pass_branch_target_load_optimize1): Delete.
10723 (make_pass_branch_target_load_optimize2): Likewise.
10724 * passes.def (pass_branch_target_load_optimize1): Likewise.
10725 (pass_branch_target_load_optimize2): Likewise.
10726 * targhooks.h (default_branch_target_register_class): Likewise.
10727 * targhooks.c (default_branch_target_register_class): Likewise.
10728 * opt-suggestions.c (test_completion_valid_options): Remove
10729 -fbtr-bb-exclusive from the list of test options.
10730 * bt-load.c: Remove.
10731
10732 2019-09-09 Barnaby Wilks <barnaby.wilks@arm.com>
10733
10734 * match.pd: Add flag_unsafe_math_optimizations check
10735 before deciding on the widest type in a binary math operation.
10736
10737 2019-09-09 Martin Liska <mliska@suse.cz>
10738
10739 * config/i386/i386.opt: Update comment of removed
10740 options that are preserved only for backward
10741 compatibility.
10742
10743 2019-09-09 Jakub Jelinek <jakub@redhat.com>
10744
10745 PR target/87853
10746 * config/i386/emmintrin.h (_mm_cmpeq_epi8): Use casts to __v16qi
10747 instead of __v16qs.
10748
10749 PR target/91704
10750 * config/i386/avxintrin.h (__v32qs): New typedef.
10751 * config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs
10752 instead of __v32qi.
10753
10754 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
10755
10756 * doc/invoke.texi (Option Summary): Cover eBPF.
10757 (eBPF Options): New section.
10758 * doc/extend.texi (BPF Built-in Functions): Likewise.
10759 (BPF Kernel Helpers): Likewise.
10760
10761 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
10762
10763 * config.gcc: Support for bpf-*-* targets.
10764 * common/config/bpf/bpf-common.c: New file.
10765 * config/bpf/t-bpf: Likewise.
10766 * config/bpf/predicates.md: Likewise.
10767 * config/bpf/constraints.md: Likewise.
10768 * config/bpf/bpf.opt: Likewise.
10769 * config/bpf/bpf.md: Likewise.
10770 * config/bpf/bpf.h: Likewise.
10771 * config/bpf/bpf.c: Likewise.
10772 * config/bpf/bpf-protos.h: Likewise.
10773 * config/bpf/bpf-opts.h: Likewise.
10774 * config/bpf/bpf-helpers.h: Likewise.
10775 * config/bpf/bpf-helpers.def: Likewise.
10776
10777 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
10778
10779 * doc/sourcebuild.texi (Effective-Target Keywords): Document
10780 indirect_calls.
10781
10782 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
10783
10784 * opt-functions.awk (integer_range_info): Make sure values are in
10785 numeric context before operating with them.
10786
10787 2019-09-08 Segher Boessenkool <segher@kernel.crashing.org>
10788
10789 * genemit.c (gen_split): Print the filename and line number where the
10790 splitter (or peephole2) was defined, to the dump file.
10791
10792 2019-09-07 Jakub Jelinek <jakub@redhat.com>
10793
10794 PR tree-optimization/91665
10795 * tree-vect-loop.c (vectorizable_reduction): Punt if base has type
10796 incompatible with the type of PHI result.
10797
10798 2019-09-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
10799
10800 PR target/91684
10801 * config/arm/arm.c (arm_block_set_aligned_non_vect): Use
10802 gen_unaligned_storedi for 4-byte aligned addresses.
10803
10804 2019-09-06 Jim Wilson <jimw@sifive.com>
10805
10806 * config/riscv/riscv.c (riscv_option_override): Revert 2019-08-30
10807 change.
10808
10809 2019-09-06 Segher Boessenkool <segher@kernel.crashing.org>
10810
10811 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_MV_CR_OV.
10812
10813 2019-09-06 Segher Boessenkool <segher@kernel.crashing.org>
10814
10815 * config/rs6000/rs6000.c (rs6000_rtx_costs) <case UNSPEC>: Delete.
10816 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_FRSP.
10817
10818 2019-09-06 Uroš Bizjak <ubizjak@gmail.com>
10819
10820 PR target/91654
10821 * config/i386/x86-tune-costs.h (skylake_cost): Raise the
10822 cost of SSE->integer and integer->SSE moves from 2 to 6.
10823 (core_cost): Ditto.
10824
10825 2019-09-06 Jakub Jelinek <jakub@redhat.com>
10826
10827 * function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P
10828 before testing TYPE_TRANSPARENT_AGGR.
10829 * calls.c (initialize_argument_information, load_register_parameters):
10830 Likewise.
10831
10832 2019-09-06 Richard Earnshaw <rearnsha@arm.com>
10833
10834 * config/arm/arm.md (cmp_and): Add short-it variant for thumb2 with
10835 high regs.
10836 (cmp_ior): Likewise.
10837
10838 2019-09-06 Martin Liska <mliska@suse.cz>
10839
10840 * doc/match-and-simplify.texi: Separate tuples with ;.
10841
10842 2019-09-06 Martin Liska <mliska@suse.cz>
10843
10844 PR c++/91125
10845 * Makefile.in: Remove tlink.o.
10846 * collect2.c (do_link): New function isolated
10847 from do_tlink.
10848 (main): Use.
10849 * collect2.h (do_tlink): Remove declaration of do_tlink.
10850 * doc/extend.texi: Remove documentation of -frepo.
10851 * doc/invoke.texi: Likewise.
10852 * doc/sourcebuild.texi: Remove cleanup-repo-files.
10853 * tlink.c: Remove.
10854
10855 2019-09-05 Jakub Jelinek <jakub@redhat.com>
10856 Jim Wilson <jimw@sifive.com>
10857
10858 PR target/91635
10859 * config/riscv/riscv.md (zero_extendsidi2, zero_extendhi<GPR:mode>2,
10860 extend<SHORT:mode><SUPERQI:mode>2): Don't split if
10861 paradoxical_subreg_p (operands[0]).
10862 (*lshrsi3_zero_extend_3+1, *lshrsi3_zero_extend_3+2): Add clobber and
10863 use as intermediate value.
10864
10865 2019-09-05 Andrew Stubbs <ams@codesourcery.com>
10866
10867 * config/gcn/gcn.md (*movti_insn): Set delayeduse for global_store.
10868 (sync_compare_and_swap<mode>_insn): Likewise.
10869
10870 2019-09-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
10871
10872 PR middle-end/91615
10873 * expr.c (expand_expr_real_1): Handle misaligned TARGET_MEM_REF
10874 without movmisalign optab.
10875
10876 2019-09-05 Jakub Jelinek <jakub@redhat.com>
10877
10878 PR middle-end/91001
10879 PR middle-end/91105
10880 PR middle-end/91106
10881 * calls.c (load_register_parameters): For TYPE_TRANSPARENT_AGGR
10882 types, use type of their first field instead of type of
10883 args[i].tree_value.
10884
10885 2019-09-05 Richard Biener <rguenther@suse.de>
10886
10887 PR rtl-optimization/91656
10888 * postreload-gcse.c (record_last_mem_set_info): Revert addition
10889 of early out.
10890
10891 2019-09-05 Richard Biener <rguenther@suse.de>
10892
10893 PR middle-end/90501
10894 * tree-inline.c (declare_return_variable): Mark the return
10895 slot as addressable after building an address of it.
10896
10897 2019-09-05 Arnaud Charlet <charlet@adacore.com>
10898
10899 * doc/install.texi: Update and clarify requirements to build GNAT.
10900
10901 2019-09-05 Richard Sandiford <richard.sandiford@arm.com>
10902
10903 PR middle-end/91577
10904 * cfgexpand.c (discover_nonconstant_array_refs): Force the source
10905 of an IFN_LOAD_LANES call and the destination of an IFN_STORE_LANES
10906 call to be in memory.
10907 (pass_expand::execute): Call discover_nonconstant_array_refs before
10908 setting currently_expanding_to_rtl.
10909
10910 2019-09-04 Caroline Tice <cmtice@google.com>
10911
10912 * opts.c (finish_options): Disallow -fvtable-verify and -flto to be
10913 specified together.
10914
10915 2019-09-04 Marek Polacek <polacek@redhat.com>
10916
10917 * doc/invoke.texi: Remove -fdeduce-init-list documentation.
10918
10919 2019-09-04 Uroš Bizjak <ubizjak@gmail.com>
10920
10921 PR target/32413
10922 * config/i386/i386.c (inline_secondary_memory_needed): Return true
10923 for QI and HImode moves between SSE and general registers.
10924
10925 2019-09-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10926
10927 PR c/78736
10928 * doc/invoke.texi: Document -Wenum-conversion.
10929
10930 2019-09-04 Richard Biener <rguenther@suse.de>
10931
10932 PR rtl-optimization/36262
10933 * postreload-gcse.c: Include intl.h and gcse.h.
10934 (insert_expr_in_table): Insert at the head of cur_expr->avail_occr
10935 to avoid linear list walk.
10936 (record_last_mem_set_info): Gate off if not computing transparentness.
10937 (get_bb_avail_insn): If transparentness isn't computed give up
10938 early.
10939 (gcse_after_reload_main): Skip compute_transp and extended PRE
10940 if gcse_or_cprop_is_too_expensive says so.
10941
10942 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com>
10943
10944 * config/msp430/msp430.c (msp430_init_sections): Remove handling of the
10945 noinit section.
10946 (msp430_select_section): Handle decls with the "noinit" attribute with
10947 default_elf_select_section.
10948 Handle SECCAT_RODATA_MERGE_* section types with
10949 default_elf_select_section.
10950 Add comments about handling of unsupported section types.
10951 (msp430_section_type_flags): Remove handling of the noinit section.
10952
10953 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com>
10954
10955 * config/msp430/msp430.c (msp430_attr): Remove warnings about
10956 conflicting msp430-specific attributes.
10957 (msp430_section_attr): Likewise.
10958 Add warnings about conflicts with generic "noinit" and "section"
10959 attributes.
10960 Fix grammar in -mlarge error message.
10961 (msp430_data_attr): Rename to msp430_persist_attr.
10962 Add warnings about conflicts with generic "noinit" and "section"
10963 attributes.
10964 Add warning for when variable is not initialized.
10965 Chain conditionals which prevent the attribute being added.
10966 (ATTR_EXCL): New helper.
10967 (attr_reent_exclusions): New exclusion table.
10968 (attr_naked_exclusions): Likewise.
10969 (attr_crit_exclusions): Likewise.
10970 (attr_lower_exclusions): Likewise.
10971 (attr_upper_exclusions): Likewise.
10972 (attr_either_exclusions): Likewise.
10973 (attr_persist_exclusions): Likewise.
10974 (msp430_attribute_table): Update with exclusion rules.
10975 (msp430_output_aligned_decl_common): Don't output common symbol if decl
10976 has a section.
10977
10978 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com>
10979
10980 * config/msp430/msp430.c (TARGET_HANDLE_GENERIC_ATTRIBUTE): Define.
10981 (msp430_handle_generic_attribute): New function.
10982 * doc/tm.texi: Regenerate.
10983 * doc/tm.texi.in: Add TARGET_HANDLE_GENERIC_ATTRIBUTE.
10984 * hooks.c (hook_tree_treeptr_tree_tree_int_boolptr_null): New.
10985 * hooks.h (hook_tree_treeptr_tree_tree_int_boolptr_null): New.
10986 * target.def: Define new hook TARGET_HANDLE_GENERIC_ATTRIBUTE.
10987
10988 2019-09-03 Kamlesh Kumar <kamleshbhalui@gmail.com>
10989
10990 PR tree-optimization/91504
10991 * match.pd: Add ((~a & b) ^a) --> (a | b).
10992
10993 2019-09-03 Jakub Jelinek <jakub@redhat.com>
10994
10995 PR target/91604
10996 * config/i386/i386-expand.c (split_double_mode): If there is more than
10997 one MEM operand and they are rtx_equal_p, reuse lo_half/hi_half from
10998 already split matching MEM operand instead of calling adjust_address
10999 again.
11000
11001 2019-09-03 Ulrich Weigand <uweigand@de.ibm.com>
11002
11003 * config.gcc: Obsolete spu target. Remove references to spu.
11004 * configure.ac: Remove references to spu.
11005 * configure: Regenerate.
11006 * config/spu/: Remove directory.
11007 * common/config/spu/: Remove directory.
11008
11009 * doc/extend.texi: Remove references to spu.
11010 * doc/invoke.texi: Likewise.
11011 * doc/md.texi: Likewise.
11012 * doc/sourcebuild.texi: Likewise.
11013
11014 2019-09-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
11015
11016 PR middle-end/91603
11017 PR middle-end/91612
11018 PR middle-end/91613
11019 * expr.c (expand_expr_real_1): Handle unaligned decl_rtl
11020 and SSA_NAME referring to CONSTANT_P correctly.
11021
11022 2019-09-03 Richard Biener <rguenther@suse.de>
11023
11024 * tree-ssa-sccvn.h (vn_nary_op_lookup): Remove.
11025 (vn_nary_op_insert): Likewise.
11026 * tree-ssa-sccvn.c (init_vn_nary_op_from_op): Remove.
11027 (vn_nary_op_lookup): Likewise.
11028 (vn_nary_op_insert): Likewise.
11029
11030 2019-09-03 Ilya Leoshkevich <iii@linux.ibm.com>
11031
11032 * config/s390/s390.c (s390_canonicalize_comparison): Use XEXP
11033 (*op0, 1) instead of XEXP (*op1, 0).
11034
11035 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11036
11037 * config/aarch64/aarch64.md (UNSPEC_FJCVTZS): Define.
11038 (aarch64_fjcvtzs): New define_insn.
11039 * config/aarch64/aarch64.h (TARGET_JSCVT): Define.
11040 * config/aarch64/aarch64-builtins.c (aarch64_builtins):
11041 Add AARCH64_JSCVT.
11042 (aarch64_init_builtins): Initialize __builtin_aarch64_jcvtzs.
11043 (aarch64_expand_builtin): Handle AARCH64_JSCVT.
11044 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
11045 __ARM_FEATURE_JCVT where appropriate.
11046 * config/aarch64/arm_acle.h (__jcvt): Define.
11047
11048 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11049
11050 * config/aarch64/aarch64.md ("unspec"): Add UNSPEC_FRINT32Z,
11051 UNSPEC_FRINT32X, UNSPEC_FRINT64Z, UNSPEC_FRINT64X.
11052 (aarch64_<frintnzs_op><mode>): New define_insn.
11053 * config/aarch64/aarch64.h (TARGET_FRINT): Define.
11054 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
11055 __ARM_FEATURE_FRINT when appropriate.
11056 * config/aarch64/aarch64-simd-builtins.def: Add builtins for frint32z,
11057 frint32x, frint64z, frint64x.
11058 * config/aarch64/arm_acle.h (__rint32zf, __rint32z, __rint64zf,
11059 __rint64z, __rint32xf, __rint32x, __rint64xf, __rint64x): Define.
11060 * config/aarch64/arm_neon.h (vrnd32z_f32, vrnd32zq_f32, vrnd32z_f64,
11061 vrnd32zq_f64, vrnd32x_f32, vrnd32xq_f32, vrnd32x_f64, vrnd32xq_f64,
11062 vrnd64z_f32, vrnd64zq_f32, vrnd64z_f64, vrnd64zq_f64, vrnd64x_f32,
11063 vrnd64xq_f32, vrnd64x_f64, vrnd64xq_f64): Define.
11064 * config/aarch64/iterators.md (VSFDF): Define.
11065 (FRINTNZX): Likewise.
11066 (frintnzs_op): Likewise.
11067
11068 2019-09-03 Dennis Zhang <dennis.zhang@arm.com>
11069
11070 * config/aarch64/aarch64-cores.def (AARCH64_CORE): New entries
11071 for Cortex-A77, Cortex-A76AE, Cortex-A65, Cortex-A65AE, and
11072 Cortex-A34.
11073 * config/aarch64/aarch64-tune.md: Regenerated.
11074 * doc/invoke.texi: Document the new processors.
11075
11076 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11077
11078 * config/aarch64/aarch64-option-extensions.def (sb): Add feature
11079 string.
11080 (ssbs): Likewise.
11081 (sve2): Likewise.
11082 (sve2-sm4): Likewise.
11083 (sveaes): Likewise.
11084 (svesha3): Likewise.
11085 (svebitperm): Likewise.
11086
11087 2019-09-03 Jakub Jelinek <jakub@redhat.com>
11088 Richard Biener <rguenther@suse.de>
11089
11090 PR tree-optimization/91597
11091 * tree-vrp.c (extract_range_from_binary_expr): Remove unsafe
11092 BIT_AND_EXPR optimization for pointers, even if both operand
11093 ranges don't include NULL, the result can be NULL.
11094
11095 2019-09-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
11096
11097 PR middle-end/91605
11098 * expr.c (addr_expr_of_non_mem_decl_p_1): Refactor into...
11099 (non_mem_decl_p): ...this.
11100 (mem_ref_refers_to_non_mem_p): Handle DECL_P as well as MEM_REF.
11101 (expand_assignment): Call mem_ref_referes_to_non_mem_p
11102 unconditionally as before.
11103
11104 2019-09-02 Eric Botcazou <ebotcazou@adacore.com>
11105
11106 PR target/91323
11107 * doc/generic.texi (LTGT_EXPR): Merge with other comparison operators.
11108 * rtl.def (LTGT): Likewise. Add note about floating-point exceptions.
11109 * tree.def (LTGT_EXPR): Likewise.
11110 * config/sparc/sparc.c (select_cc_mode): Return CCFPEmode for LTGT.
11111
11112 2019-09-02 Jakub Jelinek <jakub@redhat.com>
11113
11114 PR go/91617
11115 * fold-const.c (range_check_type): For enumeral and boolean
11116 type, pass 1 to type_for_size langhook instead of
11117 TYPE_UNSIGNED (etype). Return unsigned_type_for result whenever
11118 etype isn't TYPE_UNSIGNED INTEGER_TYPE.
11119 (build_range_check): Don't call unsigned_type_for for pointer types.
11120 * match.pd (X / C1 op C2): Don't call unsigned_type_for on
11121 range_check_type result.
11122
11123 2019-09-02 Eric Botcazou <ebotcazou@adacore.com>
11124
11125 * gimple-ssa-strength-reduction.c (valid_mem_ref_cand_p): New function.
11126 (replace_ref): Do not replace a chain of only two candidates which are
11127 valid memory references.
11128
11129 2019-09-02 Martin Liska <mliska@suse.cz>
11130
11131 * tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
11132 Bail out when we'll end up with the same number of clusters as
11133 at the beginning.
11134 (bit_test_cluster::find_bit_tests): Likewise for bit tests.
11135 (jump_table_cluster::can_be_handled): Remove the guard
11136 as it's already handled in ::is_enabled. Allocate output
11137 after early bail out.
11138
11139 2019-09-02 Martin Liska <mliska@suse.cz>
11140
11141 PR gcov-profile/91601
11142 * gcov.c (path_contains_zero_cycle_arc): Rename to ...
11143 (path_contains_zero_or_negative_cycle_arc): ... this and handle
11144 also negative edges.
11145 (circuit): Handle also negative edges as they can happen
11146 in some situations.
11147
11148 2019-09-01 Eric Botcazou <ebotcazou@adacore.com>
11149
11150 PR target/91472
11151 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Return true
11152 during LRA/reload in PIC mode if the PIC register hasn't been used yet.
11153 (sparc_pic_register_p): Test reload_in_progress for consistency's sake.
11154
11155 2019-09-01 Jakub Jelinek <jakub@redhat.com>
11156
11157 PR middle-end/91623
11158 * optabs.c (expand_vec_cond_expr): If op0 is a VECTOR_CST and only
11159 EQ_EXPR/NE_EXPR is supported, verify that op0 only contains
11160 zeros or negative elements and use NE_EXPR instead of LT_EXPR against
11161 zero vector.
11162
11163 PR lto/91572
11164 * tree.c (find_decls_types_in_node): Also walk TREE_PURPOSE of
11165 GIMPLE_ASM TREE_LIST operands.
11166
11167 2019-08-31 Gerald Pfeifer <gerald@pfeifer.com>
11168
11169 * doc/generic.texi (Unary and Binary Expressions): Mark up
11170 an instance of TYPE_MIN.
11171
11172 2019-08-31 Stafford Horne <shorne@gmail.com>
11173
11174 * config/or1k/constraints.md (t): New constraint.
11175 * config/or1k/or1k.h (GOT_REGS): New register class.
11176 * config/or1k/or1k.md (set_got_tmp, set_got): Use t contraint.
11177
11178 2019-08-30 Jim Wilson <jimw@sifive.com>
11179
11180 * config/riscv/riscv.c (riscv_option_override): If -msave-restore
11181 and -fpic and -mplt then disable -msave-restore and warn.
11182
11183 2019-08-30 Martin Sebor <msebor@redhat.com>
11184
11185 PR middle-end/91599
11186 * tree-ssa-strlen.c (handle_store): Use a fallback location if
11187 the statement doesn't have one.
11188 * gimple-pretty-print.c (percent_G_format): Same.
11189
11190 PR middle-end/91584
11191 * tree-vrp.c (vrp_prop::check_mem_ref): Normalize type domain bounds
11192 before using them to validate MEM_REF offset.
11193
11194 2019-08-30 Marek Polacek <polacek@redhat.com>
11195
11196 * doc/invoke.texi (-Wvolatile): Use @code for volatile.
11197
11198 2019-08-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
11199
11200 * config/arm/arm.md (unaligned_loaddi,
11201 unaligned_storedi): New unspec insn patterns.
11202 * config/arm/neon.md (unaligned_storev8qi): Likewise.
11203 * config/arm/arm.c (gen_cpymem_ldrd_strd): Use unaligned_loaddi
11204 and unaligned_storedi for 4-byte aligned memory.
11205 (arm_block_set_aligned_vect): Use unaligned_storev8qi for
11206 4-byte aligned memory.
11207
11208 2019-08-30 Martin Jambor <mjambor@suse.cz>
11209
11210 tree-optimization/91579
11211 * tree-tailcall.c (tailr_arg_needs_copy): New variable.
11212 (find_tail_calls): Allocate tailr_arg_needs_copy and set its bits as
11213 appropriate.
11214 (arg_needs_copy_p): Removed.
11215 (eliminate_tail_call): Test tailr_arg_needs_copy instead of calling
11216 arg_needs_copy_p.
11217 (tree_optimize_tail_calls_1): Likewise. Free tailr_arg_needs_copy.
11218
11219 2019-08-29 Uroš Bizjak <ubizjak@gmail.com>
11220
11221 * config/i386/i386-features.c
11222 (general_scalar_chain::compute_convert_gain):
11223 Correct cost for double-word shifts.
11224 (general_scalar_to_vector_candidate_p): Reject count operands
11225 greater or equal to mode bitsize.
11226
11227 2019-08-29 Uroš Bizjak <ubizjak@gmail.com>
11228
11229 * config/i386/i386.c (inline_secondary_memory_needed): Return true
11230 for moves between SSE and non-general registers and between
11231 mask and non-general registers.
11232 (ix86_register_move_cost): Remove stalled comment.
11233
11234 2019-08-29 Richard Biener <rguenther@suse.de>
11235
11236 * config/i386/i386-features.c (general_scalar_chain::convert_insn):
11237 Guard debug work with MAY_HAVE_DEBUG_BIND_INSNS.
11238
11239 2019-08-29 Richard Biener <rguenther@suse.de>
11240
11241 PR bootstrap/91580
11242 * config/i386/i386-features.c (general_scalar_chain::convert_insn):
11243 Do not emit scalar copies for debug-insns, instead replace
11244 their uses with the reg copy used in the chain or reset them
11245 if there is a reaching definition outside of the chain as well.
11246
11247 2019-08-29 Jakub Jelinek <jakub@redhat.com>
11248
11249 PR target/91560
11250 * config/i386/i386-expand.c (expand_vec_perm_movs,
11251 expand_vec_perm_blend, expand_vec_perm_vpermil,
11252 expand_vec_perm_pshufb, expand_vec_perm_1,
11253 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr,
11254 expand_vec_perm_interleave2, expand_vec_perm_vpermq_perm_1,
11255 expand_vec_perm_vperm2f128, expand_vec_perm_interleave3,
11256 expand_vec_perm_vperm2f128_vblend, expand_vec_perm_2vperm2f128_vshuf,
11257 expand_vec_perm_even_odd, expand_vec_perm_broadcast): Adjust function
11258 comments - replace ix86_expand_vec_perm_builtin_1 with
11259 ix86_expand_vec_perm_const_1.
11260 (expand_vec_perm2_vperm2f128_vblend): New function.
11261 (ix86_expand_vec_perm_const_1): New forward declaration. Call
11262 expand_vec_perm2_vperm2f128_vblend as last resort.
11263 (canonicalize_perm): Formatting fix.
11264
11265 PR tree-optimization/91351
11266 * tree-cfg.c (generate_range_test): Use range_check_type instead of
11267 unsigned_type_for.
11268 * tree-cfgcleanup.c (convert_single_case_switch): Punt if
11269 range_check_type returns NULL.
11270 * tree-switch-conversion.c (switch_conversion::build_one_array):
11271 Use range_check_type instead of unsigned_type_for, don't perform
11272 linear opt if it returns NULL.
11273 (bit_test_cluster::find_bit_tests): Formatting fix.
11274 (bit_test_cluster::emit): Use range_check_type instead of
11275 unsigned_type_for.
11276 (switch_decision_tree::try_switch_expansion): Punt if range_check_type
11277 returns NULL.
11278
11279 2019-08-29 Richard Biener <rguenther@suse.de>
11280
11281 PR tree-optimization/91568
11282 * tree-vectorizer.h (_slp_tree::max_nunits): Add.
11283 (vect_update_max_nunits): Add overload for poly_uint64.
11284 * tree-vect-slp.c (vect_create_new_slp_node): Initialize it.
11285 (vect_build_slp_tree): Record max_nunits into the subtree
11286 and merge it upwards.
11287 (vect_print_slp_tree): Print max_nunits.
11288
11289 2019-08-28 Marek Polacek <polacek@redhat.com>
11290
11291 Implement P1152R4: Deprecating some uses of volatile.
11292 PR c++/91361
11293 * doc/invoke.texi: Document -Wvolatile.
11294
11295 2019-08-28 Marek Polacek <polacek@redhat.com>
11296
11297 PR c++/91360 - Implement C++20 P1143R2: constinit.
11298 * doc/invoke.texi: Document -Wc++20-compat.
11299
11300 2019-08-28 Martin Sebor <msebor@redhat.com>
11301
11302 PR tree-optimization/91457
11303 * builtins.c (component_size): New function.
11304 (compute_objsize): Add argument. Handle ARRAY_REF and COMPONENT_REF.
11305 * builtins.h (compute_objsize): Add argument.
11306 * tree-ssa-strlen.c (handle_store): Handle no-warning bit.
11307 * tree-vrp.c (vrp_prop::check_array_ref): Return warning result.
11308 (vrp_prop::check_mem_ref): Same.
11309 (vrp_prop::search_for_addr_array): Set no-warning bit.
11310 (check_array_bounds): Same.
11311
11312 2019-08-28 Martin Sebor <msebor@redhat.com>
11313
11314 PR driver/80545
11315 * opts-common.c (option_enabled): Correct checking for language
11316 options.
11317
11318 2019-08-28 Uroš Bizjak <ubizjak@gmail.com>
11319
11320 * config/i386/i386.c (ix86_register_move_cost): Do not
11321 limit the cost of moves to/from XMM register to minimum 8.
11322
11323 2019-08-28 Martin Jambor <mjambor@suse.cz>
11324
11325 PR ipa/91468
11326 * ipa-cp.c (merge_agg_lats_step): Removed redundant test, made a
11327 checking assert a normal assert to test it really is redundant.
11328 * ipa-prop.c (compute_complex_assign_jump_func): Removed
11329 redundant test.
11330 (update_jump_functions_after_inlining): Removed combining unary
11331 arithmetic operations with an ancestor jump function.
11332 (ipcp_modif_dom_walker::before_dom_children): Fix wrong use of rhs
11333 instead of t.
11334
11335 2019-08-28 Richard Biener <rguenther@suse.de>
11336
11337 * config/i386/i386-features.c (convert_scalars_to_vector): Do not
11338 add the MD problem.
11339
11340 2019-08-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
11341 Richard Biener <rguenther@suse.de>
11342
11343 * expr.c (expand_assignment): Handle misaligned DECLs.
11344 (expand_expr_real_1): Handle FUNCTION_DECL as unaligned.
11345 * function.c (assign_parm_adjust_stack_rtl): Check movmisalign optab
11346 too.
11347 (assign_parm_setup_stack): Allocate properly aligned stack slots.
11348 * varasm.c (build_constant_desc): Align constants of misaligned types.
11349 * config/arm/predicates.md (aligned_operand): New predicate.
11350 * config/arm/arm.md (movdi, movsi, movhi, movhf, movsf, movdf): Use
11351 aligned_operand to check restrictions on memory addresses.
11352 * config/arm/neon.md (movti, mov<VSTRUCT>, mov<VH>): Likewise.
11353 * config/arm/vec-common.md (mov<VALL>): Likewise.
11354
11355 2019-08-28 Jakub Jelinek <jakub@redhat.com>
11356
11357 PR libgomp/91530
11358 * config/i386/sse.md (vec_shl_<mode>, vec_shr_<mode>): Use
11359 V_128 iterator instead of VI_128.
11360
11361 2019-08-28 Martin Liska <mliska@suse.cz>
11362
11363 PR tree-optimization/90970
11364 * builtins.c (check_access): Remove assignment to maxread
11365 as it hasn't been used since when it was introduced in r255755.
11366
11367 2019-08-27 Martin Sebor <msebor@redhat.com>
11368
11369 PR tree-optimization/91567
11370 * gimple-ssa-sprintf.c (get_string_length): Handle more forms of lengths
11371 of unknown strings.
11372 * vr-values.c (vr_values::extract_range_basic): Set strlen upper bound
11373 to PTRDIFF_MAX - 2.
11374
11375 2019-08-27 Jeff Law <law@redhat.com>
11376
11377 * tree-ssa-strlen.c (printf_strlen_execute): Initialize
11378 the loop optimizer and SCEV before sizing ssa_ver_to_stridx.
11379
11380 2019-08-27 Uroš Bizjak <ubizjak@gmail.com>
11381
11382 PR target/91528
11383 * config/i386/i386-features.c (convert_scalars_to_vector):
11384 Update crtl->stack_realign_needed, crtl->stack_realign_tried and
11385 crtl->stack_realign_processed. Update crtl->drap_reg by calling
11386 targetm.calls.get_drap_rtx. If drap_rtx is non-null then
11387 Update crtl->args.internal_arg_pointer and call fixup_tail_calls.
11388
11389 2019-08-27 Richard Biener <rguenther@suse.de>
11390
11391 * config/i386/i386-features.h
11392 (general_scalar_chain::~general_scalar_chain): Add.
11393 (general_scalar_chain::insns_conv): New bitmap.
11394 (general_scalar_chain::n_sse_to_integer): New.
11395 (general_scalar_chain::n_integer_to_sse): Likewise.
11396 (general_scalar_chain::make_vector_copies): Adjust signature.
11397 * config/i386/i386-features.c
11398 (general_scalar_chain::general_scalar_chain): Outline,
11399 initialize new members.
11400 (general_scalar_chain::~general_scalar_chain): New.
11401 (general_scalar_chain::mark_dual_mode_def): Record insns
11402 we need to insert conversions at and count them.
11403 (general_scalar_chain::compute_convert_gain): Account
11404 for conversion instructions at chain boundary.
11405 (general_scalar_chain::make_vector_copies): Generate a single
11406 copy for a def by a specific insn.
11407 (general_scalar_chain::convert_registers): First populate
11408 defs_map, then make copies at out-of chain insns.
11409
11410 2019-08-27 Richard Earnshaw <rearnsha@arm.com>
11411
11412 * config/arm/arm.md (stack_protect_set_insn): Add security-related
11413 comment.
11414 * config/aarch64/aarch64.md (stack_protect_set_<mode>): Likewise.
11415
11416 2019-08-27 Martin Liska <mliska@suse.cz>
11417
11418 * cgraph.c (cgraph_node::remove): Remove dead assignment before
11419 loop.
11420 * config/i386/i386-features.c (scalar_chain::emit_conversion_insns):
11421 Enclose in anonymous namespace.
11422 * config/i386/x86-tune-costs.h (struct processor_costs): Wrap
11423 hard_register initialization in braces.
11424 * tree-vrp.h (value_range_base::supports_type_p): Return false
11425 for function with boolean return type.
11426
11427 2019-08-26 Uroš Bizjak <ubizjak@gmail.com>
11428
11429 * config/i386/i386.c (emit_i387_cw_initialization)
11430 <case I387_CW_ROUNDEVEN>: Fix masking operand value.
11431
11432 2019-08-26 Martin Sebor <msebor@redhat.com>
11433
11434 PR c++/83431
11435 * gimple-ssa-sprintf.c (pass_data_sprintf_length): Remove object.
11436 (sprintf_dom_walker): Remove class.
11437 (get_int_range): Make argument const.
11438 (directive::fmtfunc, directive::set_precision): Same.
11439 (format_none): Same.
11440 (build_intmax_type_nodes): Same.
11441 (adjust_range_for_overflow): Same.
11442 (format_floating): Same.
11443 (format_character): Same.
11444 (format_string): Same.
11445 (format_plain): Same.
11446 (get_int_range): Cast away constness.
11447 (format_integer): Same.
11448 (get_string_length): Call get_range_strlen_dynamic. Handle
11449 null lendata.maxbound.
11450 (should_warn_p): Adjust argument scope qualifier.
11451 (maybe_warn): Same.
11452 (format_directive): Same.
11453 (parse_directive): Same.
11454 (is_call_safe): Same.
11455 (try_substitute_return_value): Same.
11456 (sprintf_dom_walker::handle_printf_call): Rename...
11457 (handle_printf_call): ...to this. Initialize target to host charmap
11458 here instead of in pass_sprintf_length::execute.
11459 (struct call_info): Make global.
11460 (sprintf_dom_walker::compute_format_length): Make global.
11461 (sprintf_dom_walker::handle_gimple_call): Same.
11462 * passes.def (pass_sprintf_length): Replace with pass_strlen.
11463 * print-rtl.c (print_pattern): Reduce the number of spaces to
11464 avoid -Wformat-truncation.
11465 * tree-pass.h (make_pass_warn_printf): New function.
11466 * tree-ssa-strlen.c (strlen_optimize): New variable.
11467 (get_string_length): Add comments.
11468 (get_range_strlen_dynamic): New function.
11469 (check_and_optimize_call): New function.
11470 (handle_integral_assign): New function.
11471 (strlen_check_and_optimize_stmt): Factor code out into
11472 strlen_check_and_optimize_call and handle_integral_assign.
11473 (strlen_dom_walker::evrp): New member.
11474 (strlen_dom_walker::before_dom_children): Use evrp member.
11475 (strlen_dom_walker::after_dom_children): Use evrp member.
11476 (printf_strlen_execute): New function.
11477 (pass_strlen::gate): Update to handle printf calls.
11478 (dump_strlen_info): New function.
11479 (pass_data_warn_printf): New variable.
11480 (pass_warn_printf): New class.
11481 * tree-ssa-strlen.h (get_range_strlen_dynamic): Declare.
11482 (handle_printf_call): Same.
11483 * tree-vrp.c (value_range_base::type): Adjust assertion.
11484 * vr-values.c (vr_values::update_value_range): Use type of the first
11485 argument rather than the second.
11486
11487 2019-08-26 Richard Biener <rguenther@suse.de>
11488
11489 * config/i386/i386-features.c (general_remove_non_convertible_regs):
11490 Remove.
11491 (convert_scalars_to_vector): Do not call it.
11492
11493 2019-08-26 Tejas Joshi <tejasjoshi9673@gmail.com>
11494 Uros Bizjak <ubizjak@gmail.com>
11495
11496 * builtins.c (mathfn_built_in_2): Change CASE_MATHFN to
11497 CASE_MATHFN_FLOATN for roundeven.
11498 * config/i386/i386.c (ix86_i387_mode_needed): Add case
11499 I387_ROUNDEVEN.
11500 (ix86_mode_needed): Likewise.
11501 (ix86_mode_after): Likewise.
11502 (ix86_mode_entry): Likewise.
11503 (ix86_mode_exit): Likewise.
11504 (ix86_emit_mode_set): Likewise.
11505 (emit_i387_cw_initialization): Add case I387_CW_ROUNDEVEN.
11506 * config/i386/i386.h (ix86_stack_slot): Add SLOT_CW_ROUNDEVEN.
11507 (ix86_entity): Add I387_ROUNDEVEN.
11508 (NUM_MODES_FOR_MODE_SWITCHING): Add I387_CW_ANY.
11509 * config/i386/i386.md: Define UNSPEC_FRNDINT_ROUNDEVEN.
11510 (define_int_iterator): Likewise.
11511 (define_int_attr): Likewise for rounding_insn, rounding and ROUNDING.
11512 (define_constant): Define ROUND_ROUNDEVEN mode.
11513 (define_attr): Add roundeven mode for i387_cw.
11514 (<rouding_insn><mode>2): Add condition for ROUND_ROUNDEVEN.
11515 * internal-fn.def (ROUNDEVEN): New builtin function.
11516 * optabs.def (roundeven_optab): New optab.
11517
11518 2019-08-26 Tejas Joshi <tejasjoshi9673@gmail.com>
11519
11520 * builtins.c (mathfn_built_in_2): Added CASE_MATHFN_FLOATN
11521 for ROUNDEVEN.
11522 * builtins.def: Added function definitions for roundeven function
11523 variants.
11524 * fold-const-call.c (fold_const_call_ss): Added case for roundeven
11525 function call. Adjust condition for floor, ceil, trunc and round.
11526 * fold-const.c (negate_mathfn_p): Added case for roundeven function.
11527 (tree_call_nonnegative_warnv_p): Added case for roundeven function.
11528 (integer_valued_real_call_p): Added case for roundeven function.
11529 * real.c (is_even): New function. Returns true if real number is even,
11530 otherwise returns false.
11531 (is_halfway_below): New function. Returns true if real number is
11532 halfway between two integers, else return false.
11533 (real_roundeven): New function. Round real number to nearest integer,
11534 rounding halfway cases towards even.
11535 * real.h (real_value): Added descriptive comments. Added function
11536 declaration for roundeven function.
11537 * doc/extend.texi (Other Builtins): List roundeven variants among
11538 functions which can be handled as builtins.
11539
11540 2019-08-26 Richard Biener <rguenther@suse.de>
11541
11542 PR target/91522
11543 PR target/91527
11544 * config/i386/i386-features.h (general_scalar_chain::defs_map):
11545 New member.
11546 (general_scalar_chain::replace_with_subreg): Remove.
11547 (general_scalar_chain::replace_with_subreg_in_insn): Likewise.
11548 (general_scalar_chain::convert_reg): Adjust signature.
11549 * config/i386/i386-features.c (scalar_chain::add_insn): Do not
11550 iterate over all defs of a reg.
11551 (general_scalar_chain::replace_with_subreg): Remove.
11552 (general_scalar_chain::replace_with_subreg_in_insn): Likewise.
11553 (general_scalar_chain::make_vector_copies): Populate defs_map,
11554 place copy only after defs that are used as vectors in the chain.
11555 (general_scalar_chain::convert_reg): Emit a copy for a specific
11556 def in a specific instruction.
11557 (general_scalar_chain::convert_op): All reg uses are converted here.
11558 (general_scalar_chain::convert_insn): Emit copies for scalar
11559 uses of defs here. Replace uses with the copies we created.
11560 Replace and convert the def. Adjust REG_DEAD notes, remove
11561 REG_EQUIV/EQUAL notes.
11562 (general_scalar_chain::convert_registers): Only handle copies
11563 into the chain here.
11564
11565 2019-08-26 Robin Dapp <rdapp@linux.ibm.com>
11566
11567 * match.pd: Add (T)(A) + CST -> (T)(A + CST).
11568
11569 2019-08-26 Robin Dapp <rdapp@linux.ibm.com>
11570
11571 * gimple-loop-versioning.cc (loop_versioning::record_address_fragment):
11572 Add nop_convert case.
11573 * tree-ssa-propagate.c (substitute_and_fold_dom_walker::before_dom_children):
11574 Fold all statements if requested.
11575 * tree-ssa-propagate.h (class substitute_and_fold_engine):
11576 Allow to fold all statements.
11577 * tree-vrp.c (class vrp_folder):
11578 Let substitute_and_fold_engine fold all statements.
11579
11580 2019-08-26 Richard Biener <rguenther@suse.de>
11581
11582 PR tree-optimization/91526
11583 * passes.def: Note that after late FRE we do TODO_update_address_taken.
11584 * tree-ssa-sccvn.c (pass_fre::execute): In late mode schedule
11585 TODO_update_address_taken.
11586
11587 2019-08-26 Gerald Pfeifer <gerald@pfeifer.com>
11588
11589 * config/i386/gmm_malloc.h: Only use <errno.h> and errno if
11590 __STDC_HOSTED__.
11591
11592 2019-08-23 Mihailo Stojanovic <mistojanovic@wavecomp.com>
11593
11594 * config/mips/mips.md (mips_get_fcsr, *mips_get_fcsr): Use SI
11595 machine mode for unspec_volatile operand.
11596
11597 2019-08-23 Wilco Dijkstra <wdijkstr@arm.com>
11598
11599 * doc/invoke.texi (mneon-for-64bits): Deprecate option.
11600 * config/arm/arm.opt (mneon-for-64bits): Deprecate option.
11601 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): Remove.
11602 (prefer_neon_for_64bits): Remove.
11603 * config/arm/arm.c (prefer_neon_for_64bits): Remove.
11604 (tune_params): Remove PREF_NEON_64_FALSE uses.
11605 (arm_option_override): Remove prefer_neon selection code.
11606 (arm_print_tune_info): Remove prefer_neon_for_64bits.
11607 * config/arm/arm-protos.h (tune_params): Remove
11608 prefer_neon_for_64bits.
11609 (prefer_neon_for_64bits): Remove.
11610
11611 2019-08-23 Iain Sandoe <iain@sandoe.co.uk>
11612
11613 PR pch/61250
11614 * ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure
11615 and issue any diagnostics needed before collecting the pre-PCH
11616 state.
11617
11618 2019-08-23 Jakub Jelinek <jakub@redhat.com>
11619
11620 PR middle-end/91283
11621 * common.opt (fexcess-precision=): Add Optimization flag. Use
11622 flag_excess_precision variable instead of
11623 flag_excess_precision_cmdline.
11624 * flags.h (class target_flag_state): Remove x_flag_excess_precision
11625 member.
11626 (flag_excess_precision): Don't define.
11627 * langhooks.c (lhd_post_options): Set flag_excess_precision instead of
11628 flag_excess_precision_cmdline. Remove comment.
11629 * opts.c (set_fast_math_flags): Use frontend_set_flag_excess_precision
11630 and x_flag_excess_precision instead of
11631 frontend_set_flag_excess_precision_cmdline and
11632 x_flag_excess_precision_cmdline.
11633 (fast_math_flags_set_p): Use x_flag_excess_precision instead of
11634 x_flag_excess_precision_cmdline.
11635 * toplev.c (init_excess_precision): Remove.
11636 (lang_dependent_init_target): Don't call it.
11637
11638 2019-08-23 Martin Liska <mliska@suse.cz>
11639
11640 * lto-wrapper.c (run_gcc): When setting jobserver
11641 set also parallel to 1. This was done so before r273908.
11642
11643 2019-08-23 Dennis Zhang <dennis.zhang@arm.com>
11644
11645 * config/arm/arm-cpus.in (cortex-m35p): New entry.
11646 (cortex-a76ae): Likewise.
11647 (cortex-a77): Likewise
11648 * config/arm/arm-tables.opt: Regenerate.
11649 * config/arm/arm-tune.md: Likewise.
11650 * doc/invoke.texi (ARM Options): Document cortex-m35p, cortx-a76ae,
11651 cortex-a77 CPU options.
11652
11653 2019-08-23 Martin Liska <mliska@suse.cz>
11654
11655 * profile.c (instrument_values): Do not set
11656 0 as last argument.
11657 * tree-profile.c (gimple_gen_interval_profiler): Remove
11658 last argument.
11659 (gimple_gen_pow2_profiler): Likewise.
11660 (gimple_gen_topn_values_profiler): Likewise.
11661 (gimple_gen_ic_profiler): Likewise.
11662 (gimple_gen_time_profiler): Likewise.
11663 (gimple_gen_average_profiler): Likewise.
11664 (gimple_gen_ior_profiler): Likewise.
11665 * value-prof.c (dump_histogram_value): Use default
11666 in switch statement instead of HIST_TYPE_MAX.
11667 (stream_in_histogram_value): Likewise.
11668 (gimple_duplicate_stmt_histograms): Do not
11669 use NULL for implicitly set arguments.
11670 (gimple_divmod_values_to_profile): Do not use
11671 reserve+quick_push.
11672 (gimple_indirect_call_to_profile): Likewise.
11673 (gimple_find_values_to_profile): Use implicit
11674 function call arguments.
11675 * value-prof.h (gimple_alloc_histogram_value):
11676 Set default values.
11677 (gimple_gen_interval_profiler): Remove last argument.
11678 (gimple_gen_pow2_profiler): Likewise.
11679 (gimple_gen_topn_values_profiler): Likewise.
11680 (gimple_gen_ic_profiler): Likewise.
11681 (gimple_gen_time_profiler): Likewise.
11682 (gimple_gen_average_profiler): Likewise.
11683 (gimple_gen_ior_profiler): Likewise.
11684
11685 2019-08-22 Martin Sebor <msebor@redhat.com>
11686
11687 PR middle-end/91490
11688 * builtins.c (c_strlen): Rename argument and introduce new local.
11689 Set no-warning bit on original argument.
11690 * expr.c (string_constant): Pass argument type to fold_ctor_reference.
11691 Fold empty and zero constructors into empty strings.
11692 * gimple-fold.c (fold_nonarray_ctor_reference): Return a STRING_CST
11693 for missing initializers.
11694 * tree.c (build_string_literal): Handle optional argument.
11695 * tree.h (build_string_literal): Add defaulted argument.
11696 * gimple-ssa-warn-restrict.c (maybe_diag_access_bounds): Check
11697 no-warning bit on original expression.
11698
11699 2019-08-22 Segher Boessenkool <segher@kernel.crashing.org>
11700
11701 PR target/91481
11702 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
11703 and UNSPEC_DARN_RAW.
11704 (unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and
11705 UNSPECV_DARN_RAW.
11706 (darn_32): Use an unspec_volatile, and UNSPECV_DARN_32.
11707 (darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW.
11708 (darn): Use an unspec_volatile, and UNSPECV_DARN.
11709
11710 2019-08-22 Segher Boessenkool <segher@kernel.crashing.org>
11711
11712 * config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
11713 UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to...
11714 * config/rs6000/rs6000.md (unspec): ... here.
11715 * config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb,
11716 *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
11717 cmpeqb, *cmpeqb_internal): Delete, move to...
11718 * config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb,
11719 *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
11720 cmpeqb, *cmpeqb_internal): ... here.
11721
11722 2019-08-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11723
11724 * config/arm/arm_acle.h: Use arch=armv8-a+crc+simd pragma for CRC32
11725 intrinsics if __ARM_FP.
11726 Use __ARM_FEATURE_CRC32 ifdef guard.
11727
11728 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com>
11729
11730 * config/arm/arm.md (neon_for_64bits): Remove.
11731 (avoid_neon_for_64bits): Remove.
11732 (arm_adddi3): Always split early.
11733 (arm_subdi3): Always split early.
11734 (negdi2): Remove Neon expansion.
11735 (split zero_extend): Split before reload.
11736 (split sign_extend): Split before reload.
11737
11738 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com>
11739
11740 * config/arm/iterators.md (qhs_extenddi_cstr): Update.
11741 (qhs_extenddi_cstr): Likewise.
11742 * config/arm/arm.md (ashldi3): Always expand early.
11743 (ashlsi3): Likewise.
11744 (ashrsi3): Likewise.
11745 (zero_extend<mode>di2): Remove Neon variants.
11746 (extend<mode>di2): Likewise.
11747 * config/arm/neon.md (ashldi3_neon_noclobber): Remove.
11748 (signed_shift_di3_neon): Likewise.
11749 (unsigned_shift_di3_neon): Likewise.
11750 (ashrdi3_neon_imm_noclobber): Likewise.
11751 (lshrdi3_neon_imm_noclobber): Likewise.
11752 (<shift>di3_neon): Likewise.
11753 (split extend): Remove DI extend split patterns.
11754
11755 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com>
11756
11757 * config/arm/arm.md (split and/eor/ior): Remove Neon check.
11758 (split not): Add DImode not splitter.
11759 (anddi3): Remove pattern.
11760 (anddi3_insn): Likewise.
11761 (anddi_zesidi_di): Likewise.
11762 (anddi_sesdi_di): Likewise.
11763 (anddi_notdi_di): Likewise.
11764 (anddi_notzesidi_di): Likewise.
11765 (anddi_notsesidi_di): Likewise.
11766 (iordi3): Likewise.
11767 (iordi3_insn): Likewise.
11768 (iordi_zesidi_di): Likewise.
11769 (iordi_sesidi_di): Likewise.
11770 (xordi3): Likewise.
11771 (xordi3_insn): Likewise.
11772 (xordi_sesidi_di): Likewise.
11773 (xordi_zesidi_di): Likewise.
11774 (one_cmpldi2): Likewise.
11775 (one_cmpldi2_insn): Likewise.
11776 * config/arm/constraints.md: Remove De, Df, Dg constraints.
11777 * config/arm/iwmmxt.md (iwmmxt_iordi3): Remove general register
11778 alternative.
11779 (iwmmxt_xordi3): Likewise.
11780 (iwmmxt_anddi3): Likewise.
11781 * config/arm/neon.md (orndi3_neon): Remove pattern.
11782 (anddi_notdi_di): Likewise.
11783 * config/arm/predicates.md (arm_anddi_operand_neon): Remove.
11784 (arm_iordi_operand_neon): Likewise.
11785 (arm_xordi_operand_neon): Likewise.
11786 * config/arm/thumb2.md(iordi_notdi_di): Remove pattern.
11787 (iordi_notzesidi_di): Likewise.
11788 (iordi_notdi_zesidi): Likewise.
11789 (iordi_notsesidi_di): Likewise.
11790
11791 2019-08-22 Richard Earnshaw <rearnsha@arm.com>
11792
11793 * config/arm/arm.md (iorsi3_compare0): Add alternative for 16-bit thumb
11794 insn.
11795 (iorsi3_compare0_scratch): Likewise.
11796
11797 2019-08-22 Sylvia Taylor <sylvia.taylor@arm.com>
11798
11799 * config/aarch64/aarch64-simd-builtins.def:
11800 (ld1x4): New.
11801 (st1x4): Likewise.
11802 * config/aarch64/aarch64-simd.md:
11803 (aarch64_ld1x4<VALLDIF:mode>): New pattern.
11804 (aarch64_st1x4<VALLDIF:mode>): Likewise.
11805 (aarch64_ld1_x4_<mode>): Likewise.
11806 (aarch64_st1_x4_<mode>): Likewise.
11807 * config/aarch64/arm_neon.h:
11808 (vld1_s8_x4): New function.
11809 (vld1q_s8_x4): Likewise.
11810 (vld1_s16_x4): Likewise.
11811 (vld1q_s16_x4): Likewise.
11812 (vld1_s32_x4): Likewise.
11813 (vld1q_s32_x4): Likewise.
11814 (vld1_u8_x4): Likewise.
11815 (vld1q_u8_x4): Likewise.
11816 (vld1_u16_x4): Likewise.
11817 (vld1q_u16_x4): Likewise.
11818 (vld1_u32_x4): Likewise.
11819 (vld1q_u32_x4): Likewise.
11820 (vld1_f16_x4): Likewise.
11821 (vld1q_f16_x4): Likewise.
11822 (vld1_f32_x4): Likewise.
11823 (vld1q_f32_x4): Likewise.
11824 (vld1_p8_x4): Likewise.
11825 (vld1q_p8_x4): Likewise.
11826 (vld1_p16_x4): Likewise.
11827 (vld1q_p16_x4): Likewise.
11828 (vld1_s64_x4): Likewise.
11829 (vld1_u64_x4): Likewise.
11830 (vld1_p64_x4): Likewise.
11831 (vld1q_s64_x4): Likewise.
11832 (vld1q_u64_x4): Likewise.
11833 (vld1q_p64_x4): Likewise.
11834 (vld1_f64_x4): Likewise.
11835 (vld1q_f64_x4): Likewise.
11836 (vst1_s8_x4): Likewise.
11837 (vst1q_s8_x4): Likewise.
11838 (vst1_s16_x4): Likewise.
11839 (vst1q_s16_x4): Likewise.
11840 (vst1_s32_x4): Likewise.
11841 (vst1q_s32_x4): Likewise.
11842 (vst1_u8_x4): Likewise.
11843 (vst1q_u8_x4): Likewise.
11844 (vst1_u16_x4): Likewise.
11845 (vst1q_u16_x4): Likewise.
11846 (vst1_u32_x4): Likewise.
11847 (vst1q_u32_x4): Likewise.
11848 (vst1_f16_x4): Likewise.
11849 (vst1q_f16_x4): Likewise.
11850 (vst1_f32_x4): Likewise.
11851 (vst1q_f32_x4): Likewise.
11852 (vst1_p8_x4): Likewise.
11853 (vst1q_p8_x4): Likewise.
11854 (vst1_p16_x4): Likewise.
11855 (vst1q_p16_x4): Likewise.
11856 (vst1_s64_x4): Likewise.
11857 (vst1_u64_x4): Likewise.
11858 (vst1_p64_x4): Likewise.
11859 (vst1q_s64_x4): Likewise.
11860 (vst1q_u64_x4): Likewise.
11861 (vst1q_p64_x4): Likewise.
11862 (vst1_f64_x4): Likewise.
11863 (vst1q_f64_x4): Likewise.
11864
11865 2019-08-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11866
11867 * config/aarch64/aarch64-sve.md (vcond_mask): Add "@".
11868
11869 2019-08-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11870 Richard Sandiford <richard.sandiford@arm.com>
11871
11872 PR target/88839
11873 * config/aarch64/aarch64.c (aarch64_evpc_sel): New function.
11874 (aarch64_expand_vec_perm_const_1): Call aarch64_evpc_sel.
11875
11876 2019-08-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11877
11878 PR target/90724
11879 * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y
11880 in reg if it fails aarch64_plus_operand predicate.
11881
11882 2019-08-21 Richard Biener <rguenther@suse.de>
11883
11884 PR tree-optimization/91482
11885 * tree-ssa-ccp.c (ccp_folder::fold_stmt): Remove useless
11886 BUILT_IN_ASSUME_ALIGNED calls.
11887
11888 2019-08-21 Richard Biener <rguenther@suse.de>
11889
11890 PR target/91498
11891 PR target/91503
11892 * config/i386/i386-features.c
11893 (general_scalar_chain::make_vector_copies): Copy stack temporary
11894 rtx when using it multiple times.
11895 (general_scalar_chain::convert_reg): Likewise.
11896
11897 2019-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
11898
11899 * function.c (assign_parm_find_stack_rtl): Use known_eq instead of ==.
11900
11901 2019-08-20 Matthew Beliveau <mbelivea@redhat.com>
11902
11903 * tree-ssa-dse.c (dse_optimize_redundant_stores): Improved check to
11904 catch more redundant zero initialization cases.
11905 (dse_dom_walker::dse_optimize_stmt): Likewise.
11906
11907 2019-08-20 Richard Biener <rguenther@suse.de>
11908
11909 PR lto/91307
11910 * ipa.c (cgraph_build_static_cdtor_1): Use names not recognizable
11911 by collect2 when targetm.have_ctors_dtors which avoids dragging
11912 in temporary filenames from LTO input objects.
11913
11914 2019-08-20 Richard Biener <rguenther@suse.de>
11915
11916 PR tree-optimization/37242
11917 * tree-ssa-sccvn.c (visit_nary_op): Also CSE (T)(a + b)
11918 to (T)a + (T)b if we know that a + b does not overflow.
11919
11920 2019-08-20 Eric Botcazou <ebotcazou@adacore.com>
11921
11922 PR rtl-optimization/91347
11923 * dse.c (scan_insn): Call add_wild_read for non-const/memset tail calls
11924 before reload if HARD_FRAME_POINTER_IS_ARG_POINTER.
11925
11926 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
11927
11928 * calls.h (function_arg_info): Add a pass_by_reference field,
11929 defaulting to false.
11930 * calls.c (apply_pass_by_reference_rules): Set pass_by_reference
11931 when applying pass-by-reference semantics.
11932 (initialize_argument_information): Likewise.
11933 (emit_library_call_value_1): Likewise.
11934 * function.c (assign_parm_data_one): Remove passed_pointer field.
11935 (assign_parm_find_data_types): Don't set it.
11936 (assign_parm_find_stack_rtl, assign_parm_adjust_stack_rtl)
11937 (assign_parm_setup_reg, assign_parms, gimplify_parameters): Use
11938 arg.pass_by_reference instead of passed_pointer.
11939
11940 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
11941
11942 * calls.c (emit_library_call_value_1): Merge arg and orig_arg
11943 into a single function_arg_info, updating its fields when we
11944 apply pass-by-reference and promotion semantics. Use the
11945 function_arg_info to track the mode rather than keeping it in
11946 a separate local variable.
11947 (initialize_argument_information): Likewise. Base the final
11948 arg_to_skip on this new function_arg_info rather than creating
11949 a new one from scratch.
11950
11951 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
11952
11953 * function.c (assign_parm_data_one): Replace passed_type,
11954 promoted_mode and named_arg with a function_arg_info field.
11955 (assign_parm_find_data_types): Remove local variables and
11956 assign directly to "data". Make data->passed_mode shadow
11957 data->arg.mode until promotion, then assign the promoted
11958 mode to data->arg.mode.
11959 (assign_parms_setup_varargs, assign_parm_find_entry_rtl)
11960 (assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl)
11961 (assign_parm_remove_parallels, assign_parm_setup_block_p)
11962 (assign_parm_setup_block, assign_parm_setup_reg)
11963 (assign_parm_setup_stack, assign_parms, gimplify_parameters): Use
11964 arg.mode instead of promoted_mode, arg.type instead of passed_type
11965 and arg.named instead of named_arg. Use data->arg for
11966 function_arg_info structures that had the field values passed_type,
11967 promoted_mode and named_arg. Base other function_arg_infos on
11968 data->arg, changing the necessary properties.
11969
11970 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
11971
11972 * calls.h (apply_pass_by_reference_rules): Declare.
11973 * calls.c (apply_pass_by_reference_rules): New function.
11974 * config/c6x/c6x.c (c6x_call_saved_register_used): Use it.
11975 * config/rs6000/rs6000-call.c (rs6000_parm_needs_stack): Likewise.
11976 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
11977 * function.c (assign_parm_find_data_types): Likewise.
11978 * var-tracking.c (prepare_call_arguments): Likewise.
11979
11980 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
11981
11982 * target.def (must_pass_in_stack): Take a function_arg_info instead
11983 of a mode and a type.
11984 * doc/tm.texi: Regenerate.
11985 * calls.h (must_pass_in_stack_var_size): Take a function_arg_info
11986 instead of a mode and a type.
11987 (must_pass_in_stack_var_size_or_pad): Likewise.
11988 * calls.c (must_pass_in_stack_var_size): Likewise.
11989 (must_pass_in_stack_var_size_or_pad): Likewise.
11990 (initialize_argument_information): Update call to
11991 targetm.calls.must_pass_in_stack.
11992 (must_pass_va_arg_on_stack): Likewise.
11993 * function.c (assign_parm_find_entry_rtl): Likewise.
11994 * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Likewise.
11995 * config/alpha/alpha.c (alpha_function_arg): Likewise.
11996 (alpha_function_arg_advance): Likewise.
11997 * config/cr16/cr16.c (cr16_function_arg): Likewise.
11998 (cr16_function_arg_advance): Likewise.
11999 * config/cris/cris.c (cris_pass_by_reference): Likewise.
12000 (cris_arg_partial_bytes): Likewise.
12001 * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise.
12002 * config/lm32/lm32.c (lm32_function_arg): Likewise.
12003 * config/mcore/mcore.c (mcore_num_arg_regs): Likewise.
12004 (mcore_function_arg, mcore_arg_partial_bytes): Likewise.
12005 * config/mips/mips.c (mips_pass_by_reference): Likewise.
12006 * config/mmix/mmix.c (mmix_function_arg_advance): Likewise.
12007 (mmix_function_arg_1, mmix_pass_by_reference): Likewise.
12008 * config/sh/sh.c (sh_pass_by_reference): Likewise.
12009 * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise.
12010 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
12011 * config/arm/arm.c (arm_must_pass_in_stack): Take a function_arg_info
12012 instead of a mode and a type.
12013 * config/fr30/fr30.c (fr30_must_pass_in_stack): Likewise.
12014 (fr30_num_arg_regs): Likewise.
12015 (fr30_setup_incoming_varargs): Update calls accordingly.
12016 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
12017 (fr30_function_arg_advance): Likewise.
12018 * config/frv/frv.c (frv_must_pass_in_stack): Take a function_arg_info
12019 instead of a mode and a type.
12020 * config/gcn/gcn.c (num_arg_regs): Likewise.
12021 (gcn_function_arg, gcn_function_arg_advance): Update calls to
12022 num_arg_regs and targetm.calls.must_pass_in_stack.
12023 (gcn_arg_partial_bytes): Likewise.
12024 * config/i386/i386.c (ix86_must_pass_in_stack): Take a
12025 function_arg_info instead of a mode and a type.
12026 (classify_argument): Update call accordingly.
12027 * config/nds32/nds32.c (nds32_must_pass_in_stack): Take a
12028 function_arg_info instead of a mode and a type.
12029 * config/rs6000/rs6000-internal.h (rs6000_must_pass_in_stack):
12030 Likewise.
12031 * config/rs6000/rs6000-call.c (rs6000_must_pass_in_stack): Likewise.
12032 (rs6000_parm_needs_stack): Update call accordingly.
12033 (setup_incoming_varargs): Likewise.
12034
12035 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
12036
12037 * target.def (callee_copies): Take a function_arg_info instead
12038 of a mode, type and named flag.
12039 * doc/tm.texi: Regenerate.
12040 * targhooks.h (hook_callee_copies_named): Take a function_arg_info
12041 instead of a mode, type and named flag.
12042 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete.
12043 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
12044 (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function.
12045 * targhooks.c (hook_callee_copies_named): Take a function_arg_info
12046 instead of a mode, type and named flag.
12047 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete.
12048 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
12049 (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function.
12050 * calls.h (reference_callee_copied): Take a function_arg_info
12051 instead of a mode, type and named flag.
12052 * calls.c (reference_callee_copied): Likewise.
12053 (initialize_argument_information): Update call accordingly.
12054 (emit_library_call_value_1): Likewise.
12055 * function.c (gimplify_parameters): Likewise.
12056 * config/aarch64/aarch64.c (TARGET_CALLEE_COPIES): Define to
12057 hook_bool_CUMULATIVE_ARGS_arg_info_false instead of
12058 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false.
12059 * config/c6x/c6x.c (c6x_callee_copies): Delete.
12060 (TARGET_CALLEE_COPIES): Define to
12061 hook_bool_CUMULATIVE_ARGS_arg_info_true instead.
12062 * config/epiphany/epiphany.c (TARGET_CALLEE_COPIES): Define to
12063 hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
12064 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
12065 * config/mips/mips.c (mips_callee_copies): Take a function_arg_info
12066 instead of a mode, type and named flag.
12067 * config/mmix/mmix.c (TARGET_CALLEE_COPIES): Define to
12068 hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
12069 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
12070 * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): Likewise.
12071 * config/msp430/msp430.c (msp430_callee_copies): Delete.
12072 (TARGET_CALLEE_COPIES): Define to
12073 hook_bool_CUMULATIVE_ARGS_arg_info_true instead.
12074 * config/pa/pa.c (pa_callee_copies): Take a function_arg_info
12075 instead of a mode, type and named flag.
12076 * config/sh/sh.c (sh_callee_copies): Likewise.
12077 * config/v850/v850.c (TARGET_CALLEE_COPIES): Define to
12078 hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
12079 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
12080
12081 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
12082
12083 * target.def (function_arg_advance): Take a function_arg_info instead
12084 of a mode, type and named flag.
12085 * doc/tm.texi: Regenerate.
12086 * targhooks.h (default_function_arg_advance): Take a function_arg_info
12087 instead of a mode, type and named flag.
12088 * targhooks.c (default_function_arg_advance): Likewise.
12089 * calls.c (initialize_argument_information): Update call to
12090 targetm.calls.function_arg_advance.
12091 (emit_library_call_value_1): Likewise.
12092 * dse.c (get_call_args): Likewise.
12093 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
12094 * function.c (assign_parms, gimplify_parameters): Likewise.
12095 * var-tracking.c (prepare_call_arguments): Likewise.
12096 * config/aarch64/aarch64.c (aarch64_function_arg_advance): Take a
12097 function_arg_info instead of a mode, type and named flag.
12098 (aarch64_setup_incoming_varargs): Update call accordingly.
12099 * config/alpha/alpha.c (alpha_function_arg_advance): Take a
12100 function_arg_info instead of a mode, type and named flag.
12101 (alpha_setup_incoming_varargs): Update call accordingly.
12102 * config/arc/arc.c (arc_function_arg_advance): Take a
12103 function_arg_info instead of a mode, type and named flag.
12104 (arc_setup_incoming_varargs): Update call accordingly.
12105 * config/arm/arm.c (arm_function_arg_advance): Take a
12106 function_arg_info instead of a mode, type and named flag.
12107 (cmse_func_args_or_return_in_stack): Update call accordingly.
12108 (arm_function_ok_for_sibcall): Likewise.
12109 (cmse_nonsecure_call_clear_caller_saved): Likewise.
12110 * config/avr/avr.c (avr_function_arg_advance): Take a
12111 function_arg_info instead of a mode, type and named flag.
12112 * config/bfin/bfin.c (bfin_function_arg_advance): Likewise.
12113 * config/c6x/c6x.c (c6x_function_arg_advance): Likewise.
12114 (c6x_call_saved_register_used): Update call accordingly.
12115 * config/cr16/cr16.c (cr16_function_arg_advance): Take a
12116 function_arg_info instead of a mode, type and named flag.
12117 * config/cris/cris.c (cris_function_arg_advance): Likewise.
12118 * config/csky/csky.c (csky_function_arg_advance): Likewise.
12119 (csky_setup_incoming_varargs): Update call accordingly.
12120 * config/epiphany/epiphany.c (epiphany_function_arg_advance): Take a
12121 function_arg_info instead of a mode, type and named flag.
12122 * config/fr30/fr30.c (fr30_function_arg_advance): Likewise.
12123 * config/frv/frv.c (frv_function_arg_advance): Likewise.
12124 * config/ft32/ft32.c (ft32_function_arg_advance): Likewise.
12125 * config/gcn/gcn.c (gcn_function_arg_advance): Likewise.
12126 * config/h8300/h8300.c (h8300_function_arg_advance): Likewise.
12127 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
12128 (ix86_setup_incoming_varargs): Update call accordingly.
12129 * config/ia64/ia64.c (ia64_function_arg_advance): Take a
12130 function_arg_info instead of a mode, type and named flag.
12131 (ia64_setup_incoming_varargs): Update call accordingly.
12132 * config/iq2000/iq2000.c (iq2000_function_arg_advance): Take a
12133 function_arg_info instead of a mode, type and named flag.
12134 (iq2000_expand_prologue): Update call accordingly.
12135 * config/lm32/lm32.c (lm32_function_arg_advance): Take a
12136 function_arg_info instead of a mode, type and named flag.
12137 * config/m32c/m32c.c (m32c_function_arg_advance): Likewise.
12138 * config/m32r/m32r.c (m32r_function_arg_advance): Likewise.
12139 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
12140 * config/mcore/mcore.c (mcore_function_arg_advance): Likewise.
12141 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
12142 Likewise.
12143 (microblaze_expand_prologue): Update call accordingly.
12144 * config/mips/mips.c (mips_function_arg_advance): Take a
12145 function_arg_info instead of a mode, type and named flag.
12146 (mips_setup_incoming_varargs): Update call accordingly.
12147 (mips_output_args_xfer): Likewise.
12148 * config/mmix/mmix.c (mmix_function_arg_advance): Take a
12149 function_arg_info instead of a mode, type and named flag.
12150 * config/mn10300/mn10300.c (mn10300_function_arg_advance): Likewise.
12151 * config/moxie/moxie.c (moxie_function_arg_advance): Likewise.
12152 * config/msp430/msp430.c (msp430_function_arg_advance): Likewise.
12153 * config/nds32/nds32.c (nds32_function_arg_advance): Likewise.
12154 * config/nios2/nios2.c (nios2_function_arg_advance): Likewise.
12155 (nios2_setup_incoming_varargs): Update call accordingly.
12156 * config/nvptx/nvptx.c (nvptx_function_arg_advance): Take a
12157 function_arg_info instead of a mode, type and named flag.
12158 * config/or1k/or1k.c (or1k_function_arg_advance): Likewise.
12159 * config/pa/pa.c (pa_function_arg_advance): Likewise.
12160 * config/pdp11/pdp11.c (pdp11_function_arg_advance): Likewise.
12161 * config/pru/pru.c (pru_function_arg_advance): Likewise.
12162 * config/riscv/riscv.c (riscv_function_arg_advance): Likewise.
12163 (riscv_setup_incoming_varargs): Update call accordingly.
12164 * config/rl78/rl78.c (rl78_function_arg_advance): Take a
12165 function_arg_info instead of a mode, type and named flag.
12166 * config/rs6000/rs6000-internal.h (rs6000_function_arg_advance):
12167 Likewise.
12168 * config/rs6000/rs6000-call.c (rs6000_function_arg_advance): Likewise.
12169 (rs6000_parm_needs_stack): Update call accordingly.
12170 * config/rx/rx.c (rx_function_arg_advance): Take a function_arg_info
12171 instead of a mode, type and named flag.
12172 * config/s390/s390.c (s390_function_arg_advance): Likewise.
12173 (s390_call_saved_register_used): Update call accordingly.
12174 * config/sh/sh.c (sh_function_arg_advance): Take a function_arg_info
12175 instead of a mode, type and named flag.
12176 (sh_output_mi_thunk): Update call accordingly.
12177 * config/sparc/sparc.c (sparc_function_arg_advance): Take a
12178 function_arg_info instead of a mode, type and named flag.
12179 * config/spu/spu.c (spu_function_arg_advance): Likewise.
12180 (spu_setup_incoming_varargs): Update call accordingly.
12181 * config/stormy16/stormy16.c (xstormy16_function_arg_advance): Take a
12182 function_arg_info instead of a mode, type and named flag.
12183 * config/tilegx/tilegx.c (tilegx_function_arg_advance): Likewise.
12184 (tilegx_setup_incoming_varargs): Update call accordingly.
12185 * config/tilepro/tilepro.c (tilepro_function_arg_advance): Take a
12186 function_arg_info instead of a mode, type and named flag.
12187 (tilegx_setup_incoming_varargs): Update call accordingly.
12188 * config/v850/v850.c (v850_function_arg_advance): Take a
12189 function_arg_info instead of a mode, type and named flag.
12190 * config/vax/vax.c (vax_function_arg_advance): Likewise.
12191 * config/visium/visium.c (visium_function_arg_advance): Likewise.
12192 (visium_setup_incoming_varargs): Update call accordingly.
12193 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Take a
12194 function_arg_info instead of a mode, type and named flag.
12195
12196 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
12197
12198 * target.def (function_arg, function_incoming_arg): Take a
12199 function_arg_info instead of a mode, tree and named flag.
12200 * doc/tm.texi: Regenerate.
12201 * targhooks.h (default_function_arg): Take a function_arg_info
12202 instead of a mode, tree and named flag.
12203 (default_function_incoming_arg): Likewise.
12204 * targhooks.c (default_function_arg): Likewise.
12205 (default_function_incoming_arg): Likewise.
12206 * calls.h (function_arg_info::end_marker_p): New function.
12207 (function_arg_info::end_marker): Likewise.
12208 * calls.c (prepare_call_address, initialize_argument_information)
12209 (expand_call, emit_library_call_value_1): Update calls to
12210 targetm.calls.function_arg and targetm.calls.function_incoming_arg.
12211 * dse.c: Include calls.h.
12212 (get_call_args): Update call to targetm.calls.function_arg.
12213 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
12214 * var-tracking.c (prepare_call_arguments): Likewise.
12215 * function.c (assign_parm_find_entry_rtl): Update call to
12216 targetm.calls.function_incoming_arg.
12217 * config/aarch64/aarch64.c (aarch64_function_arg): Take a
12218 function_arg_info instead of a mode, tree and named flag.
12219 * config/alpha/alpha.c (alpha_function_arg): Likewise.
12220 * config/arc/arc.c (arc_function_arg): Likewise.
12221 * config/arm/arm.c (arm_function_arg): Likewise.
12222 (cmse_func_args_or_return_in_stack): Update call accordingly.
12223 (arm_function_ok_for_sibcall): Likewise.
12224 (cmse_nonsecure_call_clear_caller_saved): Likewise.
12225 * config/avr/avr.c (avr_function_arg): Take a function_arg_info
12226 instead of a mode, tree and named flag.
12227 * config/bfin/bfin.c (bfin_function_arg): Likewise.
12228 * config/c6x/c6x.c (c6x_function_arg): Likewise.
12229 (c6x_call_saved_register_used): Update call accordingly.
12230 * config/cr16/cr16.c (cr16_function_arg): Take a function_arg_info
12231 instead of a mode, tree and named flag.
12232 * config/cris/cris.c (cris_function_arg, cris_function_incoming_arg)
12233 (cris_function_arg_1): Likewise.
12234 * config/csky/csky.c (csky_function_arg): Likewise.
12235 * config/epiphany/epiphany.c (epiphany_function_arg): Likewise.
12236 * config/fr30/fr30.c (fr30_function_arg): Likewise.
12237 * config/frv/frv.c (frv_function_arg, frv_function_incoming_arg)
12238 (frv_function_arg_1): Likewise.
12239 * config/ft32/ft32.c (ft32_function_arg): Likewise.
12240 * config/gcn/gcn.c (gcn_function_arg): Likewise.
12241 * config/h8300/h8300.c (h8300_function_arg): Likewise.
12242 * config/i386/i386.c (ix86_function_arg): Likewise.
12243 * config/ia64/ia64.c (ia64_function_arg, ia64_function_incoming_arg)
12244 (ia64_function_arg_1): Likewise.
12245 * config/iq2000/iq2000.c (iq2000_function_arg): Likewise.
12246 (iq2000_expand_prologue, iq2000_pass_by_reference): Update call
12247 accordingly.
12248 * config/lm32/lm32.c (lm32_function_arg): Take a function_arg_info
12249 instead of a mode, tree and named flag.
12250 * config/m32c/m32c.c (m32c_function_arg): Likewise.
12251 * config/m32r/m32r.c (m32r_function_arg): Likewise.
12252 * config/m68k/m68k.c (m68k_function_arg): Likewise.
12253 * config/mcore/mcore.c (mcore_function_arg): Likewise.
12254 * config/microblaze/microblaze.c (microblaze_function_arg): Likewise.
12255 (microblaze_expand_prologue): Update call accordingly.
12256 * config/mips/mips.c (mips_function_arg): Take a function_arg_info
12257 instead of a mode, tree and named flag.
12258 * config/mmix/mmix.c (mmix_function_incoming_arg, mmix_function_arg)
12259 (mmix_function_arg_1): Likewise.
12260 * config/mn10300/mn10300.c (mn10300_function_arg): Likewise.
12261 * config/moxie/moxie.c (moxie_function_arg): Likewise.
12262 * config/msp430/msp430.c (msp430_function_arg): Likewise.
12263 * config/nds32/nds32.c (nds32_function_arg): Likewise.
12264 * config/nios2/nios2.c (nios2_function_arg): Likewise.
12265 * config/nvptx/nvptx.c (nvptx_function_arg): Likewise.
12266 (nvptx_function_incoming_arg): Likewise.
12267 * config/or1k/or1k.c (or1k_function_arg): Likewise.
12268 * config/pa/pa.c (pa_function_arg): Likewise.
12269 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
12270 * config/pru/pru.c (pru_function_arg): Likewise.
12271 * config/riscv/riscv.c (riscv_function_arg): Likewise.
12272 * config/rl78/rl78.c (rl78_function_arg): Likewise.
12273 * config/rs6000/rs6000-internal.h (rs6000_function_arg): Likewise.
12274 * config/rs6000/rs6000-call.c (rs6000_function_arg): Likewise.
12275 (rs6000_parm_needs_stack): Update call accordingly.
12276 * config/rx/rx.c (rx_function_arg): Take a function_arg_info
12277 instead of a mode, tree and named flag.
12278 * config/s390/s390.c (s390_function_arg): Likewise.
12279 (s390_call_saved_register_used): Update call accordingly.
12280 * config/sh/sh.c (sh_function_arg): Take a function_arg_info
12281 instead of a mode, tree and named flag.
12282 (sh_output_mi_thunk): Update call accordingly.
12283 * config/sparc/sparc.c (sparc_function_arg_1, sparc_function_arg)
12284 (sparc_function_incoming_arg): Take a function_arg_info instead of
12285 a mode, tree and named flag.
12286 * config/spu/spu.c (spu_function_arg): Likewise.
12287 * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise.
12288 * config/tilegx/tilegx.c (tilegx_function_arg): Likewise.
12289 * config/tilepro/tilepro.c (tilepro_function_arg): Likewise.
12290 * config/v850/v850.c (v850_function_arg): Likewise.
12291 * config/vax/vax.c (vax_function_arg): Likewise.
12292 * config/visium/visium.c (visium_function_arg): Likewise.
12293 * config/xtensa/xtensa.c (xtensa_function_arg_1, xtensa_function_arg)
12294 (xtensa_function_incoming_arg): Likewise.
12295
12296 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
12297
12298 * target.def (setup_incoming_varargs): Take a function_arg_info
12299 instead of a mode and tree.
12300 * doc/tm.texi: Regenerate.
12301 * targhooks.h (default_setup_incoming_varargs): Take a
12302 function_arg_info instead of a mode and tree.
12303 * targhooks.c (default_setup_incoming_varargs): Likewise.
12304 * config/aarch64/aarch64.c (aarch64_setup_incoming_varargs): Likewise.
12305 * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.
12306 * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
12307 * config/arm/arm.c (arm_setup_incoming_varargs): Likewise.
12308 * config/bfin/bfin.c (setup_incoming_varargs): Likewise.
12309 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
12310 * config/csky/csky.c (csky_setup_incoming_varargs): Likewise.
12311 * config/epiphany/epiphany.c (epiphany_setup_incoming_varargs):
12312 Likewise.
12313 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
12314 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
12315 * config/ft32/ft32.c (ft32_setup_incoming_varargs): Likewise.
12316 * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise.
12317 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
12318 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
12319 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
12320 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
12321 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
12322 * config/mips/mips.c (mips_setup_incoming_varargs): Likewise.
12323 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
12324 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
12325 * config/nds32/nds32.c (nds32_setup_incoming_varargs): Likewise.
12326 * config/nios2/nios2.c (nios2_setup_incoming_varargs): Likewise.
12327 * config/riscv/riscv.c (riscv_setup_incoming_varargs): Likewise.
12328 * config/rs6000/rs6000-internal.h (setup_incoming_varargs): Likewise.
12329 * config/rs6000/rs6000-call.c (setup_incoming_varargs): Likewise.
12330 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
12331 * config/spu/spu.c (spu_setup_incoming_varargs): Likewise.
12332 * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs): Likewise.
12333 * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs): Likewise.
12334 * config/visium/visium.c (visium_setup_incoming_varargs): Likewise.
12335 * function.c (assign_parms_setup_varargs): Update call to
12336 targetm.calls.setup_incoming_varargs.
12337
12338 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
12339
12340 * target.def (pass_by_reference): Take a function_arg_info instead
12341 of a mode, type and named flag.
12342 * doc/tm.texi: Regenerate.
12343 * targhooks.h (hook_pass_by_reference_must_pass_in_stack): Update
12344 accordingly.
12345 (hook_bool_CUMULATIVE_ARGS_arg_info_false): Declare.
12346 * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Take a
12347 function_arg_info instead of a mode, type and named flag.
12348 (hook_bool_CUMULATIVE_ARGS_arg_info_false): New function.
12349 * calls.h (pass_by_reference): Take a function_arg_info instead of a
12350 mode, type and named flag.
12351 * calls.c (pass_by_reference): Likewise.
12352 (pass_va_arg_by_reference): Update call accordingly.
12353 (initialize_argument_information): Likewise.
12354 (emit_library_call_value_1): Likewise.
12355 * function.c (assign_parm_find_data_types): Likewise.
12356 * var-tracking.c (prepare_call_arguments): Likewise.
12357 * stor-layout.c: Include calls.h.
12358 (compute_record_mode): Update call to targetm.calls.pass_by_reference.
12359 * config/aarch64/aarch64.c (aarch64_pass_by_reference): Take a
12360 function_arg_info instead of a mode, type and named flag.
12361 * config/alpha/alpha.c (alpha_pass_by_reference): Likewise.
12362 * config/arc/arc.c (arc_pass_by_reference): Likewise.
12363 * config/arm/arm.c (arm_pass_by_reference): Likewise.
12364 * config/bfin/bfin.c (bfin_pass_by_reference): Likewise.
12365 * config/c6x/c6x.c (c6x_pass_by_reference): Likewise.
12366 (c6x_call_saved_register_used): Update call to pass_by_reference.
12367 * config/cris/cris.c (cris_pass_by_reference): Take a
12368 function_arg_info instead of a mode, type and named flag.
12369 * config/epiphany/epiphany.c (epiphany_pass_by_reference): Take a
12370 function_arg_info instead of a mode, type and named flag.
12371 (epiphany_arg_partial_bytes): Update call accordingly.
12372 * config/ft32/ft32.c (ft32_pass_by_reference): Take a
12373 function_arg_info instead of a mode, type and named flag.
12374 (ft32_arg_partial_bytes): Update call accordingly.
12375 * config/i386/i386.c (ix86_pass_by_reference): Take a
12376 function_arg_info instead of a mode, type and named flag.
12377 * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise.
12378 * config/m32c/m32c.c (m32c_pass_by_reference): Likewise.
12379 * config/m32r/m32r.c (m32r_pass_by_reference): Likewise.
12380 (m32r_return_in_memory): Update call accordingly.
12381 * config/mips/mips.c (mips_pass_by_reference): Take a
12382 function_arg_info instead of a mode, type and named flag.
12383 * config/mmix/mmix.c (mmix_pass_by_reference): Likewise.
12384 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
12385 * config/moxie/moxie.c (moxie_pass_by_reference): Likewise.
12386 (moxie_arg_partial_bytes): Update call accordingly.
12387 * config/msp430/msp430.c (msp430_pass_by_reference): Take a
12388 function_arg_info instead of a mode, type and named flag.
12389 * config/nvptx/nvptx.c (nvptx_pass_by_reference): Likewise.
12390 * config/or1k/or1k.c (or1k_pass_by_reference): Likewise.
12391 * config/pa/pa.c (pa_pass_by_reference): Likewise.
12392 * config/riscv/riscv.c (riscv_pass_by_reference): Likewise.
12393 (riscv_return_in_memory): Update call accordingly.
12394 * config/rs6000/rs6000-internal.h (rs6000_pass_by_reference): Take a
12395 function_arg_info instead of a mode, type and named flag.
12396 * config/rs6000/rs6000-call.c (rs6000_pass_by_reference): Likewise.
12397 (rs6000_parm_needs_stack): Update call to pass_by_reference.
12398 * config/s390/s390.c (s390_pass_by_reference): Take a
12399 function_arg_info instead of a mode, type and named flag.
12400 (s390_call_saved_register_used): Update call accordingly.
12401 * config/sh/sh.c (sh_pass_by_reference): Take a function_arg_info
12402 instead of a mode, type and named flag.
12403 * config/sparc/sparc.c (sparc_pass_by_reference): Likewise.
12404 * config/spu/spu.c (spu_pass_by_reference): Likewise.
12405 * config/tilegx/tilegx.c (tilegx_pass_by_reference): Likewise.
12406 * config/tilepro/tilepro.c (tilepro_pass_by_reference): Likewise.
12407 * config/v850/v850.c (v850_pass_by_reference): Likewise.
12408 * config/visium/visium.c (visium_pass_by_reference): Likewise.
12409
12410 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
12411
12412 * target.def (arg_partial_bytes): Take a function_arg_info instead
12413 of a mode, type and named flag.
12414 * doc/tm.texi: Regenerate.
12415 * target.h (function_arg_info): Declare.
12416 * calls.h (function_arg_info): New class.
12417 * targhooks.h (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete.
12418 (hook_int_CUMULATIVE_ARGS_arg_info_0): Declare.
12419 * targhooks.c (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete.
12420 (hook_int_CUMULATIVE_ARGS_arg_info_0): New function.
12421 * calls.c (initialize_argument_information): Update call to
12422 targetm.calls.partial_bytes.
12423 (emit_library_call_value_1): Likewise.
12424 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
12425 * function.c (assign_parm_find_entry_rtl): Likewise.
12426 * config/alpha/alpha.c (alpha_arg_partial_bytes): Take a
12427 function_arg_info instead of a mode, type and named flag.
12428 * config/arc/arc.c (arc_arg_partial_bytes): Likewise.
12429 * config/arm/arm.c (arm_arg_partial_bytes): Likewise.
12430 (cmse_func_args_or_return_in_stack): Update accordingly.
12431 * config/bfin/bfin.c (bfin_arg_partial_bytes): Take a
12432 function_arg_info instead of a mode, type and named flag.
12433 * config/cris/cris.c (cris_arg_partial_bytes): Likewise.
12434 * config/csky/csky.c (csky_arg_partial_bytes): Likewise.
12435 * config/epiphany/epiphany.c (epiphany_arg_partial_bytes): Likewise.
12436 * config/fr30/fr30.c: Include calls.h.
12437 (fr30_arg_partial_bytes): Take a function_arg_info instead of a mode,
12438 type and named flag.
12439 * config/frv/frv.c: Include calls.h.
12440 (frv_arg_partial_bytes): Take a function_arg_info instead of a mode,
12441 type and named flag.
12442 * config/ft32/ft32.c (ft32_arg_partial_bytes): Likewise.
12443 * config/gcn/gcn.c (gcn_arg_partial_bytes): Likewise.
12444 * config/ia64/ia64.c (ia64_arg_partial_bytes): Likewise.
12445 * config/iq2000/iq2000.c (iq2000_arg_partial_bytes): Likewise.
12446 * config/m32r/m32r.c (m32r_arg_partial_bytes): Likewise.
12447 * config/mcore/mcore.c (mcore_arg_partial_bytes): Likewise.
12448 * config/microblaze/microblaze.c (function_arg_partial_bytes):
12449 Likewise.
12450 * config/mips/mips.c (mips_arg_partial_bytes): Likewise.
12451 * config/mn10300/mn10300.c (mn10300_arg_partial_bytes): Likewise.
12452 * config/moxie/moxie.c (moxie_arg_partial_bytes): Likewise.
12453 * config/msp430/msp430.c (msp430_arg_partial_bytes): Likewise.
12454 * config/nds32/nds32.c (nds32_arg_partial_bytes): Likewise.
12455 * config/nios2/nios2.c (nios2_arg_partial_bytes): Likewise.
12456 * config/pa/pa.c (pa_arg_partial_bytes): Likewise.
12457 * config/pru/pru.c (pru_arg_partial_bytes): Likewise.
12458 * config/riscv/riscv.c (riscv_arg_partial_bytes): Likewise.
12459 * config/rs6000/rs6000-internal.h (rs6000_arg_partial_bytes): Likewise.
12460 * config/rs6000/rs6000-call.c (rs6000_arg_partial_bytes): Likewise.
12461 (rs6000_parm_needs_stack): Update call accordingly.
12462 * config/sh/sh.c (sh_arg_partial_bytes): Take a
12463 function_arg_info instead of a mode, type and named flag.
12464 * config/sparc/sparc.c (sparc_arg_partial_bytes): Likewise.
12465 * config/v850/v850.c (v850_arg_partial_bytes): Likewise.
12466
12467 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
12468
12469 * calls.h (must_pass_va_arg_in_stack): Declare.
12470 * calls.c (must_pass_va_arg_in_stack): New function.
12471 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use it.
12472 * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
12473 * config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr):
12474 Likewise.
12475 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
12476
12477 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
12478
12479 * calls.h (pass_va_arg_by_reference): Declare.
12480 * calls.c (pass_va_arg_by_reference): New function.
12481 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Use it.
12482 * config/alpha/alpha.c (alpha_gimplify_va_arg): Likewise.
12483 * config/gcn/gcn.c (gcn_gimplify_va_arg_expr): Likewise.
12484 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
12485 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
12486 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Likewise.
12487 (mips_gimplify_va_arg_expr): Likewise.
12488 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Likewise.
12489 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
12490 * config/rs6000/rs6000-call.c (rs6000_gimplify_va_arg): Likewise.
12491 * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
12492 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
12493 * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
12494 * config/tilegx/tilegx.c (tilegx_gimplify_va_arg_expr): Likewise.
12495 * config/tilepro/tilepro.c (tilepro_gimplify_va_arg_expr): Likewise.
12496 * config/visium/visium.c (visium_gimplify_va_arg): Likewise.
12497 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
12498 * targhooks.c (std_gimplify_va_arg_expr): Likewise.
12499
12500 2019-08-20 Richard Biener <rguenther@suse.de>
12501
12502 PR target/91498
12503 * config/i386/i386-features.c (general_scalar_chain::convert_op):
12504 Use (vec_merge (vec_duplicate..)) style vector from scalar move.
12505 (convert_scalars_to_vector): Add timode_p parameter and use it
12506 to guard TImode-only operation.
12507 (pass_stv::gate): Adjust so STV runs twice for TARGET_64BIT.
12508 (pass_stv::execute): Pass down timode_p.
12509
12510 2019-08-20 Lili Cui <lili.cui@intel.com>
12511
12512 * common/config/i386/i386-common.c
12513 (processor_names): Add tigerlake and cooperlake.
12514 (processor_alias_table): Add tigerlake and cooperlake.
12515 * config.gcc: Add -march=tigerlake and cooperlake.
12516 * config/i386/driver-i386.c
12517 (host_detect_local_cpu): Detect tigerlake and cooperlake.
12518 Add "has_avx" to classify processor.
12519 * config/i386/i386-builtins.c (processor_model) :
12520 Add M_INTEL_COREI7_TIGERLAKE and M_INTEL_COREI7_COOPERLAKE.
12521 (arch_names_table): Add tigerlake and cooperlake.
12522 (get_builtin_code_for_version): Handle PROCESSOR_TIGERLAKE
12523 and PROCESSOR_COOPERLAKE.
12524 * config/i386/i386-c.c
12525 (ix86_target_macros_internal): Handle tigerlake and cooperlake.
12526 * config/i386/i386-options.c
12527 (m_TIGERLAKE): Define.
12528 (m_COOPERLAKE): Ditto.
12529 (m_CORE_AVX512): Ditto.
12530 (processor_cost_table): Add cascadelake.
12531 (ix86_option_override_internal): Hadle PTA_MOVDIRI, PTA_MOVDIR64B.
12532 * config/i386/i386.h
12533 (ix86_size_cost): Define TARGET_TIGERLAKE and TARGET_COOPERLAKE.
12534 (processor_type): Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE.
12535 (PTA_MOVDIRI): Ditto.
12536 (PTA_MOVDIR64B): Ditto.
12537 (PTA_COOPERLAKE): Ditto.
12538 (PTA_TIGERLAKE): Ditto.
12539 (processor_type): Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE.
12540 * doc/extend.texi: Add tigerlake and cooperlake.
12541 * doc/invoke.texi: Add tigerlake and cooperlake.
12542
12543 2019-08-20 Gerald Pfeifer <gerald@pfeifer.com>
12544
12545 * doc/install.texi (Specific, alpha): Remove note to use
12546 binutils 2.11.2 or later.
12547
12548 2019-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
12549
12550 PR middle-end/89544
12551 * function.c (assign_parm_find_stack_rtl): Use larger alignment
12552 when possible.
12553
12554 2019-08-19 Joel Hutton <Joel.Hutton@arm.com>
12555
12556 * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow2_recip): New prototype
12557 * config/aarch64/aarch64.c (aarch64_fpconst_pow2_recip): New function
12558 * config/aarch64/aarch64.md (*aarch64_<su_optab>cvtf<fcvt_target><GPF:mode>2_mult): New pattern
12559 (*aarch64_<su_optab>cvtf<fcvt_iesize><GPF:mode>2_mult): New pattern
12560 * config/aarch64/constraints.md (Dt): New constraint
12561 * config/aarch64/predicates.md (aarch64_fpconst_pow2_recip): New predicate
12562
12563 2019-08-19 Richard Biener <rguenther@suse.de>
12564
12565 PR tree-optimization/91403
12566 * tree-scalar-evolution.c (follow_ssa_edge_binary): Inline
12567 cases we can handle with tail-recursion...
12568 (follow_ssa_edge_expr): ... here. Do so.
12569
12570 2019-08-19 Kito Cheng <kito.cheng@sifive.com>
12571
12572 PR target/91441
12573 * toplev.c (process_options): Check TARGET_ASAN_SHADOW_OFFSET is
12574 implemented for -fsanitize=kernel-address, and merge check logic
12575 with -fsanitize=address.
12576
12577 2019-08-18 Iain Sandoe <iain@sandoe.co.uk>
12578
12579 * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts
12580 for cpu and machine. Factor 64/32b builtins.
12581
12582 2019-08-18 Gerald Pfeifer <gerald@pfeifer.com>
12583
12584 * doc/install.texi (Specific, bfin): blackfin.uclinux.org is
12585 gone, point to sourceforge.net.
12586
12587 2019-08-17 Gerald Pfeifer <gerald@pfeifer.com>
12588
12589 * doc/ux.texi (User Experience Guidelines): Update reference.
12590
12591 2019-08-17 Gerald Pfeifer <gerald@pfeifer.com>
12592
12593 * doc/include/gpl_v3.texi (Copying): Adjust the link to "Why
12594 not LGPL".
12595
12596 2019-08-16 Eric Botcazou <ebotcazou@adacore.com>
12597
12598 * tree-sra.c (build_reconstructed_reference): Return NULL_TREE instead
12599 of NULL. Add guard for broken VIEW_CONVERT_EXPRs.
12600
12601 2019-08-16 Martin Sebor <msebor@redhat.com>
12602
12603 * tree.def (TYPE_SIZE): Clarify.
12604 * tree.h (TYPE_SIZE, TYPE_SIZE_UNIT, DECL_SIZE): Add comments.
12605
12606 2019-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
12607
12608 PR tree-optimization/91109
12609 * lra-int.h (lra_need_for_scratch_reg_p): Declare.
12610 * lra.c (lra): Use lra_need_for_scratch_reg_p.
12611 * lra-spills.c (lra_need_for_scratch_reg_p): New function.
12612
12613 2019-08-16 Uroš Bizjak <ubizjak@gmail.com>
12614
12615 * config/i386/mmx.md (mmxdoublemode): New mode attribute.
12616 (mmx_uavg<mode>3): Macroize expaner from mmx_uavgv8qi3 and
12617 mmx_uavgv4hi3 using MMXMODE12 mode iterator.
12618 (uavg<mode>3_ceil): New expander.
12619 * config/i386/sse.md (uavg<mode>3_ceil): Use ssedoublemode
12620 mode iterator when creating CONST1_RTX.
12621 (<sse2_avx2>_uavg<mode>3<mask_name>): Ditto.
12622 (*<sse2_avx2>_uavg<mode>3<mask_name>): Use ssedoublemode
12623 mode iterator for const1_operand predicate.
12624
12625 2019-08-16 Richard Biener <rguenther@suse.de>
12626
12627 * tree-scalar-evolution.c (follow_ssa_edge_expr): Declare.
12628 (follow_ssa_edge_binary): Call follow_ssa_edge_expr instead of
12629 follow_ssa_edge.
12630 (follow_ssa_edge_in_condition_phi_branch): Likewise.
12631 (analyze_evolution_in_loop): Likewise.
12632 (follow_ssa_edge, follow_ssa_edge_in_rhs): Inline into ...
12633 (follow_ssa_edge_expr): ... here. Refactor code.
12634
12635 2019-08-16 Richard Biener <rguenther@suse.de>
12636
12637 PR target/91469
12638 * config/i386/i386-features.c
12639 (general_scalar_chain::replace_with_subreg): Stop at memory operands.
12640
12641 2019-08-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12642
12643 PR other/91255
12644 * gensupport.c (has_subst_attribute): Error out on set_attr_alternative
12645 only if subst_name matches curr_attr string.
12646
12647 2019-08-16 Richard Biener <rguenther@suse.de>
12648
12649 * tree-ssa-forwprop.c (simplify_builtin_call): Do not remove
12650 stmt at gsi_p, instead replace it with a NOP removed later.
12651 (pass_forwprop::execute): Fully propagate lattice, DCE stmts
12652 that became dead because of that.
12653
12654 2019-08-16 Aldy Hernandez <aldyh@redhat.com>
12655
12656 * gimple-ssa-evrp-analyze.c (record_ranges_from_phis): Skip PHIs
12657 for which we can't represent a range.
12658 * ipa-cp.c (ipcp_vr_lattice::set_to_bottom): Pass type to
12659 set_varying.
12660 * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
12661 Set VR_UNDEFINED if type is not supported.
12662 * tree-ssanames.c (get_range_info): Pass type to set_varying.
12663 * tree-vrp.c (value_range_base::check): Assert that a varying has
12664 min/max set.
12665 (value_range_base::equal_p): Early bail for undefines.
12666 (value_range_base::set_varying): Accept a type.
12667 (value_range::set_varying): Same.
12668 (value_range_base::type): VARYING can have a type, while UNDEFINE
12669 is typeless.
12670 (value_range_base::dump): Print type for VARYING nodes.
12671 (value_range_base::set): Add type to VARYING.
12672 (extract_range_from_multiplicative_op): Pass type to set_varying.
12673 (extract_range_from_binary_expr): Same.
12674 (value_range_base::intersect_helper): Same.
12675 (value_range_base::union_helper): Same.
12676 (value_range_base::normalize_symbolics): Same.
12677 (determine_value_range_1): Same.
12678 * tree-vrp.h (class value_range_base): Add type to set_varying.
12679 Add prototype for dump(void).
12680 Add prototype for supports_type_p.
12681 (class value_range): Add type to set_varying.
12682 Add prototype for dump(void).
12683 * vr-values.c (set_value_range_to_truthvalue): Pass type to
12684 set_varying.
12685 (vr_values::get_lattice_entry): Set varying even if propagation
12686 finished.
12687 Pass type to set_varying.
12688 (vr_values::get_value_range): Remove vr_const_varying.
12689 Reallocate the lattice if needed.
12690 (vr_values::update_value_range): Pass type to set_varying.
12691 (vr_values::extract_range_for_var_from_comparison_expr): Same.
12692 (vr_values::extract_range_from_binary_expr): Same.
12693 (vr_values::extract_range_from_unary_expr): Same.
12694 (vr_values::extract_range_from_cond_expr): Same.
12695 (vr_values::check_for_binary_op_overflow): Same.
12696 (vr_values::extract_range_basic): Same.
12697 (vr_values::extract_range_from_assignment): Same.
12698 (vr_values::vr_values): Increase size of num_vr_values.
12699 (vr_values::extract_range_from_phi_node): Pass type to
12700 set_varying.
12701
12702 2019-08-15 H.J. Lu <hongjiu.lu@intel.com>
12703
12704 PR target/90878
12705 * config/i386/i386.c (inline_memory_move_cost): Use hard_register
12706 for costs of hard register moves.
12707 (ix86_register_move_cost): Likewise.
12708 * config/i386/i386.h (processor_costs): Move costs of hard
12709 register moves to hard_register. Add int_load, int_store,
12710 xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse,
12711 sse_load, sse_store, sse_unaligned_load and sse_unaligned_store
12712 for costs of RTL expressions.
12713 * config/i386/x86-tune-costs.h: Move costs of hard register
12714 moves to hard_register. Duplicate int_load, int_store,
12715 xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse,
12716 sse_load, sse_store for costs of RTL expressions.
12717
12718 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12719
12720 * target.def (setup_incoming_vararg_bounds): Remove.
12721 * doc/tm.texi.in (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Remove.
12722 * doc/tm.texi: Regenerate.
12723 * targhooks.c (default_setup_incoming_vararg_bounds): Delete.
12724 * targhooks.h (default_setup_incoming_vararg_bounds): Likewise.
12725 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
12726 (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
12727
12728 2019-08-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
12729
12730 MSP430: Fix lines over 80 characters long in
12731 config/msp430/*.{c,h} files
12732
12733 * config/msp430/driver-msp430.c (msp430_select_cpu): Fix format
12734 specifier in string.
12735 (msp430_select_hwmult_lib): Split line more than 80 characters long.
12736 * config/msp430/msp430-devices.c (msp430_extract_mcu_data): Remove
12737 redundant old comment.
12738 * config/msp430/msp430-protos.h (msp430_output_aligned_decl_common):
12739 Split line more than 80 characters long.
12740 * config/msp430/msp430.c (msp430_option_override): Likewise.
12741 (msp430_return_in_memory): Likewise.
12742 (msp430_gimplify_va_arg_expr): Likewise.
12743 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise.
12744 (msp430_legitimate_constant): Likewise.
12745 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Likewise.
12746 (msp430_attr): Likewise.
12747 (msp430_data_attr): Likewise.
12748 (msp430_start_function): Likewise.
12749 (gen_prefix): Likewise.
12750 (msp430_init_sections): Likewise.
12751 (msp430_select_section): Likewise.
12752 (msp430_function_section): Likewise.
12753 (msp430_unique_section): Likewise.
12754 (msp430_output_aligned_decl_common): Likewise.
12755 (msp430_do_not_relax_short_jumps): Likewise.
12756 (msp430_init_builtins): Likewise.
12757 (msp430_expand_delay_cycles): Likewise.
12758 (msp430_expand_prologue): Likewise.
12759 (msp430_expand_epilogue): Likewise.
12760 (msp430_expand_helper): Likewise.
12761 (msp430_split_movsi): Likewise.
12762 (msp430_print_operand): Likewise.
12763 (msp430_return_addr_rtx): Likewise.
12764 (msp430x_extendhisi): Likewise.
12765 * config/msp430/msp430.h (STARTFILE_SPEC): Likewise.
12766 (ASM_SPEC): Likewise.
12767 Remove very obvious comments.
12768 (LIB_SPEC): Split line more than 80 characters long.
12769 (EH_RETURN_HANDLER_RTX): Likewise.
12770 (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
12771
12772 2019-08-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
12773
12774 MSP430: Fix whitespace errors and incorrect indentation in
12775 config/msp430/*.{c,h} files
12776
12777 * config/msp430/driver-msp430.c (msp430_select_cpu): Fix indentation.
12778 (msp430_select_hwmult_lib): Likewise.
12779 * config/msp430/msp430-devices.c (parse_devices_csv_1): Likewise.
12780 (msp430_extract_mcu_data): Likewise.
12781 (struct t_msp430_mcu_data): Likewise.
12782 * config/msp430/msp430.c (struct machine_function): Remove whitespace
12783 before left square bracket.
12784 (msp430_option_override): Fix indentation.
12785 (msp430_hard_regno_nregs_with_padding): Likewise.
12786 (msp430_initial_elimination_offset): Likewise.
12787 (msp430_special_register_convention_p): Remove whitespace before left
12788 square bracket and after exclamation mark.
12789 (msp430_evaluate_arg): Likewise.
12790 (msp430_callee_copies): Fix indentation.
12791 (msp430_gimplify_va_arg_expr): Likewise.
12792 (msp430_function_arg_advance): Remove whitespace before left square
12793 bracket.
12794 (reg_ok_for_addr): Likewise.
12795 (msp430_preserve_reg_p): Likewise.
12796 (msp430_compute_frame_info): Likewise.
12797 (msp430_asm_output_addr_const_extra): Add space between function name
12798 and open parenthesis.
12799 (has_section_name): Fix indentation.
12800 (msp430_attr): Remove trailing whitespace.
12801 (msp430_section_attr): Likewise.
12802 (msp430_data_attr): Likewise.
12803 (struct msp430_attribute_table): Fix comment and whitespace.
12804 (msp430_start_function): Remove whitespace before left square bracket.
12805 Add space between function name and open parenthesis.
12806 (msp430_select_section): Remove trailing whitespace.
12807 (msp430_section_type_flags): Remove trailing whitespace.
12808 (msp430_unique_section): Remove space before closing parenthesis.
12809 (msp430_output_aligned_decl_common): Change 8 spaces to a tab.
12810 (msp430_builtins): Remove whitespace before left square bracket.
12811 (msp430_init_builtins): Fix indentation.
12812 (msp430_expand_prologue): Remove whitespace before left square bracket.
12813 Remove space before closing parenthesis.
12814 (msp430_expand_epilogue): Remove whitespace before left square bracket.
12815 (msp430_split_movsi): Remove space before closing parenthesis.
12816 (helper_function_name_mappings): Fix indentation.
12817 (msp430_use_f5_series_hwmult): Fix whitespace.
12818 (use_32bit_hwmult): Likewise.
12819 (msp430_no_hwmult): Likewise.
12820 (msp430_output_labelref): Remove whitespace before left square bracket.
12821 (msp430_print_operand_raw): Likewise.
12822 (msp430_print_operand_addr): Likewise.
12823 (msp430_print_operand): Add two spaces after '.' in comment.
12824 Fix trailing whitespace.
12825 (msp430x_extendhisi): Fix indentation.
12826 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Change 8 spaces to
12827 tab.
12828 (PC_REGNUM): Likewise.
12829 (STACK_POINTER_REGNUM): Likewise.
12830 (CC_REGNUM): Likewise.
12831
12832 2019-08-15 Richard Biener <rguenther@suse.de>
12833
12834 PR target/91454
12835 * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): New
12836 helper.
12837 (general_scalar_chain::make_vector_copies): Use it.
12838
12839 2019-08-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
12840
12841 * function.c (assign_parm_setup_reg): Handle misaligned stack arguments.
12842
12843 2019-08-15 Martin Liska <mliska@suse.cz>
12844
12845 * tree-ssa-dce.c (propagate_necessity): We can't reach now
12846 operators with no arguments.
12847 (eliminate_unnecessary_stmts): Likewise here.
12848
12849 2019-08-15 Uroš Bizjak <ubizjak@gmail.com>
12850
12851 * config/i386/i386-features.c (general_scalar_chain::convert_insn)
12852 <case COMPARE>: Revert 2019-08-14 change.
12853 (convertible_comparison_p): Revert 2019-08-14 change. Return false
12854 for (TARGET_64BIT || mode != DImode).
12855
12856 2019-08-15 Aldy Hernandez <aldyh@redhat.com>
12857
12858 * tree-vrp.c (value_range_base::set): Merge in code from
12859 value_range_base::set_and_canonicalize.
12860 Enforce canonicalization at set time.
12861 Normalize [MIN, MAX] into VARYING and ~[MIN, MAX] into UNDEFINED.
12862 (value_range_base::set_undefined): Inline call to set().
12863 (value_range_base::set_varying): Same.
12864 (value_range_base::singleton_p): Handle VR_ANTI_RANGEs.
12865 (vrp_val_max): New argument handle_pointers.
12866 (vrp_val_min): Same.
12867 (ranges_from_anti_range): Same.
12868 (extract_range_into_wide_ints): Use tree argument instead of sign
12869 and precision.
12870 (extract_range_from_multiplicative_op): Take in tree type instead
12871 of precision and sign. Adapt function for canonicalized ranges.
12872 (extract_range_from_binary_expr): Pass type to
12873 extract_range_from_multiplicative_op.
12874 Adapt for canonicalized ranges.
12875 (extract_range_from_unary_expr): Same.
12876 (value_range_base::intersect_helper): Adjust for canonicalized
12877 ranges.
12878 (value_range_base::union_helper): Same.
12879 (value_range_base::normalize_symbolics): New.
12880 * tree-vrp.h (class value_range_base): Remove
12881 set_and_canonicalize.
12882 New prototype for normalize_symbolics.
12883 (class value_range): Remove set_and_canonicalize.
12884 (vrp_val_min): Adjust prototype.
12885 (vrp_val_max): Same.
12886 * vr-values.c
12887 (vr_values::extract_range_for_var_from_comparison_expr): Call set
12888 instead of set_and_canonicalize.
12889
12890 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12891
12892 PR middle-end/91444
12893 * tree-vect-stmts.c (vectorizable_call): Check that the function
12894 is a BUILT_IN_MD function before passing it to
12895 targetm.vectorize.builtin_md_vectorized_function.
12896
12897 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12898
12899 * config/aarch64/aarch64-protos.h (aarch64_sve_mode_p): Declare.
12900 * config/aarch64/aarch64.c (aarch64_sve_mode_p): New function.
12901 (aarch64_select_early_remat_modes): Use it.
12902
12903 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12904
12905 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Return
12906 16 for SVE predicates even if they are fixed-length.
12907
12908 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12909
12910 * config/aarch64/aarch64-sve.md (and<PRED_ALL:mode>3): Make the
12911 operand order match the MOV /Z alias.
12912
12913 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12914
12915 * config/aarch64/aarch64.c (aarch64_output_sve_cnt_immediate): Take
12916 the vector pattern as an aarch64_svpattern argument. Update the
12917 overloaded caller accordingly.
12918 (aarch64_output_sve_scalar_inc_dec): Update call accordingly.
12919 (aarch64_output_sve_vector_inc_dec): Likewise.
12920
12921 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12922
12923 * config/aarch64/aarch64.c (aarch64_add_offset): In the fallback
12924 multiplication case, try to compute VG * (lowest set bit) directly
12925 rather than always basing the multiplication on VG. Use
12926 expand_mult for the multiplication if we can.
12927
12928 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12929
12930 * config/aarch64/aarch64-protos.h
12931 (aarch64_sve_scalar_inc_dec_immediate_p): Declare.
12932 (aarch64_sve_inc_dec_immediate_p): Rename to...
12933 (aarch64_sve_vector_inc_dec_immediate_p): ...this.
12934 (aarch64_output_sve_addvl_addpl): Take a single rtx argument.
12935 (aarch64_output_sve_scalar_inc_dec): Declare.
12936 (aarch64_output_sve_inc_dec_immediate): Rename to...
12937 (aarch64_output_sve_vector_inc_dec): ...this.
12938 * config/aarch64/aarch64.c (aarch64_sve_scalar_inc_dec_immediate_p)
12939 (aarch64_output_sve_scalar_inc_dec): New functions.
12940 (aarch64_output_sve_addvl_addpl): Remove the base and offset
12941 arguments. Only handle true ADDVL and ADDPL instructions;
12942 don't emit an INC or DEC.
12943 (aarch64_sve_inc_dec_immediate_p): Rename to...
12944 (aarch64_sve_vector_inc_dec_immediate_p): ...this.
12945 (aarch64_output_sve_inc_dec_immediate): Rename to...
12946 (aarch64_output_sve_vector_inc_dec): ...this. Update call to
12947 aarch64_sve_vector_inc_dec_immediate_p.
12948 * config/aarch64/predicates.md (aarch64_sve_scalar_inc_dec_immediate)
12949 (aarch64_sve_plus_immediate): New predicates.
12950 (aarch64_pluslong_operand): Accept aarch64_sve_plus_immediate
12951 rather than aarch64_sve_addvl_addpl_immediate.
12952 (aarch64_sve_inc_dec_immediate): Rename to...
12953 (aarch64_sve_vector_inc_dec_immediate): ...this. Update call to
12954 aarch64_sve_vector_inc_dec_immediate_p.
12955 (aarch64_sve_add_operand): Update accordingly.
12956 * config/aarch64/constraints.md (Uai): New constraint.
12957 (vsi): Update call to aarch64_sve_vector_inc_dec_immediate_p.
12958 * config/aarch64/aarch64.md (add<GPI:mode>3): Don't force the second
12959 operand into a register if it satisfies aarch64_sve_plus_immediate.
12960 (*add<GPI:mode>3_aarch64, *add<GPI:mode>3_poly_1): Add an alternative
12961 for Uai. Update calls to aarch64_output_sve_addvl_addpl.
12962 * config/aarch64/aarch64-sve.md (add<mode>3): Call
12963 aarch64_output_sve_vector_inc_dec instead of
12964 aarch64_output_sve_inc_dec_immediate.
12965
12966 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12967
12968 * config/aarch64/iterators.md (UNSPEC_REVB, UNSPEC_REVH)
12969 (UNSPEC_REVW): New constants.
12970 (elem_bits): New mode attribute.
12971 (SVE_INT_UNARY): New int iterator.
12972 (optab): Handle UNSPEC_REV[BHW].
12973 (sve_int_op): New int attribute.
12974 (min_elem_bits): Handle VNx16QI and the predicate modes.
12975 * config/aarch64/aarch64-sve.md (*aarch64_sve_rev64<mode>)
12976 (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Delete.
12977 (@aarch64_pred_<SVE_INT_UNARY:optab><SVE_I:mode>): New pattern.
12978 * config/aarch64/aarch64.c (aarch64_sve_data_mode): New function.
12979 (aarch64_sve_int_mode, aarch64_sve_rev_unspec): Likewise.
12980 (aarch64_split_sve_subreg_move): Use UNSPEC_REV[BHW] instead of
12981 unspecs based on the total width of the reversed data.
12982 (aarch64_evpc_rev_local): Likewise (for SVE only). Use a
12983 reinterpret followed by a subreg on big-endian targets.
12984
12985 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12986 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
12987
12988 * config/aarch64/aarch64-sve.md
12989 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Add /z
12990 alternatives in which one of the inputs is in the same register
12991 as the output.
12992
12993 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12994
12995 * config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_ext)
12996 (*aarch64_sve_ext<mode>): Add MOVPRFX alternatives.
12997
12998 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12999
13000 * config/aarch64/aarch64-sve.md (*sub<SVE_F:mode>3): Remove immediate
13001 FADD and FSUB alternatives. Add a MOVPRFX alternative for FSUBR.
13002
13003 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
13004 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
13005
13006 * config/aarch64/aarch64-sve.md (add<SVE_I:mode>3, sub<SVE_I:mode>3)
13007 (<LOGICAL:optab><SVE_I:mode>3, *add<SVE_F:mode>3, *mul<SVE_F:mode>3)
13008 (*fabd<SVE_F:mode>3): Add more MOVPRFX alternatives.
13009
13010 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
13011 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13012
13013 * config/aarch64/aarch64-sve.md (*v<ASHIFT:optab><SVE_I:mode>3):
13014 Add an alternative that uses reversed shifts.
13015
13016 2019-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13017
13018 * config/aarch64/aarch64-cores.def (cortex-a76): Use neoversen1 tuning
13019 struct.
13020
13021 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
13022
13023 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Add
13024 a commutativity marker.
13025
13026 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
13027 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
13028
13029 * config/aarch64/aarch64-protos.h (aarch64_prepare_sve_int_fma)
13030 (aarch64_prepare_sve_cond_int_fma): Declare.
13031 * config/aarch64/aarch64.c (aarch64_convert_mult_to_shift)
13032 (aarch64_prepare_sve_int_fma): New functions.
13033 (aarch64_prepare_sve_cond_int_fma): Likewise.
13034 * config/aarch64/aarch64-sve.md
13035 (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Add a "@" marker.
13036 (fma<SVE_I:mode>4, cond_fma<SVE_I:mode>, *cond_fma<SVE_I:mode>_2)
13037 (*cond_fma<SVE_I:mode>_4, *cond_fma<SVE_I:mode>_any, fnma<SVE_I:mode>4)
13038 (cond_fnma<SVE_I:mode>, *cond_fnma<SVE_I:mode>_2)
13039 (*cond_fnma<SVE_I:mode>_4, *cond_fnma<SVE_I:mode>_any): New patterns.
13040 (*madd<mode>): Rename to...
13041 (*fma<mode>4): ...this.
13042 (*msub<mode>): Rename to...
13043 (*fnma<mode>4): ...this.
13044
13045 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
13046 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
13047
13048 * config/aarch64/aarch64.c (aarch64_print_vector_float_operand):
13049 Print 2.0 naturally.
13050 (aarch64_sve_float_mul_immediate_p): Return true for 2.0.
13051 * config/aarch64/predicates.md
13052 (aarch64_sve_float_negated_arith_immediate): New predicate,
13053 renamed from aarch64_sve_float_arith_with_sub_immediate.
13054 (aarch64_sve_float_arith_with_sub_immediate): Test for both
13055 positive and negative constants.
13056 (aarch64_sve_float_arith_with_sub_operand): Redefine as a register
13057 or an aarch64_sve_float_arith_with_sub_immediate.
13058 * config/aarch64/constraints.md (vsN): Use
13059 aarch64_sve_float_negated_arith_immediate.
13060 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_I1): New int
13061 iterator.
13062 (sve_pred_fp_rhs2_immediate): New int attribute.
13063 * config/aarch64/aarch64-sve.md
13064 (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>): Use
13065 sve_pred_fp_rhs1_operand and sve_pred_fp_rhs2_operand.
13066 (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_2_const)
13067 (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_any_const)
13068 (*cond_add<SVE_F:mode>_2_const, *cond_add<SVE_F:mode>_any_const)
13069 (*cond_sub<mode>_3_const, *cond_sub<mode>_any_const): New patterns.
13070
13071 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
13072 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
13073
13074 * config/aarch64/aarch64-sve.md (*aarch64_cond_abd<SVE_F:mode>_2)
13075 (*aarch64_cond_abd<SVE_F:mode>_3)
13076 (*aarch64_cond_abd<SVE_F:mode>_any): New patterns.
13077
13078 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
13079 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
13080
13081 * config/aarch64/aarch64-sve.md (*aarch64_cond_<su>abd<mode>_2)
13082 (*aarch64_cond_<su>abd<mode>_any): New patterns.
13083
13084 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
13085 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13086
13087 * internal-fn.def (IFN_COND_SHL, IFN_COND_SHR): New internal functions.
13088 * internal-fn.c (FOR_EACH_CODE_MAPPING): Handle shifts.
13089 * match.pd (UNCOND_BINARY, COND_BINARY): Likewise.
13090 * optabs.def (cond_ashl_optab, cond_ashr_optab, cond_lshr_optab): New
13091 optabs.
13092 * optabs.h (create_convert_operand_from): Expand comment.
13093 * optabs.c (maybe_legitimize_operand): Allow implicit broadcasts
13094 when mapping scalar rtxes to vector operands.
13095 * config/aarch64/iterators.md (SVE_INT_BINARY): Add ashift,
13096 ashiftrt and lshiftrt.
13097 (sve_int_op, sve_int_op_rev, sve_pred_int_rhs2_operand): Handle them.
13098 * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_const)
13099 (*cond_<optab><mode>_any_const): New patterns.
13100
13101 2019-08-15 Martin Liska <mliska@suse.cz>
13102
13103 PR ipa/91438
13104 * cgraph.c (cgraph_node::remove): When setting
13105 n->origin = NULL for all nested functions, reset
13106 also next_nested.
13107
13108 2019-08-15 Martin Liska <mliska@suse.cz>
13109
13110 * cgraph.c (cgraph_node::verify_node): Verify origin, nested
13111 and next_nested.
13112
13113 2019-08-15 Martin Liska <mliska@suse.cz>
13114
13115 PR ipa/91404
13116 * passes.c (order): Remove.
13117 (uid_hash_t): Likewise).
13118 (remove_cgraph_node_from_order): Remove from set
13119 of pointers (cgraph_node *).
13120 (insert_cgraph_node_to_order): New.
13121 (duplicate_cgraph_node_to_order): New.
13122 (do_per_function_toporder): Register all 3 cgraph hooks.
13123 Skip removed_nodes now as we know about all of them.
13124
13125 2019-08-14 Uroš Bizjak <ubizjak@gmail.com>
13126
13127 * config/i386/i386-expand.c (ix86_expand_vector_init_one_nonzero)
13128 <case E_V8QImode>: Use vector_set path for
13129 TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
13130 (ix86_expand_vector_init_one_var) <case E_V8QImode>:
13131 Do not widen for TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
13132
13133 2019-08-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
13134
13135 * builtins.c (expand_builtin_init_descriptor): Set memory alignment.
13136
13137 2019-08-14 Martin Sebor <msebor@redhat.com>
13138
13139 PR tree-optimization/91294
13140 * tree-ssa-strlen.c (handle_store): Avoid treating lower bound of
13141 source length as exact.
13142
13143 2019-08-14 Christophe Lyon <christophe.lyon@linaro.org>
13144
13145 * doc/extend.texi: Add "noinit" attribute documentation.
13146 * doc/sourcebuild.texi: Add noinit effective target documentation.
13147 * varasm.c (default_section_type_flags): Add support for "noinit"
13148 section.
13149 (default_elf_select_section): Add support for "noinit" attribute.
13150 * config/msp430/msp430.c (msp430_attribute_table): Remove
13151 "noinit" entry.
13152
13153 2019-08-14 Richard Biener <rguenther@suse.de>
13154 Uroš Bizjak <ubizjak@gmail.com>
13155
13156 PR target/91154
13157 * config/i386/i386-features.h (scalar_chain::scalar_chain): Add
13158 mode arguments.
13159 (scalar_chain::smode): New member.
13160 (scalar_chain::vmode): Likewise.
13161 (dimode_scalar_chain): Rename to...
13162 (general_scalar_chain): ... this.
13163 (general_scalar_chain::general_scalar_chain): Take mode arguments.
13164 (timode_scalar_chain::timode_scalar_chain): Initialize scalar_chain
13165 base with TImode and V1TImode.
13166 * config/i386/i386-features.c (scalar_chain::scalar_chain): Adjust.
13167 (general_scalar_chain::vector_const_cost): Adjust for SImode
13168 chains.
13169 (general_scalar_chain::compute_convert_gain): Likewise. Add
13170 {S,U}{MIN,MAX} support.
13171 (general_scalar_chain::replace_with_subreg): Use vmode/smode.
13172 (general_scalar_chain::make_vector_copies): Likewise. Handle
13173 non-DImode chains appropriately.
13174 (general_scalar_chain::convert_reg): Likewise.
13175 (general_scalar_chain::convert_op): Likewise.
13176 (general_scalar_chain::convert_insn): Likewise. Add
13177 fatal_insn_not_found if the result is not recognized.
13178 (convertible_comparison_p): Pass in the scalar mode and use that.
13179 (general_scalar_to_vector_candidate_p): Likewise. Rename from
13180 dimode_scalar_to_vector_candidate_p. Add {S,U}{MIN,MAX} support.
13181 (scalar_to_vector_candidate_p): Remove by inlining into single
13182 caller.
13183 (general_remove_non_convertible_regs): Rename from
13184 dimode_remove_non_convertible_regs.
13185 (remove_non_convertible_regs): Remove by inlining into single caller.
13186 (convert_scalars_to_vector): Handle SImode and DImode chains
13187 in addition to TImode chains.
13188 * config/i386/i386.md (<maxmin><MAXMIN_IMODE>3): New expander.
13189 (*<maxmin><MAXMIN_IMODE>3_1): New insn-and-split.
13190 (*<maxmin>di3_doubleword): Likewise.
13191
13192 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13193 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
13194
13195 * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2)
13196 (*cond_bic<mode>_any): New patterns.
13197
13198 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13199
13200 * config/aarch64/aarch64.c (aarch64_print_operand): Allow %e to
13201 take the equivalent mask, as well as a bit count.
13202 * config/aarch64/predicates.md (aarch64_sve_uxtb_immediate)
13203 (aarch64_sve_uxth_immediate, aarch64_sve_uxt_immediate)
13204 (aarch64_sve_pred_and_operand): New predicates.
13205 * config/aarch64/iterators.md (sve_pred_int_rhs2_operand): New
13206 code attribute.
13207 * config/aarch64/aarch64-sve.md
13208 (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Use it.
13209 (*cond_uxt<mode>_2, *cond_uxt<mode>_any): New patterns.
13210
13211 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13212
13213 * config/aarch64/aarch64-sve.md
13214 (*cond_<SVE_COND_FCVTI:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>)
13215 (*cond_<SVE_COND_ICVTF:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>):
13216 New patterns.
13217
13218 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13219 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
13220
13221 * config/aarch64/aarch64-sve.md
13222 (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_2): New pattern.
13223 (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_any): Likewise.
13224
13225 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13226 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
13227
13228 * config/aarch64/aarch64-sve.md
13229 (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_2): New pattern.
13230 (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_any): Likewise.
13231
13232 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13233
13234 * config/aarch64/iterators.md (SVE_COND_FP_ABS_CMP): New iterator.
13235 * config/aarch64/aarch64-sve.md (*aarch64_pred_fac<cmp_op><mode>):
13236 New pattern.
13237
13238 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13239 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
13240
13241 * config/aarch64/aarch64-sve.md (*aarch64_sel_dup<mode>): New pattern.
13242
13243 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13244 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
13245
13246 * config/aarch64/aarch64.c (aarch64_bit_representation): New function.
13247 (aarch64_print_vector_float_operand): Also handle 8-bit floats.
13248 (aarch64_print_operand): Add support for %I.
13249 (aarch64_sve_dup_immediate_p): Handle scalars as well as vectors.
13250 Bitcast floating-point constants to the corresponding integer constant.
13251 (aarch64_float_const_representable_p): Handle vectors as well
13252 as scalars.
13253 (aarch64_expand_sve_vcond): Make sure that the operands are valid
13254 for the new vcond_mask_<mode><vpred> expander.
13255 * config/aarch64/predicates.md (aarch64_sve_dup_immediate): Also
13256 test aarch64_float_const_representable_p.
13257 (aarch64_sve_reg_or_dup_imm): New predicate.
13258 * config/aarch64/aarch64-sve.md (vec_extract<vpred><Vel>): Use
13259 gen_vcond_mask_<mode><vpred> instead of
13260 gen_aarch64_sve_dup<mode>_const.
13261 (vcond_mask_<mode><vpred>): Turn into a define_expand that
13262 accepts aarch64_sve_reg_or_dup_imm and aarch64_simd_reg_or_zero
13263 for operands 1 and 2 respectively. Force operand 2 into a
13264 register if operand 1 is a register. Fold old define_insn...
13265 (aarch64_sve_dup<mode>_const): ...and this define_insn...
13266 (*vcond_mask_<mode><vpred>): ...into this new pattern. Handle
13267 floating-point constants that can be moved as integers. Add
13268 alternatives for MOV /M and FMOV /M.
13269 (vcond<mode><v_int_equiv>, vcondu<mode><v_int_equiv>)
13270 (vcond<mode><v_fp_equiv>): Accept nonmemory_operand for operands
13271 1 and 2 respectively.
13272 * config/aarch64/constraints.md (Ufc): Handle vectors as well
13273 as scalars.
13274 (vss): New constraint.
13275
13276 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13277
13278 * config/aarch64/predicates.md (aarch64_sve_float_maxmin_immediate)
13279 (aarch64_sve_float_maxmin_operand): New predicates.
13280 * config/aarch64/constraints.md (vsB): New constraint.
13281 (vsM): Fix typo.
13282 * config/aarch64/iterators.md (sve_pred_fp_rhs2_operand): Use
13283 aarch64_sve_float_maxmin_operand for UNSPEC_COND_FMAXNM and
13284 UNSPEC_COND_FMINNM.
13285 * config/aarch64/aarch64-sve.md (<maxmin_uns><SVE_F:mode>3):
13286 Use aarch64_sve_float_maxmin_operand for operand 2.
13287 (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Likewise.
13288 Add alternatives for the constant forms.
13289
13290 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13291
13292 * config/aarch64/constraints.md (vsb): New constraint.
13293 (vsm): Generalize description.
13294 * config/aarch64/iterators.md (SVE_INT_BINARY_IMM): New code
13295 iterator.
13296 (sve_imm_con): Handle smax, smin, umax and umin.
13297 (sve_imm_prefix): New code attribute.
13298 * config/aarch64/predicates.md (aarch64_sve_vsb_immediate)
13299 (aarch64_sve_vsb_operand): New predicates.
13300 (aarch64_sve_mul_immediate): Rename to...
13301 (aarch64_sve_vsm_immediate): ...this.
13302 (aarch64_sve_mul_operand): Rename to...
13303 (aarch64_sve_vsm_operand): ...this.
13304 * config/aarch64/aarch64-sve.md (mul<mode>3): Generalize to...
13305 (<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...this.
13306 (*mul<mode>3, *post_ra_mul<mode>3): Generalize to...
13307 (*<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3)
13308 (*post_ra_<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...these and
13309 add movprfx support for the immediate alternatives.
13310 (<su><maxmin><mode>3, *<su><maxmin><mode>3): Delete in favor
13311 of the above.
13312 (*<SVE_INT_BINARY_SD:optab><SVE_SDI:mode>3): Fix incorrect predicate
13313 for operand 3.
13314
13315 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13316
13317 * config/aarch64/predicates.md (aarch64_simd_imm_one): New predicate.
13318 * config/aarch64/aarch64-sve.md (*cnot<mode>): New pattern.
13319 (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
13320
13321 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13322
13323 * config/aarch64/iterators.md (SVE_INT_UNARY): Add clrsb and clz.
13324 (optab, sve_int_op): Handle them.
13325 * config/aarch64/aarch64-sve.md: Expand comment.
13326
13327 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13328
13329 * config/aarch64/predicates.md (const_1_to_3_operand): New predicate.
13330 * config/aarch64/aarch64-sve.md (*aarch64_adr_uxtw)
13331 (*aarch64_adr<mode>_shift, *aarch64_adr_shift_uxtw): New patterns.
13332
13333 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13334
13335 * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_eor)
13336 (aarch64_expand_sve_const_pred_trn): New functions.
13337 (aarch64_expand_sve_const_pred_1): Add a recurse_p parameter and
13338 use the above functions when the parameter is true.
13339 (aarch64_expand_sve_const_pred): Update call accordingly.
13340 * config/aarch64/aarch64-sve.md (*aarch64_sve_<perm_insn><mode>):
13341 Rename to...
13342 (@aarch64_sve_<perm_insn><mode>): ...this.
13343
13344 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13345
13346 * config/aarch64/aarch64-protos.h (aarch64_sve_same_pred_for_ptest_p):
13347 Declare.
13348 * config/aarch64/aarch64.c (aarch64_sve_same_pred_for_ptest_p)
13349 (aarch64_sve_emit_int_cmp): New functions.
13350 (aarch64_convert_sve_data_to_pred): Use aarch64_sve_emit_int_cmp.
13351 (aarch64_sve_cmp_operand_p, aarch64_emit_sve_ptrue_op_cc): Delete.
13352 (aarch64_expand_sve_vec_cmp_int): Use aarch64_sve_emit_int_cmp.
13353 * config/aarch64/aarch64.md (UNSPEC_MERGE_PTRUE): Delete.
13354 (UNSPEC_PRED_Z): New unspec.
13355 (set_clobber_cc_nzc): Delete.
13356 * config/aarch64/aarch64-sve.md: Add a block comment about
13357 UNSPEC_PRED_Z.
13358 (*cmp<SVE_INT_CMP:cmp_op><mode>): Rename to...
13359 (@aarch64_pred_cmp<SVE_INT_CMP:cmp_op><mode>): ...this, replacing
13360 the old pattern with that name. Use UNSPEC_PRED_Z instead of
13361 UNSPEC_MERGE_PTRUE.
13362 (*cmp<SVE_INT_CMP:cmp_op><mode>_cc): Use UNSPEC_PRED_Z instead of
13363 UNSPEC_MERGE_PTRUE. Use aarch64_sve_same_pred_for_ptest_p to
13364 check for compatible predicates.
13365 (*cmp<cmp_op><SVE_INT_CMP:mode>_ptest): Likewise.
13366 (*cmp<cmp_op><mode>_and): Match a known-ptrue UNSPEC_PRED_Z instead
13367 of UNSPEC_MERGE_PTRUE. Split into the new form of predicated
13368 comparisons above.
13369
13370 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13371
13372 * config/aarch64/aarch64.md (UNSPEC_PRED_X): New unspec.
13373 * config/aarch64/aarch64-sve.md: Add a section describing it.
13374 (@aarch64_pred_mov<mode>, @aarch64_pred_mov<mode>)
13375 (<SVE_INT_UNARY:optab><mode>2, *<SVE_INT_UNARY:optab><mode>2)
13376 (aarch64_<su>abd<mode>_3, mul<SVE_I:mode>3, *mul<SVE_I:mode>3)
13377 (<su>mul<mode>3_highpart, *<su>mul<mode>3_highpart)
13378 (<SVE_INT_BINARY:optab><mode>3, *<SVE_INT_BINARY:optab><mode>3)
13379 (*bic<mode>3, v<ASHIFT:optab><mode>3, *v<ASHIFT:optab><mode>3)
13380 (<su><maxmin><mode>3, *<su><maxmin><mode>3, *madd<SVE_I:mode>)
13381 (*msub<SVE_I:mode>3, *aarch64_sve_rev64<mode>)
13382 (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Use
13383 UNSPEC_PRED_X instead of UNSPEC_MERGE_PTRUE.
13384 * config/aarch64/aarch64-sve2.md (<u>avg<mode>3_floor)
13385 (<u>avg<mode>3_ceil, *<sur>h<addsub><mode>): Likewise.
13386 * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move)
13387 (aarch64_evpc_rev_local): Update accordingly.
13388
13389 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13390
13391 * config/aarch64/iterators.md (VNx4SI_ONLY, VNx2DF_ONLY): New mode
13392 iterators.
13393 (SVE_BHSI, SVE_SDI): Tweak comment.
13394 (SVE_HSDI): Likewise. Fix definition.
13395 (SVE_SDF): New mode iterator.
13396 (elem_bits): New mode attribute.
13397 (SVE_COND_FCVT): New int iterator.
13398 * config/aarch64/aarch64-sve.md
13399 (*<SVE_COND_ICVTF:optab>v16hsf<SVE_HSDI:mode>2)
13400 (*<SVE_COND_ICVTF:optab>vnx4sf<SVE_SDI:mode>2)
13401 (*<SVE_COND_ICVTF:optab>vnx2df<SVE_SDI:mode>2): Merge into...
13402 (*aarch64_sve_<SVE_COND_ICVTF:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>)
13403 (*aarch64_sve_<SVE_COND_ICVTF:optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
13404 ...these new patterns.
13405 (*<SVE_COND_FCVTI:optab><SVE_HSDI:mode>vnx8hf2)
13406 (*<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx4sf2)
13407 (aarch64_sve_<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx2df2):
13408 Merge into...
13409 (*aarch64_sve_<SVE_COND_FCVTI:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>)
13410 (aarch64_sve_<SVE_COND_FCVTI:optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>):
13411 ...these new patterns.
13412 (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Update accordingly.
13413 (*trunc<Vwide><SVE_SDF:mode>2): Replace with...
13414 (*aarch64_sve_<SVE_COND_FCVT:optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>):
13415 ...this new pattern.
13416 (aarch64_sve_extend<SVE_HSDF:mode><Vwide>2): Replace with...
13417 (aarch64_sve_<SVE_COND_FCVT:optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>):
13418 ...this new pattern.
13419 (vec_unpacks_<perm_hilo>_<mode>): Update accordingly.
13420
13421 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13422
13423 * config/aarch64/aarch64.md (UNSPEC_FLOAT_CONVERT): Delete.
13424 * config/aarch64/iterators.md (UNSPEC_COND_FCVT, UNSPEC_COND_FCVTZS)
13425 (UNSPEC_COND_FCVTZU, UNSPEC_COND_SCVTF, UNSPEC_COND_UCVTF): New
13426 unspecs.
13427 (optab, su): Handle them.
13428 (SVE_COND_FCVTI, SVE_COND_ICVTF): New int iterators.
13429 * config/aarch64/aarch64-sve.md
13430 (<fix_trunc_optab><SVE_F:mode><v_int_equiv>2): Replace with...
13431 (<SVE_COND_FCVTI:optab><SVE_F:mode><v_int_equiv>2): ...this.
13432 (*<fix_trunc_optab>v16hsf<:SVE_HSDImode>2): Replace with...
13433 (*<SVE_COND_FCVTI:optab>v16hsf<SVE_F:mode>2): ...this.
13434 (*<fix_trunc_optab>vnx4sf<SVE_SDI:mode>2): Replace with...
13435 (*<SVE_COND_FCVTI:optab>vnx4sf<SVE_SDI:mode>2): ...this.
13436 (*<fix_trunc_optab>vnx2df<SVE_SDI:mode>2): Replace with...
13437 (*<SVE_COND_FCVTI:optab>vnx2df<SVE_SDI:mode>2): ...this.
13438 (vec_pack_<su>fix_trunc_vnx2df): Use SVE_COND_FCVTI instead of
13439 FIXUORS.
13440 (<FLOATUORS:optab><v_int_equiv><SVE_F:mode>2): Replace with...
13441 (<SVE_COND_ICVTF:optab><v_int_equiv><SVE_F:mode>2): ...this.
13442 (*<FLOATUORS:optab><SVE_HSDI:mode>vnx8hf2): Replace with...
13443 (*<SVE_COND_ICVTF:optab><SVE_HSDI:mode>vnx8hf2): ...this.
13444 (*<FLOATUORS:optab><SVE_SDI:mode>vnx4sf2): Replace with...
13445 (*<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx4sf2): ...this.
13446 (aarch64_sve_<FLOATUORS:optab><SVE_SDI:mode>vnx2df2): Replace with...
13447 (aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2): ...this.
13448 (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Pass a GP strictness
13449 operand to aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2.
13450 (vec_pack_trunc_<SVE_HSF:Vwide>, *trunc<Vwide><SVE_HSF:mode>2)
13451 (aarch64_sve_extend<mode><Vwide>2): Use UNSPEC_COND_FCVT instead
13452 of UNSPEC_FLOAT_CONVERT.
13453 (vec_unpacks_<perm_hilo>_<mode>): Pass a GP strictness operand to
13454 aarch64_sve_extend<mode><Vwide>2.
13455
13456 2019-08-14 Richard Biener <rguenther@suse.de>
13457
13458 PR target/91154
13459 * config/i386/i386-features.c
13460 (dimode_scalar_chain::compute_convert_gain): Compute and dump
13461 individual instruction gain. Fix reg-reg copy GRP cost. Use
13462 ix86_cost->sse_op for vector instruction costs.
13463
13464 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13465
13466 * config/aarch64/iterators.md (UNSPEC_COND_FCMUO): New unspec.
13467 (cmp_op): Handle it.
13468 (SVE_COND_FP_CMP): Rename to...
13469 (SVE_COND_FP_CMP_I0): ...this.
13470 (SVE_FP_CMP): Remove.
13471 * config/aarch64/aarch64-sve.md
13472 (*fcm<SVE_FP_CMP:cmp_op><SVE_F:mode>): Replace with...
13473 (*fcm<SVE_COND_FP_CMP_I0:cmp_op><SVE_F:mode>): ...this new pattern,
13474 using unspecs to represent the comparison.
13475 (*fcmuo<SVE_F:mode>): Use UNSPEC_COND_FCMUO.
13476 (*fcm<cmp_op><mode>_and_combine, *fcmuo<mode>_and_combine): Update
13477 accordingly.
13478 * config/aarch64/aarch64.c (aarch64_emit_sve_ptrue_op): Delete.
13479 (aarch64_unspec_cond_code): Move after integer code. Handle
13480 UNORDERED.
13481 (aarch64_emit_sve_predicated_cond): Replace with...
13482 (aarch64_emit_sve_fp_cond): ...this new function.
13483 (aarch64_emit_sve_or_conds): Replace with...
13484 (aarch64_emit_sve_or_fp_conds): ...this new function.
13485 (aarch64_emit_sve_inverted_cond): Replace with...
13486 (aarch64_emit_sve_invert_fp_cond): ...this new function.
13487 (aarch64_expand_sve_vec_cmp_float): Update accordingly.
13488
13489 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13490
13491 * config/aarch64/iterators.md (SVE_HSD): New mode iterator.
13492 (V_FP_EQUIV, v_fp_equiv): Handle VNx8HI and VNx8HF.
13493 * config/aarch64/aarch64-sve.md (vcond<mode><v_fp_equiv>): Use
13494 SVE_HSD instead of SVE_SD.
13495
13496 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13497 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
13498
13499 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_REG): New int
13500 iterator.
13501 (sve_pred_fp_rhs1_operand, sve_pred_fp_rhs1_operand): New int
13502 attributes.
13503 * config/aarch64/aarch64-sve.md (add<SVE_F:mode>3, sub<SVE_F:mode>3)
13504 (mul<SVE_F:mode>3, div<SVE_F:mode>3)
13505 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Merge into...
13506 (<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this new expander.
13507 (*div<SVE_F:mode>3): Generalize to...
13508 (*<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this.
13509
13510 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13511 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
13512
13513 * config/aarch64/aarch64.md (SVE_RELAXED_GP, SVE_STRICT_GP): New
13514 constants.
13515 * config/aarch64/predicates.md (aarch64_sve_gp_strictness): New
13516 predicate.
13517 * config/aarch64/aarch64-protos.h (aarch64_sve_pred_dominates_p):
13518 Declare.
13519 * config/aarch64/aarch64.c (aarch64_sve_pred_dominates_p): New
13520 function.
13521 * config/aarch64/aarch64-sve.md: Add a block comment about the
13522 handling of predicated FP operations.
13523 (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2, add<SVE_F:mode>3)
13524 (sub<SVE_F:mode>3, mul<SVE_F:mode>3, div<SVE_F:mode>3)
13525 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3)
13526 (<SVE_COND_FP_MAXMIN_PUBLIC:maxmin_uns><SVE_F:mode>3)
13527 (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): Add an SVE_RELAXED_GP
13528 operand.
13529 (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>)
13530 (cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>): Add an SVE_STRICT_GP
13531 operand.
13532 (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2)
13533 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_2)
13534 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_3)
13535 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_any)
13536 (*fabd<SVE_F:mode>3, *div<SVE_F:mode>3)
13537 (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3)
13538 (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4)
13539 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_2)
13540 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_4)
13541 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Match the
13542 strictness operands. Use aarch64_sve_pred_dominates_p to check
13543 whether the predicate on the conditional operation is suitable
13544 for merging. Split patterns into the canonical equal-predicate form.
13545 (*add<SVE_F:mode>3, *sub<SVE_F:mode>3, *mul<SVE_F:mode>3): Likewise.
13546 Restrict the unpredicated alternatives to SVE_RELAXED_GP.
13547
13548 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13549 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
13550
13551 * config/aarch64/aarch64-sve.md (add<mode>3, *add<mode>3)
13552 (sub<mode>3, *sub<mode>3, *fabd<mode>3, mul<mode>3, *mul<mode>3)
13553 (div<mode>3, *div<mode>3): Use SVE_COND_FP_* unspecs instead of
13554 rtx codes.
13555 (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_3)
13556 (*cond_<optab><mode>_any): Add the predicate to the SVE_COND_FP_*
13557 unspecs.
13558
13559 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13560 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
13561
13562 * config/aarch64/aarch64-sve.md (bic<mode>3): Rename to...
13563 (*bic<SVE_I:mode>3): ...this. Match the form that an SVE inverse
13564 actually has, rather than relying on REG_EQUAL notes.
13565 Make the insn operand order match the SVE operand order.
13566 (*<nlogical><PRED_ALL:mode>3): Make the insn operand order match
13567 the SVE operand order.
13568
13569 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13570
13571 * config/aarch64/aarch64.c (aarch64_target_reg): New function.
13572 (aarch64_emit_set_immediate): Likewise.
13573 (aarch64_ptrue_reg): Build a VNx16BI constant and then bitcast it.
13574 (aarch64_pfalse_reg): Likewise.
13575 (aarch64_convert_sve_data_to_pred): New function.
13576 (aarch64_sve_move_pred_via_while): Take an optional target register
13577 and the required register mode.
13578 (aarch64_expand_sve_const_pred_1): New function.
13579 (aarch64_expand_sve_const_pred): Likewise.
13580 (aarch64_expand_mov_immediate): Build an all-true predicate
13581 if the significant bits of the immediate are all true. Use
13582 aarch64_expand_sve_const_pred for all compile-time predicate constants.
13583 (aarch64_mov_operand_p): Force predicate constants to be VNx16BI
13584 before register allocation.
13585 * config/aarch64/aarch64-sve.md (*vec_duplicate<mode>_reg): Use
13586 a VNx16BI PTRUE when splitting the memory alternative.
13587 (vec_duplicate<mode>): Update accordingly.
13588 (*pred_cmp<cmp_op><mode>): Rename to...
13589 (@aarch64_pred_cmp<cmp_op><mode>): ...this.
13590
13591 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13592
13593 * config/aarch64/aarch64-protos.h (aarch64_ptrue_all): Declare.
13594 * config/aarch64/aarch64.c (aarch64_ptrue_all): New function.
13595 * config/aarch64/aarch64.md (UNSPEC_PTEST_PTRUE): Delete.
13596 (UNSPEC_PTEST): New unspec.
13597 (SVE_MAYBE_NOT_PTRUE, SVE_KNOWN_PTRUE): New constants.
13598 * config/aarch64/iterators.md (data_bytes): New mode attribute.
13599 * config/aarch64/predicates.md (aarch64_sve_ptrue_flag): New predicate.
13600 * config/aarch64/aarch64-sve.md: Add a new section describing the
13601 handling of UNSPEC_PTEST.
13602 (pred_<LOGICAL:optab><PRED_ALL:mode>3): Rename to...
13603 (@aarch64_pred_<LOGICAL:optab><PRED_ALL:mode>_z): ...this.
13604 (ptest_ptrue<mode>): Replace with...
13605 (aarch64_ptest<mode>): ...this new pattern.
13606 (cbranch<mode>4): Update after above changes.
13607 (*<LOGICAL:optab><PRED_ALL:mode>3_cc): Use UNSPEC_PTEST instead of
13608 UNSPEC_PTEST_PTRUE.
13609 (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_cc): Likewise.
13610 (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_ptest): Likewise.
13611 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): Likewise.
13612
13613 2019-08-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
13614
13615 PR lto/91287
13616 * builtins.c (builtin_with_linkage_p): New function.
13617 * builtins.h (builtin_with_linkage_p): New function.
13618 * symtab.c (write_symbol): Remove redundant assert.
13619 * lto-streamer-out.c (symtab_node::output_to_lto_symbol_table_p):
13620 Remove FIXME and use builtin_with_linkage_p.
13621
13622 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
13623
13624 PR middle-end/91421
13625 * tree-core.h (function_decl::function_code): Change type to
13626 unsigned int.
13627 * tree.h (DECL_FUNCTION_CODE): Rename old definition to...
13628 (DECL_UNCHECKED_FUNCTION_CODE): ...this.
13629 (DECL_BUILT_IN_CLASS): Make an rvalue macro only.
13630 (DECL_FUNCTION_CODE): New function. Assert that the built-in class
13631 is BUILT_IN_NORMAL.
13632 (DECL_MD_FUNCTION_CODE, DECL_FE_FUNCTION_CODE): New functions.
13633 (set_decl_built_in_function, copy_decl_built_in_function): Likewise.
13634 (fndecl_built_in_p): Change the type of the "name" argument to
13635 unsigned int.
13636 * builtins.c (expand_builtin): Move DECL_FUNCTION_CODE use
13637 after check for DECL_BUILT_IN_CLASS.
13638 * cgraphclones.c (build_function_decl_skip_args): Use
13639 set_decl_built_in_function.
13640 * ipa-param-manipulation.c (ipa_modify_formal_parameters): Likewise.
13641 * ipa-split.c (split_function): Likewise.
13642 * langhooks.c (add_builtin_function_common): Likewise.
13643 * omp-simd-clone.c (simd_clone_create): Likewise.
13644 * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise.
13645 * config/darwin.c (darwin_init_cfstring_builtins): Likewise.
13646 (darwin_fold_builtin): Use DECL_MD_FUNCTION_CODE instead of
13647 DECL_FUNCTION_CODE.
13648 * fold-const.c (operand_equal_p): Compare DECL_UNCHECKED_FUNCTION_CODE
13649 instead of DECL_FUNCTION_CODE.
13650 * lto-streamer-out.c (hash_tree): Use DECL_UNCHECKED_FUNCTION_CODE
13651 instead of DECL_FUNCTION_CODE.
13652 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise.
13653 * print-tree.c (print_node): Use DECL_MD_FUNCTION_CODE when
13654 printing DECL_BUILT_IN_MD. Handle DECL_BUILT_IN_FRONTEND.
13655 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin)
13656 (aarch64_fold_builtin, aarch64_gimple_fold_builtin): Use
13657 DECL_MD_FUNCTION_CODE instead of DECL_FUNCTION_CODE.
13658 * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise.
13659 * config/alpha/alpha.c (alpha_expand_builtin, alpha_fold_builtin):
13660 (alpha_gimple_fold_builtin): Likewise.
13661 * config/arc/arc.c (arc_expand_builtin): Likewise.
13662 * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
13663 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
13664 * config/avr/avr.c (avr_expand_builtin, avr_fold_builtin): Likewise.
13665 * config/bfin/bfin.c (bfin_expand_builtin): Likewise.
13666 * config/c6x/c6x.c (c6x_expand_builtin): Likewise.
13667 * config/frv/frv.c (frv_expand_builtin): Likewise.
13668 * config/gcn/gcn.c (gcn_expand_builtin_1): Likewise.
13669 (gcn_expand_builtin): Likewise.
13670 * config/i386/i386-builtins.c (ix86_builtin_reciprocal): Likewise.
13671 (fold_builtin_cpu): Likewise.
13672 * config/i386/i386-expand.c (ix86_expand_builtin): Likewise.
13673 * config/i386/i386.c (ix86_fold_builtin): Likewise.
13674 (ix86_gimple_fold_builtin): Likewise.
13675 * config/ia64/ia64.c (ia64_fold_builtin): Likewise.
13676 (ia64_expand_builtin): Likewise.
13677 * config/iq2000/iq2000.c (iq2000_expand_builtin): Likewise.
13678 * config/mips/mips.c (mips_expand_builtin): Likewise.
13679 * config/msp430/msp430.c (msp430_expand_builtin): Likewise.
13680 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
13681 * config/nios2/nios2.c (nios2_expand_builtin): Likewise.
13682 * config/nvptx/nvptx.c (nvptx_expand_builtin): Likewise.
13683 * config/pa/pa.c (pa_expand_builtin): Likewise.
13684 * config/pru/pru.c (pru_expand_builtin): Likewise.
13685 * config/riscv/riscv-builtins.c (riscv_expand_builtin): Likewise.
13686 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13687 Likewise.
13688 * config/rs6000/rs6000-call.c (htm_expand_builtin): Likewise.
13689 (altivec_expand_dst_builtin, altivec_expand_builtin): Likewise.
13690 (rs6000_gimple_fold_builtin, rs6000_expand_builtin): Likewise.
13691 * config/rs6000/rs6000.c (rs6000_builtin_md_vectorized_function)
13692 (rs6000_builtin_reciprocal): Likewise.
13693 * config/rx/rx.c (rx_expand_builtin): Likewise.
13694 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
13695 * config/s390/s390.c (s390_expand_builtin): Likewise.
13696 * config/sh/sh.c (sh_expand_builtin): Likewise.
13697 * config/sparc/sparc.c (sparc_expand_builtin): Likewise.
13698 (sparc_fold_builtin): Likewise.
13699 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
13700 * config/spu/spu.c (spu_expand_builtin): Likewise.
13701 * config/stormy16/stormy16.c (xstormy16_expand_builtin): Likewise.
13702 * config/tilegx/tilegx.c (tilegx_expand_builtin): Likewise.
13703 * config/tilepro/tilepro.c (tilepro_expand_builtin): Likewise.
13704 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
13705 (xtensa_expand_builtin): Likewise.
13706
13707 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
13708
13709 PR middle-end/91421
13710 * attribs.c (decl_attributes): Check the DECL_BUILT_IN_CLASS
13711 before the DECL_FUNCTION_CODE.
13712 * calls.c (maybe_warn_alloc_args_overflow): Use fndecl_built_in_p
13713 to check for a BUILT_IN_ALLOCA call.
13714 * ipa-cp.c (ipa_get_indirect_edge_target_1): Likewise for
13715 BUILT_IN_UNREACHABLE. Don't check for a FUNCTION_TYPE.
13716 * ipa-devirt.c (possible_polymorphic_call_target_p): Likewise.
13717 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
13718 * gimple-ssa-isolate-paths.c (is_addr_local): Check specifically
13719 for BUILT_IN_NORMAL functions.
13720 * trans-mem.c (expand_block_edges): Use gimple_call_builtin_p to
13721 test for BUILT_IN_TM_ABORT.
13722 * tree-ssa-ccp.c (optimize_stack_restore): Use fndecl_built_in_p
13723 to check for a BUILT_IN_STACK_RESTORE call.
13724 (optimize_stdarg_builtin): Remove redundant check for GIMPLE_CALL.
13725 * tree-ssa-threadedge.c
13726 (record_temporary_equivalences_from_stmts_at_dest): Check for a
13727 BUILT_IN_NORMAL decl before checking its DECL_FUNCTION_CODE.
13728 * tree-vect-patterns.c (vect_recog_pow_pattern): Use a positive
13729 test for a BUILT_IN_NORMAL call instead of a negative test for
13730 an internal function call.
13731
13732 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
13733
13734 * tree.h (build_vector_a_then_b): Declare.
13735 * tree.c (build_vector_a_then_b): New function.
13736 * fold-const-call.c (fold_while_ult): Likewise.
13737 (fold_const_call): Use it to handle IFN_WHILE_ULT.
13738 * config/aarch64/aarch64-protos.h (AARCH64_FOR_SVPATTERN): New macro.
13739 (aarch64_svpattern): New enum.
13740 * config/aarch64/aarch64-sve.md (mov<PRED_ALL:mode>): Pass
13741 constants through aarch64_expand_mov_immediate.
13742 (*aarch64_sve_mov<PRED_ALL:mode>): Use aarch64_mov_operand rather
13743 than general_operand as the predicate for operand 1.
13744 (while_ult<GPI:mode><PRED_ALL:mode>): Add a '@' marker.
13745 * config/aarch64/aarch64.c (simd_immediate_info::PTRUE): New
13746 insn_type.
13747 (simd_immediate_info::simd_immediate_info): New overload that
13748 takes a scalar_int_mode and an svpattern.
13749 (simd_immediate_info::u): Add a "pattern" field.
13750 (svpattern_token): New function.
13751 (aarch64_get_sve_pred_bits, aarch64_widest_sve_pred_elt_size)
13752 (aarch64_partial_ptrue_length, aarch64_svpattern_for_vl)
13753 (aarch64_sve_move_pred_via_while): New functions.
13754 (aarch64_expand_mov_immediate): Try using
13755 aarch64_sve_move_pred_via_while for predicates that contain N ones
13756 followed by M zeros but that do not correspond to a VLnnn pattern.
13757 (aarch64_sve_pred_valid_immediate): New function.
13758 (aarch64_simd_valid_immediate): Use it instead of dealing directly
13759 with PTRUE and PFALSE.
13760 (aarch64_output_sve_mov_immediate): Handle new simd_immediate_info
13761 forms.
13762
13763 2019-08-13 Iain Sandoe <iain@sandoe.co.uk>
13764
13765 * config/darwin.c (machopic_indirect_call_target): Rename symbol stub
13766 flag.
13767 (darwin_override_options): Likewise.
13768 * config/darwin.h: Likewise.
13769 * config/darwin.opt: Likewise.
13770 * config/i386/i386.c (output_pic_addr_const): Likewise.
13771 * config/rs6000/darwin.h: Likewise.
13772 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise.
13773 * config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ...
13774 ... this TARGET_MACHO_SYMBOL_STUBS.
13775 (FUNCTION_PROFILER):Likewise.
13776 * config/i386/i386.h: Likewise.
13777
13778 2019-08-13 Uroš Bizjak <ubizjak@gmail.com>
13779
13780 * config/i386/i386-expand.c (ix86_expand_vector_extract)
13781 <case E_V2SImode>: Use vec_extr path for
13782 TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
13783 <case E_V8QImode>: Ditto.
13784 * config/i386/mmx.md (*mmx_pextrw_zext): Rename from mmx_pextrw.
13785 Use SWI48 mode iterator. Use %k to output operand 0.
13786 (*mmx_pextrw): New insn pattern.
13787 (*mmx_pextrb): Ditto.
13788 (*mmx_pextrb_zext): Ditto.
13789
13790 2019-08-13 Jonathan Wakely <jwakely@redhat.com>
13791
13792 * target.def (libc_has_function, libc_has_fast_function): Improve
13793 documentation strings.
13794 * doc/tm.texi: Regenerate.
13795
13796 2019-08-13 Caroline Tice <cmtice@google.com>
13797
13798 PR other/91396
13799 * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Only add the
13800 vtv_end.o or vtv_end_preinit.o files if !static.
13801
13802 2019-08-13 Olivier Hainque <hainque@adacore.com>
13803
13804 * rtl.h (tablejump_casesi_pattern): Move declaration to proper spot.
13805
13806 2019-08-13 Olivier Hainque <hainque@adacore.com>
13807
13808 * rtlanal.c (tablejump_casesi_pattern): New function, to
13809 determine if a tablejump insn is a casesi dispatcher. Extracted
13810 from patch_jump_insn.
13811 * rtl.h (tablejump_casesi_pattern): Declare.
13812 * cfgrtl.c (patch_jump_insn): Use it.
13813 * dwarf2cfi.c (create_trace_edges): Use it.
13814
13815 2019-08-13 Wilco Dijkstra <wdijkstr@arm.com>
13816
13817 PR target/81800
13818 * config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF
13819 operand is larger than a long int.
13820
13821 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
13822
13823 * machmode.h (opt_mode::else_mode): New function.
13824 (opt_mode::else_blk): Use it.
13825 * config/aarch64/aarch64-protos.h (aarch64_vq_mode): Declare.
13826 (aarch64_full_sve_mode, aarch64_sve_ld1rq_operand_p): Likewise.
13827 (aarch64_gen_stepped_int_parallel): Likewise.
13828 (aarch64_stepped_int_parallel_p): Likewise.
13829 (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate
13830 argument.
13831 * config/aarch64/aarch64.c
13832 (aarch64_expand_sve_widened_duplicate): Delete.
13833 (aarch64_expand_sve_dupq, aarch64_expand_sve_ld1rq): New functions.
13834 (aarch64_expand_sve_const_vector): Rewrite to handle more cases.
13835 (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate
13836 argument. Use early returns in the !CONST_INT_P handling.
13837 Pass all SVE data vectors to aarch64_expand_sve_const_vector rather
13838 than handling some inline.
13839 (aarch64_full_sve_mode, aarch64_vq_mode): New functions, split out
13840 from...
13841 (aarch64_simd_container_mode): ...here.
13842 (aarch64_gen_stepped_int_parallel, aarch64_stepped_int_parallel_p)
13843 (aarch64_sve_ld1rq_operand_p): New functions.
13844 * config/aarch64/predicates.md (descending_int_parallel)
13845 (aarch64_sve_ld1rq_operand): New predicates.
13846 * config/aarch64/constraints.md (UtQ): New constraint.
13847 * config/aarch64/aarch64.md (UNSPEC_REINTERPRET): New unspec.
13848 * config/aarch64/aarch64-sve.md (mov<SVE_ALL:mode>): Remove the
13849 gen_vec_duplicate from call to aarch64_expand_mov_immediate.
13850 (@aarch64_sve_reinterpret<mode>): New expander.
13851 (*aarch64_sve_reinterpret<mode>): New pattern.
13852 (@aarch64_vec_duplicate_vq<mode>_le): New pattern.
13853 (@aarch64_vec_duplicate_vq<mode>_be): Likewise.
13854 (*sve_ld1rq<Vesize>): Replace with...
13855 (@aarch64_sve_ld1rq<mode>): ...this new pattern.
13856
13857 2019-08-13 Wilco Dijkstra <wdijkstr@arm.com>
13858
13859 * config/aarch64/aarch64.c (generic_tunings): Set function alignment to
13860 16:12.
13861
13862 2019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
13863
13864 * config/msp430/driver-msp430.c (msp430_set_driver_var): New.
13865 * config/msp430/msp430-devices.c (canonicalize_path_dirsep): New.
13866 (msp430_check_path_for_devices): New.
13867 (parse_devices_csv_1): New.
13868 (parse_devices_csv): New.
13869 (msp430_extract_mcu_data): Try to find devices.csv and search for the
13870 MCU data in devices.csv before using the hard-coded data.
13871 Warn if devices.csv isn't found and the MCU wasn't found in the
13872 hard-coded data either.
13873 * config/msp430/msp430.h (DRIVER_SELF_SPECS): Call
13874 msp430_set_driver_var for -mno-warn-devices-csv and -mdevices-csv-loc.
13875 Search for devices.csv on -I and -L paths.
13876 (EXTRA_SPEC_FUNCTIONS): Add msp430_check_path_for_devices and
13877 msp430_set_driver_var.
13878 * config/msp430/msp430.opt: Add -mwarn-devices-csv and
13879 -mdevices-csv-loc=.
13880 * doc/invoke.texi (-mmcu): Document that -I and -L paths are
13881 searched for devices.csv.
13882 (mwarn-devices-csv): Document option.
13883
13884 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
13885
13886 * config/aarch64/aarch64-protos.h (aarch64_output_ptrue): Delete.
13887 * config/aarch64/aarch64-sve.md (*aarch64_sve_mov<PRED_ALL:mode>):
13888 Use a single Dn alternative instead of separate Dz and Dm
13889 alternatives. Use aarch64_output_sve_move_immediate.
13890 * config/aarch64/aarch64.c (aarch64_sve_element_int_mode): New
13891 function.
13892 (aarch64_simd_valid_immediate): Fill in the simd_immediate_info
13893 for predicates too.
13894 (aarch64_output_sve_mov_immediate): Handle predicate modes.
13895 (aarch64_output_ptrue): Delete.
13896
13897 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
13898
13899 * config/aarch64/aarch64.c (simd_immediate_info::insn_type): Add
13900 INDEX.
13901 (simd_immediate_info::value, simd_immediate_info::step)
13902 (simd_immediate_info::modifier, simd_immediate_info::shift): Replace
13903 with...
13904 (simd_immediate_info::u): ...this new union.
13905 (simd_immediate_info::simd_immediate_info): Update accordingly.
13906 (aarch64_output_simd_mov_immediate): Likewise.
13907 (aarch64_output_sve_mov_immediate): Likewise.
13908
13909 2019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
13910
13911 * config.gcc (msp430*-*-*): Add msp430-devices.o to extra_objs and
13912 extra_gcc_objs.
13913 * config/msp430/driver-msp430.c: Remove msp430_mcu_data.
13914 (msp430_select_cpu): New spec function.
13915 (msp430_select_hwmult_lib): Use msp430_extract_mcu_data to extract
13916 MCU data.
13917 * config/msp430/msp430-devices.c: New file.
13918 * config/msp430/msp430-devices.h: New file.
13919 * config/msp430/msp430.c: Remove msp430_mcu_data.
13920 (msp430_option_override): Use msp430_extract_mcu_data to extract
13921 MCU data.
13922 (msp430_use_f5_series_hwmult): Likewise.
13923 (use_32bit_hwmult): Likewise.
13924 (msp430_no_hwmult): Likewise.
13925 * config/msp430/msp430.h (ASM_SPEC): Don't pass -mmcu to the
13926 assembler.
13927 (DRIVER_SELF_SPECS): Call msp430_select_cpu if -mmcu is used without
13928 and -mcpu option.
13929 (EXTRA_SPEC_FUNCTIONS): Add msp430_select_cpu.
13930 * config/msp430/t-msp430: Add rule to build msp430-devices.o.
13931 Remove hard-coded MCU multilib data.
13932
13933 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
13934
13935 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Switch
13936 based on the mode instead of testing properties of it.
13937
13938 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
13939
13940 * doc/md.texi: Document the x and y constraints for AArch64.
13941 * config/aarch64/aarch64.h (FP_LO8_REGNUM_P): New macro.
13942 (FP_LO8_REGS): New reg_class.
13943 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add an entry for FP_LO8_REGS.
13944 * config/aarch64/aarch64.c (aarch64_hard_regno_nregs)
13945 (aarch64_regno_regclass, aarch64_class_max_nregs): Handle FP_LO8_REGS.
13946 * config/aarch64/predicates.md (aarch64_simd_register): Use
13947 FP_REGNUM_P instead of checking the classes manually.
13948 * config/aarch64/constraints.md (y): New constraint.
13949
13950 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
13951
13952 * config/aarch64/iterators.md (perm_insn): Include the "1"/"2" suffix.
13953 (perm_hilo): Remove UNSPEC_ZIP*, UNSEPC_TRN* and UNSPEC_UZP*.
13954 * config/aarch64/aarch64-simd.md
13955 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Rename to..
13956 (aarch64_<PERMUTE:perm_insn><mode>): ...this and remove perm_hilo
13957 from the asm template.
13958 * config/aarch64/aarch64-sve.md
13959 (aarch64_<perm_insn><perm_hilo><PRED_ALL:mode>): Rename to..
13960 (aarch64_<perm_insn><PRED_ALL:mode>): ...this and remove perm_hilo
13961 from the asm template.
13962 (aarch64_<perm_insn><perm_hilo><SVE_ALL:mode>): Rename to..
13963 (aarch64_<perm_insn><SVE_ALL:mode>): ...this and remove perm_hilo
13964 from the asm template.
13965 * config/aarch64/aarch64-simd-builtins.def: Update comment.
13966
13967 2019-08-13 Martin Liska <mliska@suse.cz>
13968
13969 * value-prof.c (gimple_ic_transform): Add new line.
13970 Print details with MSG_NOTE.
13971
13972 2019-08-13 Martin Liska <mliska@suse.cz>
13973
13974 * doc/invoke.texi: Document automatic detection of jobserver.
13975 * lto-wrapper.c (run_gcc): Detect jobserver always.
13976
13977 2019-08-13 Uroš Bizjak <ubizjak@gmail.com>
13978
13979 * config/i386/i386-expand.c (ix86_expand_vector_set)
13980 <case E_V2SImode>: Use vec_merge path for
13981 TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
13982 <case E_V8QImode>: Ditto.
13983 * config/i386/mmx.md (*mmx_pinsrd): New insn pattern.
13984 (*mmx_pinsrb): Ditto.
13985
13986 2019-08-12 Jakub Jelinek <jakub@redhat.com>
13987
13988 PR target/83250
13989 PR target/91340
13990 * config/i386/avxintrin.h (_mm256_zextpd128_pd256,
13991 _mm256_zextps128_ps256, _mm256_zextsi128_si256): New intrinsics.
13992 * config/i386/avx512fintrin.h (_mm512_zextpd128_pd512,
13993 _mm512_zextps128_ps512, _mm512_zextsi128_si512, _mm512_zextpd256_pd512,
13994 _mm512_zextps256_ps512, _mm512_zextsi256_si512): Likewise.
13995
13996 2019-08-12 Richard Biener <rguenther@suse.de>
13997
13998 PR lto/91375
13999 * tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on
14000 flag_devirtualize.
14001
14002 2019-08-12 Richard Biener <rguenther@suse.de>
14003
14004 PR driver/91130
14005 * lto-wrapper.c (get_options_from_collect_gcc_options): Remove
14006 lang_mask option, always use CL_DRIVER.
14007 (get_options_from_collect_gcc_options): Adjust.
14008 (find_and_merge_options): Likewise.
14009 (run_gcc): Likewise.
14010
14011 2019-08-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14012
14013 * ipa-predicate.c (add_condition): Restore inverted test.
14014
14015 2019-08-10 Jakub Jelinek <jakub@redhat.com>
14016
14017 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DEVICE_TYPE.
14018 (enum omp_clause_device_type_kind): New enum.
14019 (struct tree_omp_clause): Add subcode.device_type_kind.
14020 * tree.h (OMP_CLAUSE_DEVICE_TYPE_KIND): Define.
14021 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries
14022 for device_type clause.
14023 (walk_tree_1): Handle OMP_CLAUSE_DEVICE_TYPE.
14024 * tree-pretty-print.c (dump_omp_clause): Likewise.
14025
14026 PR target/91408
14027 * config/i386/mmx.md (usadv8qi): Use register_operand instead of
14028 vector_operand.
14029
14030 2019-08-09 Vladimir Makarov <vmakarov@redhat.com>
14031
14032 * reload1.c (finish_spills): Do not check ira_conflicts_p when
14033 handling spilled pseudos.
14034
14035 2019-08-09 Richard Earnshaw <rearnsha@arm.com>
14036
14037 PR target/91386
14038 * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Use copy_rtx
14039 to preserve the contents of the original insns.
14040
14041 2019-08-09 Richard Earnshaw <rearnsha@arm.com>
14042
14043 * config/arm/arm.md (addsi3_compare_op1): Add 16-bit thumb-2 variants.
14044 (addsi3_compare_op2): Likewise.
14045
14046 2019-08-09 Martin Liska <mliska@suse.cz>
14047
14048 * alias.c (alias_ptr_types_compatible_p): Strengten
14049 type comparison in LTO mode.
14050
14051 2019-08-09 Richard Sandiford <richard.sandiford@arm.com>
14052
14053 PR middle-end/90313
14054 * tree-tailcall.c (find_tail_calls): Reject calls that might
14055 read from an escaped RESULT_DECL.
14056
14057 2019-08-09 Martin Liska <mliska@suse.cz>
14058
14059 * doc/invoke.texi: Document the option value.
14060 * lto-wrapper.c (run_gcc): Set auto_parallel
14061 only with -flto=auto.
14062
14063 2019-08-09 Martin Liska <mliska@suse.cz>
14064
14065 * opts.c (common_handle_option): Error for an invalid argument
14066 to -flto=.
14067
14068 2019-08-09 Martin Liska <mliska@suse.cz>
14069
14070 * ipa-icf.c (sem_function::merge): Define AUTO_DUMP_SCOPE and
14071 use dump_printf to report optimization.
14072 (sem_variable::merge): Likwise.
14073 (sem_item_optimizer::merge_classes): Use dump_printf to report
14074 ICF hits.
14075
14076 2019-08-09 Martin Liska <mliska@suse.cz>
14077
14078 * value-prof.c (gimple_divmod_fixed_value_transform):
14079 Use dump_printf_loc.
14080 (gimple_mod_pow2_value_transform): Likewise.
14081 (gimple_mod_subtract_transform): Likewise.
14082 (init_node_map): Likewise.
14083 (gimple_ic_transform): Likewise.
14084 (gimple_stringops_transform): Likewise.
14085
14086 2019-08-08 Mihailo Stojanovic <mistojanovic@wavecomp.com>
14087
14088 * doc/extend.texi: Add const qualifier to ld intrinsics.
14089
14090 2019-08-08 Segher Boessenkool <segher@kernel.crashing.org>
14091
14092 * config/rs6000/dfp.md (D64_D128): Rename to ...
14093 (DDTD): ... this, throughout.
14094 (dfp_suffix): Rename to ...
14095 (q): ... this, throughout.
14096
14097 2019-08-08 Segher Boessenkool <segher@kernel.crashing.org>
14098
14099 * config/rs6000/dfp.md (D64_D128): Move earlier in the file.
14100 (dfp_suffix): Ditto.
14101 (adddd3, addtd3): Merge to ...
14102 (add<mode>3 for D64_D128): ... this.
14103 (subdd3, subtd3): Merge to ...
14104 (sub<mode>3 for D64_D128): ... this.
14105 (muldd3, multd3): Merge to ...
14106 (mul<mode>3 for D64_D128): ... this.
14107 (divdd3, divtd3): Merge to ...
14108 (div<mode>3 for D64_D128): ... this.
14109 (*cmpdd_internal1, *cmptd_internal1): Merge to ...
14110 (*cmp<mode>_internal1 for D64_D128): ... this.
14111 (ftruncdd2, ftrunctd2): Merge to ...
14112 (ftrunc<mode>2 for D64_D128): ... this.
14113 (fixdddi2, fixtddi2): Merge to ...
14114 (fix<mode>di2 for D64_D128): ... this.
14115
14116 2019-08-08 Jim Wilson <jimw@sifive.com>
14117
14118 PR target/91229
14119 * config/riscv/riscv.c (riscv_flatten_aggregate_field): New arg
14120 ignore_zero_width_bit_field_p. Skip zero size bitfields when true.
14121 Pass into recursive call.
14122 (riscv_flatten_aggregate_argument): New arg. Pass to
14123 riscv_flatten_aggregate_field.
14124 (riscv_pass_aggregate_in_fpr_pair_p): New local warned. Call
14125 riscv_flatten_aggregate_argument twice, with false and true as last
14126 arg. Process result twice. Compare results and warn if different.
14127 (riscv_pass_aggregate_in_fpr_and_gpr_p): Likewise.
14128
14129 2019-08-08 Martin Liska <mliska@suse.cz>
14130
14131 PR bootstrap/91352
14132 * gcc.c (driver::detect_jobserver): Use is_valid_fd.
14133 * lto-wrapper.c (jobserver_active_p): Likewise.
14134
14135 2019-08-08 Martin Liska <mliska@suse.cz>
14136
14137 * cgraphclones.c (set_new_clone_decl_and_node_flags): Drop
14138 IS_OPERATOR_NEW and IS_OPERATOR_DELETE.
14139 (create_version_clone_with_body): Likewise.
14140
14141 2019-08-08 Jakub Jelinek <jakub@redhat.com>
14142
14143 * gimplify.c (omp_add_variable): Use GOVD_PRIVATE | GOVD_EXPLICIT
14144 for VLA helper variables on target data even if not GOVD_FIRSTPRIVATE.
14145 (gimplify_scan_omp_clauses): For OMP_CLAUSE_USE_DEVICE_* use just
14146 GOVD_EXPLICIT flags.
14147 (gimplify_omp_workshare): For OMP_TARGET_DATA move all
14148 OMP_CLAUSE_USE_DEVICE_* clauses to the end of clauses chain.
14149 * omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_USE_DEVICE_*
14150 call install_var_field with mask 11 instead of 3.
14151 (lower_omp_target): For OMP_CLAUSE_USE_DEVICE_* use pass
14152 (splay_tree_key) &DECL_UID (var) to build_sender_ref instead of var.
14153
14154 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
14155
14156 * config/aarch64/constraints.md (Z): Handle floating-point zeros too.
14157 * config/aarch64/predicates.md (aarch64_reg_or_zero): Likewise.
14158
14159 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
14160
14161 * config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): Add
14162 MOVPRFX alternatives. Make the GPR alternatives more expensive
14163 than the FPR ones.
14164
14165 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
14166
14167 * config/aarch64/aarch64-sve.md (fold_extract_last_<mode>):
14168 Disparage the GPR alternative relative to the FPR one.
14169 Fix handling of 8-bit and 16-bit FPR values.
14170
14171 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
14172
14173 * config/aarch64/iterators.md (BITWISEV): Delete.
14174 (SVE_INT_REDUCTION, SVE_FP_REDUCTION): New int iterators.
14175 (optab): Handle UNSPEC_UMAXV, UNSPEC_UMINV, UNSPEC_SMAXV,
14176 UNSPEC_SMINV, UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV,
14177 UNSPEC_FMINNMV, UNSPEC_FMINV.
14178 (bit_reduc_op): Delete.
14179 (sve_int_op): New int attribute.
14180 (sve_fp_op): Handle UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV,
14181 UNSPEC_FMINNMV, UNSPEC_FMINV.
14182 * config/aarch64/aarch64-sve.md
14183 (reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>)
14184 (*reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>)
14185 (reduc_<BITWISEV:optab>_scal_<SVE_I:mode>)
14186 (*reduc_<BITWISEV:optab>_scal_<SVE_I:mode>): Merge into...
14187 (reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>)
14188 (*reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>): ...these
14189 new patterns.
14190 (reduc_plus_scal_<SVE_F:mode>, *reduc_plus_scal_<SVE_I:mode>)
14191 (reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>)
14192 (*reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>): Merge into...
14193 (reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>)
14194 (*reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>): ...these
14195 new patterns.
14196
14197 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
14198
14199 * config/aarch64/aarch64-sve.md (fma<mode>4, *fma<mode>4)
14200 (fnma<mode>4, *fnma<mode>4, fnms<mode>4, *fnms<mode>4)
14201 (fms<mode>4, *fms<mode>4): Replace with...
14202 (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4)
14203 (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): ...these new patterns.
14204 Use unspecs instead of rtx codes.
14205 (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_4)
14206 (*cond_<optab><mode>_any): Add the predicate to SVE_COND_FP_TERNARY.
14207
14208 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
14209
14210 * config/aarch64/iterators.md (SVE_COND_FP_MAXMIN_PUBLIC): New
14211 int iterator.
14212 (maxmin_uns_op): Handle UNSPEC_COND_FMAXNM and UNSPEC_COND_FMINNM.
14213 * config/aarch64/aarch64-sve.md
14214 (<FMAXMIN:su><FMAXMIN:maxmin><SVE_F:mode>3): Rename to...
14215 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): ...this and
14216 use a single unspec for the rhs.
14217 (*<su><maxmin><mode>3): Delete.
14218 (<maxmin_uns><SVE_F:mode>3): Use a single unspec for the rhs.
14219
14220 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
14221
14222 * config/aarch64/iterators.md (UNSPEC_COND_FABS, UNSPEC_COND_FNEG)
14223 (UNSPEC_COND_FRINTA, UNSPEC_COND_FRINTI, UNSPEC_COND_FRINTM)
14224 (UNSPEC_COND_FRINTN, UNSPEC_COND_FRINTP, UNSPEC_COND_FRINTX)
14225 (UNSPEC_COND_FRINTZ, UNSPEC_COND_FSQRT): New unspecs.
14226 (optab, sve_fp_op): Handle them.
14227 (SVE_FP_UNARY): Delete.
14228 (optab): Remove sqrt entry.
14229 (sve_fp_op): Remove neg, abs and sqrt entries.
14230 (SVE_COND_FP_UNARY): New int iterator.
14231 * config/aarch64/aarch64-sve.md (<frint_pattern><mode>2)
14232 (*<frint_pattern><mode>2): Delete.
14233 (<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with...
14234 (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this.
14235 (*<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with...
14236 (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this.
14237
14238 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
14239
14240 * config/aarch64/aarch64-sve.md (*pred_fold_left_plus_<mode>): Delete.
14241
14242 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
14243
14244 * config/aarch64/iterators.md (UNSPEC_COND_ADD): Rename to...
14245 (UNSPEC_COND_FADD): ...this.
14246 (UNSPEC_COND_SUB): Rename to...
14247 (UNSPEC_COND_FSUB): ...this.
14248 (UNSPEC_COND_MUL): Rename to...
14249 (UNSPEC_COND_FMUL): ...this.
14250 (UNSPEC_COND_DIV): Rename to...
14251 (UNSPEC_COND_FDIV): ...this.
14252 (UNSPEC_COND_MAX): Rename to...
14253 (UNSPEC_COND_FMAXNM): ...this.
14254 (UNSPEC_COND_MIN): Rename to...
14255 (UNSPEC_COND_FMINNM): ...this.
14256 (UNSPEC_COND_LT): Rename to...
14257 (UNSPEC_COND_FCMLT): ...this.
14258 (UNSPEC_COND_LE): Rename to...
14259 (UNSPEC_COND_FCMLE): ...this.
14260 (UNSPEC_COND_EQ): Rename to...
14261 (UNSPEC_COND_FCMEQ): ...this.
14262 (UNSPEC_COND_NE): Rename to...
14263 (UNSPEC_COND_FCMNE): ...this.
14264 (UNSPEC_COND_GE): Rename to...
14265 (UNSPEC_COND_FCMGE): ...this.
14266 (UNSPEC_COND_GT): Rename to...
14267 (UNSPEC_COND_FCMGT): ...this.
14268 (SVE_COND_FP_BINARY, SVE_COND_FP_CMP, optab, cmp_op, sve_fp_op)
14269 (sve_fp_op_rev): Update accordingly.
14270 * config/aarch64/aarch64.c (aarch64_unspec_cond_code): Likewise.
14271
14272 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
14273
14274 * config/aarch64/aarch64-sve.md: Reorganize contents and add
14275 banner comments.
14276 * config/aarch64/check-sve-md.awk: New file.
14277 * config/aarch64/t-aarch64 (s-check-sve-md): New rule.
14278 (insn-conditions.md): Depend on it.
14279
14280 2019-08-07 Uroš Bizjak <ubizjak@gmail.com>
14281
14282 PR target/91385
14283 * config/i386/sse.md (*negsi2_1_zext): Simplify insn pattern.
14284 (*negsi2_cmpz_zext): Ditto.
14285
14286 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
14287
14288 * config/aarch64/iterators.md (commutative): Remove.
14289
14290 2019-08-07 Richard Earnshaw <rearnsha@arm.com>
14291
14292 PR driver/91130
14293 * lto-wrapper.c (find_and_merge_options): Use CL_DRIVER when
14294 processing COLLECT_GCC_OPTIONS.
14295 (run_gcc): Likewise.
14296
14297 2019-08-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
14298
14299 PR tree-optimization/91109
14300 * lra-remat.c (update_scratch_ops): Remove assignment of the
14301 hard register.
14302
14303 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
14304
14305 * data-streamer.h (streamer_write_poly_uint64): Declare.
14306 (streamer_read_poly_uint64): Likewise.
14307 * data-streamer-in.c (streamer_read_poly_uint64): New function.
14308 * data-streamer-out.c (streamer_write_poly_uint64): Likewise.
14309 * ipa-predicate.h (condition::size): Turn into a poly_int64.
14310 (add_condition): Take a poly_int64 size.
14311 * ipa-predicate.c (add_condition): Likewise.
14312 * ipa-prop.h (ipa_load_from_parm_agg): Take a poly_int64 size pointer.
14313 * ipa-prop.c (ipa_load_from_parm_agg): Likewise.
14314 (ipcp_modif_dom_walker::before_dom_children): Update accordingly.
14315 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Handle
14316 condition::size as a poly_int64.
14317 (unmodified_parm_1): Take a poly_int64 size pointer.
14318 (unmodified_parm): Likewise.
14319 (unmodified_parm_or_parm_agg_item): Likewise.
14320 (set_cond_stmt_execution_predicate): Update accordingly.
14321 (set_switch_stmt_execution_predicate): Likewise.
14322 (will_be_nonconstant_expr_predicate): Likewise.
14323 (will_be_nonconstant_predicate): Likewise.
14324 (inline_read_section): Stream condition::size as a poly_int.
14325 (ipa_fn_summary_write): Likewise.
14326
14327 2019-08-07 Martin Liska <mliska@suse.cz>
14328
14329 * fold-const.c (twoval_comparison_p): Replace int
14330 with bool as a return type.
14331 (simple_operand_p): Likewise.
14332 (operand_equal_p): Replace int with bool as a return type.
14333 * fold-const.h (operand_equal_p): Likewise.
14334
14335 2019-08-07 Jakub Jelinek <jakub@redhat.com>
14336
14337 * tree-core.h (enum omp_clause_code): Adjust OMP_CLAUSE_USE_DEVICE_PTR
14338 OpenMP description. Add OMP_CLAUSE_USE_DEVICE_ADDR clause.
14339 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries
14340 for OMP_CLAUSE_USE_DEVICE_ADDR clause.
14341 (walk_tree_1): Handle OMP_CLAUSE_USE_DEVICE_ADDR.
14342 * tree-pretty-print.c (dump_omp_clause): Likewise.
14343 * tree-nested.c (convert_nonlocal_omp_clauses,
14344 convert_local_omp_clauses): Likewise.
14345 * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses):
14346 Likewise.
14347 * omp-low.c (scan_sharing_clauses, lower_omp_target): Likewise.
14348 Treat OMP_CLAUSE_USE_DEVICE_ADDR like OMP_CLAUSE_USE_DEVICE_PTR
14349 clause with array or reference to array types, no matter what type
14350 except for reference it has.
14351
14352 2019-08-07 Kewen Lin <linkw@gcc.gnu.org>
14353
14354 * config/rs6000/vector.md (vrotr<mode>3): New define_expand.
14355
14356 2019-08-07 Kito Cheng <kito.cheng@sifive.com>
14357
14358 * config/riscv/multilib-generator: (canonical_order): Add 'g'.
14359 (arch_canonicalize): Support rv32g and rv64g and fix error
14360 handling.
14361
14362 2019-08-06 Martin Liska <mliska@suse.cz>
14363
14364 * cgraph.c (cgraph_node::dump): Dump DECL_IS_OPERATOR_NEW_P
14365 and DECL_IS_OPERATOR_DELETE_P.
14366
14367 2019-08-06 Jakub Jelinek <jakub@redhat.com>
14368
14369 * tree.h (OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV): Rename to ...
14370 (OMP_CLAUSE_LASTPRIVATE_LOOP_IV): ... this. Adjust comment.
14371 * gimplify.c (gimple_add_tmp_var): In SIMD contexts, turn addressable
14372 new vars into GOVD_PRIVATE rather than GOVD_LOCAL.
14373 (gimplify_omp_for): Don't do C++ random access iterator clause
14374 adjustments on combined constructs from OMP_LOOP. For OMP_LOOP,
14375 don't predetermine the artificial iterator in case of C++ random
14376 access iterators as lastprivate, but private. For OMP_LOOP, force
14377 bind expr around simd body and force for_pre_body before the
14378 construct. Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV instead of
14379 OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV.
14380 (gimplify_omp_loop): Add firstprivate clauses on OMP_PARALLEL for
14381 diff var of C++ random access iterators. Handle
14382 OMP_CLAUSE_FIRSTPRIVATE. For OMP_CLAUSE_LASTPRIVATE_LOOP_IV, if
14383 not outermost also add OMP_CLAUSE_FIRSTPRIVATE, and in both cases
14384 clear OMP_CLAUSE_LASTPRIVATE_LOOP_IV on the lastprivate clause
14385 on the OMP_FOR and OMP_DISTRIBUTE constructs if any.
14386 * omp-low.c (lower_rec_input_clauses): For
14387 OMP_CLAUSE_LASTPRIVATE_LOOP_IV on simd copy construct the private
14388 variables instead of default constructing them.
14389 (lower_lastprivate_clauses): Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV
14390 instead of OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV and move the
14391 is_taskloop_ctx check from the assert to the guarding condition.
14392
14393 2019-08-06 Kito Cheng <kito.cheng@sifive.com>
14394
14395 * config/riscv/multilib-generator: (canonical_order): New.
14396 (arch_canonicalize): Dito.
14397 Apply arch_canonicalize for alts.
14398
14399 2019-08-05 Martin Sebor <msebor@redhat.com>
14400
14401 * doc/extend.texi (Common Variable Attributes): Document alias
14402 attribute.
14403
14404 2019-08-05 Marek Polacek <polacek@redhat.com>
14405
14406 PR c++/91338 - Implement P1161R3: Deprecate a[b,c].
14407 * doc/invoke.texi: Document -Wcomma-subscript.
14408
14409 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
14410
14411 * tree-core.h (tree_function_decl): Make function_code an
14412 independent field. Group the remaining bitfields into bytes
14413 and move decl_type so that it contines to be at a byte boundary.
14414 Leave 12 bits for future expansion.
14415
14416 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
14417
14418 * gimple-fold.c (gimple_fold_mask_load_store_mem_ref)
14419 (gimple_fold_mask_load, gimple_fold_mask_store): New functions.
14420 (gimple_fold_call): Use them to fold IFN_MASK_LOAD and
14421 IFN_MASK_STORE.
14422
14423 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
14424
14425 * gimple.h (gimple_move_vops): Declare.
14426 * gimple.c (gimple_move_vops): New function
14427 * gimple-fold.c (replace_call_with_call_and_fold)
14428 (gimple_fold_builtin_memory_op, gimple_fold_builtin_memset)
14429 (gimple_fold_builtin_stpcpy, fold_builtin_atomic_compare_exchange)
14430 (gimple_fold_call): Use it.
14431 * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise.
14432 * tree-call-cdce.c (use_internal_fn): Likewise.
14433 * tree-if-conv.c (predicate_load_or_store): Likewise.
14434 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
14435 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
14436 * tree-ssa-propagate.c (finish_update_gimple_call): Likewise.
14437 (update_call_from_tree): Likewise.
14438 * tree-vect-stmts.c (vectorizable_load): Likewise.
14439 * tree-vectorizer.c (adjust_simduid_builtins): Likewise.
14440
14441 2019-08-05 Martin Liska <mliska@suse.cz>
14442
14443 PR c++/91334
14444 * tree-ssa-dce.c (propagate_necessity): Handle new operators
14445 with not arguments.
14446 (eliminate_unnecessary_stmts): Likewise.
14447
14448 2019-08-05 Richard Biener <rguenther@suse.de>
14449
14450 PR middle-end/91169
14451 * fold-const.c (get_array_ctor_element_at_index): Create
14452 offset_ints according to the sign of the index type and treat
14453 that as signed if it is obviously so.
14454
14455 2019-08-05 Jakub Jelinek <jakub@redhat.com>
14456
14457 PR target/91341
14458 * config/i386/avxintrin.h (_mm256_loadu2_m128, _mm256_storeu2_m128,
14459 _mm256_loadu2_m128d, _mm256_storeu2_m128d, _mm256_loadu2_m128i,
14460 _mm256_storeu2_m128i): New function.
14461
14462 2019-08-05 Kito Cheng <kito.cheng@sifive.com>
14463
14464 * config/riscv/riscv.c (riscv_promote_function_mode): New.
14465 (TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode.
14466
14467 2019-08-05 Alan Modra <amodra@gmail.com>
14468
14469 PR target/91349
14470 * config/rs6000/freebsd64.h (CPLUSPLUS_CPP_SPEC),
14471 (LINK_GCC_C_SEQUENCE_SPEC): Undef.
14472
14473 2019-08-04 Gerald Pfeifer <gerald@pfeifer.com>
14474
14475 * doc/install.texi (Prerequisites): Remove reference to Tcl 8.6
14476 bug that was fixed in Tcl 8.6.1.
14477
14478 2019-08-02 Michael Meissner <meissner@linux.ibm.com>
14479
14480 * config/rs6000/future.md: New file.
14481 * config/rs6000/rs6000.md: Include future.md.
14482 * config/rs6000/t-rs6000 (MD_INCLUDES): Add future.md.
14483
14484 2019-08-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
14485
14486 * function.c (assign_parm_adjust_stack_rtl): Revise STRICT_ALIGNMENT
14487 check to use targetm.slow_unaligned_access instead.
14488
14489 * function.c (assign_param_data_one): Remove unused data members.
14490
14491 2019-08-02 Steve Ellcey <sellcey@marvell.com>
14492
14493 * omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to
14494 build_distinct_type_copy.
14495 (simd_clone_adjust_argument_types): Ditto.
14496 (simd_clone_adjust): Call build_distinct_type_copy here.
14497 (expand_simd_clones): Ditto.
14498
14499 2019-08-02 Uroš Bizjak <ubizjak@gmail.com>
14500
14501 PR target/91201
14502 * config/i386/sse.md (*vec_extractv16qi_zext): New insn pattern.
14503
14504 2019-08-02 Alexander Monakov <amonakov@ispras.ru>
14505
14506 * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Simplify casts
14507 from 'const void *'.
14508 (sort_locs_in_loop_postorder_cmp): Likewise.
14509
14510 2019-08-02 Eric Botcazou <ebotcazou@adacore.com>
14511
14512 * doc/invoke.texi (hot-bb-count-fraction): Rework description.
14513 (hot-bb-count-ws-permille): Likewise.
14514 (hot-bb-frequency-fraction): Likewise.
14515 (unlikely-bb-count-fraction): Likewise.
14516 * params.def (hot-bb-count-fraction): Rework description.
14517 (hot-bb-count-ws-permille): Likewise.
14518 (hot-bb-frequency-fraction): Likewise.
14519 (unlikely-bb-count-fraction): Likewise. Remove min and max values.
14520 * predict.c (get_hot_bb_threshold): Deal with 0 HOT_BB_COUNT_FRACTION.
14521
14522 2019-08-02 Uroš Bizjak <ubizjak@gmail.com>
14523
14524 PR target/91323
14525 * config/i386/i386-expand.c (ix86_unordered_fp_compare) <case LTGT>:
14526 Return false.
14527
14528 2019-08-02 Richard Biener <rguenther@suse.de>
14529
14530 * vec.h (vec::sort): Add gcc_qsort_r support.
14531 (vec::bsearch): Add an overload with gcc_qsort_r style callbacks.
14532 * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Adjust
14533 to gcc_qsort_r style callback.
14534 (sort_locs_in_loop_postorder_cmp): Likewise.
14535 (analyze_memory_references): Use gcc_sort_r interfaces.
14536 (find_ref_loc_in_loop_cmp): Use new bsearch overload.
14537
14538 2019-08-02 Martin Liska <mliska@suse.cz>
14539
14540 PR lto/91313
14541 * gcc.c (driver::maybe_run_linker): Call detect_jobserver
14542 to detect working job server.
14543 (driver::detect_jobserver): Test whether jobserver
14544 is active from GCC driver. That will prevent situation where
14545 GCC is invoked from a LD plugin and the linker already uses
14546 file descriptors suggested by make. That leads to a wrong
14547 detection.
14548 * gcc.h (driver): Add detect_jobserver.
14549 * lto-wrapper.c (jobserver_active_p): Simplify sscanf by
14550 not scanning for --jobserver-auth prefix.
14551
14552 2019-08-02 Jakub Jelinek <jakub@redhat.com>
14553
14554 PR tree-optimization/91201
14555 * config/i386/i386-expand.c (ix86_expand_vector_extract): For elt == 0
14556 V16QImode extraction without sse4.1 try to use V4SImode lowpart
14557 extraction.
14558
14559 2019-08-01 Martin Sebor <msebor@redhat.com>
14560
14561 PR c++/90947
14562 * tree.c (type_initializer_zero_p): Define.
14563 * tree.h (type_initializer_zero_p): New function.
14564
14565 2019-08-01 Eric Botcazou <ebotcazou@adacore.com>
14566
14567 * cfgrtl.c (relink_block_chain): Add line returns in dump file.
14568
14569 2019-08-01 Eric Botcazou <ebotcazou@adacore.com>
14570
14571 * cgraph.h (cgraph_edge::maybe_hot_p): Tweak comment.
14572 * cgraph.c (cgraph_edge::maybe_hot_p): Likewise. Remove useless test.
14573 * predict.c (maybe_hot_count_p): Likewise.
14574 (maybe_hot_bb_p): Tweak comment.
14575 (maybe_hot_edge_p): Likewise.
14576 (probably_never_executed): Likewise. Minor tweak.
14577 (probably_never_executed_bb_p): Likewise.
14578 (unlikely_executed_edge_p): Likewise.
14579 (probably_never_executed_edge_p): Likewise.
14580 (optimize_function_for_size_p): Likewise.
14581 (optimize_function_for_speed_p): Likewise.
14582 (function_optimization_type): Likewise.
14583 (optimize_bb_for_size_p): Likewise.
14584 (optimize_bb_for_speed_p): Likewise.
14585 (bb_optimization_type): Likewise.
14586 (optimize_edge_for_size_p): Likewise.
14587 (optimize_edge_for_speed_p): Likewise.
14588 (optimize_insn_for_size_p): Likewise.
14589 (optimize_insn_for_speed_p): Likewise.
14590 (optimize_loop_for_size_p): Likewise.
14591 (optimize_loop_for_speed_p): Likewise.
14592 (optimize_loop_nest_for_speed_p): Likewise.
14593 (optimize_loop_nest_for_size_p): Likewise.
14594 (predictable_edge_p): Likewise.
14595 (handle_missing_profiles): Minor tweak.
14596
14597 2019-08-01 Michael Meissner <meissner@linux.ibm.com>
14598
14599 * config/rs6000/predicates.md (pcrel_external_address): Update
14600 comment.
14601
14602 2019-08-01 Uroš Bizjak <ubizjak@gmail.com>
14603
14604 PR target/85693
14605 * config/i386/mmx.md (usadv8qi): New expander.
14606
14607 2019-08-01 Matthew Beliveau <mbelivea@redhat.com>
14608
14609 PR c++/90590
14610 * c-warn.c (c_do_switch_warnings): Suppress warning for enumerators
14611 with reserved names that are in a system header.
14612
14613 2019-08-01 Uroš Bizjak <ubizjak@gmail.com>
14614
14615 * config/i386/mmx.md (vec_extractv2si_0): Add (r,x) alternative.
14616 (*vec_extractv2si_0_zext_sse4): New insn pattern.
14617 (*vec_extractv2si_0_zext): Ditto.
14618 (*vec_extractv2si_1): Add (rm,x) alternative.
14619 (*vec_extractv2si_1_zext): New insn pattern.
14620 (*vec_extractv2si_zext_mem): Add "TARGET_MMX || TARGET_MMX_WITH_SSE"
14621 insn constraint.
14622
14623 2019-08-01 Richard Biener <rguenther@suse.de>
14624
14625 * domwalk.c (bb_postorder): Remove static variable.
14626 (cmp_bb_postorder): Adjust.
14627 (sort_bbs_postorder): Adjust and use gcc_sort_r.
14628 (dom_walker::walk): Adjust.
14629
14630 2019-08-01 Alexander Monakov <amonakov@ispras.ru>
14631
14632 * sort.cc (sort_r_ctx): New struct.
14633 (reorder23): Make templated on context type.
14634 (reorder45): Ditto.
14635 (cmp1): Ditto. Adjust signature.
14636 (netsort): Ditto.
14637 (mergesort): Ditto.
14638 [CHECKING_P] (cmp2to3): New static function. Use it...
14639 (gcc_qsort) [CHECKING_P]: ...here.
14640 (gcc_sort_r): New function.
14641 * system.h (sort_r_cmp_fn): New function typedef.
14642 (qsort_chk): Adjust signature.
14643 (gcc_sort_r): Declare.
14644 * vec.c (qsort_chk_error): Adjust.
14645 (qsort_chk): Adjust.
14646
14647 2019-08-01 Richard Biener <rguenther@suse.de>
14648
14649 * tree-ssa-pre.c (has_abnormal_preds): Remove global var.
14650 (compute_antic): Localize it here.
14651
14652 2019-07-31 Maxim Blinov <maxim.blinov@embecosm.com>
14653
14654 * common/config/riscv/riscv-common.c: Check -march string ends
14655 with null.
14656
14657 2019-07-31 Alexander Monakov <amonakov@ispras.ru>
14658
14659 * ipa-devirt.c (type_warning_cmp): Make static.
14660 (decl_warning_cmp): Ditto.
14661
14662 2019-07-31 Peter Bergner <bergner@linux.ibm.com>
14663
14664 PR target/91050
14665 * config/rs6000/rs6000.opt (mdejagnu-cpu=): Delete option.
14666 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
14667 use of deleted rs6000_dejagnu_cpu_index variable.
14668 * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Define.
14669 (SUBTARGET_DRIVER_SELF_SPECS): Likewise.
14670 * config/darwin.h (DRIVER_SELF_SPECS): Rename from this ...
14671 (SUBTARGET_DRIVER_SELF_SPECS): ...to this.
14672 * config/i386/i386.h (DRIVER_SELF_SPECS): Define.
14673 (SUBTARGET_DRIVER_SELF_SPECS): Likewise.
14674
14675 2019-07-31 Richard Biener <rguenther@suse.de>
14676
14677 PR tree-optimization/91280
14678 * tree-ssa-structalias.c (get_constraint_for_component_ref):
14679 Decompose MEM_REF manually for offset handling.
14680
14681 2019-07-31 Richard Biener <rguenther@suse.de>
14682
14683 PR tree-optimization/91293
14684 * tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands
14685 of reduction stmts.
14686
14687 2019-07-31 Matt Thomas <matt@3am-software.com>
14688 Nick Hudson <nick@nthcliff.demon.co.uk>
14689 Matthew Green <mrg@eterna.com.au>
14690 Maya Rashish <coypu@sdf.org>
14691
14692 * config.gcc (hppa*-*-netbsd*): New target.
14693 * config/pa/pa-netbsd.h: New file.
14694 * config/pa/pa32-netbsd.h: New file.
14695
14696 2019-07-31 Jakub Jelinek <jakub@redhat.com>
14697
14698 PR tree-optimization/91201
14699 * config/i386/mmx.md (reduc_plus_scal_v8qi): New expander.
14700
14701 2019-07-31 Andrew Stubbs <ams@codesourcery.com>
14702
14703 * config/gcn/gcn-valu.md
14704 (scatter<mode>_insn_1offset<exec_scatter>): Remove s_waitcnt.
14705 (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise.
14706 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
14707 * config/gcn/gcn.c (gcn_md_reorg): Add delayeduse and reads to
14708 struct ilist. Add nops for delayeduse insns.
14709 * config/gcn/gcn.md (delayeduse): New attribute.
14710 (*movbi): Remove s_waitcnt from stores.
14711 (*mov<mode>_insn): Likewise.
14712 (*movti_insn): Likewise. Add delayeduse attribute.
14713 (sync_compare_and_swap<mode>_insn): Add delayeduse attribute.
14714 (atomic_store<mode>): Remove or adjust s_waitcnt.
14715
14716 2019-07-31 Richard Biener <rguenther@suse.de>
14717
14718 * vr-values.h (vr_values::swap_vr_value): New.
14719 (vr_values::free_value_range): likewise.
14720 * vr-values.c (vr_values::swap_vr_value): Implement.
14721 * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::pop_value_range):
14722 Do not return a range or take a var.
14723 (evrp_range_analyzer::stack): Change back to recording a non-const
14724 value_range *.
14725 * gimple-ssa-evrp-analyze.c
14726 (evrp_range_analyzer::record_ranges_from_stmt): Free unused
14727 value-range.
14728 (evrp_range_analyzer::pop_to_marker): Adjust.
14729 (evrp_range_analyzer::push_value_range): Use new swap_vr_value.
14730 (evrp_range_analyzer::pop_value_range): Likewise. Free the
14731 no longer needed value-range.
14732
14733 2019-07-31 Martin Liska <mliska@suse.cz>
14734
14735 * tree-ssa-dce.c (propagate_necessity): Delete operator can
14736 have size and (or) alignment as 2nd and later arguments.
14737 Mark all of them as necessary.
14738
14739 2019-07-31 Richard Biener <rguenther@suse.de>
14740
14741 PR tree-optimization/91178
14742 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
14743 Use tail-recursion.
14744
14745 2019-07-31 Jakub Jelinek <jakub@redhat.com>
14746
14747 PR tree-optimization/91201
14748 * config/i386/sse.md (reduc_plus_scal_v16qi): New expander.
14749 (REDUC_PLUS_MODE): Add V32QImode for TARGET_AVX and V64QImode for
14750 TARGET_AVX512F.
14751 (reduc_plus_scal_<mode>): Improve formatting by introducing
14752 a temporary.
14753
14754 2019-07-31 Sudakshina Das <sudi.das@arm.com>
14755
14756 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): Add
14757 AARCH64_TME_BUILTIN_TSTART, AARCH64_TME_BUILTIN_TCOMMIT,
14758 AARCH64_TME_BUILTIN_TTEST and AARCH64_TME_BUILTIN_TCANCEL.
14759 (aarch64_init_tme_builtins): New.
14760 (aarch64_init_builtins): Call aarch64_init_tme_builtins.
14761 (aarch64_expand_builtin_tme): New.
14762 (aarch64_expand_builtin): Handle TME builtins.
14763 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
14764 __ARM_FEATURE_TME when enabled.
14765 * config/aarch64/aarch64-option-extensions.def: Add "tme".
14766 * config/aarch64/aarch64.h (AARCH64_FL_TME, AARCH64_ISA_TME): New.
14767 (TARGET_TME): New.
14768 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_TTEST.
14769 (define_c_enum "unspecv"): Add UNSPECV_TSTART, UNSPECV_TCOMMIT and
14770 UNSPECV_TCANCEL.
14771 (tstart, ttest, tcommit, tcancel): New instructions.
14772 * config/aarch64/arm_acle.h (__tstart, __tcommit): New.
14773 (__tcancel, __ttest): New.
14774 (_TMFAILURE_REASON, _TMFAILURE_RTRY, _TMFAILURE_CNCL): New macro.
14775 (_TMFAILURE_MEM, _TMFAILURE_IMP, _TMFAILURE_ERR): Likewise.
14776 (_TMFAILURE_SIZE, _TMFAILURE_NEST, _TMFAILURE_DBG): Likewise.
14777 (_TMFAILURE_INT, _TMFAILURE_TRIVIAL): Likewise.
14778 * config/arm/types.md: Add new tme type attr.
14779 * doc/invoke.texi: Document "tme".
14780
14781 2019-07-31 Joel Hutton <Joel.Hutton@arm.com>
14782
14783 * config/arm/arm_cmse.h (cmse_nonsecure_caller): Add
14784 warn_unused_result attribute.
14785 (cmse_check_address_range): Add warn_unused_result attribute.
14786
14787 2019-07-31 Richard Biener <rguenther@suse.de>
14788
14789 PR tree-optimization/91257
14790 * tree-vrp.c (union_ranges): Unify equality and less tests
14791 by using compare_values. Re-order cheap tests first.
14792
14793 2019-07-31 Jakub Jelinek <jakub@redhat.com>
14794
14795 PR middle-end/91301
14796 * gimplify.c (gimplify_omp_for): If for class iterator on
14797 distribute parallel for there is no data sharing clause
14798 on inner_for_stmt, look for private clause on combined
14799 parallel too and if found, move it to inner_for_stmt.
14800
14801 2019-07-31 Richard Sandiford <richard.sandiford@arm.com>
14802
14803 * lra-int.h (lra_operand_data): Remove early_clobber field.
14804 (lra_insn_reg): Likewise.
14805 * lra.c (debug_operand_data): Update accordingly.
14806 (setup_operand_alternative): Likewise.
14807 (new_insn_reg): Likewise. Remove early_clobber parameter.
14808 (collect_non_operand_hard_regs): Update call accordingly.
14809 Don't assign to lra_insn_reg::early_clobber.
14810 (add_regs_to_insn_regno_info): Remove early_clobber parameter
14811 and update calls to new_insn_reg.
14812 (lra_update_insn_regno_info): Update calls accordingly.
14813 * lra-constraints.c (update_and_check_small_class_inputs): Take the
14814 alternative number as a parameter and test whether the operand
14815 is earlyclobbered in that particular alternative.
14816 (process_alt_operands): Update call accordingly. Use per-alternative
14817 checks for earyclobber here too.
14818 * lra-lives.c (reg_early_clobber_p): Check early_clobber_alts
14819 against zero for IRA_UNKNOWN_ALT.
14820
14821 2019-07-30 Uroš Bizjak <ubizjak@gmail.com>
14822
14823 * config/alpha/alpha.c (alpha_option_override): Quote a C type.
14824
14825 2019-07-30 Wilco Dijkstra <wdijkstr@arm.com>
14826
14827 * config/arm/thumb2.md (thumb2_movsi_insn): Adjust literal offset.
14828 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
14829
14830 2019-07-30 Martin Liska <mliska@suse.cz>
14831
14832 PR ipa/89330
14833 * cgraph.c (cgraph_edge::make_direct): Use
14834 edge->indirect_unknown_callee as edge->resolve_speculation can
14835 deallocate edge which is this pointer.
14836
14837 2019-07-30 Richard Biener <rguenther@suse.de>
14838
14839 PR tree-optimization/91257
14840 * bitmap.c (bitmap_ior_and_compl_into): Open-code.
14841
14842 2019-07-30 Martin Liska <mliska@suse.cz>
14843
14844 * doc/invoke.texi: Document new behavior.
14845 * lto-wrapper.c (cpuset_popcount): New function
14846 is a copy of libgomp/config/linux/proc.c.
14847 (init_num_threads): Likewise.
14848 (run_gcc): Automatically detect core count for -flto.
14849 (jobserver_active_p): New function.
14850
14851 2019-07-30 Richard Biener <rguenther@suse.de>
14852
14853 PR tree-optimization/91257
14854 * bitmap.h (bitmap_ior_into_and_free): Declare.
14855 * bitmap.c (bitmap_list_unlink_element): Add defaulted param
14856 whether to add the unliked element to the freelist.
14857 (bitmap_list_insert_element_after): Add defaulted param for
14858 an already allocated element.
14859 (bitmap_ior_into_and_free): New function.
14860 * tree-ssa-structalias.c (condense_visit): Reduce the
14861 ponts-to and edge bitmaps of the SCC members in a
14862 logarithmic fashion rather than all to one.
14863
14864 2019-07-30 Richard Sandiford <richard.sandiford@arm.com>
14865
14866 * tree-ssa-math-opts.c (convert_mult_to_fma): Add a mul_cond
14867 parameter. When nonnull, make sure that the addition or subtraction
14868 has the same condition.
14869 (math_opts_dom_walker::after_dom_children): Try convert_mult_to_fma
14870 for CFN_COND_MUL too.
14871
14872 2019-07-30 Richard Biener <rguenther@suse.de>
14873
14874 PR tree-optimization/91291
14875 * tree-ssa-sccvn.c (rpo_elim::eliminate_push_avail): Ignore
14876 constant values.
14877
14878 2019-07-30 Jakub Jelinek <jakub@redhat.com>
14879
14880 PR middle-end/91216
14881 * omp-low.c (global_nonaddressable_vars): New variable.
14882 (use_pointer_for_field): For global decls, if they are non-addressable,
14883 remember it in the global_nonaddressable_vars bitmap, if they are
14884 addressable and in the global_nonaddressable_vars bitmap, ignore their
14885 TREE_ADDRESSABLE bit.
14886 (omp_copy_decl_2): Clear TREE_ADDRESSABLE also on private copies of
14887 vars in global_nonaddressable_vars bitmap.
14888 (execute_lower_omp): Free global_nonaddressable_vars bitmap.
14889
14890 PR target/91150
14891 * config/i386/i386-expand.c (expand_vec_perm_blend): Change mask type
14892 from unsigned to unsigned HOST_WIDE_INT. For E_V64QImode cast
14893 comparison to unsigned HOST_WIDE_INT before shifting it left.
14894
14895 2019-07-30 Uroš Bizjak <ubizjak@gmail.com>
14896
14897 * config/i386/i386.md (movstrict<mode>): Use register_operand
14898 predicate for operand 0. Add expander condition. Assert that
14899 operand 0 is a SUBREG RTX.
14900 (*movstrict<mode>_1): Use register_operand predicate for operand 0.
14901 Update operand constraints and insn condition.
14902 (zero_extend<mode>si2_and): Do not call gen_movstrict<mode>.
14903 (zero_extendqihi2_and): Do not call gen_movstrictqi.
14904 (*setcc_qi_slp): Use register_operand predicate for operand 0.
14905 Update operand 0 constraints.
14906 (setcc_qi_slp splitters): Use register_operand predicate for operand 0.
14907
14908 2019-07-29 Jozef Lawrynowicz <jozef.l@mittosystems.com>
14909
14910 * config/msp430/msp430.h (DRIVER_SELF_SPECS): Define and emit errors
14911 when -m{code,data}-region are used without -mlarge.
14912 * config/msp430/msp430.c (msp430_option_override): Error when a
14913 non-default code or data region is used without -mlarge.
14914 (msp430_section_attr): Emit a warning and do not add upper/lower/either
14915 attributes when they are used without -mlarge.
14916
14917 2019-07-29 Jozef Lawrynowicz <jozef.l@mittosystems.com>
14918
14919 PR target/70320
14920 * config/msp430/msp430.h: Define ADDITIONAL_REGISTER_NAMES.
14921
14922 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
14923
14924 PR middle-end/91242
14925 * wide-int.h (generic_wide_int::sext_elt): New function.
14926 * inchash.h (hash::add_wide_int): Use it instead of elt.
14927
14928 2019-07-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14929
14930 * config/arm/arm-builtins.c (acle_builtin_data): Expand VAR1 to
14931 CODE_FOR_arm_##.
14932 * config/arm/arm.md (<crc_variant>): Rename to...
14933 (arm_<crc_variant>): ... This.
14934 (<cdp>): Rename to...
14935 (arm_<cdp>): ... This.
14936 (<ldc>): Rename to...
14937 (arm_<ldc>): ... This.
14938 (<stc>): Rename to...
14939 (arm_<stc>): ... This.
14940 (<mcr>): Rename to...
14941 (arm_<mcr>): ... This.
14942 (<mrc>): Rename to...
14943 (arm_<mrc>): ... This.
14944 (<mcrr>): Rename to...
14945 (arm_<mcrr>): ... This.
14946 (<mrrc>): Rename to...
14947 (arm_<mrrc>): ... This.
14948
14949 2019-07-29 Richard Biener <rguenther@suse.de>
14950
14951 PR tree-optimization/91257
14952 * tree-ssa-sccvn.h (struct vn_avail): New.
14953 (struct vn_ssa_aux): Add avail member.
14954 * tree-ssa-sccvn.c (class rpo_elim): Remove m_rpo_avail
14955 member, add m_avail_freelist one.
14956 (rpo_elim::~rpo_elim): Remove.
14957 (rpo_elim::eliminate_avail): Adjust to new avail tracking
14958 data structure.
14959 (rpo_elim::eliminate_push_avail): Likewise.
14960 (do_unwind): Likewise.
14961 (do_rpo_vn): Likewise.
14962
14963 2019-07-29 Richard Biener <rguenther@suse.de>
14964
14965 PR tree-optimization/91257
14966 * tree-vrp.c (operand_less_p): Avoid dispatching to fold for
14967 most cases, instead call compare_values which handles the
14968 symbolic ranges we handle specially.
14969 (compare_values_warnv): Do not call operand_less_p but open-code
14970 the effective fold calls. Avoid converting so much.
14971
14972 2019-07-29 Martin Liska <mliska@suse.cz>
14973
14974 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not
14975 remove LHS of operator new call. It's handled latter.
14976
14977 2019-07-29 Richard Biener <rguenther@suse.de>
14978
14979 PR tree-optimization/91267
14980 * vr-values.c (vr_values::update_value_range): Add early return
14981 for effectively VARYING lattice entry.
14982
14983 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
14984
14985 PR debug/86638
14986 * tree-ssa-dce.c (keep_all_vdefs_p): New function.
14987 (mark_stmt_if_obviously_necessary): Mark all stmts with vdefs as
14988 necessary if keep_all_vdefs_p is true.
14989 (mark_aliased_reaching_defs_necessary): Add a gcc_checking_assert
14990 that keep_all_vdefs_p is false.
14991 (mark_all_reaching_defs_necessary): Likewise.
14992 (propagate_necessity): Skip the vuse scan if keep_all_vdefs_p is true.
14993
14994 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
14995
14996 * common.opt (Og): Change the initial value of flag_dse to 0.
14997 * opts.c (default_options_table): Move OPT_ftree_dse from
14998 OPT_LEVELS_1_PLUS to OPT_LEVELS_1_PLUS_NOT_DEBUG. Also add
14999 OPT_fdse to OPT_LEVELS_1_PLUS_NOT_DEBUG. Put the OPT_ftree_pta
15000 entry before the OPT_ftree_sra entry.
15001 * doc/invoke.texi (Og): Add -fdse and -ftree-dse to the list
15002 of flags disabled by Og.
15003
15004 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
15005
15006 * tree-cfg.c (execute_fixup_cfg): Don't delete stores to write-only
15007 variables for -Og.
15008
15009 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
15010
15011 * doc/sourcebuild.texi (check-function-bodies): Document.
15012
15013 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
15014
15015 * simplify-rtx.c (simplify_const_unary_operation): Fold a
15016 VEC_DUPLICATE of a fixed-length vector even if the result
15017 is variable-length. Likewise fold a duplicate of a
15018 variable-length vector if the variable-length vector is
15019 itself a duplicate of a fixed-length sequence.
15020 (test_vector_ops_duplicate): Test more cases.
15021
15022 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
15023
15024 * vector-builder.h (vector_builder): Add a shape template parameter.
15025 (vector_builder::new_unary_operation): New function, generalizing
15026 the old tree_vector_builder function.
15027 (vector_builder::new_binary_operation): Likewise.
15028 (vector_builder::binary_encoded_nelts): Likewise.
15029 * int-vector-builder.h (int_vector_builder): Update template
15030 parameters to vector_builder.
15031 (int_vector_builder::shape_nelts): New function.
15032 * rtx-vector-builder.h (rtx_vector_builder): Update template
15033 parameters to vector_builder.
15034 (rtx_vector_builder::shape_nelts): New function.
15035 (rtx_vector_builder::nelts_of): Likewise.
15036 (rtx_vector_builder::npatterns_of): Likewise.
15037 (rtx_vector_builder::nelts_per_pattern_of): Likewise.
15038 * tree-vector-builder.h (tree_vector_builder): Update template
15039 parameters to vector_builder.
15040 (tree_vector_builder::shape_nelts): New function.
15041 (tree_vector_builder::nelts_of): Likewise.
15042 (tree_vector_builder::npatterns_of): Likewise.
15043 (tree_vector_builder::nelts_per_pattern_of): Likewise.
15044 * tree-vector-builder.c (tree_vector_builder::new_unary_operation)
15045 (tree_vector_builder::new_binary_operation): Delete.
15046 (tree_vector_builder::binary_encoded_nelts): Likewise.
15047 * simplify-rtx.c: Include rtx-vector-builder.h.
15048 (distributes_over_addition_p): New function.
15049 (simplify_const_unary_operation)
15050 (simplify_const_binary_operation): Generalize handling of vector
15051 constants to include variable-length vectors.
15052 (test_vector_ops_series): Add more tests.
15053
15054 2019-07-28 Jan Hubicka <hubicka@ucw.cz>
15055
15056 PR lto/91222
15057 * ipa-devirt.c (warn_types_mismatch): Compare indentifiers
15058 than INDENTIFIER_POINTER.
15059
15060 2019-07-28 Martin Liska <mliska@suse.cz>
15061
15062 PR ipa/89330
15063 * cgraph.c (symbol_table::create_edge): Always allocate
15064 a cgraph_edge.
15065 (symbol_table::free_edge): Store summary_id to
15066 edge_released_summary_ids if != -1;
15067 * cgraph.h (NEXT_FREE_NODE): Remove.
15068 (SET_NEXT_FREE_NODE): Likewise.
15069 (NEXT_FREE_EDGE): Likewise.
15070 (symbol_table::release_symbol): Store summary_id to
15071 cgraph_released_summary_ids if != -1;
15072 (symbol_table::allocate_cgraph_symbol): Always allocate
15073 a cgraph_node.
15074
15075 2019-07-28 Alan Modra <amodra@gmail.com>
15076
15077 * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
15078 gen_sibcall.
15079
15080 2019-07-28 Alan Modra <amodra@gmail.com>
15081
15082 PR target/91135
15083 * config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Don't
15084 define.
15085 * config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Invoke
15086 GNU_USER_TARGET_OS_CPP_BUILTINS for aixdesc abi.
15087 (GNU_USER_TARGET_D_OS_VERSIONS): Don't define.
15088
15089 2019-07-28 Alan Modra <amodra@gmail.com>
15090
15091 PR target/91050
15092 * config/rs6000/sysv4.h (ASM_DEFAULT_SPEC): Modify if -m64.
15093 * config/rs6000/default64.h (ASM_DEFAULT_SPEC): Define.
15094 * config/rs6000/freebsd64.h (ASM_DEFAULT_SPEC): Don't define.
15095 * config/rs6000/linux64.h (ASM_DEFAULT_SPEC): Likewise.
15096 * config/rs6000/rtems.h (ASM_DEFAULT_SPEC): Likewise.
15097 * config/rs6000/rs6000.h (ASM_DEFAULT_EXTRA): Define and use
15098 in asm_default spec.
15099 * config/rs6000/eabialtivec.h (ASM_DEFAULT_EXTRA): Redefine.
15100 * config/rs6000/linuxaltivec.h (ASM_DEFAULT_EXTRA): Redefine.
15101
15102 2019-07-28 Gerald Pfeifer <gerald@pfeifer.com>
15103
15104 * doc/include/gpl_v3.texi (Copying): Use https for www.gnu.org.
15105
15106 2019-07-26 Tamar Christina <tamar.christina@arm.com>
15107
15108 PR target/89517
15109 * config.gcc: Relax parsing of AARCH64_OPT_EXTENSION.
15110 * config/aarch64/aarch64-option-extensions.def: Add new comments
15111 and restore easier to read options.
15112
15113 2019-07-26 Tamar Christina <tamar.christina@arm.com>
15114
15115 * convert.c (convert_to_real_1): Move part of conversion code...
15116 * match.pd: ...To here.
15117
15118 2019-07-26 Martin Jambor <mjambor@suse.cz>
15119
15120 PR ipa/89330
15121 * ipa-inline-transform.c (check_speculations_1): New function.
15122 (push_all_edges_in_set_to_vec): Likewise.
15123 (check_speculations): Use check_speculations_1, new parameter
15124 new_edges.
15125 (inline_call): Pass new_edges to check_speculations.
15126 * ipa-inline.c (add_new_edges_to_heap): Assert edge_callee is not
15127 NULL.
15128 (speculation_useful_p): Early return true if edge is inlined, remove
15129 later checks for inline_failed.
15130
15131 2019-07-25 Vladimir Makarov <vmakarov@redhat.com>
15132
15133 PR rtl-optimization/91223
15134 * lra-constraints.c (process_alt_operands): Fail for unsuccessful
15135 matching with INOUT operand.
15136
15137 2019-07-25 Eric Botcazou <ebotcazou@adacore.com>
15138
15139 * stmt.c (expand_case): Try to narrow the index type if it's larger
15140 than a word. Tidy up.
15141
15142 2019-07-25 Eric Botcazou <ebotcazou@adacore.com>
15143
15144 * cif-code.def (NEVER_CALL): New code.
15145 * ipa-inline.c (want_inline_small_function_p): Fix formatting issues.
15146 Set the failure to CIF_NEVER_CALL if the IPA count is zero.
15147
15148 2019-07-25 Wilco Dijkstra <wdijkstr@arm.com>
15149
15150 * config/arm/thumb2.md (thumb2_movsi_insn): Fix load/store low reg.
15151 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
15152
15153 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
15154
15155 * ipa-devirt.c (add_type_duplicate): Fix return value.
15156
15157 2019-07-25 Richard Biener <rguenther@suse.de>
15158
15159 * tree-vrp.c (extract_range_from_multiplicative_op): Add
15160 type parameter and use it instead of guessing expression
15161 type from the first operand.
15162 (extract_range_from_binary_expr): Pass expr_type down.
15163
15164 2019-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15165
15166 * config/arm/arm.md (SATrev): Change to code attribute.
15167 (*satsi_<SAT:code>): Adjust for the above.
15168 (*satsi_<SAT:code>_shift): Likewise.
15169
15170 2019-07-25 Richard Biener <rguenther@suse.de>
15171
15172 * gimple-loop-versioning.cc (loop_versioning::prune_loop_conditions):
15173 Make value_range * temporary const.
15174 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
15175 Likewise.
15176 (evrp_range_analyzer::record_ranges_from_): Likewise.
15177 (evrp_range_analyzer::pop_value_range): Return a const value_range *,
15178 deal with having recorded a const one.
15179 * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::get_value_range):
15180 Return a const value_range *.
15181 (evrp_range_analyzer::pop_value_range): Likewise.
15182 (evrp_range_analyzer::stack): Record const value_range *s.
15183 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
15184 Adjust.
15185 * gimple-ssa-sprintf.c (get_int_range): Likewise.
15186 (format_integer): Likewise.
15187 (sprintf_dom_walker::handle_gimple_call): Likewise.
15188 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise.
15189 * tree-vrp.c (vrp_prop::set_def_to_varying): Add.
15190 (vrp_prop::get_value_range): Adjust.
15191 (vrp_prop::vrp_initialize): Use set_def_to_varying instead of
15192 modifying the lattice in-place.
15193 (vrp_prop::visit_stmt): Likewise.
15194 * vr-values.c (vr_values::get_lattice_entry): New private method.
15195 (vr_values::get_value_range): Wrap it and return a const
15196 value_range *.
15197 (vr_values::set_def_to_varying): New.
15198 (vr_values::set_defs_to_varying): Use it.
15199 (vr_values::update_value_range): Likewise.
15200 (vr_values::vrp_stmt_computes_nonzero): Adjust.
15201 (values::op_with_constant_singleton_va): Likewise.
15202 (vr_values::extract_range_for_var_from_co): Likewise.
15203 (vr_values::extract_range_from_ssa_name): Likewise.
15204 (vr_values::extract_range_from_cond_expr): Likewise.
15205 (vr_values::extract_range_basic): Likewise.
15206 (compare_ranges): Take const value_range *, adjust.
15207 (compare_range_with_value): Likewise.
15208 (vrp_valueize): Adjust.
15209 (vrp_valueize_1): Likewise.
15210 (vr_values::get_vr_for_comparison): Return a const value_range *.
15211 (vr_values::compare_name_with_value): Adjust.
15212 (vr_values::compare_names): Likewise.
15213 (vr_values::vrp_evaluate_conditional_warnv_with_ops_using_ranges):
15214 Likewise.
15215 (vr_values::vrp_evaluate_conditional): Likewise.
15216 (find_case_label_ranges): Take a const value_range *.
15217 (vr_values::vrp_visit_switch_stmt): Adjust.
15218 (vr_values::extract_range_from_phi_node): Likewise.
15219 (vr_values::simplify_div_or_mod_using_ran): Likewise.
15220 (vr_values::simplify_abs_using_ranges): Likewise.
15221 (test_for_singularity): Take a const value_range *.
15222 (range_fits_type_p): Likewise.
15223 (vr_values::simplify_cond_using_ranges_1): Adjust.
15224 (vr_values::simplify_cond_using_ranges_2): Likewise.
15225 (vr_values::simplify_switch_using_ranges): Likewise.
15226 (vr_values::simplify_float_conversion_usi): Likewise.
15227 (vr_values::two_valued_val_range_p): Likewise.
15228 * vr-values.h (vr_values::get_value_range): Return a const
15229 value_range *.
15230 (vr_values::set_def_to_varying): New.
15231 (vr_values::get_lattice_entry): New private method.
15232 (vr_values::get_vr_for_comparison): Return a const value_range *.
15233
15234 2019-07-25 Martin Liska <mliska@suse.cz>
15235 Dominik Infuhr <dominik.infuehr@theobroma-systems.com>
15236
15237 PR c++/23383
15238 * common.opt: Add -fallocation-dce
15239 * gimple.c (gimple_call_operator_delete_p): New.
15240 * gimple.h (gimple_call_operator_delete_p): Likewise.
15241 * tree-core.h (enum function_decl_type): Add OPERATOR_DELETE.
15242 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Handle
15243 DECL_IS_OPERATOR_DELETE_P.
15244 (mark_all_reaching_defs_necessary_1): Likewise.
15245 (propagate_necessity): Likewise.
15246 (eliminate_unnecessary_stmts): Handle
15247 gimple_call_operator_delete_p.
15248 * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
15249 Add packing of OPERATOR_DELETE.
15250 * tree-streamer-out.c (pack_ts_function_decl_value_fields):
15251 Similarly here.
15252 * tree.h (DECL_IS_OPERATOR_DELETE_P): New.
15253 (DECL_SET_IS_OPERATOR_DELETE): New.
15254 (DECL_IS_REPLACEABLE_OPERATOR_NEW_P): Likewise.
15255
15256 2019-07-25 Martin Liska <mliska@suse.cz>
15257
15258 * calls.c (maybe_warn_alloc_args_overflow): Use new macros
15259 (e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P).
15260 * coverage.c (coverage_begin_function): Likewise.
15261 * fold-const.c (tree_expr_nonzero_warnv_p): Likewise.
15262 * gimple.c (gimple_call_nonnull_result_p): Likewise.
15263 * ipa-icf.c (sem_item::compare_referenced_symbol_properties): Likewise.
15264 (sem_item::hash_referenced_symbol_properties): Likewise.
15265 * lto-streamer-out.c (hash_tree): Likewise.
15266 * predict.c (expr_expected_value_1): Likewise.
15267 * tree-inline.c (expand_call_inline): Likewise.
15268 * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise.
15269 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise.
15270 * tree-core.h (enum function_decl_type): New enum.
15271 (struct tree_function_decl): Remove operator_new_flag and lambda_function.
15272 * tree.h (FUNCTION_DECL_DECL_TYPE): New.
15273 (set_function_decl_type): Likewise.
15274 (DECL_IS_OPERATOR_NEW_P): New.
15275 (DECL_SET_IS_OPERATOR_NEW): Likewise.
15276 (DECL_LAMBDA_FUNCTION): Likewise.
15277 (DECL_LAMBDA_FUNCTION_P): Likewise.
15278 (DECL_IS_OPERATOR_NEW): Remove.
15279 (DECL_SET_LAMBDA_FUNCTION): Likewise.
15280
15281 2019-07-25 Xiong Hu Luo <luoxhu@linux.ibm.com>
15282
15283 * ipa-profile.c (get_most_common_single_value): Use
15284 get_nth_most_common_value.
15285 * profile.c (sort_hist_value): New function.
15286 (compute_value_histograms): Call sort_hist_value to sort the
15287 values after loading from disk.
15288 * value-prof.c (get_most_common_single_value): Rename to ...
15289 get_nth_most_common_value. Add input params n, return
15290 the n_th value and count.
15291 (gimple_divmod_fixed_value_transform): Use
15292 get_nth_most_common_value.
15293 (gimple_ic_transform): Likewise.
15294 (gimple_stringops_transform): Likewise.
15295 * value-prof.h (get_most_common_single_value): Add input params
15296 n, default to 0.
15297
15298 2019-07-25 Richard Biener <rguenther@suse.de>
15299
15300 PR tree-optimization/91236
15301 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
15302 size of CONSTRUCTOR write. Fix buffer size we pass to
15303 native_encode_expr.
15304
15305 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
15306
15307 * config.gcc (msp430*-*-*): Fix non-GNU style in r273774.
15308 * config/msp430/msp430.h (ENDFILE_SPEC): Fix non-GNU style in
15309 r273773.
15310
15311 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
15312
15313 * config.gcc (msp430*-*-*): Enable initfini_array by default unless
15314 explicitly disabled with --disable-initfini-array.
15315
15316 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
15317
15318 * config/msp430/msp430.h (ENDFILE_SPEC): Wrap uses of crtn*.o in
15319 if-exists.
15320
15321 2019-07-24 Martin Sebor <msebor@redhat.com>
15322
15323 PR tree-optimization/91183
15324 PR tree-optimization/86688
15325 * builtins.c (compute_objsize): Handle MEM_REF.
15326 * tree-ssa-strlen.c (class ssa_name_limit_t): New.
15327 (get_min_string_length): Remove.
15328 (count_nonzero_bytes): New function.
15329 (handle_char_store): Rename...
15330 (handle_store): to this. Handle multibyte stores via integer types.
15331 (strlen_check_and_optimize_stmt): Adjust conditional and the called
15332 function name.
15333
15334 2019-07-24 Martin Sebor <msebor@redhat.com>
15335
15336 PR driver/80545
15337 * diagnostic.c (diagnostic_classify_diagnostic): Use lang_mask.
15338 (diagnostic_report_diagnostic): Same.
15339 * diagnostic.h (diagnostic_context::option_enabled): Add an argument.
15340 (diagnostic_context::lang_mask): New data member.
15341 * ipa-pure-const.c (suggest_attribute): Use
15342 lang_hooks.option_lang_mask ().
15343 * opts-common.c (option_enabled): Handle new argument.
15344 (get_option_state): Pass an additional argument.
15345 * opts.c (print_filtered_help): Print supported languages for
15346 unsupported options. Adjust printing of current state.
15347 * opts.h (option_enabled): Add argument.
15348 * toplev.c (print_switch_values): Use lang_mask.
15349 (general_init): Set global_dc->lang_mask.
15350
15351 2019-07-24 Iain Sandoe <iain@sandoe.co.uk>
15352
15353 PR bootstrap/87030
15354 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749.
15355
15356 2019-07-24 Giuliano Belinassi <giuliano.belinassi@usp.br>
15357
15358 * cgraphunit.c (symbol_table::compile): Start and stop
15359 TV_CGRAPH_IPA_PASSES and TV_CGRAPH_FUNC_EXPANSION timers.
15360 * timevar.def (TV_CGRAPH_IPA_PASSES, TV_CGRAPH_FUNC_EXPANSION): New.
15361
15362 2019-07-24 Oliver Browne <oliverbrowne62@gmail.com>
15363
15364 * gimplify.c (flag_instrument_functions_exclude_p): Include
15365 namespace/class information in the printable name.
15366 * opts.c (add_comma_separated_to_vector): Add NUL terminator
15367 to tokens entered into the vector.
15368
15369 2019-07-24 Eric Botcazou <ebotcazou@adacore.com>
15370
15371 * tree-nested.c (build_simple_mem_ref_notrap): New function.
15372 (get_static_chain): Call it instead of build_simple_mem_ref.
15373 (get_frame_field): Likewise.
15374 (get_nonlocal_debug_decl): Likewise.
15375 (convert_nonlocal_reference_op): Likewise.
15376
15377 2019-07-24 Claudiu Zissulescu <claziss@synopsys.com>
15378
15379 * config/arc/arc-protos.h (arc_output_function_epilogue): Delete
15380 declaration.
15381 (arc_compute_frame_size): Millicode is disabled when compiling
15382 ISR.
15383 (arc_return_address_register): Likewise.
15384 (arc_compute_function_type): Likewise.
15385 (arc_compute_frame_size): Likewise.
15386 (secondary_reload_info): Likewise.
15387 (arc_get_unalign): Likewise.
15388 (arc_can_use_return_insn): Declare.
15389 * config/arc/arc.c (AUX_LP_START): Define
15390 (AUX_LP_END): Likewise.
15391 (arc_frame_info): Update gmask member to 64-bit datum.
15392 (GMASK_LEN): Update.
15393 (arc_compute_function_type): Make it static, move it forward.
15394 (arc_must_save_register): Update, consider the extra regs.
15395 (arc_compute_millicode_save_restore_regs): Update to use the 64
15396 bit gmask.
15397 (arc_compute_frame_size): Likewise.
15398 (arc_enter_leave_p): Likewise.
15399 (arc_save_callee_saves): Likewise.
15400 (arc_restore_callee_saves): Likewise.
15401 (arc_save_callee_enter): Likewise.
15402 (arc_restore_callee_leave): Likewise.
15403 (arc_save_callee_milli): Likewise.
15404 (arc_restore_callee_milli): Likewise.
15405 (arc_expand_prologue): Add new interrupt handling.
15406 (arc_return_address_register): Make it static, move it forward.
15407 (arc_expand_epilogue): Add new interrupt handling.
15408 (arc_get_unalign): Delete.
15409 (arc_epilogue_uses): Make sure we do not remove the extra
15410 saved/restored registers when interrupt.
15411 (arc_can_use_return_insn): New function.
15412 (push_reg): Likewise.
15413 (pop_reg): Likewise.
15414 (arc_save_callee_saves): Add ZOL and FPX aux registers saving
15415 procedures.
15416 (arc_restore_callee_saves): Likewise, but restoring.
15417 * config/arc/arc.md (VUNSPEC_ARC_ARC600_RTIE): Define.
15418 (R33_REG): Likewise.
15419 (R34_REG): Likewise.
15420 (R35_REG): Likewise.
15421 (R36_REG): Likewise.
15422 (R37_REG): Likewise.
15423 (R38_REG): Likewise.
15424 (R39_REG): Likewise.
15425 (R45_REG): Likewise.
15426 (R46_REG): Likewise.
15427 (R47_REG): Likewise.
15428 (R48_REG): Likewise.
15429 (R49_REG): Likewise.
15430 (R50_REG): Likewise.
15431 (R51_REG): Likewise.
15432 (R52_REG): Likewise.
15433 (R53_REG): Likewise.
15434 (R54_REG): Likewise.
15435 (R55_REG): Likewise.
15436 (R56_REG): Likewise.
15437 (R58_REG): Likewise.
15438 (type): Add rtie attribute.
15439 (in_call_delay_slot): Use RETURN_ADDR_REGNUM.
15440 (movsi_insn): Accept moves to lp_count.
15441 (rtie): Update pattern.
15442 (simple_return): Simplify it, don't use this pattern as a return
15443 from an interrupt.
15444 (arc600_rtie): New pattern.
15445 (p_return_i): Clean up.
15446 (return): Likewise.
15447 * config/arc/builtins.def (rtie): Only available for non ARC6xx
15448 family CPUs.
15449 * config/arc/predicates.md (move_src_operand): Consider lp_count
15450 as a register.
15451
15452 2019-07-24 Andreas Krebbel <krebbel@linux.ibm.com>
15453
15454 * config/s390/predicates.md (addv_const_operand): New predicate.
15455 * config/s390/s390-modes.def (CCO): New condition code mode.
15456 * config/s390/s390.c (s390_match_ccmode_set): Handle E_CCOmode.
15457 (s390_branch_condition_mask): Likewise.
15458 * config/s390/s390.md ("addv<mode>4", "subv<mode>4")
15459 ("mulv<mode>4"): New expanders.
15460 ("*addv<mode>3_ccoverflow", "*addv<mode>3_ccoverflow_const")
15461 ("*subv<mode>3_ccoverflow", "*mulv<mode>3_ccoverflow"): New
15462 pattern definitions.
15463
15464 2019-07-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
15465
15466 PR middle-end/91166
15467 * match.pd (vec_perm_expr(v, v, mask) -> v): New pattern.
15468 (define_predicates): Add entry for uniform_vector_p.
15469 (vec_same_elem_p): New match pattern.
15470
15471 2019-07-24 Iain Sandoe <iain@sandoe.co.uk>
15472
15473 PR bootstrap/87030
15474 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here...
15475 * config/i386/darwin32-biarch.h .. to here.
15476 * config/i386/darwin64-biarch.h: Adjust comments.
15477 * config/rs6000/darwin32-biarch.h: Likewise.
15478 * config/rs6000/darwin64-biarch.h: Likewise.
15479 * config.gcc: Missed commit from r273746
15480 (*-*-darwin*): Don't include CPU t-darwin here.
15481 (i[34567]86-*-darwin*): Adjust to use biarch files. Produce
15482 an error message if i686-darwin configuration is attempted for
15483 Darwin >= 18.
15484
15485 2019-07-23 Iain Sandoe <iain@sandoe.co.uk>
15486
15487 PR bootstrap/87030
15488 * config.gcc (*-*-darwin*): Don't include CPU t-darwin here.
15489 (i[34567]86-*-darwin*): Adjust to use biarch files. Produce
15490 an error message if i686-darwin configuration is attempted for
15491 Darwin >= 18.
15492 (x86_64-*-darwin*): Switch to single multilib for Darwin >= 18.
15493 (powerpc-*-darwin*): Use biarch files where needed.
15494 (powerpc64-*-darwin*): Likewise.
15495 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file.
15496 (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
15497 arch case.
15498 * config/i386/darwin32-biarch.h: New.
15499 * config/i386/darwin64.h: Rename.
15500 * config/i386/darwin64-biarch.h: To this.
15501 * config/i386/t-darwin: Rename.
15502 * config/i386/t-darwin32-biarch: To this.
15503 * config/i386/t-darwin64: Rename.
15504 * config/i386/t-darwin64-biarch: To this.
15505 * config/rs6000/darwin32-biarch.h: New.
15506 * config/rs6000/darwin64.h: Rename.
15507 * config/rs6000/darwin64-biarch.h: To this.
15508 (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
15509 arch case.
15510 * config/rs6000/t-darwin8: Rename.
15511 * config/rs6000/t-darwin32-biarch: To this.
15512 * config/rs6000/t-darwin64 Rename.
15513 * config/rs6000/t-darwin64-biarch: To this.
15514
15515 2019-07-23 Martin Sebor <msebor@redhat.com>
15516
15517 * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Revert r273311.
15518
15519 2019-07-23 Vladislav Ivanishin <vlad@ispras.ru>
15520
15521 * gdbinit.in (reload-gdbhooks): New command with an attached doc string.
15522 (rh): New alias for it.
15523
15524 2019-07-23 Vladislav Ivanishin <vlad@ispras.ru>
15525
15526 * gdbhooks.py: Pass replace=True to
15527 gdb.printing.register_pretty_printer.
15528
15529 2019-07-23 Richard Biener <rguenther@suse.de>
15530
15531 PR debug/91231
15532 * lto-streamer-in.c (input_function): Drop inline-entry markers
15533 that ended up with an unknown location block.
15534
15535 2019-07-23 Richard Biener <rguenther@suse.de>
15536
15537 PR tree-optimization/83518
15538 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle aggregate
15539 init from a constant even when partial defs are already recorded.
15540
15541 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
15542
15543 * i386-common.c: Use PROCESSOR_ZNVER2 scheduler for znver2.
15544 * config/i386/znver1.md: Enable patterns for znver2 and add store
15545 variants which use extra AGU unit.
15546
15547 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
15548
15549 * config/i386/i386-options.c (ix86_option_override_internal): Default
15550 PARAM_AVOID_FMA_MAX_BITS to 256 for znver2.
15551 * config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS): Set
15552 for ZNVER2.
15553
15554 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
15555
15556 * config/i386/x86-tune-costs.h (znver2_memcpy): Update.
15557 (znver2_costs): Update 256 bit SSE costs and multiplication.
15558
15559 2019-07-23 Jan Beulich <jbeulich@suse.com>
15560
15561 * config/i386/sse.md (<avx512>_cvtmask2<ssemodesuffix><mode>):
15562 Require only AVX512F.
15563 (*<avx512>_cvtmask2<ssemodesuffix><mode>): Likewise. Add
15564 alternative expanding to vpternlog.
15565
15566 2019-07-23 Martin Liska <mliska@suse.cz>
15567
15568 * dwarf2out.c (gen_producer_string): Canonize -flto=N
15569 to -flto in dwarf producer string.
15570
15571 2019-07-23 Richard Biener <rguenther@suse.de>
15572
15573 * tree-cfg.c (label_for_bb): Remove global var.
15574 (main_block_label): Take label_for_bb as argument.
15575 (cleanup_dead_labels_eh): Likewise, adjust.
15576 (cleanup_dead_labels): Adjust.
15577
15578 2019-07-22 Paul A. Clarke <pc@us.ibm.com>
15579
15580 * doc/extend.texi (Basic PowerPC Built-in Functions Available on all
15581 Configurations): Add documentation for __builtin_mtfsf.
15582
15583 2019-07-22 Ilia Diachkov <ilia.diachkov@optimitech.com>
15584
15585 * config/riscv/riscv-opts.h (struct riscv_align_data): New.
15586 * config/riscv/riscv.c (riscv_constant_alignment): Use
15587 riscv_align_data_type.
15588 * config/riscv/riscv.h (RISCV_EXPAND_ALIGNMENT): New.
15589 (DATA_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT.
15590 (LOCAL_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT.
15591 * config/riscv/riscv.opt (malign-data): New.
15592 * doc/invoke.texi (RISC-V Options): Document -malign-data=.
15593
15594 2019-07-02 Giuliano Belinassi <giuliano.belinassi@usp.br>
15595
15596 * cgraph.c (dump_graphviz): New function.
15597 * cgraph.h (dump_graphviz): New function.
15598 * symtab.c (dump_graphviz): New function.
15599
15600 2019-07-22 Sylvia Taylor <sylvia.taylor@arm.com>
15601
15602 * config/aarch64/aarch64-simd.md
15603 (*aarch64_simd_sra<mode>): New.
15604 * config/aarch64/iterators.md
15605 (SHIFTRT): New iterator.
15606 (sra_op): New attribute.
15607
15608 2019-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com>
15609
15610 * config/msp430/msp430.c (msp430_preserve_reg_p): Don't save
15611 callee-saved regs R4->R10 in an interrupt function that calls another
15612 function.
15613
15614 2019-07-22 Paul A. Clarke <pc@us.ibm.com>
15615
15616 * config/rs6000/smmintrin.h (_mm_blend_epi16): New.
15617 (_mm_blendv_epi8): New.
15618
15619 2019-07-22 Richard Biener <rguenther@suse.de>
15620
15621 PR tree-optimization/91221
15622 * tree-ssa-sccvn.c (vn_reference_lookup_3): Appropriately
15623 restrict partial-def handling of empty constructors and
15624 memset to refs with known offset.
15625
15626 2019-07-22 Jan Beulich <jbeulich@suse.com>
15627
15628 * config/i386/sse.md (ternlogsuffix): New.
15629 (one_cmpl<mode>2): Don't force CONSTM1_RTX into a register when
15630 AVX512F is in use.
15631 (<mask_codefor>one_cmpl<mode>2<mask_name>): New.
15632
15633 2019-07-22 Martin Liska <mliska@suse.cz>
15634
15635 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Update
15636 comment.
15637 * toplev.c (compile_file): Do not emit __gnu_lto_v1 symbol.
15638
15639 2019-07-22 Martin Liska <mliska@suse.cz>
15640
15641 * lto-section-in.c (lto_get_section_data):
15642 Use new function get_compression.
15643 * lto-streamer-out.c (produce_lto_section): Use
15644 set_compression to encode compression algorithm.
15645 * lto-streamer.h (struct lto_section): Do not
15646 use bitfields in the format.
15647
15648 2019-07-22 Martin Liska <mliska@suse.cz>
15649
15650 PR driver/91172
15651 * opts-common.c (decode_cmdline_option): Decode
15652 argument of -Werror and check it for a wrong language.
15653 * opts-global.c (complain_wrong_lang): Remove such case.
15654
15655 2019-07-22 Claudiu Zissulescu <claziss@synopsys.com>
15656
15657 * config/arc/arc.c (prepare_move_operands): Always use an
15658 intermediate register when storing a TLS symbols.
15659
15660 2019-07-22 Stafford Horne <shorne@gmail.com>
15661
15662 * config/or1k/or1k.c (or1k_expand_compare): Check for int before
15663 force_reg.
15664
15665 2019-07-22 Stafford Horne <shorne@gmail.com>
15666
15667 * config.gcc (or1k*-*-*): Add mhard-float, mdouble-float, msoft-float
15668 and munordered-float validations.
15669 * config/or1k/constraints.md (d): New register constraint.
15670 * config/or1k/predicates.md (fp_comparison_operator): New.
15671 * config/or1k/or1k.c (or1k_print_operand): Add support for printing 'd'
15672 operands.
15673 (or1k_expand_compare): Normalize unordered comparisons.
15674 * config/or1k/or1k.h (reg_class): Define DOUBLE_REGS.
15675 (REG_CLASS_NAMES): Add "DOUBLE_REGS".
15676 (REG_CLASS_CONTENTS): Add contents for DOUBLE_REGS.
15677 * config/or1k/or1k.md (type): Add fpu.
15678 (fpu): New instruction reservation.
15679 (F, f, fr, fi, FI, FOP, fop): New.
15680 (<fop><F:mode>3): New ALU instruction definition.
15681 (float<fi><F:mode>2): New conversion instruction definition.
15682 (fix_trunc<F:mode><fi>2): New conversion instruction definition.
15683 (fpcmpcc): New code iterator.
15684 (*sf_fp_insn): New instruction definition.
15685 (cstore<F:mode>4): New expand definition.
15686 (cbranch<F:mode>4): New expand definition.
15687 * config/or1k/or1k.opt (msoft-float, mhard-float, mdouble-float,
15688 munordered-float): New options.
15689 * doc/invoke.texi: Document msoft-float, mhard-float, mdouble-float and
15690 munordered-float.
15691
15692 2019-07-22 Stafford Horne <shorne@gmail.com>
15693
15694 * config.gcc (or1k*-*-*): Add mrori and mror to validation.
15695 * doc/invoke.texi (OpenRISC Options): Add mrori option, rewrite all
15696 documenation to be more clear.
15697 * config/or1k/elf.opt (mboard=, mnewlib): Rewrite documentation to be
15698 more clear.
15699 * config/or1k/or1k.opt (mrori): New option.
15700 (mhard-div, msoft-div, mhard-mul, msoft-mul, mcmov, mror, msext,
15701 msfimm, mshftimm): Rewrite documentation to be more clear.
15702 * config/or1k/or1k.md (insn_support): Add ror and rori.
15703 (enabled): Add conditions for ror and rori.
15704 (rotrsi3): Replace condition for shftimm with ror and rori.
15705
15706 2019-07-22 Stafford Horne <shorne@gmail.com>
15707
15708 PR target/90363
15709 * config/or1k/or1k.md (zero_extend<mode>si2): Update predicate.
15710 (extend<mode>si2): Update predicate.
15711 * config/or1k/predicates.md (volatile_mem_operand): New.
15712 (reg_or_mem_operand): New.
15713
15714 2019-07-21 Iain Sandoe <iain@sandoe.co.uk>
15715
15716 * config/rs6000/rs6000.c (TARGET_NO_PROTOTYPE): Move from here...
15717 * config/rs6000/rs6000-call.c: ... to here.
15718
15719 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
15720
15721 * config/rs6000/predicates.md (offsettable_mem_operand): Allow volatile
15722 memory.
15723
15724 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
15725
15726 * config/rs6000/predicates.md (input_operand): Allow volatile memory.
15727
15728 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
15729
15730 * config/rs6000/predicates.md (lwa_operand): Allow volatile memory.
15731
15732 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
15733
15734 * config/rs6000/predicates.md (volatile_mem_operand): Modernize syntax.
15735 (any_memory_operand): New predicate.
15736 (reg_or_mem_operand): Use it.
15737
15738 2019-07-20 Jakub Jelinek <jakub@redhat.com>
15739
15740 PR target/91204
15741 * optabs.c (expand_unop): As fallback, expand ~op0 as op0 ^ -1.
15742
15743 2019-07-20 John David Anglin <danglin@gcc.gnu.org>
15744
15745 * config/pa/pa.h (hppa_profile_hook): Delete declaration.
15746 * config/pa/pa-protos.h (hppa_profile_hook): Add declaration.
15747
15748 2019-07-20 Jakub Jelinek <jakub@redhat.com>
15749
15750 * tree.def (OMP_LOOP): New tree code.
15751 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_BIND.
15752 (enum omp_clause_bind_kind): New enum.
15753 (struct tree_omp_clause): Add subcode.bind_kind.
15754 * tree.h (OMP_LOOP_CHECK): Rename to ...
15755 (OMP_LOOPING_CHECK): ... this.
15756 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
15757 OMP_FOR_INCR, OMP_FOR_PRE_BODY, OMP_FOR_ORIG_DECLS): Use
15758 OMP_LOOPING_CHECK instead of OMP_LOOP_CHECK.
15759 (OMP_CLAUSE_BIND_KIND): Define.
15760 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
15761 bind clause entries.
15762 (walk_tree_1): Handle OMP_CLAUSE_BIND.
15763 * tree-pretty-print.c (dump_omp_clause): Likewise.
15764 (dump_generic_node): Handle OMP_LOOP.
15765 * gimplify.c (enum omp_region_type): Add ORT_IMPLICIT_TARGET.
15766 (in_omp_construct): New variable.
15767 (is_gimple_stmt): Handle OMP_LOOP.
15768 (gimplify_scan_omp_clauses): For lastprivate don't set
15769 check_non_private if code == OMP_LOOP. For reduction clause
15770 on OMP_LOOP combined with parallel or teams propagate as shared
15771 on the combined construct. Handle OMP_CLAUSE_BIND.
15772 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_BIND.
15773 (gimplify_omp_for): Pass OMP_LOOP instead of OMP_{FOR,DISTRIBUTE}
15774 for constructs from a loop construct to gimplify_scan_omp_clauses.
15775 Don't predetermine iterator linear on OMP_SIMD from loop construct.
15776 (replace_reduction_placeholders, gimplify_omp_loop): New functions.
15777 (gimplify_omp_workshare): Use ORT_IMPLICIT_TARGET instead of trying
15778 to match the implicit ORT_TARGET construct around whole body.
15779 Temporarily clear in_omp_construct when processing body.
15780 (gimplify_expr): Handle OMP_LOOP. For OMP_MASTER, OMP_TASKGROUP
15781 etc. temporarily set in_omp_construct when processing body.
15782 (gimplify_body): Create ORT_IMPLICIT_TARGET instead of ORT_TARGET.
15783 * omp-low.c (struct omp_context): Add loop_p.
15784 (build_outer_var_ref): Treat ctx->loop_p similarly to simd construct
15785 in that the original var might be private.
15786 (scan_sharing_clauses): Handle OMP_CLAUSE_BIND.
15787 (check_omp_nesting_restrictions): Adjust nesting restrictions for
15788 addition of loop construct.
15789 (scan_omp_1_stmt): Allow setjmp inside of loop construct.
15790
15791 * omp-low.c (lower_rec_input_clauses): Don't force simd arrays for
15792 lastprivate non-addressable iterator of a collapse(1) simd.
15793
15794 2019-07-17 Bill Seurer <seurer@linux.vnet.ibm.com>
15795
15796 * config/rs6000/rs6000-call.c (HAVE_AS_GNU_ATTRIBUTE): define value
15797 as in rs6000.c.
15798
15799 2019-07-19 Iain Sandoe <iain@sandoe.co.uk>
15800
15801 * config/darwin.h (DRIVER_SELF_SPECS): Ignore X and Mach specs which
15802 refer to default conditions. Warn for the 'y' spec which is ignored
15803 by current linkers.
15804
15805 2019-07-19 Bill Seurer <seurer@linux.vnet.ibm.com>
15806
15807 * config/rs6000/rs6000.c (builtin_description, cpu_is_info,
15808 cpu_supports_info, builtin_hash_struct, builtin_hasher,
15809 builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info,
15810 rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate,
15811 rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest,
15812 init_cumulative_args, rs6000_promote_function_mode,
15813 rs6000_must_pass_in_stack, is_complex_IBM_long_double,
15814 abi_v4_pass_in_fpr, rs6000_function_arg_padding,
15815 rs6000_function_arg_boundary, rs6000_parm_offset,
15816 rs6000_parm_start, rs6000_arg_size,
15817 rs6000_darwin64_record_arg_advance_flush,
15818 rs6000_darwin64_record_arg_advance_recurse,
15819 rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1,
15820 rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush,
15821 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
15822 rs6000_mixed_function_arg, rs6000_psave_function_arg,
15823 rs6000_finish_function_arg, rs6000_function_arg,
15824 rs6000_arg_partial_bytes, rs6000_pass_by_reference,
15825 rs6000_parm_needs_stack, rs6000_function_parms_need_stack,
15826 rs6000_reg_parm_stack_space, rs6000_move_block_from_reg,
15827 setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start,
15828 rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst,
15829 bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg,
15830 bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name,
15831 rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin,
15832 rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin,
15833 rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin,
15834 altivec_expand_abs_builtin, rs6000_expand_binop_builtin,
15835 altivec_expand_predicate_builtin, swap_endian_selector_for_mode,
15836 altivec_expand_lv_builtin, altivec_expand_stxvl_builtin,
15837 altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode,
15838 htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin,
15839 altivec_expand_dst_builtin, altivec_expand_vec_init_builtin,
15840 get_element_number, altivec_expand_vec_set_builtin,
15841 altivec_expand_vec_ext_builtin, altivec_expand_builtin,
15842 rs6000_builtin_is_supported_p, rs6000_invalid_builtin,
15843 rs6000_fold_builtin, rs6000_builtin_valid_without_lhs,
15844 fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper,
15845 fold_mergeeo_helper, rs6000_gimple_fold_builtin,
15846 rs6000_expand_builtin, rs6000_vector_type,
15847 rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins,
15848 htm_init_builtins, builtin_function_type, rs6000_common_init_builtins,
15849 rs6000_internal_arg_pointer, rs6000_output_mi_thunk): Move
15850 to rs6000-call.c.
15851 * config/rs6000/rs6000-call.c (builtin_description, cpu_is_info,
15852 cpu_supports_info, builtin_hash_struct, builtin_hasher,
15853 builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info,
15854 rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate,
15855 rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest,
15856 init_cumulative_args, rs6000_promote_function_mode,
15857 rs6000_must_pass_in_stack, is_complex_IBM_long_double,
15858 abi_v4_pass_in_fpr, rs6000_function_arg_padding,
15859 rs6000_function_arg_boundary, rs6000_parm_offset,
15860 rs6000_parm_start, rs6000_arg_size,
15861 rs6000_darwin64_record_arg_advance_flush,
15862 rs6000_darwin64_record_arg_advance_recurse,
15863 rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1,
15864 rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush,
15865 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
15866 rs6000_mixed_function_arg, rs6000_psave_function_arg,
15867 rs6000_finish_function_arg, rs6000_function_arg,
15868 rs6000_arg_partial_bytes, rs6000_pass_by_reference,
15869 rs6000_parm_needs_stack, rs6000_function_parms_need_stack,
15870 rs6000_reg_parm_stack_space, rs6000_move_block_from_reg,
15871 setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start,
15872 rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst,
15873 bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg,
15874 bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name,
15875 rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin,
15876 rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin,
15877 rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin,
15878 altivec_expand_abs_builtin, rs6000_expand_binop_builtin,
15879 altivec_expand_predicate_builtin, swap_endian_selector_for_mode,
15880 altivec_expand_lv_builtin, altivec_expand_stxvl_builtin,
15881 altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode,
15882 htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin,
15883 altivec_expand_dst_builtin, altivec_expand_vec_init_builtin,
15884 get_element_number, altivec_expand_vec_set_builtin,
15885 altivec_expand_vec_ext_builtin, altivec_expand_builtin,
15886 rs6000_builtin_is_supported_p, rs6000_invalid_builtin,
15887 rs6000_fold_builtin, rs6000_builtin_valid_without_lhs,
15888 fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper,
15889 fold_mergeeo_helper, rs6000_gimple_fold_builtin,
15890 rs6000_expand_builtin, rs6000_vector_type,
15891 rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins,
15892 htm_init_builtins, builtin_function_type, rs6000_common_init_builtins,
15893 rs6000_internal_arg_pointer, rs6000_output_mi_thunk: Move
15894 to here from rs6000.c.
15895 * config/rs6000/rs6000-internal.h: (rs6000_darwin64_struct_check_p,
15896 rs6000_discover_homogeneous_aggregate, rs6000_output_mi_thunk,
15897 rs6000_output_addr_const_extra, rs6000_gimple_fold_builtin,
15898 rs6000_invalid_builtin, rs6000_build_builtin_va_list, rs6000_va_start,
15899 rs6000_gimplify_va_arg, rs6000_promote_function_mode,
15900 rs6000_return_in_memory, rs6000_return_in_msb,
15901 rs6000_pass_by_reference, setup_incoming_varargs,
15902 rs6000_function_arg_boundary, rs6000_must_pass_in_stack,
15903 rs6000_arg_partial_bytes, rs6000_function_arg_advance,
15904 rs6000_function_arg_padding, rs6000_function_arg,
15905 rs6000_darwin64_record_arg, rs6000_internal_arg_pointer,
15906 rs6000_init_builtins, rs6000_builtin_decl, rs6000_expand_builtin,
15907 rs6000_fold_builtin, rs6000_passes_ieee128, rs6000_passes_float,
15908 rs6000_passes_long_double, rs6000_passes_vector,
15909 rs6000_returns_struct, cpu_builtin_p, tree builtin_mode_to_type,
15910 altivec_builtin_mask_for_load) Add declarations.
15911 * config/rs6000/t-rs6000: Add new source file rs6000-call.c.
15912 * config/config.gcc: Add new source file rs6000-call.c to garbage
15913 collector and extra_objs.
15914
15915 2019-07-19 Jeff Law <law@redhat.com>
15916
15917 PR tree-optimization/86061
15918 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle
15919 strncpy. Drop some trivial dead code.
15920 (maybe_trim_memstar_call): Handle strncpy.
15921
15922 2019-07-19 Richard Biener <rguenther@suse.de>
15923
15924 PR tree-optimization/91211
15925 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
15926 memset encoding size.
15927
15928 2019-07-19 Uroš Bizjak <ubizjak@gmail.com>
15929
15930 PR target/91204
15931 * config/i386/mmx.md (one_cmpl<mode>2): New expander.
15932
15933 2019-07-19 Jan Hubicka <hubicka@ucw.cz>
15934
15935 PR ipa/91194
15936 * ipa-inline.c (recursive_inlining): Fix limits check.
15937
15938 2019-07-19 Richard Biener <rguenther@suse.de>
15939
15940 PR tree-optimization/91200
15941 * tree-ssa-phiopt.c (cond_store_replacement): Check we have
15942 no PHI nodes in middle-bb.
15943
15944 2019-07-19 Richard Sandiford <richard.sandiford@arm.com>
15945
15946 * doc/invoke.texi: Rename the AArch64 +bitperm extension flag
15947 to +sve-bitperm.
15948 * config/aarch64/aarch64-option-extensions.def: Likewise.
15949
15950 2019-07-19 Jakub Jelinek <jakub@redhat.com>
15951
15952 PR middle-end/91190
15953 * function.c (insert_temp_slot_address): Store into the hash table
15954 a copy of address to avoid RTL sharing issues.
15955
15956 2019-07-19 Richard Biener <rguenther@suse.de>
15957
15958 PR tree-optimization/91207
15959 Revert
15960 2019-07-17 Richard Biener <rguenther@suse.de>
15961
15962 PR tree-optimization/91178
15963 * tree-vect-stmts.c (get_group_load_store_type): For SLP
15964 loads with a gap larger than the vector size always use
15965 VMAT_STRIDED_SLP.
15966 (vectorizable_load): For VMAT_STRIDED_SLP with a permutation
15967 avoid loading vectors that are only contained in the gap
15968 and thus are not needed.
15969
15970 2019-07-18 Uroš Bizjak <ubizjak@gmail.com>
15971
15972 * config/i386/i386.md (*addqi_2_slp): Remove.
15973 (*<code>qi_2_slp): Ditto.
15974
15975 2019-07-18 Michael Meissner <meissner@linux.ibm.com>
15976
15977 * config/rs6000/predicates.md (prefixed_mem_operand): Call
15978 rs6000_prefixed_address_mode_p instead of rs6000_prefixed_address.
15979 * config/rs6000/rs6000-protos.h (rs6000_prefixed_address_mode_p):
15980 Rename function from rs6000_prefixed_address.
15981 * config/rs6000/aix.h (TARGET_HAS_TOC): Rename TARGET_TOC to
15982 TARGET_HAS_TOC.
15983 (TARGET_TOC): Likewise.
15984 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
15985 rs6000.h.
15986 * config/rs6000/darwin.h (TARGET_HAS_TOC): Rename TARGET_TOC to
15987 TARGET_HAS_TOC.
15988 (TARGET_TOC): Likewise.
15989 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
15990 rs6000.h.
15991 * config/rs6000/linux64.h (TARGET_HAS_TOC): Rename TARGET_TOC to
15992 TARGET_HAS_TOC.
15993 (TARGET_TOC): Likewise.
15994 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
15995 check to require -mcmodel=medium for pc-relative addressing.
15996 (create_TOC_reference): Add assertion for TARGET_TOC.
15997 (rs6000_legitimize_address): Use TARGET_NO_TOC_OR_PCREL instead of
15998 TARGET_NO_TOC.
15999 (rs6000_emit_move): Likewise.
16000 (TOC_alias_set): Rename TOC alias set static variable from 'set'
16001 to 'TOC_alias_set'.
16002 (get_TOC_alias_set): Likewise.
16003 (output_toc): Use TARGET_NO_TOC_OR_PCREL instead of
16004 TARGET_NO_TOC.
16005 (rs6000_can_eliminate): Likewise.
16006 (rs6000_prefixed_address_mode_p): Rename function from
16007 rs6000_prefixed_address.
16008 * config/rs6000/rs6000.h (TARGET_TOC): Define in terms of
16009 TARGET_HAS_TOC and not pc-relative.
16010 (TARGET_NO_TOC_OR_PCREL): New macro to replace TARGET_NO_TOC.
16011 * config/rs6000/sysv4.h (TARGET_HAS_TOC): Rename TARGET_TOC to
16012 TARGET_HAS_TOC.
16013 (TARGET_TOC): Likewise.
16014 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
16015 rs6000.h.
16016
16017 2019-07-18 Uroš Bizjak <ubizjak@gmail.com>
16018
16019 PR target/91188
16020 * config/i386/i386.md (*addqi_1_slp): Use register_operand predicate
16021 for operand 0. Do not use (match_dup) to match operand 1 with
16022 operand 0. Add check in insn constraint that either input operand
16023 matches operand 0. Use SWI12 mode iterator to also handle
16024 HImode operands.
16025 (*and<mode>_1_slp): Ditto.
16026 (*<code>qi_1_slp): Ditto.
16027 (*sub<mode>_1_slp): Use register_operand predicate for operand 0.
16028 Do not use (match_dup) to match operand 1 with operand 0. Add
16029 check in insn constraint that operand 1 matches operand 0.
16030 Use SWI12 mode iterator to also handle HImode operands.
16031 (*ashl<mode>3_1_slp): Ditto.
16032 (*<shift_insn><mode>3_1_slp): Ditto.
16033 (*<rotate_insn><mode>3_1_slp): Ditto.
16034
16035 2019-07-18 Sylvia Taylor <sylvia.taylor@arm.com>
16036
16037 * config/arm/arm-builtins.c
16038 (arm_expand_ternop_builtin): Remove explicit sha1 builtin handling.
16039 (arm_expand_unop_builtin): Likewise.
16040 * config/arm/crypto.md
16041 (crypto_sha1h): Convert from define_insn to define_expand.
16042 (crypto_<crypto_pattern>): Likewise.
16043 (crypto_sha1h_lb): New define_insn.
16044 (crypto_<crypto_pattern>_lb): Likewise.
16045
16046 2019-07-18 Sylvia Taylor <sylvia.taylor@arm.com>
16047
16048 PR target/90317
16049 * config/arm/arm_neon.h (vsha1h_u32): Refactor.
16050 (vsha1cq_u32): Likewise.
16051 (vsha1pq_u32): Likewise.
16052 (vsha1mq_u32): Likewise.
16053 * config/arm/crypto.md (crypto_sha1h): Remove zero extend, correct
16054 vec select.
16055 (crypto_sha1c): Correct vec select.
16056 (crypto_sha1m): Likewise.
16057 (crypto_sha1p): Likewise.
16058
16059 2019-07-18 Richard Earnshaw <rearnsha@arm.com>
16060
16061 * config/arm/predicates.md (arm_borrow_operation): New predicate.
16062 * config/arm/arm.c (subdi3_compare1): Use CCmode for the split.
16063 (arm_subdi3, subdi_di_zesidi, subdi_di_sesidi): Likewise.
16064 (subdi_zesidi_zesidi): Likewise.
16065 (negdi2_compare, negdi2_insn): Likewise.
16066 (negdi_extensidi): Likewise.
16067 (negdi_zero_extendsidi): Likewise.
16068 (arm_cmpdi_insn): Likewise.
16069 (subsi3_carryin): Use arm_borrow_operation.
16070 (subsi3_carryin_const): Likewise.
16071 (subsi3_carryin_const0): Likewise.
16072 (subsi3_carryin_compare): Likewise.
16073 (subsi3_carryin_compare_const): Likewise.
16074 (subsi3_carryin_compare_const0): Likewise.
16075 (subsi3_carryin_shift): Likewise.
16076 (rsbsi3_carryin_shift): Likewise.
16077 (negsi2_carryin_compare): Likewise.
16078
16079 2019-07-18 Bin Cheng <bin.cheng@linux.alibaba.com>
16080
16081 PR tree-optimization/91137
16082 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field.
16083 (tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize):
16084 Init, use and fini the above new field.
16085 (determine_base_object_1): New function.
16086 (determine_base_object): Reimplement using walk_tree.
16087
16088 2019-07-18 Richard Sandiford <richard.sandiford@arm.com>
16089
16090 * basic-block.h (CLEANUP_FORCE_FAST_DCE): New macro.
16091 * cfgcleanup.c (cleanup_cfg): Call run_fast_dce if
16092 CLEANUP_FORCE_FAST_DCE is set.
16093 * ifcvt.c (rest_of_handle_if_conversion): Pass
16094 CLEANUP_FORCE_FAST_DCE to the final cleanup_cfg call if
16095 if-conversion succeeded.
16096
16097 2019-07-18 Richard Biener <rguenther@suse.de>
16098
16099 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Refactor
16100 branches to make code less indented.
16101
16102 2019-07-17 Alexandre Oliva <oliva@adacore.com>
16103
16104 PR middle-end/81824
16105 * attribs.c (decls_mismatched_attributes): Simplify the logic
16106 that avoids duplicates and false positives.
16107
16108 2019-07-17 John David Anglin <danglin@gcc.gnu.org>
16109
16110 * config/pa/pa.c (pa_som_asm_init_sections): Don't force all constant
16111 data into data section when generating PIC code.
16112 (pa_select_section): Use pa_reloc_rw_mask() to qualify relocs.
16113 (pa_reloc_rw_mask): Return 3 when generating PIC code and when
16114 generating code for SOM targets earlier than HP-UX 11. Otherwise,
16115 return 2 for SOM and 0 for other targets.
16116
16117 2019-07-17 Jeff Law <law@redhat.com>
16118
16119 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Fix formatting.
16120 (dse_walker::dse_optimize_stmt): Likewise. Add missing return to
16121 avoid unexpected switch statement fallthru.
16122
16123 2019-07-17 Uroš Bizjak <ubizjak@gmail.com>
16124
16125 * config/i386/i386.md (*add<dwi>3_doubleword):
16126 Remove redundant constraints.
16127 (*add<mode>_1): Ditto.
16128 (*addhi_1): Ditto.
16129 (*addqi_1): Ditto.
16130 (*addqi_1_slp): Ditto.
16131 (*add<mode>_2): Ditto.
16132 (*addv<mode>4): Ditto.
16133 (*sub<dwi>3_doubleword): Ditto.
16134 (*sub<mode>_1): Ditto.
16135 (*subqi_1_slp): Ditto.
16136 (*sub<mode>_2): Ditto.
16137 (*subv<mode>4): Ditto.
16138 (*sub<mode>_3): Ditto.
16139 (@add<mode>3_carry): Ditto.
16140 (@sub<mode>3_carry): Ditto.
16141 (*add<mode>3_cc_overflow_1): Ditto.
16142 (*add<mode>3_zext_cc_overflow_2): Ditto.
16143 (*anddi_1): Ditto.
16144 (*and<mode>_1): Ditto.
16145 (*andqi_1): Ditto.
16146 (*andqi_1_slp): Ditto.
16147 (*anddi_2): Ditto.
16148 (*andqi_2_maybe_si): Ditto.
16149 (*and<mode>_2): Ditto.
16150 (*andqi_2_slp): Ditto.
16151 (*<code><mode>_1): Ditto.
16152 (*<code>qi_1): Ditto.
16153 (*<code>qi_1_slp): Ditto.
16154 (*<code><mode>_2): Ditto.
16155 (*<code>qi_2_slp): Ditto.
16156
16157 2019-07-17 Jan Hubicka <hubicka@ucw.cz>
16158
16159 * alias.c (record_component_aliases): Do not simplify pointed-to
16160 types of ODR types.
16161
16162 2019-07-17 Uroš Bizjak <ubizjak@gmail.com>
16163
16164 * config/i386/i386.md (*andqi_2_maybe_si): Handle potential
16165 partial reg stall on alternative 2.
16166
16167 2019-07-17 Richard Biener <rguenther@suse.de>
16168
16169 PR tree-optimization/91178
16170 * tree-ssa.c (release_defs_bitset): Iterate from higher to
16171 lower SSA names to avoid quadratic behavior in the common case.
16172 * tree-data-ref.c (split_constant_offset): Add limit argument
16173 and pass it down. Initialize it from PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
16174 (split_constant_offset_1): Add limit argument and use it to
16175 limit SSA def walking. Optimize the common plus/minus case.
16176
16177 2019-07-17 Richard Biener <rguenther@suse.de>
16178
16179 PR tree-optimization/91178
16180 * tree-vect-stmts.c (get_group_load_store_type): For SLP
16181 loads with a gap larger than the vector size always use
16182 VMAT_STRIDED_SLP.
16183 (vectorizable_load): For VMAT_STRIDED_SLP with a permutation
16184 avoid loading vectors that are only contained in the gap
16185 and thus are not needed.
16186
16187 2019-07-17 Richard Biener <rguenther@suse.de>
16188
16189 PR tree-optimization/91180
16190 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix offset
16191 computation for memset partial defs.
16192
16193 2019-07-17 Jakub Jelinek <jakub@redhat.com>
16194
16195 * gimple.h (enum gf_mask): Remove GF_OMP_FOR_SIMD, change
16196 GF_OMP_FOR_KIND_SIMD to a value serially after other kinds,
16197 divide GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_COMBINED,
16198 GF_OMP_FOR_COMBINED_INTO, GF_OMP_FOR_GRID_PHONY,
16199 GF_OMP_FOR_GRID_INTRA_GROUP and GF_OMP_FOR_GRID_GROUP_ITER by two.
16200 * omp-grid.c (grid_process_grid_body,
16201 grid_eliminate_combined_simd_part): Use GF_OMP_FOR_KIND_SIMD instead
16202 of GF_OMP_FOR_SIMD, don't test & GF_OMP_FOR_SIMD but
16203 == GF_OMP_FOR_KIND_SIMD.
16204 * omp-low.c (build_outer_var_ref, scan_sharing_clauses,
16205 check_omp_nesting_restrictions, scan_omp_1_stmt,
16206 lower_rec_input_clauses, lower_lastprivate_conditional_clauses,
16207 lower_lastprivate_clauses, lower_reduction_clauses, lower_omp_scan,
16208 omp_find_scan): Likewise.
16209 * omp-expand.c (expand_omp_for): Likewise.
16210 * omp-general.c (omp_extract_for_data): Likewise.
16211
16212 PR tree-optimization/91157
16213 * tree-vect-generic.c (expand_vector_comparison): Handle lhs being
16214 a vector boolean with scalar mode.
16215 (expand_vector_condition): Handle first operand being a vector boolean
16216 with scalar mode.
16217 (expand_vector_operations_1): For comparisons, don't bail out early
16218 if the return type is vector boolean with scalar mode, but comparison
16219 operand type is not.
16220
16221 2019-07-17 Richard Biener <rguenther@suse.de>
16222
16223 PR tree-optimization/91181
16224 * tree-vect-slp.c (vect_build_slp_tree_1): Do not compare
16225 IFN_LOADs as calls.
16226
16227 2019-07-16 Uroš Bizjak <ubizjak@gmail.com>
16228
16229 * config/i386/i386.md (*testdi_1): Match CCZmode for
16230 constants that might have the SImode sign bit set.
16231 (*testqi_1_maybe_si): Remove "!" constraint modifier.
16232 Use correct constraints for pentium pairing.
16233 (*test<mode>_1): Ditto.
16234
16235 2019-07-16 Jeff Law <law@redhat.com>
16236
16237 PR rtl-optimization/91173
16238 * tree-ssa-address.c (addr_for_mem_ref): If the base is an
16239 SSA_NAME with a constant value, fold its value into the offset
16240 and clear the base before calling gen_addr_rtx.
16241
16242 2019-07-16 Jakub Jelinek <jakub@redhat.com>
16243
16244 PR rtl-optimization/91164
16245 * dse.c (rest_of_handle_dse): If dead edges have been purged,
16246 invalidate dominance info.
16247
16248 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
16249
16250 * read-md.h (md_reader::record_potential_iterator_use): Add a
16251 file_location parameter.
16252 * read-rtl.c (attribute_use::loc): New field.
16253 (map_attr_string): Take a file_location parameter. Report cases
16254 in which attributes map to multiple distinct values.
16255 (apply_attribute_uses): Update call accordingly.
16256 (md_reader::handle_overloaded_name): Likewise.
16257 (md_reader::apply_iterator_to_string): Likewise. Skip empty
16258 nonnull strings.
16259 (record_attribute_use): Take a file_location parameter.
16260 Initialize attribute_use::loc.
16261 (md_reader::record_potential_iterator_use): Take a file_location
16262 parameter. Update call to record_attribute_use.
16263 (rtx_reader::rtx_alloc_for_name): Update call accordingly.
16264 (rtx_reader::read_rtx_code): Likewise.
16265 (rtx_reader::read_rtx_operand): Likewise. Record a location
16266 for implicitly-expanded empty strings.
16267
16268 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
16269
16270 * read-md.h (md_reader::ptr_loc): Moved from read-md.c.
16271 Use file_location instead of separate fields.
16272 (md_reader::set_md_ptr_loc): Take a file_location instead of a
16273 separate filename and line number.
16274 * read-md.c (ptr_loc): As above.
16275 (md_reader::copy_md_ptr_loc): Update for new ptr_loc layout.
16276 (md_reader::fprint_md_ptr_loc): Likewise.
16277 (md_reader::set_md_ptr_loc): Likewise. Take a file_location
16278 instead of a separate filename and line number.
16279 (md_reader::read_string): Update call accordingly.
16280
16281 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
16282
16283 * config/rs6000/rs6000.md (*mov<mode>_update1): Explicitly
16284 use <SFDF:mode>, <SFDF:MODE>, <SFDF:Ff> and <SFDF:bits> rather than
16285 leaving the choice between SFDF and P implicit.
16286 (*mov<mode>_update2): Likewise.
16287 (*cmp<IBM128:mode>_internal2): Explicitly use <IBM128:MODE>
16288 rather than leaving the choice betweem IBM128 and GPR implicit.
16289 (*fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Explicitly use
16290 <IEEE128:MODE> rather than leaving the choice between IEEE128 and
16291 QHSI implicit.
16292 (AltiVec define_peephole2s): Explicitly use <ALTIVEC_DFORM:MODE>
16293 rather than leaving the choice between ALTIVEC_DFORM and P implicit.
16294 * config/rs6000/vsx.md
16295 (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>)
16296 (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Explicitly
16297 use <FL_CONV:VSisa> rather than leaving the choice between FL_CONV
16298 and VSX_EXTRACT_I implicit.
16299
16300 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
16301
16302 * config/mips/micromips.md (*movep<MOVEP1:mode><MOVEP2:mode>):
16303 Explicitly use <MOVEP1:MODE> for the mode attribute.
16304
16305 2019-07-16 Jan Hubicka <hubicka@ucw.cz>
16306
16307 PR bootstrap/91176
16308 * ipa-fnsummary.c (analyze_function_body): Skip debug stmts
16309
16310 2019-07-15 Segher Boessenkool <segher@kernel.crashing.org>
16311
16312 PR target/91050
16313 * config/rs6000/rs6000.c (rs6000_file_start): Never skip emitting a
16314 .machine directive.
16315
16316 2019-07-15 Uroš Bizjak <ubizjak@gmail.com>
16317
16318 * config/i386/i386.md (@test<mode>_ccno_1):
16319 Rename from test<mode>_ccno_1.
16320 (*testdi_1): Remove redundant alternatives. Remove modrm attribute.
16321 (*testqi_1_maybe_si): Remove modrm attribute.
16322 (*test<mode>_1): Ditto.
16323 * config/i386/i386-expand.c (ix86_split_idivmod): Use
16324 gen_test_ccno_1 and gen_extend_insn.
16325
16326 2019-07-15 Jan Hubicka <hubicka@ucw.cz>
16327
16328 * tree-ssa-alias.c (aliasing_component_refs_walk): Initialize same_p
16329 to 0.
16330
16331 2019-07-15 Richard Biener <rguenther@suse.de>
16332
16333 PR middle-end/91162
16334 * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
16335 node make sure to replace all uses with something valid.
16336
16337 2019-07-15 Kewen Lin <linkw@gcc.gnu.org>
16338
16339 PR tree-optimization/88497
16340 * tree-ssa-reassoc.c (reassociate_bb): Swap the positions of
16341 GIMPLE_BINARY_RHS check and gimple_visited_p check, call new
16342 function undistribute_bitref_for_vector.
16343 (undistribute_bitref_for_vector): New function.
16344 (cleanup_vinfo_map): Likewise.
16345 (sort_by_mach_mode): Likewise.
16346
16347 2019-07-14 Uroš Bizjak <ubizjak@gmail.com>
16348
16349 * config/i386/i386.md (nonmemory_szext_operand): New mode attribute.
16350 (test<mode>_ccno_1): Macroize insn pattern from testsi_ccno_1
16351 and testdi_ccno_1 using SWI48 mode attribute.
16352 (*testdi_1): Use x86_64_szext_nonmemory_operand instead of
16353 x86_64_szext_general_operand.
16354 (*testqi_1_maybe_si): Use nonmemory_operand instead of general_operand.
16355 (*test<mode>_1): Use nonmemory_szext_operand mode attribute
16356 instead of genera_operand mode attribute.
16357
16358 2019-07-14 Vladislav Ivanishin <vlad@ispras.ru>
16359
16360 * gdbhooks.py (DumpFn.invoke): Add explicit casts of return values of
16361 fopen and fclose to their respective types.
16362 (DotFn.invoke): Ditto.
16363
16364 2019-07-14 Jan Hubicka <hubicka@ucw.cz>
16365
16366 * ipa-fnsummary.c (ipa_dump_hints): Do not dump array_index.
16367 (ipa_fn_summary::~ipa_fn_summary): Do not destroy array_index.
16368 (ipa_fn_summary_t::duplicate): Do not duplicate array_index.
16369 (array_index_predicate): Remove.
16370 (analyze_function_body): Account cost for variable ofsetted array
16371 indexing.
16372 (estimate_node_size_and_time): Do not compute array index hint.
16373 (ipa_merge_fn_summary_after_inlining): Do not merge array index hint.
16374 (inline_read_section): Do not read array index hint.
16375 (ipa_fn_summary_write): Do not write array index hint.
16376 * doc/invoke.texi (ipa-cp-array-index-hint-bonus): Remove.
16377 * ipa-cp.c (hint_time_bonus): Remove.
16378 * ipa-fnsummary.h (ipa_hints_vals): Remove array_index.
16379 (ipa_fnsummary): Remove array_index.
16380 * ipa-inline.c (want_inline_small_function_p): Do not use
16381 array_index.
16382 (edge_badness): Likewise.
16383 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): Remove.
16384
16385 2019-07-14 Segher Boessenkool <segher@kernel.crashing.org>
16386
16387 PR target/91148
16388 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Remove
16389 superfluous "builtin function" phrasing.
16390
16391 2019-07-13 Jan Hubicka <hubicka@ucw.cz>
16392
16393 * tree-ssa-alias.c (component_ref_to_zero_sized_trailing_array_p):
16394 Break out from ...
16395 (aliasing_component_refs_walk): Break out from ...
16396 (aliasing_component_refs_p): ... here.
16397
16398 2019-07-13 Segher Boessenkool <segher@kernel.crashing.org>
16399
16400 PR target/91148
16401 * config/rs6000/rs6000.c (rs6000_invalid_builtin): Remove superfluous
16402 "builtin function" phrasing.
16403
16404 2019-07-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16405
16406 PR target/90723
16407 * recog.h (temporary_volatile_ok): New class.
16408 * config/aarch64/aarch64.c (aarch64_emit_sve_pred_move): Set
16409 volatile_ok temporarily to true using temporary_volatile_ok.
16410 * expr.c (emit_block_move_via_cpymem): Likewise.
16411 * optabs.c (maybe_legitimize_operand): Likewise.
16412
16413 2019-07-13 Jakub Jelinek <jakub@redhat.com>
16414
16415 * gimplify.c (struct gimplify_omp_ctx): Add order_concurrent member.
16416 (omp_notice_threadprivate_variable): Diagnose threadprivate variable
16417 uses inside of order(concurrent) constructs.
16418 (gimplify_scan_omp_clauses): Set ctx->order_concurrent if
16419 OMP_CLAUSE_ORDER is seen.
16420 * omp-low.c (struct omp_context): Add order_concurrent member.
16421 (scan_sharing_clauses): Set ctx->order_concurrent if
16422 OMP_CLAUSE_ORDER is seen.
16423 (check_omp_nesting_restrictions): Diagnose ordered or atomic inside
16424 of simd order(concurrent). Diagnose constructs not allowed inside of
16425 for order(concurrent).
16426 (setjmp_or_longjmp_p): Add a context and TREE_PUBLIC check to avoid
16427 complaining about static double setjmp (double); or class static
16428 methods or non-global namespace setjmps.
16429 (omp_runtime_api_call): New function.
16430 (scan_omp_1_stmt): Diagnose OpenMP runtime API calls inside of
16431 order(concurrent) loops.
16432
16433 2019-07-12 Martin Sebor <msebor@redhat.com>
16434
16435 * doc/invoke.texi (ssa-name-def-chain-limit): Document new --param.
16436 * params.def (PARAM_SSA_NAME_DEF_CHAIN_LIMIT): Add new --param.
16437 * tree-vrp.c (vrp_prop::check_mem_ref): Use
16438 PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
16439
16440 2019-07-12 Jan Hubicka <jh@suse.cz>
16441
16442 * tree-ssa-alias.c (same_tmr_indexing_p): Break out from ...
16443 (indirect_refs_may_alias_p): ... here.
16444 (nonoverlapping_component_refs_since_match_p): Support also non-trivial
16445 mem refs in the access paths.
16446
16447 2019-07-12 Jiangning Liu <jiangning.liu@amperecomputing.com>
16448
16449 PR tree-optimization/89430
16450 * tree-ssa-phiopt.c (cond_store_replacement): Support conditional
16451 store elimination for local variable without address escape.
16452
16453 2019-07-12 Jeff Law <law@redhat.com>
16454
16455 * config/c6x/c6x.c (c6x_section_type): Clear SECTION_NOTYPE
16456 for the ".far" section.
16457
16458 2019-07-12 Richard Biener <rguenther@suse.de>
16459
16460 PR tree-optimization/91145
16461 * tree-vect-slp.c (vect_build_slp_tree_2): Fix reduction
16462 chain check.
16463
16464 2019-07-12 Alexandre Oliva <oliva@adacore.com>
16465
16466 * tree-eh.c (honor_protect_cleanup_actions): Use outer_
16467 rather than this_state as the lowering context for the ELSE
16468 seq in a GIMPLE_EH_ELSE.
16469
16470 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
16471
16472 * vector-builder.h (vector_builder::elt): Allow already-supplied
16473 elements to be read back before building is complete.
16474
16475 2019-07-12 Eric Botcazou <ebotcazou@adacore.com>
16476
16477 PR rtl-optimization/91136
16478 * df-core.c (ACCESSING REFS): Fix typos in comment.
16479 * resource.c (mark_target_live_reg): Add artificial defs that occur at
16480 the beginning of the block to the initial set of live registers.
16481
16482 2019-07-12 Richard Biener <rguenther@suse.de>
16483
16484 * fold-const.h (get_array_ctor_element_at_index): Adjust.
16485 * fold-const.c (get_array_ctor_element_at_index): Add
16486 ctor_idx output parameter informing the caller where in
16487 the constructor the element was (not) found. Add early exit
16488 for when the ctor is sorted.
16489 * gimple-fold.c (fold_array_ctor_reference): Support constant
16490 folding across multiple array elements.
16491
16492 2019-07-12 Eric Botcazou <ebotcazou@adacore.com>
16493
16494 * cfgexpand.c (expand_gimple_stmt_1) <GIMPLE_RETURN>: If the statement
16495 doesn't have location, set the current location to the function's end.
16496
16497 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
16498
16499 * config/aarch64/aarch64.md (*compare_condjump<mode>)
16500 (loadwb_pair<GPI:mode>_<P:mode>, loadwb_pair<GPF:mode>_<P:mode>)
16501 (storewb_pair<GPI:mode>_<P:mode>, storewb_pair<GPF:mode>_<P:mode>)
16502 (*ands<mode>_compare0): Fix ambiguous uses of .md attributes.
16503 * config/aarch64/aarch64-simd.md
16504 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
16505 (*aarch64_get_lane_zero_extend<GPI:mode><VDQQH:mode>): Likewise.
16506 * config/aarch64/aarch64-sve.md
16507 (while_ult<GPI:mode><PRED_ALL:mode>): Likewise.
16508 (*cond_<optab><mode>_any): Fix SVE_I/SVE_SDI typo.
16509
16510 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
16511
16512 * doc/md.texi: Document that @ patterns can have different
16513 numbers of operands.
16514 * genemit.c (handle_overloaded_gen): Handle this case.
16515 * genopinit.c (handle_overloaded_gen): Likewise.
16516 * gensupport.c (replace_operands_with_dups): Iterate over
16517 the new rtx's format rather than the old one's.
16518
16519 2019-07-12 Jakub Jelinek <jakub@redhat.com>
16520
16521 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_ORDER.
16522 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
16523 order clause entries.
16524 (walk_tree_1): Handle OMP_CLAUSE_ORDER.
16525 * tree-pretty-print.c (dump_omp_clause): Likewise.
16526 * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses):
16527 Likewise.
16528 * omp-low.c (scan_sharing_clauses): Likewise.
16529 * tree-nested.c (convert_nonlocal_omp_clauses,
16530 convert_local_omp_clauses): Likewise.
16531
16532 2019-07-12 Kewen Lin <linkw@gcc.gnu.org>
16533
16534 * cfgrtl.c (print_rtl_with_bb): Emit a hint if the
16535 fallthrough target of current basic block isn't the placed
16536 right next.
16537
16538 2019-07-11 Sunil K Pandey <sunil.k.pandey@intel.com>
16539
16540 PR target/90980
16541 * config/i386/avx512fintrin.h (_mm512_loadu_epi64): New.
16542 (_mm512_storeu_epi64): Likewise.
16543 (_mm512_loadu_epi32): Likewise.
16544 (_mm512_storeu_epi32): Likewise.
16545 * config/i386/avx512vlintrin.h (_mm256_storeu_epi64): New.
16546 (_mm_storeu_epi64): Likewise.
16547 (_mm256_storeu_epi32): Likewise.
16548 (_mm_storeu_epi32): Likewise.
16549
16550 2019-07-11 Segher Boessenkool <segher@kernel.crashing.org>
16551
16552 * config/rs6000/rs6000-logue.c: Add Modula-2 to comment.
16553
16554 2019-07-11 Segher Boessenkool <segher@kernel.crashing.org>
16555
16556 * config/rs6000/rs6000-logue.c (rs6000_output_function_epilogue):
16557 Handle Modula-2.
16558
16559 2019-07-11 Jakub Jelinek <jakub@redhat.com>
16560
16561 PR target/91124
16562 * config/i386/sse.md (sse2_cvtpd2dq<mask_name>): Change into ...
16563 (sse2_cvtpd2dq): ... this. Remove mask substitution macros.
16564 (sse2_cvtpd2dq_mask, sse2_cvtpd2dq_mask_1): New define_insns.
16565 (ufix_notruncv2dfv2si2<mask_name>): Change into ...
16566 (ufix_notruncv2dfv2si2): ... this. Remove mask substitution macros.
16567 (ufix_notruncv2dfv2si2_mask, ufix_notruncv2dfv2si2_mask_1): New
16568 define_insns.
16569 (ufix_truncv2dfv2si2<mask_name>): Change into ...
16570 (ufix_truncv2dfv2si2): ... this. Remove mask substitution macros.
16571 (ufix_truncv2dfv2si2_mask, ufix_truncv2dfv2si2_mask_1): New
16572 define_insns.
16573 (sse2_cvttpd2dq<mask_name>): Change into ...
16574 (sse2_cvttpd2dq): ... this. Remove mask substitution macros.
16575 (sse2_cvttpd2dq_mask, sse2_cvttpd2dq_mask_1): New define_insns.
16576 (*sse2_cvtpd2dq<mask_name>): Change into ...
16577 (*sse2_cvtpd2dq): ... this. Remove mask substitution macros.
16578 Add "C" constraint to const0_operand.
16579 (*sse2_cvtpd2dq_mask, *sse2_cvtpd2dq_mask_1): New define_insns.
16580 (sse2_cvtpd2ps_mask): Adjust expand to match *sse2_cvtpd2ps_mask
16581 changes.
16582
16583 PR target/91124
16584 * config/i386/i386-builtin-types.def
16585 (V32HI_FTYPE_V32HI_V32HI_V32HI_INT,
16586 V16HI_FTYPE_V16HI_V16HI_V16HI_INT, V8HI_FTYPE_V8HI_V8HI_V8HI_INT,
16587 V8SI_FTYPE_V8SI_V8SI_V8SI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT,
16588 V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V16SI_FTYPE_V16SI_V16SI_V16SI_INT,
16589 V2DI_FTYPE_V2DI_V2DI_V2DI_INT, V4SI_FTYPE_V4SI_V4SI_V4SI_INT): Remove.
16590 * config/i386/i386-builtin.def (__builtin_ia32_vpshrdv_v32hi_mask,
16591 __builtin_ia32_vpshrdv_v32hi_maskz, __builtin_ia32_vpshrdv_v16hi_mask,
16592 __builtin_ia32_vpshrdv_v16hi_maskz, __builtin_ia32_vpshrdv_v8hi_mask,
16593 __builtin_ia32_vpshrdv_v8hi_maskz, __builtin_ia32_vpshrdv_v16si_mask,
16594 __builtin_ia32_vpshrdv_v16si_maskz, __builtin_ia32_vpshrdv_v8si_mask,
16595 __builtin_ia32_vpshrdv_v8si_maskz, __builtin_ia32_vpshrdv_v4si_mask,
16596 __builtin_ia32_vpshrdv_v4si_maskz, __builtin_ia32_vpshrdv_v8di_mask,
16597 __builtin_ia32_vpshrdv_v8di_maskz, __builtin_ia32_vpshrdv_v4di_mask,
16598 __builtin_ia32_vpshrdv_v4di_maskz, __builtin_ia32_vpshrdv_v2di_mask,
16599 __builtin_ia32_vpshrdv_v2di_maskz, __builtin_ia32_vpshldv_v32hi_mask,
16600 __builtin_ia32_vpshldv_v32hi_maskz, __builtin_ia32_vpshldv_v16hi_mask,
16601 __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi_mask,
16602 __builtin_ia32_vpshldv_v8hi_maskz, __builtin_ia32_vpshldv_v16si_mask,
16603 __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si_mask,
16604 __builtin_ia32_vpshldv_v8si_maskz, __builtin_ia32_vpshldv_v4si_mask,
16605 __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di_mask,
16606 __builtin_ia32_vpshldv_v8di_maskz, __builtin_ia32_vpshldv_v4di_mask,
16607 __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di_mask,
16608 __builtin_ia32_vpshldv_v2di_maskz, __builtin_ia32_vpdpbusd_v16si_mask,
16609 __builtin_ia32_vpdpbusd_v16si_maskz, __builtin_ia32_vpdpbusd_v8si_mask,
16610 __builtin_ia32_vpdpbusd_v8si_maskz, __builtin_ia32_vpdpbusd_v4si_mask,
16611 __builtin_ia32_vpdpbusd_v4si_maskz,
16612 __builtin_ia32_vpdpbusds_v16si_mask,
16613 __builtin_ia32_vpdpbusds_v16si_maskz,
16614 __builtin_ia32_vpdpbusds_v8si_mask,
16615 __builtin_ia32_vpdpbusds_v8si_maskz,
16616 __builtin_ia32_vpdpbusds_v4si_mask,
16617 __builtin_ia32_vpdpbusds_v4si_maskz,
16618 __builtin_ia32_vpdpwssd_v16si_mask,
16619 __builtin_ia32_vpdpwssd_v16si_maskz, __builtin_ia32_vpdpwssd_v8si_mask,
16620 __builtin_ia32_vpdpwssd_v8si_maskz, __builtin_ia32_vpdpwssd_v4si_mask,
16621 __builtin_ia32_vpdpwssd_v4si_maskz,
16622 __builtin_ia32_vpdpwssds_v16si_mask,
16623 __builtin_ia32_vpdpwssds_v16si_maskz,
16624 __builtin_ia32_vpdpwssds_v8si_mask,
16625 __builtin_ia32_vpdpwssds_v8si_maskz,
16626 __builtin_ia32_vpdpwssds_v4si_mask,
16627 __builtin_ia32_vpdpwssds_v4si_maskz): Use *_USI, *_UHI or *_UQI
16628 suffixed types rather than *_INT.
16629 * config/i386/i386-expand.c (ix86_expand_args_builtin): Don't handle
16630 V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT,
16631 V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT,
16632 V4DI_FTYPE_V4DI_V4DI_V4DI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI_INT,
16633 V16SI_FTYPE_V16SI_V16SI_V16SI_INT, V2DI_FTYPE_V2DI_V2DI_V2DI_INT
16634 and V4SI_FTYPE_V4SI_V4SI_V4SI_INT.
16635
16636 2019-07-11 Aldy Hernandez <aldyh@redhat.com>
16637
16638 * tree-vrp.c (intersect_ranges): If we know the intersection is
16639 empty, there is no need to conservatively add anything else to
16640 the set.
16641
16642 2019-07-11 Richard Biener <rguenther@suse.de>
16643
16644 PR middle-end/91131
16645 * gimplify.c (gimplify_compound_literal_expr): Force a temporary
16646 when the object is volatile and we have not cleared it even though
16647 there are no nonzero elements.
16648
16649 2019-07-10 Michael Meissner <meissner@linux.ibm.com>
16650
16651 * config/rs6000/predicates.md (cint34_operand): Update
16652 SIGNED_34BIT_OFFSET_P call.
16653 (pcrel_address): Update SIGNED_34BIT_OFFSET_P call.
16654 (pcrel_external_address): Update SIGNED_34BIT_OFFSET_P call.
16655 * config/rs6000/rs6000.c (rs6000_prefixed_address): Update
16656 SIGNED_16BIT_OFFSET_P and SIGNED_34BIT_OFFSET_P calls.
16657 * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): Remove EXTRA
16658 argument.
16659 (SIGNED_34BIT_OFFSET_P): Remove EXTRA argument.
16660 (SIGNED_16BIT_OFFSET_EXTRA_P): New macro, like
16661 SIGNED_16BIT_OFFSET_P with an EXTRA argument.
16662 (SIGNED_34BIT_OFFSET_EXTRA_P): New macro, like
16663 SIGNED_34BIT_OFFSET_P with an EXTRA argument.
16664
16665 2019-07-10 Iain Sandoe <iain@sandoe.co.uk>
16666
16667 * config/rs6000/darwin.h (LIB_SPEC): Collate this spec here.
16668 * config/rs6000/darwin7.h (LIB_SPEC): Remove.
16669 * config/rs6000/darwin8.h (LIB_SPEC): Remove.
16670 (DEF_MIN_OSX_VERSION): New.
16671
16672 2019-07-10 Richard Sandiford <richard.sandiford@arm.com>
16673
16674 * fold-const.c (fold_relational_const): Fix folding of
16675 vector-to-scalar NE_EXPRs.
16676 (test_vector_folding): Add more tests.
16677
16678 2019-07-10 Richard Sandiford <richard.sandiford@arm.com>
16679
16680 PR target/91060
16681 * config/arm/iterators.md (V2DI_ONLY): New mode iterator.
16682 * config/arm/neon.md (vec_set<mode>_internal): Add a '@' prefix.
16683 (vec_setv2di_internal): Reexpress as...
16684 (@vec_set<V2DI_ONLY:mode>_internal): ...this.
16685 * config/arm/arm.c (neon_expand_vector_init): Use gen_vec_set_internal
16686 rather than gen_neon_vset_lane<mode>.
16687
16688 2019-07-10 Vladimir Makarov <vmakarov@redhat.com>
16689
16690 PR target/91102
16691 * lra-constraints.c (process_alt_operands): Don't match user
16692 defined regs only if they are early clobbers.
16693
16694 2019-07-10 Marc Glisse <marc.glisse@inria.fr>
16695
16696 * wide-int.h (wi::lshift): Reject negative values for the fast path.
16697
16698 2019-07-10 Richard Biener <rguenther@suse.de>
16699
16700 PR tree-optimization/91126
16701 * tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust
16702 native encoding offset for BYTES_BIG_ENDIAN.
16703 (vn_reference_lookup_3): Likewise.
16704
16705 2019-07-10 Richard Biener <rguenther@suse.de>
16706
16707 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look at valueized
16708 LHS whenever possible.
16709
16710 2019-07-09 Jan Hubicka <hubicka@ucw.cz>
16711
16712 * tree-ssa-alias.c (nonoverlapping_component_refs_p_1): Break out
16713 from ...; work also on duplicated types.
16714 (nonoverlapping_component_refs_since_match): ... here
16715 (ncr_type_uid): Break out from ...
16716 (ncr_compar): ... here; look for TYPE_UID of canonical type if
16717 available.
16718 (nonoverlapping_component_refs_p): Use same_type_for_tbaa to match
16719 the types and nonoverlapping_component_refs_p_1 to disambiguate.
16720
16721 2019-07-09 Martin Sebor <msebor@redhat.com>
16722
16723 PR tree-optimization/90989
16724 * tree-ssa-strlen.c (handle_char_store): Constrain a single character
16725 optimization to just single character stores.
16726
16727 2019-07-09 Joern Rennecke <joern.rennecke@riscy-ip.com>
16728
16729 * tree-vect-stmts.c (vectorizable_comparison) <!slp_node>:
16730 Swap operands only once.
16731
16732 2019-07-09 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
16733
16734 * cfgcleanup.c (old_insns_match_p): Check if used hard regs set is equal
16735 for both call instructions.
16736
16737 2019-07-09 John Darrington <john@darrington.wattle.id.au>
16738
16739 * simplify-rtx.c (simplify_unary_operation_1): Use GET_MODE_PRECISION
16740 rather than GET_MODE_BITSIZE to better handle partial integer modes.
16741
16742 2019-07-09 Michael Meissner <meissner@linux.ibm.com>
16743
16744 * config/rs6000/rs6000-internal.h (create_TOC_reference): Delete.
16745 * config/rs6000/rs6000-logue.c (create_TOC_reference): Move
16746 function from rs6000-logue.c back to rs6000.c.
16747 * config/rs6000/rs6000.c (create_TOC_reference): Likewise.
16748
16749 2019-07-09 Martin Sebor <msebor@redhat.com>
16750
16751 PR c++/61339
16752 * auto-profile.c: Change class-key of PODs to struct and others
16753 to class.
16754 * basic-block.h: Same.
16755 * bitmap.c (bitmap_alloc): Same.
16756 * bitmap.h: Same.
16757 * builtins.c (expand_builtin_prefetch): Same.
16758 (expand_builtin_interclass_mathfn): Same.
16759 (expand_builtin_strlen): Same.
16760 (expand_builtin_mempcpy_args): Same.
16761 (expand_cmpstr): Same.
16762 (expand_builtin___clear_cache): Same.
16763 (expand_ifn_atomic_bit_test_and): Same.
16764 (expand_builtin_thread_pointer): Same.
16765 (expand_builtin_set_thread_pointer): Same.
16766 * caller-save.c (setup_save_areas): Same.
16767 (replace_reg_with_saved_mem): Same.
16768 (insert_restore): Same.
16769 (insert_save): Same.
16770 (add_used_regs): Same.
16771 * cfg.c (get_bb_copy): Same.
16772 (set_loop_copy): Same.
16773 * cfg.h: Same.
16774 * cfganal.h: Same.
16775 * cfgexpand.c (alloc_stack_frame_space): Same.
16776 (add_stack_var): Same.
16777 (add_stack_var_conflict): Same.
16778 (add_scope_conflicts_1): Same.
16779 (update_alias_info_with_stack_vars): Same.
16780 (expand_used_vars): Same.
16781 * cfghooks.c (redirect_edge_and_branch_force): Same.
16782 (delete_basic_block): Same.
16783 (split_edge): Same.
16784 (make_forwarder_block): Same.
16785 (force_nonfallthru): Same.
16786 (duplicate_block): Same.
16787 (lv_flush_pending_stmts): Same.
16788 * cfghooks.h: Same.
16789 * cfgloop.c (flow_loops_cfg_dump): Same.
16790 (flow_loop_nested_p): Same.
16791 (superloop_at_depth): Same.
16792 (get_loop_latch_edges): Same.
16793 (flow_loop_dump): Same.
16794 (flow_loops_dump): Same.
16795 (flow_loops_free): Same.
16796 (flow_loop_nodes_find): Same.
16797 (establish_preds): Same.
16798 (flow_loop_tree_node_add): Same.
16799 (flow_loop_tree_node_remove): Same.
16800 (flow_loops_find): Same.
16801 (find_subloop_latch_edge_by_profile): Same.
16802 (find_subloop_latch_edge_by_ivs): Same.
16803 (mfb_redirect_edges_in_set): Same.
16804 (form_subloop): Same.
16805 (merge_latch_edges): Same.
16806 (disambiguate_multiple_latches): Same.
16807 (disambiguate_loops_with_multiple_latches): Same.
16808 (flow_bb_inside_loop_p): Same.
16809 (glb_enum_p): Same.
16810 (get_loop_body_with_size): Same.
16811 (get_loop_body): Same.
16812 (fill_sons_in_loop): Same.
16813 (get_loop_body_in_dom_order): Same.
16814 (get_loop_body_in_custom_order): Same.
16815 (release_recorded_exits): Same.
16816 (get_loop_exit_edges): Same.
16817 (num_loop_branches): Same.
16818 (remove_bb_from_loops): Same.
16819 (find_common_loop): Same.
16820 (delete_loop): Same.
16821 (cancel_loop): Same.
16822 (verify_loop_structure): Same.
16823 (loop_preheader_edge): Same.
16824 (loop_exit_edge_p): Same.
16825 (single_exit): Same.
16826 (loop_exits_to_bb_p): Same.
16827 (loop_exits_from_bb_p): Same.
16828 (get_loop_location): Same.
16829 (record_niter_bound): Same.
16830 (get_estimated_loop_iterations_int): Same.
16831 (max_stmt_executions_int): Same.
16832 (likely_max_stmt_executions_int): Same.
16833 (get_estimated_loop_iterations): Same.
16834 (get_max_loop_iterations): Same.
16835 (get_max_loop_iterations_int): Same.
16836 (get_likely_max_loop_iterations): Same.
16837 * cfgloop.h (simple_loop_desc): Same.
16838 (get_loop): Same.
16839 (loop_depth): Same.
16840 (loop_outer): Same.
16841 (loop_iterator::next): Same.
16842 (loop_outermost): Same.
16843 * cfgloopanal.c (mark_irreducible_loops): Same.
16844 (num_loop_insns): Same.
16845 (average_num_loop_insns): Same.
16846 (expected_loop_iterations_unbounded): Same.
16847 (expected_loop_iterations): Same.
16848 (mark_loop_exit_edges): Same.
16849 (single_likely_exit): Same.
16850 * cfgloopmanip.c (fix_bb_placement): Same.
16851 (fix_bb_placements): Same.
16852 (remove_path): Same.
16853 (place_new_loop): Same.
16854 (add_loop): Same.
16855 (scale_loop_frequencies): Same.
16856 (scale_loop_profile): Same.
16857 (create_empty_if_region_on_edge): Same.
16858 (create_empty_loop_on_edge): Same.
16859 (loopify): Same.
16860 (unloop): Same.
16861 (fix_loop_placements): Same.
16862 (copy_loop_info): Same.
16863 (duplicate_loop): Same.
16864 (duplicate_subloops): Same.
16865 (loop_redirect_edge): Same.
16866 (can_duplicate_loop_p): Same.
16867 (duplicate_loop_to_header_edge): Same.
16868 (mfb_keep_just): Same.
16869 (has_preds_from_loop): Same.
16870 (create_preheader): Same.
16871 (create_preheaders): Same.
16872 (lv_adjust_loop_entry_edge): Same.
16873 (loop_version): Same.
16874 * cfgloopmanip.h: Same.
16875 * cgraph.h: Same.
16876 * cgraphbuild.c: Same.
16877 * combine.c (make_extraction): Same.
16878 * config/i386/i386-features.c: Same.
16879 * config/i386/i386-features.h: Same.
16880 * config/i386/i386.c (ix86_emit_outlined_ms2sysv_save): Same.
16881 (ix86_emit_outlined_ms2sysv_restore): Same.
16882 (ix86_noce_conversion_profitable_p): Same.
16883 (ix86_init_cost): Same.
16884 (ix86_simd_clone_usable): Same.
16885 * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Add -Wclass-is-pod and
16886 Wstruct-not-pod.
16887 * coretypes.h: Same.
16888 * data-streamer-in.c (string_for_index): Change class-key of PODs
16889 to struct and others to class.
16890 (streamer_read_indexed_string): Same.
16891 (streamer_read_string): Same.
16892 (bp_unpack_indexed_string): Same.
16893 (bp_unpack_string): Same.
16894 (streamer_read_uhwi): Same.
16895 (streamer_read_hwi): Same.
16896 (streamer_read_gcov_count): Same.
16897 (streamer_read_wide_int): Same.
16898 * data-streamer.h (streamer_write_bitpack): Same.
16899 (bp_unpack_value): Same.
16900 (streamer_write_char_stream): Same.
16901 (streamer_write_hwi_in_range): Same.
16902 (streamer_write_record_start): Same.
16903 * ddg.c (create_ddg_dep_from_intra_loop_link): Same.
16904 (add_cross_iteration_register_deps): Same.
16905 (build_intra_loop_deps): Same.
16906 * df-core.c (df_analyze): Same.
16907 (loop_post_order_compute): Same.
16908 (loop_inverted_post_order_compute): Same.
16909 * df-problems.c (df_rd_alloc): Same.
16910 (df_rd_simulate_one_insn): Same.
16911 (df_rd_local_compute): Same.
16912 (df_rd_init_solution): Same.
16913 (df_rd_confluence_n): Same.
16914 (df_rd_transfer_function): Same.
16915 (df_rd_free): Same.
16916 (df_rd_dump_defs_set): Same.
16917 (df_rd_top_dump): Same.
16918 (df_lr_alloc): Same.
16919 (df_lr_reset): Same.
16920 (df_lr_local_compute): Same.
16921 (df_lr_init): Same.
16922 (df_lr_confluence_n): Same.
16923 (df_lr_free): Same.
16924 (df_lr_top_dump): Same.
16925 (df_lr_verify_transfer_functions): Same.
16926 (df_live_alloc): Same.
16927 (df_live_reset): Same.
16928 (df_live_init): Same.
16929 (df_live_confluence_n): Same.
16930 (df_live_finalize): Same.
16931 (df_live_free): Same.
16932 (df_live_top_dump): Same.
16933 (df_live_verify_transfer_functions): Same.
16934 (df_mir_alloc): Same.
16935 (df_mir_reset): Same.
16936 (df_mir_init): Same.
16937 (df_mir_confluence_n): Same.
16938 (df_mir_free): Same.
16939 (df_mir_top_dump): Same.
16940 (df_word_lr_alloc): Same.
16941 (df_word_lr_reset): Same.
16942 (df_word_lr_init): Same.
16943 (df_word_lr_confluence_n): Same.
16944 (df_word_lr_free): Same.
16945 (df_word_lr_top_dump): Same.
16946 (df_md_alloc): Same.
16947 (df_md_simulate_one_insn): Same.
16948 (df_md_reset): Same.
16949 (df_md_init): Same.
16950 (df_md_free): Same.
16951 (df_md_top_dump): Same.
16952 * df-scan.c (df_insn_delete): Same.
16953 (df_insn_rescan): Same.
16954 (df_notes_rescan): Same.
16955 (df_sort_and_compress_mws): Same.
16956 (df_install_mws): Same.
16957 (df_refs_add_to_chains): Same.
16958 (df_ref_create_structure): Same.
16959 (df_ref_record): Same.
16960 (df_def_record_1): Same.
16961 (df_find_hard_reg_defs): Same.
16962 (df_uses_record): Same.
16963 (df_get_conditional_uses): Same.
16964 (df_get_call_refs): Same.
16965 (df_recompute_luids): Same.
16966 (df_get_entry_block_def_set): Same.
16967 (df_entry_block_defs_collect): Same.
16968 (df_get_exit_block_use_set): Same.
16969 (df_exit_block_uses_collect): Same.
16970 (df_mws_verify): Same.
16971 (df_bb_verify): Same.
16972 * df.h (df_scan_get_bb_info): Same.
16973 * doc/tm.texi: Same.
16974 * dse.c (record_store): Same.
16975 * dumpfile.h: Same.
16976 * emit-rtl.c (const_fixed_hasher::equal): Same.
16977 (set_mem_attributes_minus_bitpos): Same.
16978 (change_address): Same.
16979 (adjust_address_1): Same.
16980 (offset_address): Same.
16981 * emit-rtl.h: Same.
16982 * except.c (dw2_build_landing_pads): Same.
16983 (sjlj_emit_dispatch_table): Same.
16984 * explow.c (allocate_dynamic_stack_space): Same.
16985 (emit_stack_probe): Same.
16986 (probe_stack_range): Same.
16987 * expmed.c (store_bit_field_using_insv): Same.
16988 (store_bit_field_1): Same.
16989 (store_integral_bit_field): Same.
16990 (extract_bit_field_using_extv): Same.
16991 (extract_bit_field_1): Same.
16992 (emit_cstore): Same.
16993 * expr.c (emit_block_move_via_cpymem): Same.
16994 (expand_cmpstrn_or_cmpmem): Same.
16995 (set_storage_via_setmem): Same.
16996 (emit_single_push_insn_1): Same.
16997 (expand_assignment): Same.
16998 (store_constructor): Same.
16999 (expand_expr_real_2): Same.
17000 (expand_expr_real_1): Same.
17001 (try_casesi): Same.
17002 * flags.h: Same.
17003 * function.c (try_fit_stack_local): Same.
17004 (assign_stack_local_1): Same.
17005 (assign_stack_local): Same.
17006 (cut_slot_from_list): Same.
17007 (insert_slot_to_list): Same.
17008 (max_slot_level): Same.
17009 (move_slot_to_level): Same.
17010 (temp_address_hasher::equal): Same.
17011 (remove_unused_temp_slot_addresses): Same.
17012 (assign_temp): Same.
17013 (combine_temp_slots): Same.
17014 (update_temp_slot_address): Same.
17015 (preserve_temp_slots): Same.
17016 * function.h: Same.
17017 * fwprop.c: Same.
17018 * gcc-rich-location.h: Same.
17019 * gcov.c: Same.
17020 * genattrtab.c (check_attr_test): Same.
17021 (check_attr_value): Same.
17022 (convert_set_attr_alternative): Same.
17023 (convert_set_attr): Same.
17024 (check_defs): Same.
17025 (copy_boolean): Same.
17026 (get_attr_value): Same.
17027 (expand_delays): Same.
17028 (make_length_attrs): Same.
17029 (min_fn): Same.
17030 (make_alternative_compare): Same.
17031 (simplify_test_exp): Same.
17032 (tests_attr_p): Same.
17033 (get_attr_order): Same.
17034 (clear_struct_flag): Same.
17035 (gen_attr): Same.
17036 (compares_alternatives_p): Same.
17037 (gen_insn): Same.
17038 (gen_delay): Same.
17039 (find_attrs_to_cache): Same.
17040 (write_test_expr): Same.
17041 (walk_attr_value): Same.
17042 (write_attr_get): Same.
17043 (eliminate_known_true): Same.
17044 (write_insn_cases): Same.
17045 (write_attr_case): Same.
17046 (write_attr_valueq): Same.
17047 (write_attr_value): Same.
17048 (write_dummy_eligible_delay): Same.
17049 (next_comma_elt): Same.
17050 (find_attr): Same.
17051 (make_internal_attr): Same.
17052 (copy_rtx_unchanging): Same.
17053 (gen_insn_reserv): Same.
17054 (check_tune_attr): Same.
17055 (make_automaton_attrs): Same.
17056 (handle_arg): Same.
17057 * genextract.c (gen_insn): Same.
17058 (VEC_char_to_string): Same.
17059 * genmatch.c (print_operand): Same.
17060 (lower): Same.
17061 (parser::parse_operation): Same.
17062 (parser::parse_capture): Same.
17063 (parser::parse_c_expr): Same.
17064 (parser::parse_simplify): Same.
17065 (main): Same.
17066 * genoutput.c (output_operand_data): Same.
17067 (output_get_insn_name): Same.
17068 (compare_operands): Same.
17069 (place_operands): Same.
17070 (process_template): Same.
17071 (validate_insn_alternatives): Same.
17072 (validate_insn_operands): Same.
17073 (gen_expand): Same.
17074 (note_constraint): Same.
17075 * genpreds.c (write_one_predicate_function): Same.
17076 (add_constraint): Same.
17077 (process_define_register_constraint): Same.
17078 (write_lookup_constraint_1): Same.
17079 (write_lookup_constraint_array): Same.
17080 (write_insn_constraint_len): Same.
17081 (write_reg_class_for_constraint_1): Same.
17082 (write_constraint_satisfied_p_array): Same.
17083 * genrecog.c (optimize_subroutine_group): Same.
17084 * gensupport.c (process_define_predicate): Same.
17085 (queue_pattern): Same.
17086 (remove_from_queue): Same.
17087 (process_rtx): Same.
17088 (is_predicable): Same.
17089 (change_subst_attribute): Same.
17090 (subst_pattern_match): Same.
17091 (alter_constraints): Same.
17092 (alter_attrs_for_insn): Same.
17093 (shift_output_template): Same.
17094 (alter_output_for_subst_insn): Same.
17095 (process_one_cond_exec): Same.
17096 (subst_dup): Same.
17097 (process_define_cond_exec): Same.
17098 (mnemonic_htab_callback): Same.
17099 (gen_mnemonic_attr): Same.
17100 (read_md_rtx): Same.
17101 * ggc-page.c: Same.
17102 * gimple-loop-interchange.cc (dump_reduction): Same.
17103 (dump_induction): Same.
17104 (loop_cand::~loop_cand): Same.
17105 (free_data_refs_with_aux): Same.
17106 (tree_loop_interchange::interchange_loops): Same.
17107 (tree_loop_interchange::map_inductions_to_loop): Same.
17108 (tree_loop_interchange::move_code_to_inner_loop): Same.
17109 (compute_access_stride): Same.
17110 (compute_access_strides): Same.
17111 (proper_loop_form_for_interchange): Same.
17112 (tree_loop_interchange_compute_ddrs): Same.
17113 (prune_datarefs_not_in_loop): Same.
17114 (prepare_data_references): Same.
17115 (pass_linterchange::execute): Same.
17116 * gimple-loop-jam.c (bb_prevents_fusion_p): Same.
17117 (unroll_jam_possible_p): Same.
17118 (fuse_loops): Same.
17119 (adjust_unroll_factor): Same.
17120 (tree_loop_unroll_and_jam): Same.
17121 * gimple-loop-versioning.cc (loop_versioning::~loop_versioning): Same.
17122 (loop_versioning::expensive_stmt_p): Same.
17123 (loop_versioning::version_for_unity): Same.
17124 (loop_versioning::dump_inner_likelihood): Same.
17125 (loop_versioning::find_per_loop_multiplication): Same.
17126 (loop_versioning::analyze_term_using_scevs): Same.
17127 (loop_versioning::record_address_fragment): Same.
17128 (loop_versioning::analyze_expr): Same.
17129 (loop_versioning::analyze_blocks): Same.
17130 (loop_versioning::prune_conditions): Same.
17131 (loop_versioning::merge_loop_info): Same.
17132 (loop_versioning::add_loop_to_queue): Same.
17133 (loop_versioning::decide_whether_loop_is_versionable): Same.
17134 (loop_versioning::make_versioning_decisions): Same.
17135 (loop_versioning::implement_versioning_decisions): Same.
17136 * gimple-ssa-evrp-analyze.c
17137 (evrp_range_analyzer::record_ranges_from_phis): Same.
17138 * gimple-ssa-store-merging.c (split_store::split_store): Same.
17139 (count_multiple_uses): Same.
17140 (split_group): Same.
17141 (imm_store_chain_info::output_merged_store): Same.
17142 (pass_store_merging::process_store): Same.
17143 * gimple-ssa-strength-reduction.c (slsr_process_phi): Same.
17144 * gimple-ssa-warn-alloca.c (adjusted_warn_limit): Same.
17145 (is_max): Same.
17146 (alloca_call_type): Same.
17147 (pass_walloca::execute): Same.
17148 * gimple-streamer-in.c (input_phi): Same.
17149 (input_gimple_stmt): Same.
17150 * gimple-streamer.h: Same.
17151 * godump.c (go_force_record_alignment): Same.
17152 (go_format_type): Same.
17153 (go_output_type): Same.
17154 (go_output_fndecl): Same.
17155 (go_output_typedef): Same.
17156 (keyword_hash_init): Same.
17157 (find_dummy_types): Same.
17158 * graph.c (draw_cfg_nodes_no_loops): Same.
17159 (draw_cfg_nodes_for_loop): Same.
17160 * hard-reg-set.h (hard_reg_set_iter_next): Same.
17161 * hsa-brig.c: Same.
17162 * hsa-common.h (hsa_internal_fn_hasher::equal): Same.
17163 * hsa-dump.c (dump_hsa_cfun): Same.
17164 * hsa-gen.c (gen_function_def_parameters): Same.
17165 * hsa-regalloc.c (dump_hsa_cfun_regalloc): Same.
17166 * input.c (dump_line_table_statistics): Same.
17167 (test_lexer): Same.
17168 * input.h: Same.
17169 * internal-fn.c (get_multi_vector_move): Same.
17170 (expand_load_lanes_optab_fn): Same.
17171 (expand_GOMP_SIMT_ENTER_ALLOC): Same.
17172 (expand_GOMP_SIMT_EXIT): Same.
17173 (expand_GOMP_SIMT_LAST_LANE): Same.
17174 (expand_GOMP_SIMT_ORDERED_PRED): Same.
17175 (expand_GOMP_SIMT_VOTE_ANY): Same.
17176 (expand_GOMP_SIMT_XCHG_BFLY): Same.
17177 (expand_GOMP_SIMT_XCHG_IDX): Same.
17178 (expand_addsub_overflow): Same.
17179 (expand_neg_overflow): Same.
17180 (expand_mul_overflow): Same.
17181 (expand_call_mem_ref): Same.
17182 (expand_mask_load_optab_fn): Same.
17183 (expand_scatter_store_optab_fn): Same.
17184 (expand_gather_load_optab_fn): Same.
17185 * ipa-cp.c (ipa_get_parm_lattices): Same.
17186 (print_all_lattices): Same.
17187 (ignore_edge_p): Same.
17188 (build_toporder_info): Same.
17189 (free_toporder_info): Same.
17190 (push_node_to_stack): Same.
17191 (ipcp_lattice<valtype>::set_contains_variable): Same.
17192 (set_agg_lats_to_bottom): Same.
17193 (ipcp_bits_lattice::meet_with): Same.
17194 (set_single_call_flag): Same.
17195 (initialize_node_lattices): Same.
17196 (ipa_get_jf_ancestor_result): Same.
17197 (ipcp_verify_propagated_values): Same.
17198 (propagate_scalar_across_jump_function): Same.
17199 (propagate_context_across_jump_function): Same.
17200 (propagate_bits_across_jump_function): Same.
17201 (ipa_vr_operation_and_type_effects): Same.
17202 (propagate_vr_across_jump_function): Same.
17203 (set_check_aggs_by_ref): Same.
17204 (set_chain_of_aglats_contains_variable): Same.
17205 (merge_aggregate_lattices): Same.
17206 (agg_pass_through_permissible_p): Same.
17207 (propagate_aggs_across_jump_function): Same.
17208 (call_passes_through_thunk_p): Same.
17209 (propagate_constants_across_call): Same.
17210 (devirtualization_time_bonus): Same.
17211 (good_cloning_opportunity_p): Same.
17212 (context_independent_aggregate_values): Same.
17213 (gather_context_independent_values): Same.
17214 (perform_estimation_of_a_value): Same.
17215 (estimate_local_effects): Same.
17216 (value_topo_info<valtype>::add_val): Same.
17217 (add_all_node_vals_to_toposort): Same.
17218 (value_topo_info<valtype>::propagate_effects): Same.
17219 (ipcp_propagate_stage): Same.
17220 (ipcp_discover_new_direct_edges): Same.
17221 (same_node_or_its_all_contexts_clone_p): Same.
17222 (cgraph_edge_brings_value_p): Same.
17223 (gather_edges_for_value): Same.
17224 (create_specialized_node): Same.
17225 (find_more_scalar_values_for_callers_subset): Same.
17226 (find_more_contexts_for_caller_subset): Same.
17227 (copy_plats_to_inter): Same.
17228 (intersect_aggregates_with_edge): Same.
17229 (find_aggregate_values_for_callers_subset): Same.
17230 (cgraph_edge_brings_all_agg_vals_for_node): Same.
17231 (decide_about_value): Same.
17232 (decide_whether_version_node): Same.
17233 (spread_undeadness): Same.
17234 (identify_dead_nodes): Same.
17235 (ipcp_store_vr_results): Same.
17236 * ipa-devirt.c (final_warning_record::grow_type_warnings): Same.
17237 * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Same.
17238 (redirect_to_unreachable): Same.
17239 (edge_set_predicate): Same.
17240 (evaluate_conditions_for_known_args): Same.
17241 (evaluate_properties_for_edge): Same.
17242 (ipa_fn_summary_t::duplicate): Same.
17243 (ipa_call_summary_t::duplicate): Same.
17244 (dump_ipa_call_summary): Same.
17245 (ipa_dump_fn_summary): Same.
17246 (eliminated_by_inlining_prob): Same.
17247 (set_cond_stmt_execution_predicate): Same.
17248 (set_switch_stmt_execution_predicate): Same.
17249 (compute_bb_predicates): Same.
17250 (will_be_nonconstant_expr_predicate): Same.
17251 (phi_result_unknown_predicate): Same.
17252 (analyze_function_body): Same.
17253 (compute_fn_summary): Same.
17254 (estimate_edge_devirt_benefit): Same.
17255 (estimate_edge_size_and_time): Same.
17256 (estimate_calls_size_and_time): Same.
17257 (estimate_node_size_and_time): Same.
17258 (remap_edge_change_prob): Same.
17259 (remap_edge_summaries): Same.
17260 (ipa_merge_fn_summary_after_inlining): Same.
17261 (ipa_fn_summary_generate): Same.
17262 (inline_read_section): Same.
17263 (ipa_fn_summary_read): Same.
17264 (ipa_fn_summary_write): Same.
17265 * ipa-fnsummary.h: Same.
17266 * ipa-hsa.c (ipa_hsa_read_section): Same.
17267 * ipa-icf-gimple.c (func_checker::compare_loops): Same.
17268 * ipa-icf.c (sem_function::param_used_p): Same.
17269 * ipa-inline-analysis.c (do_estimate_edge_time): Same.
17270 * ipa-inline.c (edge_badness): Same.
17271 (inline_small_functions): Same.
17272 * ipa-polymorphic-call.c
17273 (ipa_polymorphic_call_context::stream_out): Same.
17274 * ipa-predicate.c (predicate::remap_after_duplication): Same.
17275 (predicate::remap_after_inlining): Same.
17276 (predicate::stream_out): Same.
17277 * ipa-predicate.h: Same.
17278 * ipa-profile.c (ipa_profile_read_summary): Same.
17279 * ipa-prop.c (ipa_get_param_decl_index_1): Same.
17280 (count_formal_params): Same.
17281 (ipa_dump_param): Same.
17282 (ipa_alloc_node_params): Same.
17283 (ipa_print_node_jump_functions_for_edge): Same.
17284 (ipa_print_node_jump_functions): Same.
17285 (ipa_load_from_parm_agg): Same.
17286 (get_ancestor_addr_info): Same.
17287 (ipa_compute_jump_functions_for_edge): Same.
17288 (ipa_analyze_virtual_call_uses): Same.
17289 (ipa_analyze_stmt_uses): Same.
17290 (ipa_analyze_params_uses_in_bb): Same.
17291 (update_jump_functions_after_inlining): Same.
17292 (try_decrement_rdesc_refcount): Same.
17293 (ipa_impossible_devirt_target): Same.
17294 (update_indirect_edges_after_inlining): Same.
17295 (combine_controlled_uses_counters): Same.
17296 (ipa_edge_args_sum_t::duplicate): Same.
17297 (ipa_write_jump_function): Same.
17298 (ipa_write_indirect_edge_info): Same.
17299 (ipa_write_node_info): Same.
17300 (ipa_read_edge_info): Same.
17301 (ipa_prop_read_section): Same.
17302 (read_replacements_section): Same.
17303 * ipa-prop.h (ipa_get_param_count): Same.
17304 (ipa_get_param): Same.
17305 (ipa_get_type): Same.
17306 (ipa_get_param_move_cost): Same.
17307 (ipa_set_param_used): Same.
17308 (ipa_get_controlled_uses): Same.
17309 (ipa_set_controlled_uses): Same.
17310 (ipa_get_cs_argument_count): Same.
17311 * ipa-pure-const.c (analyze_function): Same.
17312 (pure_const_read_summary): Same.
17313 * ipa-ref.h: Same.
17314 * ipa-reference.c (ipa_reference_read_optimization_summary): Same.
17315 * ipa-split.c (test_nonssa_use): Same.
17316 (dump_split_point): Same.
17317 (dominated_by_forbidden): Same.
17318 (split_part_set_ssa_name_p): Same.
17319 (find_split_points): Same.
17320 * ira-build.c (finish_loop_tree_nodes): Same.
17321 (low_pressure_loop_node_p): Same.
17322 * ira-color.c (ira_reuse_stack_slot): Same.
17323 * ira-int.h: Same.
17324 * ira.c (setup_reg_equiv): Same.
17325 (print_insn_chain): Same.
17326 (ira): Same.
17327 * loop-doloop.c (doloop_condition_get): Same.
17328 (add_test): Same.
17329 (record_reg_sets): Same.
17330 (doloop_optimize): Same.
17331 * loop-init.c (loop_optimizer_init): Same.
17332 (fix_loop_structure): Same.
17333 * loop-invariant.c (merge_identical_invariants): Same.
17334 (compute_always_reached): Same.
17335 (find_exits): Same.
17336 (may_assign_reg_p): Same.
17337 (find_invariants_bb): Same.
17338 (find_invariants_body): Same.
17339 (replace_uses): Same.
17340 (can_move_invariant_reg): Same.
17341 (free_inv_motion_data): Same.
17342 (move_single_loop_invariants): Same.
17343 (change_pressure): Same.
17344 (mark_ref_regs): Same.
17345 (calculate_loop_reg_pressure): Same.
17346 * loop-iv.c (biv_entry_hasher::equal): Same.
17347 (iv_extend_to_rtx_code): Same.
17348 (check_iv_ref_table_size): Same.
17349 (clear_iv_info): Same.
17350 (latch_dominating_def): Same.
17351 (iv_get_reaching_def): Same.
17352 (iv_constant): Same.
17353 (iv_subreg): Same.
17354 (iv_extend): Same.
17355 (iv_neg): Same.
17356 (iv_add): Same.
17357 (iv_mult): Same.
17358 (get_biv_step): Same.
17359 (record_iv): Same.
17360 (analyzed_for_bivness_p): Same.
17361 (record_biv): Same.
17362 (iv_analyze_biv): Same.
17363 (iv_analyze_expr): Same.
17364 (iv_analyze_def): Same.
17365 (iv_analyze_op): Same.
17366 (iv_analyze): Same.
17367 (iv_analyze_result): Same.
17368 (biv_p): Same.
17369 (eliminate_implied_conditions): Same.
17370 (simplify_using_initial_values): Same.
17371 (shorten_into_mode): Same.
17372 (canonicalize_iv_subregs): Same.
17373 (determine_max_iter): Same.
17374 (check_simple_exit): Same.
17375 (find_simple_exit): Same.
17376 (get_simple_loop_desc): Same.
17377 * loop-unroll.c (report_unroll): Same.
17378 (decide_unrolling): Same.
17379 (unroll_loops): Same.
17380 (loop_exit_at_end_p): Same.
17381 (decide_unroll_constant_iterations): Same.
17382 (unroll_loop_constant_iterations): Same.
17383 (compare_and_jump_seq): Same.
17384 (unroll_loop_runtime_iterations): Same.
17385 (decide_unroll_stupid): Same.
17386 (unroll_loop_stupid): Same.
17387 (referenced_in_one_insn_in_loop_p): Same.
17388 (reset_debug_uses_in_loop): Same.
17389 (analyze_iv_to_split_insn): Same.
17390 * lra-eliminations.c (lra_debug_elim_table): Same.
17391 (setup_can_eliminate): Same.
17392 (form_sum): Same.
17393 (lra_get_elimination_hard_regno): Same.
17394 (lra_eliminate_regs_1): Same.
17395 (eliminate_regs_in_insn): Same.
17396 (update_reg_eliminate): Same.
17397 (init_elimination): Same.
17398 (lra_eliminate): Same.
17399 * lra-int.h: Same.
17400 * lra-lives.c (initiate_live_solver): Same.
17401 * lra-remat.c (create_remat_bb_data): Same.
17402 * lra-spills.c (lra_spill): Same.
17403 * lra.c (lra_set_insn_recog_data): Same.
17404 (lra_set_used_insn_alternative_by_uid): Same.
17405 (init_reg_info): Same.
17406 (expand_reg_info): Same.
17407 * lto-cgraph.c (output_symtab): Same.
17408 (read_identifier): Same.
17409 (get_alias_symbol): Same.
17410 (input_node): Same.
17411 (input_varpool_node): Same.
17412 (input_ref): Same.
17413 (input_edge): Same.
17414 (input_cgraph_1): Same.
17415 (input_refs): Same.
17416 (input_symtab): Same.
17417 (input_offload_tables): Same.
17418 (output_cgraph_opt_summary): Same.
17419 (input_edge_opt_summary): Same.
17420 (input_cgraph_opt_section): Same.
17421 * lto-section-in.c (lto_free_raw_section_data): Same.
17422 (lto_create_simple_input_block): Same.
17423 (lto_free_function_in_decl_state_for_node): Same.
17424 * lto-streamer-in.c (lto_tag_check_set): Same.
17425 (lto_location_cache::revert_location_cache): Same.
17426 (lto_location_cache::input_location): Same.
17427 (lto_input_location): Same.
17428 (stream_input_location_now): Same.
17429 (lto_input_tree_ref): Same.
17430 (lto_input_eh_catch_list): Same.
17431 (input_eh_region): Same.
17432 (lto_init_eh): Same.
17433 (make_new_block): Same.
17434 (input_cfg): Same.
17435 (fixup_call_stmt_edges): Same.
17436 (input_struct_function_base): Same.
17437 (input_function): Same.
17438 (lto_read_body_or_constructor): Same.
17439 (lto_read_tree_1): Same.
17440 (lto_read_tree): Same.
17441 (lto_input_scc): Same.
17442 (lto_input_tree_1): Same.
17443 (lto_input_toplevel_asms): Same.
17444 (lto_input_mode_table): Same.
17445 (lto_reader_init): Same.
17446 (lto_data_in_create): Same.
17447 * lto-streamer-out.c (output_cfg): Same.
17448 * lto-streamer.h: Same.
17449 * modulo-sched.c (duplicate_insns_of_cycles): Same.
17450 (generate_prolog_epilog): Same.
17451 (mark_loop_unsched): Same.
17452 (dump_insn_location): Same.
17453 (loop_canon_p): Same.
17454 (sms_schedule): Same.
17455 * omp-expand.c (expand_omp_for_ordered_loops): Same.
17456 (expand_omp_for_generic): Same.
17457 (expand_omp_for_static_nochunk): Same.
17458 (expand_omp_for_static_chunk): Same.
17459 (expand_omp_simd): Same.
17460 (expand_omp_taskloop_for_inner): Same.
17461 (expand_oacc_for): Same.
17462 (expand_omp_atomic_pipeline): Same.
17463 (mark_loops_in_oacc_kernels_region): Same.
17464 * omp-offload.c (oacc_xform_loop): Same.
17465 * omp-simd-clone.c (simd_clone_adjust): Same.
17466 * optabs-query.c (get_traditional_extraction_insn): Same.
17467 * optabs.c (expand_vector_broadcast): Same.
17468 (expand_binop_directly): Same.
17469 (expand_twoval_unop): Same.
17470 (expand_twoval_binop): Same.
17471 (expand_unop_direct): Same.
17472 (emit_indirect_jump): Same.
17473 (emit_conditional_move): Same.
17474 (emit_conditional_neg_or_complement): Same.
17475 (emit_conditional_add): Same.
17476 (vector_compare_rtx): Same.
17477 (expand_vec_perm_1): Same.
17478 (expand_vec_perm_const): Same.
17479 (expand_vec_cond_expr): Same.
17480 (expand_vec_series_expr): Same.
17481 (maybe_emit_atomic_exchange): Same.
17482 (maybe_emit_sync_lock_test_and_set): Same.
17483 (expand_atomic_compare_and_swap): Same.
17484 (expand_atomic_load): Same.
17485 (expand_atomic_store): Same.
17486 (maybe_emit_op): Same.
17487 (valid_multiword_target_p): Same.
17488 (create_integer_operand): Same.
17489 (maybe_legitimize_operand_same_code): Same.
17490 (maybe_legitimize_operand): Same.
17491 (create_convert_operand_from_type): Same.
17492 (can_reuse_operands_p): Same.
17493 (maybe_legitimize_operands): Same.
17494 (maybe_gen_insn): Same.
17495 (maybe_expand_insn): Same.
17496 (maybe_expand_jump_insn): Same.
17497 (expand_insn): Same.
17498 * optabs.h (create_expand_operand): Same.
17499 (create_fixed_operand): Same.
17500 (create_output_operand): Same.
17501 (create_input_operand): Same.
17502 (create_convert_operand_to): Same.
17503 (create_convert_operand_from): Same.
17504 * optinfo.h: Same.
17505 * poly-int.h: Same.
17506 * predict.c (optimize_insn_for_speed_p): Same.
17507 (optimize_loop_for_size_p): Same.
17508 (optimize_loop_for_speed_p): Same.
17509 (optimize_loop_nest_for_speed_p): Same.
17510 (get_base_value): Same.
17511 (predicted_by_loop_heuristics_p): Same.
17512 (predict_extra_loop_exits): Same.
17513 (predict_loops): Same.
17514 (predict_paths_for_bb): Same.
17515 (predict_paths_leading_to): Same.
17516 (propagate_freq): Same.
17517 (pass_profile::execute): Same.
17518 * predict.h: Same.
17519 * profile-count.c (profile_count::differs_from_p): Same.
17520 (profile_probability::differs_lot_from_p): Same.
17521 * profile-count.h: Same.
17522 * profile.c (branch_prob): Same.
17523 * regrename.c (free_chain_data): Same.
17524 (mark_conflict): Same.
17525 (create_new_chain): Same.
17526 (merge_overlapping_regs): Same.
17527 (init_rename_info): Same.
17528 (merge_chains): Same.
17529 (regrename_analyze): Same.
17530 (regrename_do_replace): Same.
17531 (scan_rtx_reg): Same.
17532 (record_out_operands): Same.
17533 (build_def_use): Same.
17534 * regrename.h: Same.
17535 * reload.h: Same.
17536 * reload1.c (init_reload): Same.
17537 (maybe_fix_stack_asms): Same.
17538 (copy_reloads): Same.
17539 (count_pseudo): Same.
17540 (count_spilled_pseudo): Same.
17541 (find_reg): Same.
17542 (find_reload_regs): Same.
17543 (select_reload_regs): Same.
17544 (spill_hard_reg): Same.
17545 (fixup_eh_region_note): Same.
17546 (set_reload_reg): Same.
17547 (allocate_reload_reg): Same.
17548 (compute_reload_subreg_offset): Same.
17549 (reload_adjust_reg_for_icode): Same.
17550 (emit_input_reload_insns): Same.
17551 (emit_output_reload_insns): Same.
17552 (do_input_reload): Same.
17553 (inherit_piecemeal_p): Same.
17554 * rtl.h: Same.
17555 * sanopt.c (maybe_get_dominating_check): Same.
17556 (maybe_optimize_ubsan_ptr_ifn): Same.
17557 (can_remove_asan_check): Same.
17558 (maybe_optimize_asan_check_ifn): Same.
17559 (sanopt_optimize_walker): Same.
17560 * sched-deps.c (add_dependence_list): Same.
17561 (chain_to_prev_insn): Same.
17562 (add_insn_mem_dependence): Same.
17563 (create_insn_reg_set): Same.
17564 (maybe_extend_reg_info_p): Same.
17565 (sched_analyze_reg): Same.
17566 (sched_analyze_1): Same.
17567 (get_implicit_reg_pending_clobbers): Same.
17568 (chain_to_prev_insn_p): Same.
17569 (deps_analyze_insn): Same.
17570 (deps_start_bb): Same.
17571 (sched_free_deps): Same.
17572 (init_deps): Same.
17573 (init_deps_reg_last): Same.
17574 (free_deps): Same.
17575 * sched-ebb.c: Same.
17576 * sched-int.h: Same.
17577 * sched-rgn.c (add_branch_dependences): Same.
17578 (concat_insn_mem_list): Same.
17579 (deps_join): Same.
17580 (sched_rgn_compute_dependencies): Same.
17581 * sel-sched-ir.c (reset_target_context): Same.
17582 (copy_deps_context): Same.
17583 (init_id_from_df): Same.
17584 (has_dependence_p): Same.
17585 (change_loops_latches): Same.
17586 (bb_top_order_comparator): Same.
17587 (make_region_from_loop_preheader): Same.
17588 (sel_init_pipelining): Same.
17589 (get_loop_nest_for_rgn): Same.
17590 (make_regions_from_the_rest): Same.
17591 (sel_is_loop_preheader_p): Same.
17592 * sel-sched-ir.h (inner_loop_header_p): Same.
17593 (get_all_loop_exits): Same.
17594 * selftest.h: Same.
17595 * sese.c (sese_build_liveouts): Same.
17596 (sese_insert_phis_for_liveouts): Same.
17597 * sese.h (defined_in_sese_p): Same.
17598 * sreal.c (sreal::stream_out): Same.
17599 * sreal.h: Same.
17600 * streamer-hooks.h: Same.
17601 * target-globals.c (save_target_globals): Same.
17602 * target-globals.h: Same.
17603 * target.def: Same.
17604 * target.h: Same.
17605 * targhooks.c (default_has_ifunc_p): Same.
17606 (default_empty_mask_is_expensive): Same.
17607 (default_init_cost): Same.
17608 * targhooks.h: Same.
17609 * toplev.c: Same.
17610 * tree-affine.c (aff_combination_mult): Same.
17611 (aff_combination_expand): Same.
17612 (aff_combination_constant_multiple_p): Same.
17613 * tree-affine.h: Same.
17614 * tree-cfg.c (build_gimple_cfg): Same.
17615 (replace_loop_annotate_in_block): Same.
17616 (replace_uses_by): Same.
17617 (remove_bb): Same.
17618 (dump_cfg_stats): Same.
17619 (gimple_duplicate_sese_region): Same.
17620 (gimple_duplicate_sese_tail): Same.
17621 (move_block_to_fn): Same.
17622 (replace_block_vars_by_duplicates): Same.
17623 (move_sese_region_to_fn): Same.
17624 (print_loops_bb): Same.
17625 (print_loop): Same.
17626 (print_loops): Same.
17627 (debug): Same.
17628 (debug_loops): Same.
17629 * tree-cfg.h: Same.
17630 * tree-chrec.c (chrec_fold_plus_poly_poly): Same.
17631 (chrec_fold_multiply_poly_poly): Same.
17632 (chrec_evaluate): Same.
17633 (chrec_component_in_loop_num): Same.
17634 (reset_evolution_in_loop): Same.
17635 (is_multivariate_chrec): Same.
17636 (chrec_contains_symbols): Same.
17637 (nb_vars_in_chrec): Same.
17638 (chrec_convert_1): Same.
17639 (chrec_convert_aggressive): Same.
17640 * tree-chrec.h: Same.
17641 * tree-core.h: Same.
17642 * tree-data-ref.c (dump_data_dependence_relation): Same.
17643 (canonicalize_base_object_address): Same.
17644 (data_ref_compare_tree): Same.
17645 (prune_runtime_alias_test_list): Same.
17646 (get_segment_min_max): Same.
17647 (create_intersect_range_checks): Same.
17648 (conflict_fn_no_dependence): Same.
17649 (object_address_invariant_in_loop_p): Same.
17650 (analyze_ziv_subscript): Same.
17651 (analyze_siv_subscript_cst_affine): Same.
17652 (analyze_miv_subscript): Same.
17653 (analyze_overlapping_iterations): Same.
17654 (build_classic_dist_vector_1): Same.
17655 (add_other_self_distances): Same.
17656 (same_access_functions): Same.
17657 (build_classic_dir_vector): Same.
17658 (subscript_dependence_tester_1): Same.
17659 (subscript_dependence_tester): Same.
17660 (access_functions_are_affine_or_constant_p): Same.
17661 (get_references_in_stmt): Same.
17662 (loop_nest_has_data_refs): Same.
17663 (graphite_find_data_references_in_stmt): Same.
17664 (find_data_references_in_bb): Same.
17665 (get_base_for_alignment): Same.
17666 (find_loop_nest_1): Same.
17667 (find_loop_nest): Same.
17668 * tree-data-ref.h (dr_alignment): Same.
17669 (ddr_dependence_level): Same.
17670 * tree-if-conv.c (fold_build_cond_expr): Same.
17671 (add_to_predicate_list): Same.
17672 (add_to_dst_predicate_list): Same.
17673 (phi_convertible_by_degenerating_args): Same.
17674 (idx_within_array_bound): Same.
17675 (all_preds_critical_p): Same.
17676 (pred_blocks_visited_p): Same.
17677 (predicate_bbs): Same.
17678 (build_region): Same.
17679 (if_convertible_loop_p_1): Same.
17680 (is_cond_scalar_reduction): Same.
17681 (predicate_scalar_phi): Same.
17682 (remove_conditions_and_labels): Same.
17683 (combine_blocks): Same.
17684 (version_loop_for_if_conversion): Same.
17685 (versionable_outer_loop_p): Same.
17686 (ifcvt_local_dce): Same.
17687 (tree_if_conversion): Same.
17688 (pass_if_conversion::gate): Same.
17689 * tree-if-conv.h: Same.
17690 * tree-inline.c (maybe_move_debug_stmts_to_successors): Same.
17691 * tree-loop-distribution.c (bb_top_order_cmp): Same.
17692 (free_rdg): Same.
17693 (stmt_has_scalar_dependences_outside_loop): Same.
17694 (copy_loop_before): Same.
17695 (create_bb_after_loop): Same.
17696 (const_with_all_bytes_same): Same.
17697 (generate_memset_builtin): Same.
17698 (generate_memcpy_builtin): Same.
17699 (destroy_loop): Same.
17700 (build_rdg_partition_for_vertex): Same.
17701 (compute_access_range): Same.
17702 (data_ref_segment_size): Same.
17703 (latch_dominated_by_data_ref): Same.
17704 (compute_alias_check_pairs): Same.
17705 (fuse_memset_builtins): Same.
17706 (finalize_partitions): Same.
17707 (find_seed_stmts_for_distribution): Same.
17708 (prepare_perfect_loop_nest): Same.
17709 * tree-parloops.c (lambda_transform_legal_p): Same.
17710 (loop_parallel_p): Same.
17711 (reduc_stmt_res): Same.
17712 (add_field_for_name): Same.
17713 (create_call_for_reduction_1): Same.
17714 (replace_uses_in_bb_by): Same.
17715 (transform_to_exit_first_loop_alt): Same.
17716 (try_transform_to_exit_first_loop_alt): Same.
17717 (transform_to_exit_first_loop): Same.
17718 (num_phis): Same.
17719 (gen_parallel_loop): Same.
17720 (gather_scalar_reductions): Same.
17721 (get_omp_data_i_param): Same.
17722 (try_create_reduction_list): Same.
17723 (oacc_entry_exit_single_gang): Same.
17724 (parallelize_loops): Same.
17725 * tree-pass.h: Same.
17726 * tree-predcom.c (determine_offset): Same.
17727 (last_always_executed_block): Same.
17728 (split_data_refs_to_components): Same.
17729 (suitable_component_p): Same.
17730 (valid_initializer_p): Same.
17731 (find_looparound_phi): Same.
17732 (insert_looparound_copy): Same.
17733 (add_looparound_copies): Same.
17734 (determine_roots_comp): Same.
17735 (predcom_tmp_var): Same.
17736 (initialize_root_vars): Same.
17737 (initialize_root_vars_store_elim_1): Same.
17738 (initialize_root_vars_store_elim_2): Same.
17739 (finalize_eliminated_stores): Same.
17740 (initialize_root_vars_lm): Same.
17741 (remove_stmt): Same.
17742 (determine_unroll_factor): Same.
17743 (execute_pred_commoning_cbck): Same.
17744 (base_names_in_chain_on): Same.
17745 (combine_chains): Same.
17746 (pcom_stmt_dominates_stmt_p): Same.
17747 (try_combine_chains): Same.
17748 (prepare_initializers_chain_store_elim): Same.
17749 (prepare_initializers_chain): Same.
17750 (prepare_initializers): Same.
17751 (prepare_finalizers_chain): Same.
17752 (prepare_finalizers): Same.
17753 (insert_init_seqs): Same.
17754 * tree-scalar-evolution.c (loop_phi_node_p): Same.
17755 (compute_overall_effect_of_inner_loop): Same.
17756 (add_to_evolution_1): Same.
17757 (add_to_evolution): Same.
17758 (follow_ssa_edge_binary): Same.
17759 (follow_ssa_edge_expr): Same.
17760 (backedge_phi_arg_p): Same.
17761 (follow_ssa_edge_in_condition_phi_branch): Same.
17762 (follow_ssa_edge_in_condition_phi): Same.
17763 (follow_ssa_edge_inner_loop_phi): Same.
17764 (follow_ssa_edge): Same.
17765 (analyze_evolution_in_loop): Same.
17766 (analyze_initial_condition): Same.
17767 (interpret_loop_phi): Same.
17768 (interpret_condition_phi): Same.
17769 (interpret_rhs_expr): Same.
17770 (interpret_expr): Same.
17771 (interpret_gimple_assign): Same.
17772 (analyze_scalar_evolution_1): Same.
17773 (analyze_scalar_evolution): Same.
17774 (analyze_scalar_evolution_for_address_of): Same.
17775 (get_instantiated_value_entry): Same.
17776 (loop_closed_phi_def): Same.
17777 (instantiate_scev_name): Same.
17778 (instantiate_scev_poly): Same.
17779 (instantiate_scev_binary): Same.
17780 (instantiate_scev_convert): Same.
17781 (instantiate_scev_not): Same.
17782 (instantiate_scev_r): Same.
17783 (instantiate_scev): Same.
17784 (resolve_mixers): Same.
17785 (initialize_scalar_evolutions_analyzer): Same.
17786 (scev_reset_htab): Same.
17787 (scev_reset): Same.
17788 (derive_simple_iv_with_niters): Same.
17789 (simple_iv_with_niters): Same.
17790 (expression_expensive_p): Same.
17791 (final_value_replacement_loop): Same.
17792 * tree-scalar-evolution.h (block_before_loop): Same.
17793 * tree-ssa-address.h: Same.
17794 * tree-ssa-dce.c (find_obviously_necessary_stmts): Same.
17795 * tree-ssa-dom.c (edge_info::record_simple_equiv): Same.
17796 (record_edge_info): Same.
17797 * tree-ssa-live.c (var_map_base_fini): Same.
17798 (remove_unused_locals): Same.
17799 * tree-ssa-live.h: Same.
17800 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Same.
17801 (pass_ch_vect::execute): Same.
17802 (pass_ch::process_loop_p): Same.
17803 * tree-ssa-loop-im.c (mem_ref_hasher::hash): Same.
17804 (movement_possibility): Same.
17805 (outermost_invariant_loop): Same.
17806 (stmt_cost): Same.
17807 (determine_max_movement): Same.
17808 (invariantness_dom_walker::before_dom_children): Same.
17809 (move_computations): Same.
17810 (may_move_till): Same.
17811 (force_move_till_op): Same.
17812 (force_move_till): Same.
17813 (memref_free): Same.
17814 (record_mem_ref_loc): Same.
17815 (set_ref_stored_in_loop): Same.
17816 (mark_ref_stored): Same.
17817 (sort_bbs_in_loop_postorder_cmp): Same.
17818 (sort_locs_in_loop_postorder_cmp): Same.
17819 (analyze_memory_references): Same.
17820 (mem_refs_may_alias_p): Same.
17821 (find_ref_loc_in_loop_cmp): Same.
17822 (rewrite_mem_ref_loc::operator): Same.
17823 (first_mem_ref_loc_1::operator): Same.
17824 (sm_set_flag_if_changed::operator): Same.
17825 (execute_sm_if_changed_flag_set): Same.
17826 (execute_sm): Same.
17827 (hoist_memory_references): Same.
17828 (ref_always_accessed::operator): Same.
17829 (refs_independent_p): Same.
17830 (record_dep_loop): Same.
17831 (ref_indep_loop_p_1): Same.
17832 (ref_indep_loop_p): Same.
17833 (can_sm_ref_p): Same.
17834 (find_refs_for_sm): Same.
17835 (loop_suitable_for_sm): Same.
17836 (store_motion_loop): Same.
17837 (store_motion): Same.
17838 (fill_always_executed_in): Same.
17839 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Same.
17840 (estimated_unrolled_size): Same.
17841 (loop_edge_to_cancel): Same.
17842 (remove_exits_and_undefined_stmts): Same.
17843 (remove_redundant_iv_tests): Same.
17844 (unloop_loops): Same.
17845 (estimated_peeled_sequence_size): Same.
17846 (try_peel_loop): Same.
17847 (canonicalize_loop_induction_variables): Same.
17848 (canonicalize_induction_variables): Same.
17849 * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher::equal): Same.
17850 (name_info): Same.
17851 (stmt_after_inc_pos): Same.
17852 (contains_abnormal_ssa_name_p): Same.
17853 (niter_for_exit): Same.
17854 (find_bivs): Same.
17855 (mark_bivs): Same.
17856 (find_givs_in_bb): Same.
17857 (find_induction_variables): Same.
17858 (find_interesting_uses_cond): Same.
17859 (outermost_invariant_loop_for_expr): Same.
17860 (idx_find_step): Same.
17861 (add_candidate_1): Same.
17862 (add_iv_candidate_derived_from_uses): Same.
17863 (alloc_use_cost_map): Same.
17864 (prepare_decl_rtl): Same.
17865 (generic_predict_doloop_p): Same.
17866 (computation_cost): Same.
17867 (determine_common_wider_type): Same.
17868 (get_computation_aff_1): Same.
17869 (get_use_type): Same.
17870 (determine_group_iv_cost_address): Same.
17871 (iv_period): Same.
17872 (difference_cannot_overflow_p): Same.
17873 (may_eliminate_iv): Same.
17874 (determine_set_costs): Same.
17875 (cheaper_cost_pair): Same.
17876 (compare_cost_pair): Same.
17877 (iv_ca_cand_for_group): Same.
17878 (iv_ca_recount_cost): Same.
17879 (iv_ca_set_remove_invs): Same.
17880 (iv_ca_set_no_cp): Same.
17881 (iv_ca_set_add_invs): Same.
17882 (iv_ca_set_cp): Same.
17883 (iv_ca_add_group): Same.
17884 (iv_ca_cost): Same.
17885 (iv_ca_compare_deps): Same.
17886 (iv_ca_delta_reverse): Same.
17887 (iv_ca_delta_commit): Same.
17888 (iv_ca_cand_used_p): Same.
17889 (iv_ca_delta_free): Same.
17890 (iv_ca_new): Same.
17891 (iv_ca_free): Same.
17892 (iv_ca_dump): Same.
17893 (iv_ca_extend): Same.
17894 (iv_ca_narrow): Same.
17895 (iv_ca_prune): Same.
17896 (cheaper_cost_with_cand): Same.
17897 (iv_ca_replace): Same.
17898 (try_add_cand_for): Same.
17899 (get_initial_solution): Same.
17900 (try_improve_iv_set): Same.
17901 (find_optimal_iv_set_1): Same.
17902 (create_new_iv): Same.
17903 (rewrite_use_compare): Same.
17904 (remove_unused_ivs): Same.
17905 (determine_scaling_factor): Same.
17906 * tree-ssa-loop-ivopts.h: Same.
17907 * tree-ssa-loop-manip.c (create_iv): Same.
17908 (compute_live_loop_exits): Same.
17909 (add_exit_phi): Same.
17910 (add_exit_phis): Same.
17911 (find_uses_to_rename_use): Same.
17912 (find_uses_to_rename_def): Same.
17913 (find_uses_to_rename_in_loop): Same.
17914 (rewrite_into_loop_closed_ssa): Same.
17915 (check_loop_closed_ssa_bb): Same.
17916 (split_loop_exit_edge): Same.
17917 (ip_end_pos): Same.
17918 (ip_normal_pos): Same.
17919 (copy_phi_node_args): Same.
17920 (gimple_duplicate_loop_to_header_edge): Same.
17921 (can_unroll_loop_p): Same.
17922 (determine_exit_conditions): Same.
17923 (scale_dominated_blocks_in_loop): Same.
17924 (niter_for_unrolled_loop): Same.
17925 (tree_transform_and_unroll_loop): Same.
17926 (rewrite_all_phi_nodes_with_iv): Same.
17927 * tree-ssa-loop-manip.h: Same.
17928 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Same.
17929 (number_of_iterations_ne): Same.
17930 (assert_no_overflow_lt): Same.
17931 (assert_loop_rolls_lt): Same.
17932 (number_of_iterations_lt): Same.
17933 (adjust_cond_for_loop_until_wrap): Same.
17934 (tree_simplify_using_condition): Same.
17935 (simplify_using_initial_conditions): Same.
17936 (simplify_using_outer_evolutions): Same.
17937 (loop_only_exit_p): Same.
17938 (ssa_defined_by_minus_one_stmt_p): Same.
17939 (number_of_iterations_popcount): Same.
17940 (number_of_iterations_exit): Same.
17941 (find_loop_niter): Same.
17942 (finite_loop_p): Same.
17943 (chain_of_csts_start): Same.
17944 (get_val_for): Same.
17945 (loop_niter_by_eval): Same.
17946 (derive_constant_upper_bound_ops): Same.
17947 (do_warn_aggressive_loop_optimizations): Same.
17948 (record_estimate): Same.
17949 (get_cst_init_from_scev): Same.
17950 (record_nonwrapping_iv): Same.
17951 (idx_infer_loop_bounds): Same.
17952 (infer_loop_bounds_from_ref): Same.
17953 (infer_loop_bounds_from_array): Same.
17954 (infer_loop_bounds_from_pointer_arith): Same.
17955 (infer_loop_bounds_from_signedness): Same.
17956 (bound_index): Same.
17957 (discover_iteration_bound_by_body_walk): Same.
17958 (maybe_lower_iteration_bound): Same.
17959 (estimate_numbers_of_iterations): Same.
17960 (estimated_loop_iterations): Same.
17961 (estimated_loop_iterations_int): Same.
17962 (max_loop_iterations): Same.
17963 (max_loop_iterations_int): Same.
17964 (likely_max_loop_iterations): Same.
17965 (likely_max_loop_iterations_int): Same.
17966 (estimated_stmt_executions_int): Same.
17967 (max_stmt_executions): Same.
17968 (likely_max_stmt_executions): Same.
17969 (estimated_stmt_executions): Same.
17970 (stmt_dominates_stmt_p): Same.
17971 (nowrap_type_p): Same.
17972 (loop_exits_before_overflow): Same.
17973 (scev_var_range_cant_overflow): Same.
17974 (scev_probably_wraps_p): Same.
17975 (free_numbers_of_iterations_estimates): Same.
17976 * tree-ssa-loop-niter.h: Same.
17977 * tree-ssa-loop-prefetch.c (release_mem_refs): Same.
17978 (idx_analyze_ref): Same.
17979 (analyze_ref): Same.
17980 (gather_memory_references_ref): Same.
17981 (mark_nontemporal_store): Same.
17982 (emit_mfence_after_loop): Same.
17983 (may_use_storent_in_loop_p): Same.
17984 (mark_nontemporal_stores): Same.
17985 (should_unroll_loop_p): Same.
17986 (volume_of_dist_vector): Same.
17987 (add_subscript_strides): Same.
17988 (self_reuse_distance): Same.
17989 (insn_to_prefetch_ratio_too_small_p): Same.
17990 * tree-ssa-loop-split.c (split_at_bb_p): Same.
17991 (patch_loop_exit): Same.
17992 (find_or_create_guard_phi): Same.
17993 (easy_exit_values): Same.
17994 (connect_loop_phis): Same.
17995 (connect_loops): Same.
17996 (compute_new_first_bound): Same.
17997 (split_loop): Same.
17998 (tree_ssa_split_loops): Same.
17999 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Same.
18000 (is_maybe_undefined): Same.
18001 (tree_may_unswitch_on): Same.
18002 (simplify_using_entry_checks): Same.
18003 (tree_unswitch_single_loop): Same.
18004 (tree_unswitch_loop): Same.
18005 (tree_unswitch_outer_loop): Same.
18006 (empty_bb_without_guard_p): Same.
18007 (used_outside_loop_p): Same.
18008 (get_vop_from_header): Same.
18009 (hoist_guard): Same.
18010 * tree-ssa-loop.c (gate_oacc_kernels): Same.
18011 (get_lsm_tmp_name): Same.
18012 * tree-ssa-loop.h: Same.
18013 * tree-ssa-reassoc.c (add_repeat_to_ops_vec): Same.
18014 (build_and_add_sum): Same.
18015 (no_side_effect_bb): Same.
18016 (get_ops): Same.
18017 (linearize_expr): Same.
18018 (should_break_up_subtract): Same.
18019 (linearize_expr_tree): Same.
18020 * tree-ssa-scopedtables.c: Same.
18021 * tree-ssa-scopedtables.h: Same.
18022 * tree-ssa-structalias.c (condense_visit): Same.
18023 (label_visit): Same.
18024 (dump_pred_graph): Same.
18025 (perform_var_substitution): Same.
18026 (move_complex_constraints): Same.
18027 (remove_preds_and_fake_succs): Same.
18028 * tree-ssa-threadupdate.c (dbds_continue_enumeration_p): Same.
18029 (determine_bb_domination_status): Same.
18030 (duplicate_thread_path): Same.
18031 (thread_through_all_blocks): Same.
18032 * tree-ssa-threadupdate.h: Same.
18033 * tree-streamer-in.c (streamer_read_string_cst): Same.
18034 (input_identifier): Same.
18035 (unpack_ts_type_common_value_fields): Same.
18036 (unpack_ts_block_value_fields): Same.
18037 (unpack_ts_translation_unit_decl_value_fields): Same.
18038 (unpack_ts_omp_clause_value_fields): Same.
18039 (streamer_read_tree_bitfields): Same.
18040 (streamer_alloc_tree): Same.
18041 (lto_input_ts_common_tree_pointers): Same.
18042 (lto_input_ts_vector_tree_pointers): Same.
18043 (lto_input_ts_poly_tree_pointers): Same.
18044 (lto_input_ts_complex_tree_pointers): Same.
18045 (lto_input_ts_decl_minimal_tree_pointers): Same.
18046 (lto_input_ts_decl_common_tree_pointers): Same.
18047 (lto_input_ts_decl_non_common_tree_pointers): Same.
18048 (lto_input_ts_decl_with_vis_tree_pointers): Same.
18049 (lto_input_ts_field_decl_tree_pointers): Same.
18050 (lto_input_ts_function_decl_tree_pointers): Same.
18051 (lto_input_ts_type_common_tree_pointers): Same.
18052 (lto_input_ts_type_non_common_tree_pointers): Same.
18053 (lto_input_ts_list_tree_pointers): Same.
18054 (lto_input_ts_vec_tree_pointers): Same.
18055 (lto_input_ts_exp_tree_pointers): Same.
18056 (lto_input_ts_block_tree_pointers): Same.
18057 (lto_input_ts_binfo_tree_pointers): Same.
18058 (lto_input_ts_constructor_tree_pointers): Same.
18059 (lto_input_ts_omp_clause_tree_pointers): Same.
18060 (streamer_read_tree_body): Same.
18061 * tree-streamer.h: Same.
18062 * tree-switch-conversion.c (bit_test_cluster::is_beneficial): Same.
18063 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Same.
18064 (vect_analyze_possibly_independent_ddr): Same.
18065 (vect_analyze_data_ref_dependence): Same.
18066 (vect_compute_data_ref_alignment): Same.
18067 (vect_enhance_data_refs_alignment): Same.
18068 (vect_analyze_data_ref_access): Same.
18069 (vect_check_gather_scatter): Same.
18070 (vect_find_stmt_data_reference): Same.
18071 (vect_create_addr_base_for_vector_ref): Same.
18072 (vect_setup_realignment): Same.
18073 (vect_supportable_dr_alignment): Same.
18074 * tree-vect-loop-manip.c (rename_variables_in_bb): Same.
18075 (adjust_phi_and_debug_stmts): Same.
18076 (vect_set_loop_mask): Same.
18077 (add_preheader_seq): Same.
18078 (vect_maybe_permute_loop_masks): Same.
18079 (vect_set_loop_masks_directly): Same.
18080 (vect_set_loop_condition_masked): Same.
18081 (vect_set_loop_condition_unmasked): Same.
18082 (slpeel_duplicate_current_defs_from_edges): Same.
18083 (slpeel_add_loop_guard): Same.
18084 (slpeel_can_duplicate_loop_p): Same.
18085 (create_lcssa_for_virtual_phi): Same.
18086 (iv_phi_p): Same.
18087 (vect_update_ivs_after_vectorizer): Same.
18088 (vect_gen_vector_loop_niters_mult_vf): Same.
18089 (slpeel_update_phi_nodes_for_loops): Same.
18090 (slpeel_update_phi_nodes_for_guard1): Same.
18091 (find_guard_arg): Same.
18092 (slpeel_update_phi_nodes_for_guard2): Same.
18093 (slpeel_update_phi_nodes_for_lcssa): Same.
18094 (vect_do_peeling): Same.
18095 (vect_create_cond_for_alias_checks): Same.
18096 (vect_loop_versioning): Same.
18097 * tree-vect-loop.c (vect_determine_vf_for_stmt): Same.
18098 (vect_inner_phi_in_double_reduction_p): Same.
18099 (vect_analyze_scalar_cycles_1): Same.
18100 (vect_fixup_scalar_cycles_with_patterns): Same.
18101 (vect_get_loop_niters): Same.
18102 (bb_in_loop_p): Same.
18103 (vect_get_max_nscalars_per_iter): Same.
18104 (vect_verify_full_masking): Same.
18105 (vect_compute_single_scalar_iteration_cost): Same.
18106 (vect_analyze_loop_form_1): Same.
18107 (vect_analyze_loop_form): Same.
18108 (vect_active_double_reduction_p): Same.
18109 (vect_analyze_loop_operations): Same.
18110 (neutral_op_for_slp_reduction): Same.
18111 (vect_is_simple_reduction): Same.
18112 (vect_model_reduction_cost): Same.
18113 (get_initial_def_for_reduction): Same.
18114 (get_initial_defs_for_reduction): Same.
18115 (vect_create_epilog_for_reduction): Same.
18116 (vectorize_fold_left_reduction): Same.
18117 (vectorizable_reduction): Same.
18118 (vectorizable_induction): Same.
18119 (vectorizable_live_operation): Same.
18120 (loop_niters_no_overflow): Same.
18121 (vect_get_loop_mask): Same.
18122 (vect_transform_loop_stmt): Same.
18123 (vect_transform_loop): Same.
18124 * tree-vect-patterns.c (vect_reassociating_reduction_p): Same.
18125 (vect_determine_precisions): Same.
18126 (vect_pattern_recog_1): Same.
18127 * tree-vect-slp.c (vect_analyze_slp_instance): Same.
18128 * tree-vect-stmts.c (stmt_vectype): Same.
18129 (process_use): Same.
18130 (vect_init_vector_1): Same.
18131 (vect_truncate_gather_scatter_offset): Same.
18132 (get_group_load_store_type): Same.
18133 (vect_build_gather_load_calls): Same.
18134 (vect_get_strided_load_store_ops): Same.
18135 (vectorizable_simd_clone_call): Same.
18136 (vectorizable_store): Same.
18137 (permute_vec_elements): Same.
18138 (vectorizable_load): Same.
18139 (vect_transform_stmt): Same.
18140 (supportable_widening_operation): Same.
18141 * tree-vectorizer.c (vec_info::replace_stmt): Same.
18142 (vec_info::free_stmt_vec_info): Same.
18143 (vect_free_loop_info_assumptions): Same.
18144 (vect_loop_vectorized_call): Same.
18145 (set_uid_loop_bbs): Same.
18146 (vectorize_loops): Same.
18147 * tree-vectorizer.h (STMT_VINFO_BB_VINFO): Same.
18148 * tree.c (add_tree_to_fld_list): Same.
18149 (fld_type_variant_equal_p): Same.
18150 (fld_decl_context): Same.
18151 (fld_incomplete_type_of): Same.
18152 (free_lang_data_in_binfo): Same.
18153 (need_assembler_name_p): Same.
18154 (find_decls_types_r): Same.
18155 (get_eh_types_for_runtime): Same.
18156 (find_decls_types_in_eh_region): Same.
18157 (find_decls_types_in_node): Same.
18158 (assign_assembler_name_if_needed): Same.
18159 * value-prof.c (stream_out_histogram_value): Same.
18160 * value-prof.h: Same.
18161 * var-tracking.c (use_narrower_mode): Same.
18162 (prepare_call_arguments): Same.
18163 (vt_expand_loc_callback): Same.
18164 (resolve_expansions_pending_recursion): Same.
18165 (vt_expand_loc): Same.
18166 * varasm.c (const_hash_1): Same.
18167 (compare_constant): Same.
18168 (tree_output_constant_def): Same.
18169 (simplify_subtraction): Same.
18170 (get_pool_constant): Same.
18171 (output_constant_pool_2): Same.
18172 (output_constant_pool_1): Same.
18173 (mark_constants_in_pattern): Same.
18174 (mark_constant_pool): Same.
18175 (get_section_anchor): Same.
18176 * vr-values.c (compare_range_with_value): Same.
18177 (vr_values::extract_range_from_phi_node): Same.
18178 * vr-values.h: Same.
18179 * web.c (unionfind_union): Same.
18180 * wide-int.h: Same.
18181
18182 2019-07-09 Martin Sebor <msebor@redhat.com>
18183
18184 PR c++/61339
18185 * align.h: Change class-key from class to struct and vice versa
18186 to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod.
18187 * alloc-pool.h: Same.
18188 * asan.c (shadow_mem_size): Same.
18189 * auto-profile.c: Same.
18190 * basic-block.h: Same.
18191 * bitmap.h: Same.
18192 * cfgexpand.c (set_rtl): Same.
18193 (expand_one_stack_var_at): Same.
18194 * cfghooks.h: Same.
18195 * cfgloop.h: Same.
18196 * cgraph.h: Same.
18197 * config/i386/i386.h: Same.
18198 * df-problems.c (df_print_bb_index): Same.
18199 * df-scan.c: Same.
18200 * df.h (df_single_use): Same.
18201 * diagnostic-show-locus.c (layout::print_annotation_line): Same.
18202 (layout::annotation_line_showed_range_p): Same.
18203 (get_printed_columns): Same.
18204 (correction::ensure_terminated): Same.
18205 (line_corrections::~line_corrections): Same.
18206 * dojump.h: Same.
18207 * dse.c: Same.
18208 * dump-context.h: Same.
18209 * dumpfile.h: Same.
18210 * dwarf2out.c: Same.
18211 * edit-context.c: Same.
18212 * fibonacci_heap.c (test_union_of_equal_heaps): Same.
18213 * flags.h: Same.
18214 * function.c (assign_stack_local): Same.
18215 * function.h: Same.
18216 * gcc.c: Same.
18217 * gcov.c (block_info::block_info): Same.
18218 * genattrtab.c: Same.
18219 * genextract.c: Same.
18220 * genmatch.c (comparison_code_p): Same.
18221 (id_base::id_base): Same.
18222 (decision_tree::print): Same.
18223 * genoutput.c: Same.
18224 * genpreds.c (write_one_predicate_function): Same.
18225 * genrecog.c (validate_pattern): Same.
18226 (find_operand_positions): Same.
18227 (optimize_subroutine_group): Same.
18228 (merge_pattern_transition::merge_pattern_transition): Same.
18229 (merge_pattern_info::merge_pattern_info): Same.
18230 (merge_state_result::merge_state_result): Same.
18231 (merge_into_state): Same.
18232 * gensupport.c: Same.
18233 * gensupport.h: Same.
18234 * ggc-common.c (init_ggc_heuristics): Same.
18235 * ggc-tests.c (test_union): Same.
18236 * gimple-loop-interchange.cc (dump_induction): Same.
18237 * gimple-loop-versioning.cc: Same.
18238 * gimple-match.h (gimple_match_cond::any_else): Same.
18239 * gimple-ssa-backprop.c: Same.
18240 * gimple-ssa-sprintf.c: Same.
18241 * gimple-ssa-store-merging.c (store_operand_info::store_operand_info):
18242 Same.
18243 (store_immediate_info::store_immediate_info): Same.
18244 (merged_store_group::apply_stores): Same.
18245 (get_location_for_stmts): Same.
18246 * gimple-ssa-strength-reduction.c: Same.
18247 * gimple-ssa-warn-alloca.c: Same.
18248 * gimple-ssa-warn-restrict.c (pass_wrestrict::execute): Same.
18249 * godump.c (go_type_decl): Same.
18250 * hash-map-tests.c (test_map_of_strings_to_int): Same.
18251 * hash-map.h: Same.
18252 * hash-set-tests.c (test_set_of_strings): Same.
18253 * hsa-brig.c: Same.
18254 * hsa-common.h: Same.
18255 * hsa-gen.c (transformable_switch_to_sbr_p): Same.
18256 * input.c (assert_loceq): Same.
18257 * input.h: Same.
18258 * ipa-cp.c: Same.
18259 * ipa-devirt.c (possible_polymorphic_call_targets_1): Same.
18260 * ipa-fnsummary.h: Same.
18261 * ipa-inline.h: Same.
18262 * ipa-prop.h: Same.
18263 * ipa-split.c (visit_bb): Same.
18264 * ira-int.h (minmax_set_iter_next): Same.
18265 * loop-invariant.c: Same.
18266 * loop-iv.c: Same.
18267 * lra-eliminations.c: Same.
18268 * lra-int.h: Same.
18269 * lra-lives.c (mark_regno_dead): Same.
18270 * lra-remat.c: Same.
18271 * lra-spills.c: Same.
18272 * lto-streamer.h: Same.
18273 * mem-stats.h: Same.
18274 * omp-grid.c (omp_grid_lastprivate_predicate): Same.
18275 * omp-low.c (omp_clause_aligned_alignment): Same.
18276 * optabs-query.h (get_vcond_eq_icode): Same.
18277 * optabs.h: Same.
18278 * opts.c (wrap_help): Same.
18279 * poly-int.h: Same.
18280 * predict.c (predict_paths_leading_to_edge): Same.
18281 * pretty-print.h: Same.
18282 * profile-count.h: Same.
18283 * read-md.h: Same.
18284 * read-rtl-function.c: Same.
18285 * ree.c: Same.
18286 * reginfo.c: Same.
18287 * regrename.c: Same.
18288 * regrename.h: Same.
18289 * reload.h: Same.
18290 * rtl-iter.h: Same.
18291 * rtl.h (costs_add_n_insns): Same.
18292 * sanopt.c: Same.
18293 * sched-int.h: Same.
18294 * sel-sched-ir.h: Same.
18295 * selftest.h: Same.
18296 * sese.h (vec_find): Same.
18297 * stmt.c: Same.
18298 * target-globals.h: Same.
18299 * tree-affine.c (aff_combination_find_elt): Same.
18300 * tree-affine.h: Same.
18301 * tree-data-ref.h: Same.
18302 * tree-outof-ssa.c (ssa_is_replaceable_p): Same.
18303 * tree-predcom.c: Same.
18304 * tree-scalar-evolution.c (find_var_scev_info): Same.
18305 * tree-ssa-alias.h: Same.
18306 * tree-ssa-ccp.c: Same.
18307 * tree-ssa-coalesce.c (ssa_conflicts_dump): Same.
18308 * tree-ssa-loop-im.c (for_all_locs_in_loop): Same.
18309 (rewrite_mem_refs): Same.
18310 (execute_sm_if_changed): Same.
18311 (hoist_memory_references): Same.
18312 * tree-ssa-loop-ivopts.c (operator<=): Same.
18313 * tree-ssa-loop.h: Same.
18314 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Same.
18315 * tree-ssa-structalias.c: Same.
18316 * tree-switch-conversion.h (cluster::cluster): Same.
18317 (simple_cluster::simple_cluster): Same.
18318 * tree-vect-patterns.c (type_conversion_p): Same.
18319 * tree-vectorizer.c (dump_stmt_cost): Same.
18320 * tree-vectorizer.h (loop_vec_info_for_loop): Same.
18321 * tree.c (protected_set_expr_location): Same.
18322 * tree.h (desired_pro_or_demotion_p): Same.
18323 (fndecl_built_in_p): Same.
18324 * unique-ptr-tests.cc: Same.
18325 * var-tracking.c (delete_variable_part): Same.
18326 * varasm.c (assemble_real): Same.
18327 (tree_output_constant_def): Same.
18328 * vec.c: Same.
18329 * wide-int-bitmask.h: Same.
18330 * wide-int.h (decompose): Same.
18331
18332 2019-07-09 Richard Biener <rguenther@suse.de>
18333
18334 PR tree-optimization/91114
18335 * tree-vect-data-refs.c (vect_analyze_data_refs): Failure to
18336 find a vector type isn't fatal.
18337
18338 2019-07-09 Sylvia Taylor <sylvia.taylor@arm.com>
18339
18340 * config/aarch64/aarch64-simd.md
18341 (aarch64_crypto_aes<aes_op>v16qi): Redefine pattern with xor.
18342 (aarch64_crypto_aes<aesmc_op>v16qi): Remove attribute enabled.
18343 (*aarch64_crypto_aes<aes_op>v16qi_xor_combine): Remove both.
18344 (*aarch64_crypto_aese_fused,
18345 *aarch64_crypto_aesd_fused): Update to new definition.
18346 * config/aarch64/aarch64.c
18347 (aarch_macro_fusion_pair_p): Remove aese/aesmc fusion check.
18348
18349 2019-07-09 Richard Biener <rguenther@suse.de>
18350
18351 * gimple-match.h (gimple_match_op::resimplify): New.
18352 (gimple_resimplify1, gimple_resimplify2, gimple_resimplify3,
18353 gimple_resimplify4, gimple_resimplify5): Remove.
18354 * gimple-match-head.c (gimple_resimplify1, gimple_resimplify2,
18355 gimple_resimplify3, gimple_resimplify4, gimple_resimplify5):
18356 Make static.
18357 (gimple_match_op::resimplify): New.
18358 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Valueize
18359 according to availability. Use gimple_match_op::resimplify.
18360
18361 2019-07-09 Eric Botcazou <ebotcazou@adacore.com>
18362
18363 * ira-emit.c (emit_moves): Skip DEBUG_INSNs when setting the location.
18364
18365 2019-07-09 Sylvia Taylor <sylvia.taylor@arm.com>
18366
18367 * config/arm/crypto.md:
18368 (crypto_<crypto_pattern>): Redefine aese/aesd pattern with xor.
18369 (crypto_<crypto_pattern>): Remove attribute enabled for aesmc.
18370 (crypto_<crypto_pattern>): Split CRYPTO_BINARY into 2 patterns.
18371 (*aarch32_crypto_aese_fused, *aarch32_crypto_aesd_fused): New.
18372 * config/arm/arm.c
18373 (aarch_macro_fusion_pair_p): Remove aes/aesmc fusion check.
18374 * config/arm/aarch-common-protos.h
18375 (aarch_crypto_can_dual_issue): Remove.
18376 * config/arm/aarch-common.c
18377 (aarch_crypto_can_dual_issue): Likewise.
18378 * config/arm/exynos-m1.md: Remove aese/aesmc fusion.
18379 * config/arm/cortex-a53.md: Likewise.
18380 * config/arm/cortex-a57.md: Likewise.
18381 * config/arm/iterators.md:
18382 (CRYPTO_BINARY): Redefine.
18383 (CRYPTO_UNARY): Removed.
18384 (CRYPTO_AES, CRYPTO_AESMC): New.
18385
18386 2019-07-09 Richard Biener <rguenther@suse.de>
18387
18388 * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add orig_ref member.
18389 (vn_reference_lookup_3): If the main ref has no access path recorded
18390 but orig_ref has use it to do access-path based disambiguation.
18391 (vn_reference_lookup_pieces): Adjust.
18392 (vn_reference_lookup): Pass down original ref if we valueized.
18393
18394 2019-07-09 Martin Liska <mliska@suse.cz>
18395
18396 * doc/extend.texi: Document influence on loop
18397 optimizers.
18398
18399 2019-07-09 Martin Liska <mliska@suse.cz>
18400
18401 * lto-compress.c (lto_normalized_zstd_level): Do not use
18402 ZSTD_CLEVEL_DEFAULT as it is not default in old releases
18403 of libzstd. One can use 0 as a default compression level.
18404
18405 2019-07-09 Martin Liska <mliska@suse.cz>
18406
18407 * doc/invoke.texi: Add link from -fprofile-dir option.
18408 Use better wording for 'gcno filename'.
18409
18410 2019-07-08 Martin Sebor <msebor@redhat.com>
18411
18412 PR middle-end/71924
18413 PR middle-end/90549
18414 * gimple-ssa-isolate-paths.c (isolate_path): Add attribute. Update
18415 comment.
18416 (args_loc_t): New type.
18417 (args_loc_t, locmap_t): same.
18418 (diag_returned_locals): New function.
18419 (is_addr_local): Same.
18420 (handle_return_addr_local_phi_arg, warn_return_addr_local): Same.
18421 (find_implicit_erroneous_behavior): Call warn_return_addr_local_phi_arg.
18422 (find_explicit_erroneous_behavior): Call warn_return_addr_local.
18423
18424 2019-07-08 Jakub Jelinek <jakub@redhat.com>
18425
18426 * tree-vect-stmts.c (scan_operand_equal_p): Look through MEM_REF
18427 with SSA_NAME address of POINTER_PLUS_EXPR. Handle MULT_EXPR
18428 and casts in offset when different, both through gimple stmts
18429 and through trees. Rewritten using loops to minimize code duplication
18430 for each operand.
18431
18432 2019-07-08 Eric Botcazou <ebotcazou@adacore.com>
18433
18434 * emit-rtl.c (set_insn_locations): New function moved from...
18435 * function.c (set_insn_locations): ...here.
18436 * ira-emit.c (emit_moves): Propagate location of the first instruction
18437 to the inserted move instructions.
18438 * reg-stack.c (compensate_edge): Set the location if the sequence is
18439 inserted on the edge.
18440 * rtl.h (set_insn_locations): Declare.
18441
18442 2019-07-08 Segher Boessenkool <segher@kernel.crashing.org>
18443
18444 * config/rs6000/rs6000.c (rs6000_machine_from_flags): Ignore
18445 OPTION_MASK_PPC_GFXOPT and OPTION_MASK_PPC_GPOPT for selecting the
18446 .machine string.
18447
18448 2019-07-08 Segher Boessenkool <segher@kernel.crashing.org>
18449
18450 PR rtl-optimization/88233
18451 * common.opt (fsplit-wide-types-early): New option.
18452 * common/config/rs6000/rs6000-common.c
18453 (rs6000_option_optimization_table): Add OPT_fsplit_wide_types_early for
18454 OPT_LEVELS_ALL.
18455 * doc/invoke.texi (Optimization Options): Add -fsplit-wide-types-early.
18456 * lower-subreg.c (pass_lower_subreg2::gate): Add test for
18457 flag_split_wide_types_early.
18458 (pass_data_lower_subreg3): New.
18459 (pass_lower_subreg3): New.
18460 (make_pass_lower_subreg3): New.
18461 * passes.def (pass_lower_subreg2): Move after the loop passes.
18462 (pass_lower_subreg3): New, inserted where pass_lower_subreg2 was.
18463 * tree-pass.h (make_pass_lower_subreg2): Move up, to its new place in
18464 the pass pipeline; its previous place is taken by ...
18465 (make_pass_lower_subreg3): ... this.
18466
18467 2019-07-08 Robin Dapp <rdapp@linux.ibm.com>
18468
18469 * config/s390/s390.c (s390_shift_truncation_mask): Define.
18470 (TARGET_SHIFT_TRUNCATION_MASK): Define.
18471
18472 2019-07-08 Robin Dapp <rdapp@linux.ibm.com>
18473
18474 * config/s390/constraints.md: Add new jsc constraint.
18475 * config/s390/predicates.md: New predicates.
18476 * config/s390/s390-protos.h (s390_valid_shift_count): New function.
18477 * config/s390/s390.c (s390_valid_shift_count): New function.
18478 (print_shift_count_operand): Use s390_valid_shift_count.
18479 (print_operand): Likewise.
18480 * config/s390/s390.md: Use new predicate.
18481 * config/s390/subst.md: Remove addr_style_op and masked_op substs.
18482 * config/s390/vector.md: Use new predicate.
18483
18484 2019-07-08 Andrew Waterman <andrew@sifive.com>
18485 Jim Wilson <jimw@sifive.com>
18486
18487 * config/riscv/riscv.md (lshrsi3_zero_extend_3+1): Use operands[1]
18488 bitsize instead of BITS_PER_WORD.
18489
18490 2019-07-08 Martin Liska <mliska@suse.cz>
18491
18492 * collect2.c (defined): Revert to before r254460.
18493 (scan_prog_file): Revert to before r254460.
18494
18495 2019-07-08 Richard Biener <rguenther@suse.de>
18496
18497 PR tree-optimization/83518
18498 * tree-ssa-sccvn.c: Include splay-tree.h.
18499 (struct pd_range, struct pd_data): New.
18500 (struct vn_walk_cb_data): Add data to track partial definitions.
18501 (vn_walk_cb_data::~vn_walk_cb_data): New.
18502 (vn_walk_cb_data::push_partial_def): New.
18503 (pd_tree_alloc, pd_tree_dealloc, pd_range_compare): New.
18504 (vn_reference_lookup_2): When partial defs are registered give up.
18505 (vn_reference_lookup_3): Track partial defs for memset and
18506 constructor zeroing and for defs from constants.
18507
18508 2019-07-08 Richard Sandiford <richard.sandiford@arm.com>
18509
18510 * doc/install.texi (bootstrap-Og): Document.
18511
18512 2019-07-08 Richard Sandiford <richard.sandiford@arm.com>
18513
18514 * config/riscv/pic.md (*local_pic_load_s<mode>)
18515 (*local_pic_load_u<mode>): Explicitly specify the mode iterator
18516 referenced by <mode>, giving...
18517 (*local_pic_load_s<SUBX:mode>, *local_pic_load_u<SUBX:mode>): ...these.
18518 * config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>)
18519 (*slt<u>_<X:mode><GPR:mode>, *sle<u>_<X:mode><GPR:mode>): Explicitly
18520 use <X:MODE> for the mode attribute.
18521
18522 2019-07-07 Jeff Law <law@redhat.com>
18523
18524 PR tree-optimization/91090
18525 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Fix logic error
18526 in handling of ranges to simplify switch statements.
18527
18528 2019-07-07 Iain Sandoe <iain@sandoe.co.uk>
18529
18530 * config/darwin.c (darwin_override_options): Make a final check on PIC
18531 options.
18532
18533 2019-07-07 Iain Sandoe <iain@sandoe.co.uk>
18534
18535 * config/darwin.c (darwin_override_options): Don't jam symbol stubs
18536 on for kernel code.
18537
18538 2019-07-07 Richard Sandiford <richard.sandiford@arm.com>
18539
18540 PR target/91068
18541 * config/mips/mips.md (*mul_acc_si, *mul_acc_si_r3900, *macc)
18542 (*msac, *msac_using_macc, *mul_sub_si): Use "l" for input operands
18543 instead of matching them to "l" output operands.
18544
18545 2019-07-07 Richard Sandiford <richard.sandiford@arm.com>
18546
18547 * config/mips/mips.c (mips_split_move): Zero-initialize addr
18548 and check whether addr.reg is nonnull before using it.
18549
18550 2019-07-06 Jakub Jelinek <jakub@redhat.com>
18551
18552 * omp-low.c (lower_rec_input_clauses): For lastprivate clauses in
18553 ctx->for_simd_scan_phase simd copy the outer var to the privatized
18554 variable(s). For conditional lastprivate look through outer
18555 GIMPLE_OMP_SCAN context.
18556 (lower_omp_1): For conditional lastprivate look through outer
18557 GIMPLE_OMP_SCAN context.
18558
18559 * omp-low.c (struct omp_context): Rename combined_into_simd_safelen0
18560 member to combined_into_simd_safelen1.
18561 (lower_rec_input_clauses, lower_omp_1): Adjust uses.
18562 (lower_lastprivate_clauses): Likewise. For conditional lastprivate
18563 clauses if ctx->combined_into_simd_safelen1 put statements after the
18564 predicate conditionalized block rather than into it.
18565
18566 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
18567
18568 * config/s390/s390.md (*negabs<FP:mode>2_nocc): Use FP for
18569 operand 1.
18570 * config/s390/vx-builtins.md (*vec_cmp<insn_cmp><mode>_cconly):
18571 Make the choice of <mode> explicit, giving...
18572 (*vec_cmp<insn_cmp><VF_HW:mode>_cconly): ...this.
18573
18574 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
18575
18576 * config/i386/i386.md (*fop_<X87MODEF:mode>_3_i387)
18577 (l<rounding_insn><MODEF:mode><SWI48:mode>2): Fix ambiguous uses
18578 of .md attributes.
18579 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask)
18580 (*avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask)
18581 (*avx512pf_scatterpf<mode>df_mask, *avx2_gathersi<mode>)
18582 (*avx2_gathersi<mode>_2, *avx2_gatherdi<mode>)
18583 (*avx2_gatherdi<mode>_2, *avx2_gatherdi<mode>_3): Likewise.
18584 (*avx2_gatherdi<mode>_4, *avx512f_gathersi<mode>): Likewise.
18585 (*avx512f_gathersi<mode>_2, *avx512f_gatherdi<mode>): Likewise.
18586 (*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>): Likewise.
18587 (*avx512f_scatterdi<mode>): Likewise.
18588 (*andnot<mode>3_bcst): Fix VI/VI48_AVX512VL typo.
18589
18590 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
18591
18592 * config/h8300/h8300.md (*push1_h8300hs_<mode>): Explicitly
18593 specify the mode iterator referenced by <mode>, giving...
18594 (*push1_h8300hs_<QHI:mode>): ...this.
18595
18596 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
18597
18598 * config/gcn/gcn-valu.md
18599 (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>): Use
18600 gen_vec_cmp<VEC_1REG_ALT:mode>di rather than (implicitly)
18601 gen_vec_cmp<VEC_1REG_MODE:mode>di. Explicitly use
18602 gen_vcond_mask_<VEC_1REG_MODE:mode>di.
18603 (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Likewise,
18604 but using the _exec comparison patterns.
18605 (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>): Use
18606 gen_vec_cmp<VEC_1REG_INT_ALT:mode>di rather than (implicitly)
18607 gen_vec_cmp<VEC_1REG_INT_MODE:mode>di. Explicitly use
18608 gen_vcond_mask_<VEC_1REG_INT_MODE:mode>di.
18609 (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Likewise,
18610 but using the _exec comparison patterns.
18611
18612 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
18613
18614 * config/arm/sync.md
18615 (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Use
18616 <NARROW:sync_predtab> instead of (implicitly) <CCSI:sync_predtab>.
18617 (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise use
18618 <SIDI:sync_predtab>. Use <SIDI:cas_cmp_operand> and
18619 <SIDI:cas_cmp_str>.
18620
18621 2019-07-06 Jakub Jelinek <jakub@redhat.com>
18622
18623 * omp-low.c (struct omp_context): Add for_simd_scan_phase member.
18624 (maybe_lookup_ctx): Add forward declaration.
18625 (omp_find_scan): Likewise. Walk into body of simd if composited
18626 with worksharing loop.
18627 (scan_omp_simd_scan): New function.
18628 (scan_omp_1_stmt): Call it.
18629 (lower_rec_simd_input_clauses): Don't create rvar nor rvar2 if
18630 ctx->for_simd_scan_phase.
18631 (lower_rec_input_clauses): Do much less work for inscan reductions
18632 in ctx->for_simd_scan_phase is_simd regions.
18633 (lower_omp_scan): Set is_simd also on simd constructs composited
18634 with worksharing loop, unless ctx->for_simd_scan_phase. Never emit
18635 a sorry message. Don't change GIMPLE_OMP_SCAN stmts into nops and
18636 emit their body after in simd constructs composited with worksharing
18637 loop.
18638 (lower_omp_for_scan): Handle worksharing loop composited with simd.
18639
18640 * omp-low.c (omp_find_scan): Make static.
18641 (lower_omp_for_scan): Fix order of merge arguments in input phase of
18642 the second loop, var2 represents the first partial sum and so needs
18643 to go before rprivb[ivar].
18644
18645 2019-07-05 Iain Sandoe <iain@sandoe.co.uk>
18646
18647 * config/rs6000/rs6000-logue.c: Remove unused code.
18648
18649 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
18650
18651 * tree-ssa-loop-manip.c (create_iv): Add missing guard for gsi_end_p.
18652
18653 2019-07-05 Sam Tebbs <sam.tebbs@arm.com>
18654
18655 PR target/90712
18656 * config/aarch64/aarch64.c (aarch64_post_cfi_startproc): Replace thunk
18657 check with a frame laid out check.
18658
18659 2019-07-05 Richard Biener <rguenther@suse.de>
18660
18661 * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize RHS
18662 when comparing against a store with possibly the same value.
18663
18664 2019-07-05 Richard Biener <rguenther@suse.de>
18665
18666 PR tree-optimization/91091
18667 * tree-ssa-alias.h (get_continuation_for_phi): Add tbaa_p parameter.
18668 (walk_non_aliased_vuses): Likewise.
18669 * tree-ssa-alias.c (maybe_skip_until): Pass down tbaa_p.
18670 (get_continuation_for_phi): New tbaa_p parameter and pass
18671 it down.
18672 (walk_non_aliased_vuses): Likewise.
18673 * ipa-prop.c (determine_known_aggregate_parts): Adjust.
18674 * tree-ssa-pre.c (translate_vuse_through_block): Likewise.
18675 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
18676 Likewise.
18677 * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add tbaa_p flag.
18678 (adjust_offsets_for_equal_base_address): New function.
18679 (vn_reference_lookup_3): Use it to catch more base equivalences.
18680 Handle and pass down tbaa_p flag.
18681 (vn_reference_lookup_pieces): Adjust.
18682 (vn_reference_lookup): Remove alias-set altering, instead pass
18683 down false as tbaa_p.
18684
18685 2019-07-05 Richard Biener <rguenther@suse.de>
18686
18687 PR tree-optimization/91091
18688 * tree-ssa-sccvn.c (vn_reference_lookup_3): Overlap of
18689 accesses can happen with -fno-strict-aliasing.
18690
18691 2019-07-05 Jan Hubicka <hubicka@ucw.cz>
18692
18693 * tree-ssa-alias.c (alias_stats): Add
18694 nonoverlapping_component_refs_since_match_p_must_overlap.
18695 (dump_alias_stats): Print it.
18696 (nonoverlapping_component_refs_since_match_p): Add early exit.
18697 (nonoverlapping_component_refs_p): Do not account early exit.
18698
18699 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
18700
18701 * except.c (emit_to_new_bb_before): Make sure to put a location on SEQ.
18702 * tree-eh.c (replace_goto_queue_1) <GIMPLE_GOTO>: Propagate location.
18703 (emit_eh_dispatch): Delete.
18704 (lower_catch): Emit the eh_dispatch manually and set the location of
18705 the first catch statement onto it.
18706 (lower_eh_filter): Emit the eh_dispatch manually and set location.
18707 (lower_eh_dispatch): Propagate location.
18708 * tree-outof-ssa.c (set_location_for_edge): Handle EH edges specially.
18709 (eliminate_build): Likewise.
18710
18711 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
18712
18713 * tree-cfg.c (gimple_make_forwarder_block): Propagate location info on
18714 phi nodes if possible.
18715 * tree-scalar-evolution.c (final_value_replacement_loop): Propagate
18716 location info on the newly created statement.
18717 * tree-ssa-loop-manip.c (create_iv): Propagate location info on the
18718 newly created increment if needed.
18719
18720 2019-07-04 Jakub Jelinek <jakub@redhat.com>
18721
18722 PR middle-end/78884
18723 * gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member.
18724 (gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd
18725 loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE.
18726 (gimplify_adjust_omp_clauses): Add safelen (1) clause if
18727 ctx->add_safelen1 is set.
18728
18729 * omp-expand.c (expand_omp_for_static_nochunk): Don't emit
18730 GOMP_loop_start at the start of second worksharing loop in a scan.
18731 For nowait, don't emit GOMP_loop_end_nowait at the end of first
18732 worksharing loop in a scan even if there are conditional lastprivates,
18733 and do emit GOMP_loop_end_nowait at the end of second worksharing loop.
18734
18735 2019-07-04 Jan Hubicka <jh@suse.cz>
18736
18737 * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p):
18738 Fix check for match in the ref walk.
18739
18740 2019-07-04 Martin Liska <mliska@suse.cz>
18741
18742 * tree-ssa-loop-niter.c
18743 (get_upper_bound_based_on_builtin_expr_with_prob): New function.
18744 (estimate_numbers_of_iterations):
18745 Support __builtin_expect_with_probability for analysis
18746 of # of loop iterations.
18747
18748 2019-07-04 Alexandre Oliva <oliva@adacore.com>
18749
18750 * doc/generic.texi (Cleanups): Document EH_ELSE_EXPR.
18751 * except.c: Likewise.
18752 * expr.c (expand_expr_real_1): Reject it.
18753 * gimplify.c (gimplify_expr): Gimplify it, within
18754 TRY_FINALLY_EXPR.
18755 * tree-dump.c (dequeue_and_dump): Dump it.
18756 * tree-pretty-print.c (dump_generic_node): Likewise.
18757 * tree.c (block_may_fallthru): Handle it.
18758 * tree.def (EH_ELSE_EXPR): Introduce it.
18759 * gimple-pretty-print.c (dump_gimple_try): Dump TRY_FINALLY
18760 with GIMPLE_EH_ELSE as try/finally/else.
18761
18762 2019-07-04 Richard Biener <rguenther@suse.de>
18763
18764 PR ipa/91062
18765 * tree-pass.h (execute_all_ipa_transforms): Add a flag
18766 parameter whether to disable GC collection.
18767 * passes.c (execute_one_ipa_transform_pass): Likewise, and
18768 honor it.
18769 (execute_all_ipa_transforms): Likewise and pass it down.
18770 * cgraph.c (cgraph_node::get_body): Do not invoke garbage
18771 collection from applying IPA transforms.
18772 * cgraphunit.c (cgraph_node::expand): Allow garbage collection
18773 from applying IPA transforms.
18774
18775 2019-07-04 Richard Biener <rguenther@suse.de>
18776
18777 PR tree-optimization/90911
18778 * tree-vectorizer.h (_loop_vec_info::scalar_loop_scaling): New field.
18779 (LOOP_VINFO_SCALAR_LOOP_SCALING): new.
18780 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
18781 scalar_loop_scaling.
18782 (vect_transform_loop): Scale scalar loop profile if needed.
18783 * tree-vect-loop-manip.c (vect_loop_versioning): When re-using
18784 the loop copy from if-conversion adjust edge probabilities
18785 and scale the vectorized loop body profile, queue the scalar
18786 profile for updating after peeling.
18787
18788 2019-07-04 Jan Hubicka <jh@suse.cz>
18789
18790 * tree-ssa-alias.c (decl_refs_may_alias_p): Add size1 and size2
18791 parameters; return early for must-alias.
18792 (indirect_ref_may_alias_decl_p): Likewise; when establishing
18793 outer types match, try nonoverlapping_component_refs
18794 if must-alias is not obvious.
18795 (indirect_refs_may_alias_p): Likewise.
18796 (refs_may_alias_p_2): Likewise.
18797
18798 2019-07-04 Richard Biener <rguenther@suse.de>
18799
18800 * tree-ssa-sccvn.h (vn_reference_lookup): Add last_vuse_ptr
18801 argument.
18802 * tree-ssa-sccvn.c (last_vuse_ptr, vn_walk_kind): Move
18803 globals into...
18804 (struct vn_walk_cb_data): New callback data struct.
18805 (vn_reference_lookup_2): Adjust.
18806 (vn_reference_lookup_3): Likewise.
18807 (vn_reference_lookup_pieces): Likewise.
18808 (vn_reference_lookup): Likewise, get last_vuse_ptr argument.
18809 (visit_reference_op_load): Adjust.
18810
18811 2019-07-04 Jakub Jelinek <jakub@redhat.com>
18812
18813 PR tree-optimization/91063
18814 * tree-vect-stmts.c (vect_init_vector): Call gsi_remove to remove
18815 stmt from stmts sequence before calling vect_init_vector_1.
18816 Formatting fix.
18817
18818 2019-07-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
18819
18820 PR target/88833
18821 * fwprop.c (reg_single_def_p): New function.
18822 (propagate_rtx_1): Add unconditional else inside RTX_EXTRA case.
18823 (forward_propagate_into): New parameter reg_prop_only
18824 with default value false.
18825 Propagate def's src into loop only if SET_SRC and SET_DEST
18826 of def_set have single definitions.
18827 Likewise if reg_prop_only is set to true.
18828 (fwprop): New param fwprop_addr_p.
18829 Integrate fwprop_addr into fwprop.
18830 (fwprop_addr): Remove.
18831 (pass_rtl_fwprop_addr::execute): Call fwprop with arg set
18832 to true.
18833 (pass_rtl_fwprop::execute): Call fwprop with arg set to false.
18834 * simplify-rtx.c (simplify_subreg): Add case for vector comparison.
18835 * config/i386/sse.md (UNSPEC_BLENDV): Adjust pattern.
18836
18837 2019-07-04 Jakub Jelinek <jakub@redhat.com>
18838
18839 * omp-low.c (lower_omp_scan): Call lower_omp on stmt's body
18840 in worksharing loop scans.
18841
18842 PR tree-optimization/91074
18843 * omp-low.c (lower_omp_for_scan): Set DECL_GIMPLE_REG_P on cplx
18844 temporary.
18845
18846 PR rtl-optimization/90756
18847 * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it
18848 for VECTOR_TYPE_P.
18849
18850 2019-07-03 Dennis Zhang <dennis.zhang@arm.com>
18851
18852 * config/aarch64/aarch64.md: Remove redundant constraints from
18853 define_expand but keep some patterns untouched if they are
18854 specially selected by TARGET_SECONDARY_RELOAD hook.
18855 * config/aarch64/aarch64-sve.md: Likewise.
18856 * config/aarch64/atomics.md: Remove redundant constraints from
18857 define_expand.
18858 * config/aarch64/aarch64-simd.md: Likewise.
18859
18860 2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
18861
18862 * config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases.
18863 (RDYNAMIC): Rename to, DARWIN_RDYNAMIC.
18864 (DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker
18865 clauses.
18866 (LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and
18867 DARWIN_NOPIE_SPEC.
18868
18869 2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
18870
18871 * config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin.
18872 (STARTFILE_SPEC): Split crt3 into a separate spec.
18873 (DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec.
18874 (DARWIN_CRT2_SPEC): New.
18875 (DARWIN_CRT3_SPEC): New.
18876 (MIN_LD64_OMIT_STUBS): Revise to 62.1.
18877 * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions.
18878 (DARWIN_CRT3_SPEC): New.
18879
18880 2019-07-03 Michael Meissner <meissner@linux.ibm.com>
18881
18882 * config/rs6000/altivec.md (altivec_mov<mode>, VM2 iterator):
18883 Change the RTL attribute "length" from "4" to "*" to allow the
18884 length attribute to be adjusted automatically for prefixed load,
18885 store, and add immediate instructions.
18886 * config/rs6000/rs6000.md (extendhi<mode>2, EXTHI iterator):
18887 Likewise.
18888 (extendsi<mode>2, EXTSI iterator): Likewise.
18889 (movsi_internal1): Likewise.
18890 (movsi_from_sf): Likewise.
18891 (movdi_from_sf_zero_ext): Likewise.
18892 (mov<mode>_internal): Likewise.
18893 (movcc_internal1, QHI iterator): Likewise.
18894 (mov<mode>_softfloat, FMOVE32 iterator): Likewise.
18895 (movsf_from_si): Likewise.
18896 (mov<mode>_hardfloat32, FMOVE64 iterator): Likewise.
18897 (mov<mode>_softfloat64, FMOVE64 iterator): Likewise.
18898 (mov<mode>, FMOVE128 iterator): Likewise.
18899 (movdi_internal64): Likewise.
18900 * config/rs6000/vsx.md (vsx_le_permute_<mode>, VSX_TI iterator):
18901 Likewise.
18902 (vsx_le_undo_permute_<mode>, VSX_TI iterator): Likewise.
18903 (vsx_mov<mode>_64bit, VSX_M iterator): Likewise.
18904 (vsx_mov<mode>_32bit, VSX_M iterator): Likewise.
18905 (vsx_splat_v4sf): Likewise.
18906
18907 2019-07-03 Mark Wielaard <mark@klomp.org>
18908
18909 PR debug/90981
18910 * dwarf2out.c (add_top_level_skeleton_die_attrs): Only add
18911 DW_AT_addr_base if there is actually a .debug_addr section with
18912 addresses.
18913 (output_addr_table): Add DWARF5 table header generation here after
18914 checking there are actually any addresses from...
18915 (dwarf2out_finish): ...here.
18916
18917 2019-07-03 Richard Biener <rguenther@suse.de>
18918
18919 PR middle-end/91069
18920 * match.pd (vec_perm -> bit_insert): Fix element read from
18921 first vector.
18922
18923 2019-07-03 Martin Liska <mliska@suse.cz>
18924
18925 * dbgcnt.def (DEBUG_COUNTER): Add match debug counter.
18926 * genmatch.c (dt_simplify::gen_1): Generate dbgcnt
18927 condition.
18928 * generic-match-head.c: Include dbgcnt.h.
18929 * gimple-match-head.c: Likewise.
18930
18931 2019-07-03 Martin Liska <mliska@suse.cz>
18932
18933 * gcov-counter.def (GCOV_COUNTER_V_SINGLE): Remove.
18934 (GCOV_COUNTER_V_TOPN): New.
18935 (GCOV_COUNTER_V_INDIR): Use _topn.
18936 * gcov-io.h (GCOV_DISK_SINGLE_VALUES): Remove.
18937 (GCOV_TOPN_VALUES): New.
18938 (GCOV_SINGLE_VALUE_COUNTERS): Remove.
18939 (GCOV_TOPN_VALUES_COUNTERS): New.
18940 * profile.c (instrument_values): Use HIST_TYPE_TOPN_VALUES.
18941 * tree-profile.c:
18942 (gimple_init_gcov_profiler): Rename variables from one_value
18943 to topn_values.
18944 (gimple_gen_one_value_profiler): Remove.
18945 (gimple_gen_topn_values_profiler): New function.
18946 * value-prof.c (dump_histogram_value): Use TOPN_VALUES
18947 names instead of SINGLE_VALUE.
18948 (stream_out_histogram_value): Likewise.
18949 (stream_in_histogram_value): Likewise.
18950 (get_most_common_single_value): Likewise.
18951 (gimple_divmod_fixed_value_transform): Likewise.
18952 (gimple_stringops_transform): Likewise.
18953 (gimple_divmod_values_to_profile): Likewise.
18954 (gimple_stringops_values_to_profile): Likewise.
18955 (gimple_find_values_to_profile): Likewise.
18956 * value-prof.h (enum hist_type): Rename to TOPN.
18957 (gimple_gen_one_value_profiler): Remove.
18958 (gimple_gen_topn_values_profiler): New.
18959
18960 2019-07-03 Eric Botcazou <ebotcazou@adacore.com>
18961
18962 * dwarf2out.c (add_scalar_info): Add back refererence to existing DIE
18963 if it has the DW_AT_data_member_location attribute.
18964
18965 2019-07-03 Richard Biener <rguenther@suse.de>
18966
18967 * gimple-pretty-print.c (dump_ternary_rhs): Fix BIT_INSERT_EXPR
18968 dumping.
18969
18970 2019-07-03 Sylvia Taylor <sylvia.taylor@arm.com>
18971
18972 * config/aarch64/aarch64.md (FP_REGNUM): New constant.
18973 (tlsdesc_small_advsimd_<mode>): Add use of FP_REGNUM.
18974 (tlsdesc_small_sve_<mode>): Likewise.
18975
18976 2019-07-03 Martin Liska <mliska@suse.cz>
18977
18978 * Makefile.in: Define ZSTD_LIB.
18979 * common.opt: Adjust compression level
18980 to support also zstd levels.
18981 * config.in: Regenerate.
18982 * configure: Likewise.
18983 * configure.ac: Add --with-zstd and --with-zstd-include options
18984 and detect ZSTD.
18985 * doc/install.texi: Mention zstd dependency.
18986 * gcc.c: Print supported LTO compression algorithms.
18987 * lto-compress.c (lto_normalized_zstd_level): Likewise.
18988 (lto_compression_zstd): Likewise.
18989 (lto_uncompression_zstd): Likewise.
18990 (lto_end_compression): Dispatch in between zlib and zstd.
18991 (lto_compression_zlib): Mark with ATTRIBUTE_UNUSED.
18992 (lto_uncompression_zlib): Make it static.
18993 * lto-compress.h (lto_end_uncompression): Fix GNU coding style.
18994 * lto-section-in.c (lto_get_section_data): Pass info
18995 about used compression.
18996 * lto-streamer-out.c: By default use zstd when possible.
18997 * timevar.def (TV_IPA_LTO_DECOMPRESS): Rename to decompression
18998 (TV_IPA_LTO_COMPRESS): Likewise for compression.
18999
19000 2019-07-03 Martin Liska <mliska@suse.cz>
19001
19002 * lto-section-in.c (lto_get_section_data): Add "lto" section.
19003 * lto-section-out.c (lto_destroy_simple_output_block): Never
19004 compress LTO_section_lto section.
19005 * lto-streamer-out.c (produce_asm): Do not set major_version
19006 and minor_version.
19007 (lto_output_toplevel_asms): Likewise.
19008 (produce_lto_section): New function.
19009 (lto_output): Call produce_lto_section.
19010 (lto_write_mode_table): Do not set major_version and
19011 minor_version.
19012 (produce_asm_for_decls): Likewise.
19013 * lto-streamer.h (enum lto_section_type): Add LTO_section_lto
19014 type.
19015 (struct lto_header): Remove.
19016 (struct lto_section): New struct.
19017 (struct lto_simple_header): Do not inherit from lto_header.
19018 (struct lto_file_decl_data): Add lto_section_header field.
19019
19020 2019-07-03 Martin Liska <mliska@suse.cz>
19021
19022 * lra-eliminations.c (eliminate_regs_in_insn): Remove
19023 dead assignemts.
19024 * reg-stack.c (check_asm_stack_operands): Likewise.
19025 * tree-ssa-structalias.c (create_function_info_for): Likewise.
19026 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
19027 * config/i386/i386-expand.c (ix86_expand_sse2_mulvxdi3): Use
19028 force_expand_binop.
19029
19030 2019-07-03 Martin Liska <mliska@suse.cz>
19031
19032 PR tree-optimization/90892
19033 * builtins.c (inline_expand_builtin_string_cmp): Handle '\0'
19034 in string constants.
19035
19036 2019-07-03 Martin Liska <mliska@suse.cz>
19037
19038 PR middle-end/90899
19039 * multiple_target.c (create_dispatcher_calls): Add to comdat
19040 group only if set for ifunc.
19041
19042 2019-07-03 Martin Liska <mliska@suse.cz>
19043
19044 PR target/88056
19045 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
19046 Define local_object_name in outer scope in order to handle
19047 use-after-scope issue.
19048
19049 2019-07-03 Martin Liska <mliska@suse.cz>
19050
19051 * common.opt: Add fprofile-note.
19052 * coverage.c (coverage_init): Append the option
19053 to bbg_file_name.
19054 * doc/invoke.texi: Document -fprofile-note.
19055
19056 2019-07-03 Jakub Jelinek <jakub@redhat.com>
19057
19058 PR tree-optimization/91033
19059 * tree-vectorizer.h (vect_mark_stmts_to_be_vectorized,
19060 vect_analyze_data_refs): Add bool * arguments.
19061 * tree-vect-data-refs.c (vect_analyze_data_refs): Add fatal argument,
19062 if failure is due to scatter/gather, set *fatal to false if non-NULL.
19063 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
19064 * tree-vect-loop.c (vect_analyze_loop_2): Adjust
19065 vect_mark_stmts_to_be_vectorized and vect_analyze_data_refs callers.
19066 * tree-vect-slp.c (vect_slp_analyze_bb_1): Adjust
19067 vect_analyze_data_refs caller.
19068
19069 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__SCANTEMP_
19070 clause.
19071 * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__SCANTEMP_ instead of
19072 OMP_CLAUSE__CONDTEMP_ as range's upper bound.
19073 (OMP_CLAUSE__SCANTEMP__ALLOC, OMP_CLAUSE__SCANTEMP__CONTROL): Define.
19074 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
19075 OMP_CLAUSE__SCANTEMP_ entry.
19076 (walk_tree_1): Handle OMP_CLAUSE__SCANTEMP_.
19077 * tree-pretty-print.c (dump_omp_clause): Likewise.
19078 * tree-nested.c (convert_nonlocal_omp_clauses,
19079 convert_local_omp_clauses): Likewise.
19080 * omp-general.h (struct omp_for_data): Add have_scantemp and
19081 have_nonctrl_scantemp members.
19082 * omp-general.c (omp_extract_for_data): Initialize them.
19083 * omp-low.c (struct omp_context): Add scan_exclusive member.
19084 (scan_omp_1_stmt): Don't unnecessarily mask gimple_omp_for_kind
19085 result again with GF_OMP_FOR_KIND_MASK. Initialize also
19086 ctx->scan_exclusive.
19087 (lower_rec_simd_input_clauses): Use ctx->scan_exclusive instead
19088 of !ctx->scan_inclusive.
19089 (lower_rec_input_clauses): Simplify gimplification of dtors using
19090 gimplify_and_add. For non-is_simd test OMP_CLAUSE_REDUCTION_INSCAN
19091 rather than rvarp. Handle OMP_CLAUSE_REDUCTION_INSCAN in worksharing
19092 loops. Don't add barrier for reduction_omp_orig_ref if
19093 ctx->scan_??xclusive.
19094 (lower_reduction_clauses): Don't do anything for ctx->scan_??xclusive.
19095 (lower_omp_scan): Use ctx->scan_exclusive instead
19096 of !ctx->scan_inclusive. Handle worksharing loops with inscan
19097 reductions. Use new_vard != new_var instead of repeated
19098 omp_is_reference calls.
19099 (omp_find_scan, lower_omp_for_scan): New functions.
19100 (lower_omp_for): Call lower_omp_for_scan for worksharing loops with
19101 inscan reductions.
19102 * omp-expand.c (expand_omp_scantemp_alloc): New function.
19103 (expand_omp_for_static_nochunk): Handle fd->have_nonctrl_scantemp
19104 and fd->have_scantemp.
19105
19106 * gimplify.c (gimplify_scan_omp_clauses): For inscan reductions
19107 on worksharing loop propagate it as shared clause to containing
19108 combined parallel.
19109
19110 * omp-expand.c (expand_omp_for_static_nochunk,
19111 expand_omp_for_static_chunk): For nowait worksharing loop with
19112 conditional lastprivate clause(s), emit GOMP_loop_end_nowait call
19113 at the end.
19114
19115 2019-07-02 qing zhao <qing.zhao@oracle.com>
19116
19117 PR preprocessor/90581
19118 * doc/cppopts.texi: Add document for -fmax-include-depth.
19119 * doc/invoke.texi (Preprocessor Options): List -fmax-include-depth.
19120
19121 2019-07-02 Uroš Bizjak <ubizjak@gmail.com>
19122
19123 * config/i386/mmx.md (mmx_pack<s_trunsuffix>swb):
19124 Use TARGET_SSE2 && SSE_REGNO_P in split condition.
19125 (mmx_packssdw): Ditto.
19126 (mmx_punpckhbw): Ditto.
19127 (mmx_punpcklbw): Ditto.
19128 (mmx_punpckhwd): Ditto.
19129 (mmx_punpcklwd): Ditto.
19130 (mmx_punpckhdq): Ditto.
19131 (mmx_punpckldq): Ditto.
19132 (*vec_dupv4hi): Ditto.
19133 (*vec_dupv2si): Ditto.
19134 (mmx_pmovmskb): Ditto.
19135 * config/i386/sse.md (sse_cvtpi2ps): Use
19136 TARGET_SSE2 && SSE_REG_P in split condition.
19137 (ssse3_ph<plusminus_mnemonic>wv4hi3): Use
19138 TARGET_SSSE3 && SSE_REGNO_P in split condition.
19139 (ssse3_ph<plusminus_mnemonic>dv2si3): Ditto.
19140 (ssse3_pshufbv8qi3): Ditto.
19141 (ssse3_palignrdi): Ditto.
19142
19143 2019-07-02 Andrew Stubbs <ams@codesourcery.com>
19144
19145 * config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn
19146 with inlined save and restore.
19147
19148 2019-07-02 Eric Botcazou <ebotcazou@adacore.com>
19149
19150 * cfgexpand.c (pass_expand::execute): Deal specially with instructions
19151 to be inserted on single successor edge of the entry block. Then call
19152 commit_edge_insertions instead of inserting the instructions manually.
19153 * cfgrtl.c (commit_edge_insertions): Do not verify flow info during
19154 RTL expansion and rebuild jump labels chain.
19155
19156 2019-07-02 Richard Biener <rguenther@suse.de>
19157
19158 * tree-core.h (enum tree_index): Add TI_CHREC_DONT_KNOW and
19159 TI_CHREC_KNOWN.
19160 * tree.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
19161 Define here.
19162 * tree.c (build_common_tree_nodes): Initialize them.
19163 * tree-chrec.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
19164 Make declarations comments.
19165 * tree-scalar-evolution.c (chrec_not_analyzed_yet, chrec_dont_know,
19166 chrec_known): Remove definitions.
19167 (initialize_scalar_evolutions_analyzer): Remove.
19168 (scev_initialize): Do not call initialize_scalar_evolutions_analyzer.
19169 * tree-streamer.c (preload_common_nodes): Do not preload
19170 TI_CHREC_DONT_KNOW or TI_CHREC_KNOWN.
19171
19172 2019-07-02 Jan Hubicka <jh@suse.cz>
19173
19174 * tree-ssa-alias.c (aliasing_component_refs_p): Remove forgotten
19175 sanity check.
19176
19177 2019-07-02 Jan Hubicka <jh@suse.cz>
19178
19179 * tree-ssa-alias.c (nonoverlapping_component_refs_for_decl_p): Rename
19180 to ..
19181 (nonoverlapping_component_refs_since_match_p): ... this one;
19182 handle also non-decl bases; return -1 if search gave up.
19183 (alias_stats): Rename nonoverlapping_component_refs_of_decl_p_may_alias,
19184 nonoverlapping_component_refs_of_decl_p_no_alias to
19185 nonoverlapping_component_refs_since_match_p_may_alias,
19186 nonoverlapping_component_refs_since_match_p_no_alias.
19187 (dump_alias_stats): Update dumping.
19188 (aliasing_matching_component_refs_p): Break out from ...;
19189 dispatch to nonoverlapping_component_refs_for_decl_p
19190 and nonoverlapping_component_refs_since_match_p.
19191 (aliasing_component_refs_p): ... here; call
19192 nonoverlapping_component_refs_p in scenarios where we can not
19193 precisely determine base match.
19194 (decl_refs_may_alias_p): Use
19195 nonoverlapping_component_refs_since_match_p.
19196 (indirect_ref_may_alias_decl_p): Do not call
19197 nonoverlapping_component_refs_p.
19198 (indirect_refs_may_alias_p): Likewise.
19199
19200 2019-07-02 Jan Hubicka <jh@suse.cz>
19201
19202 * tree-inline.c (remap_gimple_stmt): Do not subtitute handled components
19203 to clobber of return value.
19204
19205 2019-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19206
19207 * config/arm/cortex-a57.md (cortex_a57_neon_type): Use neon_arith_basic
19208 for is_neon_type instructions that have not already been categorized.
19209
19210 2019-07-02 Richard Biener <rguenther@suse.de>
19211
19212 PR tree-optimization/58483
19213 * tree-ssa-scopedtables.c (avail_expr_hash): Use OEP_ADDRESS_OF
19214 for MEM_REF base hashing.
19215 (equal_mem_array_ref_p): Likewise for base comparison.
19216
19217 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
19218
19219 * config/rs6000/rs6000.md (signbit<mode>2_dm): Make this a
19220 parameterized name.
19221 (signbit<mode>2): Use that name. Simplify.
19222
19223 2019-07-01 Joern Rennecke <joern.rennecke@riscy-ip.com>
19224
19225 PR middle-end/66726
19226 * tree-ssa-phiopt.c (factor_out_conditional_conversion):
19227 Tune heuristic from PR71016 to allow MIN / MAX.
19228
19229 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
19230
19231 * config/rs6000/rs6000.md (ieee_128bit_vsx_abs<mode>2): Make this a
19232 parameterized name.
19233 (abs<mode>2): Use that name. Simplify.
19234
19235 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
19236
19237 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2): Make this a
19238 parameterized name.
19239 (neg<mode>2): Use that name. Simplify.
19240
19241 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
19242
19243 * config/rs6000/rs6000.md (abs<mode>2_hw): Make this a parameterized
19244 name.
19245 (abs<mode>2): Use that name. Simplify.
19246
19247 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
19248
19249 * config/rs6000/rs6000.md (neg<mode>2_hw): Make this a parameterized
19250 name.
19251 (neg<mode>2): Use that name. Simplify.
19252
19253 2019-07-01 Uroš Bizjak <ubizjak@gmail.com>
19254
19255 * config/i386/i386.md ("isa" attribute): Add sse_noavx.
19256 ("enabled" attribute): Handle sse_noavx isa attribute.
19257 * config/i386/mmx.md (*vec_dupv2sf): Add "isa" attribute.
19258 Use TARGET_SSE && SSE_REGNO_P in split condition.
19259 (*vec_dupv2sf): Ditto.
19260
19261 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
19262
19263 * config/rs6000/rs6000.md (extenddf<mode>2): Make this a parameterized
19264 name.
19265 (floatsi<mode>2): Use that name. Simplify.
19266
19267 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
19268
19269 * config/rs6000/rs6000.md (extenddf<mode>2_fprs): Make this a
19270 parameterized name.
19271 (extenddf<mode>2_vsx): Make this a parameterized name.
19272 (extenddf<mode>2): Use those names. Simplify.
19273
19274 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
19275
19276 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Make this a parameterized
19277 name.
19278 (eh_return): Use that name. Simplify.
19279
19280 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
19281
19282 * config/rs6000/rs6000.md (ctr<mode>): Make this a parameterized name.
19283 (doloop_end): Use that name. Simplify.
19284
19285 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
19286
19287 * config/rs6000/rs6000.md (indirect_jump<mode>_nospec): Make this a
19288 parameterized name.
19289 (indirect_jump): Use that name. Simplify.
19290
19291 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
19292
19293 * config/rs6000/rs6000.md (abs<mode>2_internal): Make this a
19294 parameterized name.
19295 (abs<mode>2): Use that name. Simplify.
19296
19297 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
19298
19299 * config/rs6000/rs6000.md (fix_trunc<mode>si2_fprs): Make this a
19300 parameterized name.
19301 (fix_trunc<mode>si2): Use that name. Simplify.
19302
19303 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
19304
19305 * config/rs6000/rs6000.md (neg<mode>2): Make this a parameterized name.
19306 (allocate_stack): Use that name. Simplify.
19307
19308 2019-07-01 Martin Sebor <msebor@redhat.com>
19309
19310 PR middle-end/90923
19311 * hash-map.h (hash_map::put): On insertion invoke element ctor.
19312 (hash_map::get_or_insert): Same. Reformat comment.
19313 * hash-set.h (hash_set::add): On insertion invoke element ctor.
19314 * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): New.
19315 * hash-set-tests.c (test_map_of_type_with_ctor_and_dtor): New.
19316 * hash-table.h (hash_table::operator=): Prevent copy assignment.
19317 (hash_table::hash_table (const hash_table&)): Use copy ctor
19318 instead of assignment to copy elements.
19319
19320 2019-07-01 Wilco Dijkstra <wdijkstr@arm.com>
19321 John David Anglin <danglin@gcc.gnu.org>
19322
19323 PR target/90963
19324 * config/pa/pa.md (builtin_longjmp): Restore hard_frame_pointer_rtx
19325 using saved frame pointer.
19326
19327 2019-07-01 Eric Botcazou <ebotcazou@adacore.com>
19328
19329 PR middle-end/64242
19330 * config/sparc/sparc.md (nonlocal_goto): Restore frame pointer last.
19331 Add frame clobber and schedule blockage.
19332
19333 2019-07-01 Sandra Loosemore <sandra@codesourcery.com>
19334
19335 * doc/invoke.texi (Link Options): Further editorial changes to
19336 -flinker-output docs.
19337
19338 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
19339
19340 * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem):
19341 Load both operands of a PLUS into registers separately.
19342
19343 2019-07-01 Andreas Krebbel <krebbel@linux.ibm.com>
19344
19345 * config/s390/vector.md: Fix shift count operand printing.
19346
19347 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
19348
19349 * ira-lives.c (process_bb_node_lives): Use ira_setup_alts.
19350
19351 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
19352
19353 * ira.c (ira_get_dup_out_num): Don't punt for earlyclobbers.
19354 Use recog_data to test for an output operand.
19355
19356 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
19357
19358 * ira.c (ira_setup_alts): If any valid alternatives have zero cost,
19359 exclude any others that are disparaged or that are bound to need
19360 a reload or spill.
19361 (ira_get_dup_out_num): Expand comment.
19362
19363 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
19364
19365 * ira.c (ira_setup_alts): Use preprocess_constraints to get the
19366 constraint string for each operand/alternative combo. Only handle
19367 '%' at the start of constraint strings, and look for it outside
19368 the main loop.
19369
19370 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
19371
19372 * ira-int.h (ira_setup_alts, ira_get_dup_out_num): Use
19373 alternative_mask instead of HARD_REG_SET to represent a
19374 bitmask of alternatives.
19375 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
19376 * ira-conflicts.c (add_insn_allocno_copies): Likewise.
19377
19378 2019-07-01 Martin Liska <mliska@suse.cz>
19379
19380 * edit-context.c (test_applying_fixits_unreadable_file): Do not
19381 use () for a constructor call.
19382 (test_applying_fixits_line_out_of_range): Likewise.
19383 * ggc-page.c (alloc_page): Use (void *) for %p printf format
19384 argument.
19385 (free_page): Likewise.
19386
19387 2019-07-01 Vladislav Ivanishin <vlad@ispras.ru>
19388
19389 * gdbhooks.py (GdbPrettyPrinters.add_printer_for_types): Reorder
19390 parameter names to match usage (no functional change).
19391 (GdbPrettyPrinters.add_printer_for_regex): Ditto.
19392
19393 2019-07-01 Richard Biener <rguenther@suse.de>
19394
19395 * tree-ssa-sccvn.c (class pass_fre): Add may_iterate
19396 pass parameter.
19397 (pass_fre::execute): Honor it.
19398 * passes.def: Adjust pass_fre invocations to allow iterating,
19399 add non-iterating pass_fre before late threading/dom.
19400
19401 2019-07-01 Richard Biener <rguenther@suse.de>
19402
19403 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Adjust
19404 TARGET_MEM_REF handling to also handle address-taken ones.
19405
19406 2019-07-01 Hongtao Liu <hongtao.liu@intel.com>
19407
19408 * doc/sourcebuild.texi (Effective-Target Keywords, Other
19409 hardware attributes): Document avx512vp2intersect.
19410
19411 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
19412
19413 * config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2.
19414 (abs<mode>2): New expander.
19415 * config/i386/i386-builtin.def (__builtin_ia32_pabsb):
19416 Use CODE_FOR_ssse3_absv8qi2.
19417 (__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2.
19418 (__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2.
19419
19420 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
19421
19422 * config/i386/i386.md (mmx_isa): Rename x64, x64_noavx and x64_avx
19423 to sse, sse_noavx and avx. Update all uses.
19424
19425 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
19426
19427 * config/i386/mmx.md (sse_movntq): Add "isa" attribute.
19428 (*mmx_<plusminus_insn><mode>3): Ditto.
19429 (*mmx_mulv4hi3"): Ditto.
19430 (*mmx_smulv4hi3_highpart): Ditto.
19431 (*mmx_umulv4hi3_highpart): Ditto.
19432 (*mmx_pmaddwd): Ditto.
19433 (*sse2_umulv1siv1di3): Ditto.
19434 (*mmx_<code>v4hi3): Ditto.
19435 (*mmx_<code>v8qi3): Ditto.
19436 (mmx_ashr<mode>3): Ditto.
19437 ("mmx_<shift_insn><mode>3): Ditto.
19438 (*mmx_eq<mode>3): Ditto.
19439 (mmx_gt<mode>3): Ditto.
19440 (mmx_andnot<mode>3): Ditto.
19441 (*mmx_<code><mode>3): Ditto.
19442 (*mmx_pinsrw): Ditto.
19443 (*mmx_pextrw): Ditto.
19444 (mmx_pshufw_1): Ditto.
19445 (*mmx_uavgv8qi3): Ditto.
19446 (*mmx_uavgv4hi3): Ditto.
19447 ("mmx_psadbw): Ditto.
19448 * config/i386/sse.md (sse_cvtps2pi): Ditto.
19449 (sse_cvttps2pi): Ditto.
19450 (ssse3_pmaddubsw): Ditto.
19451 (*ssse3_pmulhrswv4hi3): Ditto.
19452 (ssse3_psign<mode>3): Ditto.
19453
19454 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
19455
19456 * expr.c (expand_expr_real_1) <BIT_FIELD_REF>: Apply the big-endian
19457 adjustment for bit-fields to all aggregate types.
19458
19459 2019-06-28 Michael Meissner <meissner@linux.ibm.com>
19460
19461 * config/rs6000/predicates.md (pcrel_address): Use
19462 SYMBOL_REF_LOCAL_P to determine if a label is local.
19463 (pcrel_external_address): New predicate.
19464 (non_prefixed_mem_operand): Delete, predicate not used.
19465 * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL_P): Delete, we now use
19466 SYMBOL_REF_LOCAL_P to determine if we can use pc-relative
19467 addressing.
19468 (SYMBOL_REF_PCREL_P): Likewise.
19469
19470 PR target/91009
19471 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Add non-VSX
19472 alternative.
19473 (floatsi<mode>2_lfiwax_mem): Add non-VSX alternative.
19474 (floatunssi<mode>2_lfiwzx): Add non-VSX alternative.
19475 (floatunssi<mode>2_lfiwzx_mem): Add non-VSX alternative.
19476
19477 2019-06-28 Iain Sandoe <iain@sandoe.co.uk>
19478
19479 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove
19480 override on extra_headers.
19481
19482 2019-06-28 Iain Sandoe <iain@sandoe.co.uk>
19483
19484 * config/darwin-c.c (pop_field_alignment): Quote #pragma options.
19485 * config/darwin-driver.c (darwin_default_min_version): Remove newline
19486 from warning.
19487 (darwin_driver_init): Likewise.
19488
19489 2019-06-28 Jan Beulich <jbeulich@suse.com>
19490
19491 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
19492 vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>):
19493 Eliminate redundant alternative.
19494
19495 2019-06-28 Jan Beulich <jbeulich@suse.com>
19496
19497 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
19498 vgf2p8affineqb_<mode><mask_name>): Drop % constraint modifier.
19499 Use vector_operand.
19500
19501 2019-06-28 Claudiu Zissulescu <claziss@synopsys.com>
19502
19503 * config/arc/arc.c (arc_rtx_costs): All short instructions are
19504 having a lower cost regardless of the speed option.
19505
19506 2019-06-28 Jan Beulich <jbeulich@suse.com>
19507
19508 * config/i386/sse.md (sse2_cvtpd2pi, sse2_cvttpd2pi): Use
19509 vector_operand plus, on both alternatives, "Bm" constraint.
19510
19511 2019-06-28 Dennis Zhang <dennis.zhang@arm.com>
19512
19513 * config/arm/arm.md: Remove redundant constraints from
19514 define_expand but leave reload_inm and reload_outm patterns
19515 untouched since they need special constraints to work.
19516 * config/arm/arm-fixed.md: Remove redundant constraints from
19517 define_expand.
19518 * config/arm/iwmmxt.md: Likewise.
19519 * config/arm/neon.md: Likewise.
19520 * config/arm/sync.md: Likewise.
19521 * config/arm/thumb1.md: Likewise.
19522 * config/arm/vec-common.md: Likewise.
19523
19524 2019-06-27 Ilia Diachkov <ilia.diachkov@optimitech.com>
19525
19526 * doc/install.texi: Document --disable-tm-clone-registry.
19527
19528 2019-06-27 Jakub Jelinek <jakub@redhat.com>
19529
19530 PR c++/91024
19531 * gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT
19532 statements.
19533
19534 PR tree-optimization/91010
19535 * tree-vect-stmts.c (scan_operand_equal_p): If offset1 == offset2,
19536 return true. Otherwise, don't call operand_equal_p if offset1 or
19537 offset2 is NULL and just return false.
19538
19539 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
19540
19541 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
19542 user-specified float mode choice for kernel mode code.
19543
19544 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
19545
19546 * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the
19547 spec.
19548
19549 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
19550
19551 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
19552 use longcall for 64b code.
19553
19554 2019-06-27 Aaron Sawdey <acsawdey@linux.ibm.com>
19555
19556 * builtins.c (get_memory_rtx): Fix comment.
19557 * optabs.def (movmem_optab): Change to cpymem_optab.
19558 * expr.c (emit_block_move_via_cpymem): Change movmem to cpymem.
19559 (emit_block_move_hints): Change movmem to cpymem.
19560 * defaults.h: Change movmem to cpymem.
19561 * targhooks.c (get_move_ratio): Change movmem to cpymem.
19562 (default_use_by_pieces_infrastructure_p): Ditto.
19563 * config/aarch64/aarch64-protos.h: Change movmem to cpymem.
19564 * config/aarch64/aarch64.c (aarch64_expand_movmem): Change movmem
19565 to cpymem.
19566 * config/aarch64/aarch64.h: Change movmem to cpymem.
19567 * config/aarch64/aarch64.md (movmemdi): Change name to cpymemdi.
19568 * config/alpha/alpha.h: Change movmem to cpymem in comment.
19569 * config/alpha/alpha.md (movmemqi, movmemdi, *movmemdi_1): Change
19570 movmem to cpymem.
19571 * config/arc/arc-protos.h: Change movmem to cpymem.
19572 * config/arc/arc.c (arc_expand_movmem): Change movmem to cpymem.
19573 * config/arc/arc.h: Change movmem to cpymem in comment.
19574 * config/arc/arc.md (movmemsi): Change movmem to cpymem.
19575 * config/arm/arm-protos.h: Change movmem to cpymem in names.
19576 * config/arm/arm.c (arm_movmemqi_unaligned, arm_gen_movmemqi,
19577 gen_movmem_ldrd_strd, thumb_expand_movmemqi) Change movmem to cpymem.
19578 * config/arm/arm.md (movmemqi): Change movmem to cpymem.
19579 * config/arm/thumb1.md (movmem12b, movmem8b): Change movmem to cpymem.
19580 * config/avr/avr-protos.h: Change movmem to cpymem.
19581 * config/avr/avr.c (avr_adjust_insn_length, avr_emit_movmemhi,
19582 avr_out_movmem): Change movmem to cpymem.
19583 * config/avr/avr.md (movmemhi, movmem_<mode>, movmemx_<mode>):
19584 Change movmem to cpymem.
19585 * config/bfin/bfin-protos.h: Change movmem to cpymem.
19586 * config/bfin/bfin.c (single_move_for_movmem, bfin_expand_movmem):
19587 Change movmem to cpymem.
19588 * config/bfin/bfin.h: Change movmem to cpymem in comment.
19589 * config/bfin/bfin.md (movmemsi): Change name to cpymemsi.
19590 * config/c6x/c6x-protos.h: Change movmem to cpymem.
19591 * config/c6x/c6x.c (c6x_expand_movmem): Change movmem to cpymem.
19592 * config/c6x/c6x.md (movmemsi): Change name to cpymemsi.
19593 * config/frv/frv.md (movmemsi): Change name to cpymemsi.
19594 * config/ft32/ft32.md (movmemsi): Change name to cpymemsi.
19595 * config/h8300/h8300.md (movmemsi): Change name to cpymemsi.
19596 * config/i386/i386-expand.c (expand_set_or_movmem_via_loop,
19597 expand_set_or_movmem_via_rep, expand_movmem_epilogue,
19598 expand_setmem_epilogue_via_loop, expand_set_or_cpymem_prologue,
19599 expand_small_cpymem_or_setmem,
19600 expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves,
19601 expand_set_or_cpymem_constant_prologue,
19602 ix86_expand_set_or_cpymem): Change movmem to cpymem.
19603 * config/i386/i386-protos.h: Change movmem to cpymem.
19604 * config/i386/i386.h: Change movmem to cpymem in comment.
19605 * config/i386/i386.md (movmem<mode>): Change name to cpymem.
19606 (setmem<mode>): Change expansion function name.
19607 * config/lm32/lm32.md (movmemsi): Change name to cpymemsi.
19608 * config/m32c/blkmov.md (movmemhi, movmemhi_bhi_op, movmemhi_bpsi_op,
19609 movmemhi_whi_op, movmemhi_wpsi_op): Change movmem to cpymem.
19610 * config/m32c/m32c-protos.h: Change movmem to cpymem.
19611 * config/m32c/m32c.c (m32c_expand_movmemhi): Change movmem to cpymem.
19612 * config/m32r/m32r.c (m32r_expand_block_move): Change movmem to cpymem.
19613 * config/m32r/m32r.md (movmemsi, movmemsi_internal): Change movmem
19614 to cpymem.
19615 * config/mcore/mcore.md (movmemsi): Change name to cpymemsi.
19616 * config/microblaze/microblaze.c: Change movmem to cpymem in comment.
19617 * config/microblaze/microblaze.md (movmemsi): Change name to cpymemsi.
19618 * config/mips/mips.c (mips_use_by_pieces_infrastructure_p):
19619 Change movmem to cpymem.
19620 * config/mips/mips.h: Change movmem to cpymem.
19621 * config/mips/mips.md (movmemsi): Change name to cpymemsi.
19622 * config/nds32/nds32-memory-manipulation.c
19623 (nds32_expand_movmemsi_loop_unknown_size,
19624 nds32_expand_movmemsi_loop_known_size, nds32_expand_movmemsi_loop,
19625 nds32_expand_movmemsi_unroll,
19626 nds32_expand_movmemsi): Change movmem to cpymem.
19627 * config/nds32/nds32-multiple.md (movmemsi): Change name to cpymemsi.
19628 * config/nds32/nds32-protos.h: Change movmem to cpymem.
19629 * config/pa/pa.c (compute_movmem_length): Change movmem to cpymem.
19630 (pa_adjust_insn_length): Change call to compute_movmem_length.
19631 * config/pa/pa.md (movmemsi, movmemsi_prereload, movmemsi_postreload,
19632 movmemdi, movmemdi_prereload,
19633 movmemdi_postreload): Change movmem to cpymem.
19634 * config/pdp11/pdp11.md (movmemhi, movmemhi1,
19635 movmemhi_nocc, UNSPEC_MOVMEM): Change movmem to cpymem.
19636 * config/riscv/riscv.c: Change movmem to cpymem in comment.
19637 * config/riscv/riscv.h: Change movmem to cpymem.
19638 * config/riscv/riscv.md: (movmemsi) Change name to cpymemsi.
19639 * config/rs6000/rs6000.md: (movmemsi) Change name to cpymemsi.
19640 * config/rx/rx.md: (UNSPEC_MOVMEM, movmemsi, rx_movmem): Change
19641 movmem to cpymem.
19642 * config/s390/s390-protos.h: Change movmem to cpymem.
19643 * config/s390/s390.c (s390_expand_movmem, s390_expand_setmem,
19644 s390_expand_insv): Change movmem to cpymem.
19645 * config/s390/s390.md (movmem<mode>, movmem_short, *movmem_short,
19646 movmem_long, *movmem_long, *movmem_long_31z): Change movmem to cpymem.
19647 * config/sh/sh.md (movmemsi): Change name to cpymemsi.
19648 * config/sparc/sparc.h: Change movmem to cpymem in comment.
19649 * config/vax/vax-protos.h (vax_output_movmemsi): Remove prototype
19650 for nonexistent function.
19651 * config/vax/vax.h: Change movmem to cpymem in comment.
19652 * config/vax/vax.md (movmemhi, movmemhi1): Change movmem to cpymem.
19653 * config/visium/visium.h: Change movmem to cpymem in comment.
19654 * config/visium/visium.md (movmemsi): Change name to cpymemsi.
19655 * config/xtensa/xtensa.md (movmemsi): Change name to cpymemsi.
19656 * doc/md.texi: Change movmem to cpymem and update description to match.
19657 * doc/rtl.texi: Change movmem to cpymem.
19658 * target.def (use_by_pieces_infrastructure_p): Change movmem to cpymem.
19659 * doc/tm.texi: Regenerate.
19660
19661 2019-06-27 Bill Schmidt <wschmidt@linux.ibm.com>
19662
19663 * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
19664 -fvariable-expansion-in-unroller by default.
19665 * doc/invoke.texi (-fvariable-expansion-in-unroller): Document new
19666 default for Power.
19667
19668 2019-06-27 David Edelsohn <dje.gcc@gmail.com>
19669
19670 Revert
19671 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
19672 * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
19673
19674 * config.gcc(rs6000-*-*): Define target_gtfiles.
19675
19676 2019-06-27 Jan Hubicka <jh@suse.cz>
19677
19678 * ipa-devirt.c (odr_type_d): Add tbaa_enabled flag.
19679 (add_type_duplicate): When odr hash is not allocated, to nothing.
19680 (odr_based_tbaa_p): New function.
19681 (set_type_canonical_for_odr_type): New function.
19682 * ipa-utils.h (enable_odr_based_tbaa, odr_based_tbaa_p,
19683 set_type_canonical_for_odr_type): New.
19684 * tree.c (gimple_canonical_types_compatible_p): ODR types with
19685 ODR based TBAA are not equivalent to non-ODR types.
19686
19687 2019-06-27 Martin Liska <mliska@suse.cz>
19688
19689 PR tree-optimization/90974
19690 PR rtl-optimization/90975
19691 PR rtl-optimization/90976
19692 PR target/91016
19693 PR tree-optimization/91017
19694 * config/i386/i386-expand.c (ix86_expand_rounddf_32): Remove
19695 unused tmp.
19696 * lra.c (lra_set_insn_recog_data): Remove a leftover from
19697 initial commit of IRA.
19698 * optabs.c (expand_twoval_binop): Use xop0 and xop1 instead
19699 of op0 and op1.
19700 * tree-vect-loop.c (vect_create_epilog_for_reduction):
19701 Remove unused mode1.
19702 * tree-vect-stmts.c (vectorizable_call): Remove dead assignment
19703 to new_stmt_info.
19704
19705 2019-06-27 Jakub Jelinek <jakub@redhat.com>
19706
19707 PR target/90991
19708 * config/i386/sse.md (avx_vec_concat<mode>): Use nonimmediate_operand
19709 instead of register_operand for operands[1], add m to its constraints
19710 if operands[2] uses "C" constraint. Ensure in condition that if
19711 operands[2] is not 0, then operands[1] is not a MEM. For last two
19712 alternatives, use unaligned loads instead of aligned if operands[1] is
19713 misaligned_operand.
19714
19715 2019-06-27 Martin Liska <mliska@suse.cz>
19716
19717 * asan.c (asan_emit_allocas_unpoison): Remove obviously
19718 dead assignments.
19719 * bt-load.c (move_btr_def): Likewise.
19720 * builtins.c (expand_builtin_apply_args_1): Likewise.
19721 (expand_builtin_apply): Likewise.
19722 * cfgexpand.c (expand_asm_stmt): Likewise.
19723 (construct_init_block): Likewise.
19724 * cfghooks.c (verify_flow_info): Likewise.
19725 * cfgloopmanip.c (remove_path): Likewise.
19726 * cfgrtl.c (rtl_verify_bb_layout): Likewise.
19727 * cgraph.c (cgraph_node::set_pure_flag): Likewise.
19728 * combine.c (simplify_if_then_else): Likewise.
19729 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
19730 (choose_basereg): Likewise.
19731 (ix86_expand_prologue): Likewise.
19732 (ix86_preferred_output_reload_class): Likewise.
19733 * cselib.c (cselib_record_sets): Likewise.
19734 * df-scan.c (df_scan_alloc): Likewise.
19735 * dojump.c (do_jump_by_parts_greater_rtx): Likewise.
19736 * early-remat.c (early_remat::record_equiv_candidates): Likewise.
19737 * emit-rtl.c (try_split): Likewise.
19738 * graphite-scop-detection.c (assign_parameter_index_in_region):
19739 Likewise.
19740 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
19741 * ira-color.c (setup_profitable_hard_regs): Likewise.
19742 * ira.c (rtx_moveable_p): Likewise.
19743 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
19744 * read-rtl.c (read_subst_mapping): Likewise.
19745 * regrename.c (scan_rtx): Likewise.
19746 * reorg.c (fill_slots_from_thread): Likewise.
19747 * tree-inline.c (tree_function_versioning): Likewise.
19748 * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
19749 * tree-ssa-sink.c (statement_sink_location): Likewise.
19750 * tree-ssa-threadedge.c (thread_across_edge): Likewise.
19751 * tree-vect-loop.c (vect_get_loop_niters): Likewise.
19752 (vect_create_epilog_for_reduction): Likewise.
19753 * tree.c (build_nonstandard_integer_type): Likewise.
19754
19755 2019-06-27 Richard Biener <rguenther@suse.de>
19756
19757 * tree-ssa-sccvn.c (vn_reference_lookup_3): Encode valueized RHS.
19758
19759 2019-06-27 Jun Ma <JunMa@linux.alibaba.com>
19760
19761 PR tree-optimization/89772
19762 * gimple-fold.c (gimple_fold_builtin_memchr): consider trailing nuls in
19763 out-of-bound accesses checking.
19764
19765 2019-06-27 Martin Liska <mliska@suse.cz>
19766
19767 PR tree-optimization/91014
19768 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Bail out
19769 when LHS is NULL_TREE.
19770
19771 2019-06-27 Martin Liska <mliska@suse.cz>
19772
19773 * symbol-summary.h (traverse): Pass
19774 argument a to the call of callback.
19775 (gt_ggc_mx): Mark arguments as unused.
19776 (gt_pch_nx): Likewise.
19777
19778 2019-06-27 Kewen Lin <linkw@gcc.gnu.org>
19779
19780 PR target/62147
19781 * loop-iv.c (find_simple_exit): Call finite_loop_p to update
19782 finiteness.
19783
19784 2019-06-26 Jeff Law <law@redhat.com>
19785
19786 PR tree-optimization/90883
19787 * tree-ssa-dse.c (delete_dead_or_redundant_call): Fix signature.
19788 (delete_dead_or_redundant_assignment): Likewise.
19789
19790 PR tree-optimization/90883
19791 * tree-ssa-alias.c (stmt_kills_ref_p): Handle BUILT_IN_CALLOC.
19792 * tree-ssa-dse.c: Update various comments to distinguish between
19793 dead and redundant stores.
19794 (initialize_ao_ref_for_dse): Handle BUILT_IN_CALLOC.
19795 (dse_optimize_redundant_stores): New function.
19796 (delete_dead_or_redundant_call): Renamed from delete_dead_call.
19797 Distinguish between dead and redundant calls in dump output. All
19798 callers updated.
19799 (delete_dead_or_redundant_assignment): Similarly for assignments.
19800 (dse_optimize_stmt): Handle _CHK variants. For statements which
19801 store 0 into multiple memory locations, try to prove a subsequent
19802 store is redundant.
19803
19804 2019-06-26 Uroš Bizjak <ubizjak@gmail.com>
19805
19806 PR target/89021
19807 * config/i386/i386.c (ix86_autovectorize_vector_sizes):
19808 Autovectorize 8-byte vectors for TARGET_MMX_WITH_SSE.
19809
19810 2019-06-26 Iain Sandoe <iain@sandoe.co.uk>
19811
19812 * config/rs6000/rs6000-internal.h (branch_island): New typedef.
19813 (branch_islands): New extern.
19814 * config/rs6000/rs6000-logue.c (macho_branch_islands): Moved from
19815 * config/rs6000/rs6000.c: .. here.
19816
19817 2019-06-26 Iain Sandoe <iain@sandoe.co.uk>
19818
19819 * config.gcc (powerpc*-*-linux*): Move target_gtfiles from here..
19820 (powerpc*-*-*) ... to here.
19821
19822 2019-06-26 Jeff Law <law@redhat.com>
19823
19824 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle _chk variants of
19825 memcpy, memmove and memset builtins.
19826 (maybe_trim_memstar_call): Likewise.
19827
19828 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
19829
19830 * config/rs6000/rs6000-logue.c: Add #ifndef TARGET_PROFILE_KERNEL.
19831
19832 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
19833
19834 * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
19835
19836 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
19837
19838 * config/rs6000/rs6000-internal.h (rs6000_keep_leaf_when_profiled): New
19839 declaration.
19840 * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Remove
19841 "static".
19842 * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Delete
19843 declaration.
19844
19845 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
19846
19847 * config/rs6000/rs6000.c: Fix previous commit, it missed some changes.
19848
19849 2019-06-26 Richard Biener <rguenther@suse.de>
19850
19851 PR ipa/90982
19852 * tree-inline.c (remap_ssa_name): Copy SSA range info.
19853
19854 2019-06-26 Richard Biener <rguenther@suse.de>
19855
19856 * lto-streamer.h (lto_bitmap_alloc): Remove.
19857 (lto_bitmap_free): Likewise.
19858 * lto-streamer.c (lto_bitmap_alloc): Remove.
19859 (lto_bitmap_free): Likewise.
19860 (lto_obstack): Likewise.
19861 (lto_obstack_initialized): Likewise.
19862 * lto-streamer-out.c (lto_output): Use own obstack for local
19863 bitmap, free it consistently.
19864
19865 2019-06-26 Jakub Jelinek <jakub@redhat.com>
19866
19867 PR target/90991
19868 * config/i386/sse.md
19869 (*<extract_type>_vinsert<shuffletype><extract_suf>_0): Use vmovupd,
19870 vmovups, vmovdqu, vmovdqu32 or vmovdqu64 instead of the aligned
19871 insns if operands[2] is misaligned_operand.
19872
19873 2019-06-26 Li Jia He <helijia@linux.ibm.com>
19874
19875 * config/rs6000/rs6000.h (TARGET_MADDLD): Remove the restriction of
19876 TARGET_POWERPC64.
19877 * config/rs6000/rs6000.md (maddld): Change maddld match_operand from DI
19878 to GPR.
19879
19880 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
19881
19882 * doc/invoke.texi (Warning Options): Fix some @opindex syntax.
19883
19884 2019-06-26 Martin Liska <mliska@suse.cz>
19885
19886 PR tree-optimization/90973
19887 * tree-vect-loop.c (vect_get_known_peeling_cost): Use
19888 epilogue_cost_vec instead of prologue_cost_vec for
19889 a epilogue cost.
19890
19891 2019-06-26 Martin Liska <mliska@suse.cz>
19892
19893 * bb-reorder.c (connect_better_edge_p): Add missing else
19894 statement in the middle of if-else statements.
19895
19896 2019-06-25 Hongtao Liu <hongtao.liu@intel.com>
19897 H.J. Lu <hongjiu.lu@intel.com>
19898 Olga Makhotina <olga.makhotina@intel.com>
19899
19900 * common/config/i386/i386-common.c
19901 (OPTION_MASK_ISA_AVX512VP2INTERSECT_SET,
19902 OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET): New macros.
19903 (OPTION_MASK_ISA2_AVX512F_UNSET): Add
19904 OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET.
19905 (ix86_handle_option): Handle -mavx512vp2intersect.
19906 * config/i386/avx512vp2intersectintrin.h: New.
19907 * config/i386/avx512vp2intersectvlintrin.h: New.
19908 * config/i386/cpuid.h (bit_AVX512VP2INTERSECT): New.
19909 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
19910 AVX512VP2INTERSECT.
19911 * config/i386/i386-builtin-types.def: Add new types.
19912 * config/i386/i386-builtin.def: Add new builtins.
19913 * config/i386/i386-builtins.c: (enum processor_features): Add
19914 F_AVX512VP2INTERSECT.
19915 (static const _isa_names_table isa_names_table): Ditto.
19916 * config/i386/i386-c.c (ix86_target_macros_internal): Define
19917 __AVX512VP2INTERSECT__.
19918 * config/i386/i386-expand.c (ix86_expand_builtin): Expand
19919 IX86_BUILTIN_2INTERSECTD512, IX86_BUILTIN_2INTERSECTQ512,
19920 IX86_BUILTIN_2INTERSECTD256, IX86_BUILTIN_2INTERSECTQ256,
19921 IX86_BUILTIN_2INTERSECTD128, IX86_BUILTIN_2INTERSECTQ128.
19922 * config/i386/i386-modes.def (P2QI, P2HI): New modes.
19923 * config/i386/i386-options.c (ix86_target_string): Add
19924 -mavx512vp2intersect.
19925 (ix86_option_override_internal): Handle AVX512VP2INTERSECT.
19926 * config/i386/i386.c (ix86_hard_regno_nregs): Allocate two regs for
19927 P2HImode and P2QImode.
19928 (ix86_hard_regno_mode_ok): Register pair only starts at even hardreg
19929 number for P2QImode and P2HImode.
19930 (ix86_regmode_natural_size): New function.
19931 * config/i386/i386.h (TARGET_AVX512VP2INTERSECT,
19932 TARGET_AVX512VP2INTERSECT_P, PTA_AVX512VP2INTERSECT
19933 REGMODE_NATURAL_SIZE, MASK_PAIR_REGNO_P): New.
19934 * config/i386/i386-protos.h (ix86_regmode_natural_size): Declare
19935 * config/i386/i386.opt: Add -mavx512vp2intersect.
19936 * config/i386/immintrin.h: Include avx512vp2intersectintrin.h and
19937 avx512vp2intersectvlintrin.h.
19938 * config/i386/sse.md (define_c_enum "unspec"): Add UNSPEC_VP2INTERSECT.
19939 (define_mode_iterator VI48_AVX512VP2VL): New.
19940 (avx512vp2intersect_2intersect<mode>,
19941 avx512vp2intersect_2intersectv16si): New define_insn patterns.
19942 * config.gcc: Add avx512vp2intersectvlintrin.h and
19943 avx512vp2intersectintrin.h to extra_headers.
19944 * doc/invoke.texi: Document -mavx512vp2intersect.
19945
19946 2019-06-25 Iain Sandoe <iain@sandoe.co.uk>
19947
19948 * config/rs6000/darwin.h (ENDFILE_SPEC): New.
19949
19950 2019-06-25 Bill Seurer <seurer@linux.vnet.ibm.com>
19951
19952 * config/rs6000/rs6000.c (stack_info, rs6000_pic_labelno,
19953 savres_routine_syms, savres_routine_name, morestack_ref,
19954 rs6000_init_machine_status, save_reg_p, first_reg_to_save,
19955 first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
19956 compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
19957 rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
19958 rs6000_return_addr, rs6000_decl_ok_for_sibcall,
19959 rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
19960 rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
19961 create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
19962 rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
19963 get_stack_clash_protection_probe_interval,
19964 get_stack_clash_protection_guard_size,
19965 rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
19966 rs6000_emit_probe_stack_range, output_probe_stack_range_1,
19967 interesting_frame_related_regno, output_probe_stack_range_stack_clash,
19968 output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
19969 gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
19970 gen_frame_mem_offset, rs6000_savres_routine_name,
19971 rs6000_savres_routine_sym, rs6000_emit_stack_reset,
19972 ptr_regno_for_savres, rs6000_emit_savres_rtx,
19973 rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
19974 rs6000_global_entry_point_prologue_needed_p,
19975 rs6000_get_separate_components, rs6000_components_for_bb,
19976 rs6000_disqualify_components, rs6000_emit_prologue_components,
19977 rs6000_emit_epilogue_components, rs6000_set_handled_components,
19978 emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
19979 rs6000_output_savres_externs, rs6000_output_function_prologue,
19980 rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
19981 load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
19982 offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
19983 rs6000_output_function_epilogue, gen_add3_const,
19984 rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
19985 rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
19986 to rs6000-logue.c.
19987 (machine_function): Moved to rs6000.h.
19988 (rs6000_stack_t, ALTIVEC_REG_BIT, quad_address_offset_p) Moved to
19989 rs6000-internal.h.
19990 * config/rs6000/rs6000-logue.c(stack_info, rs6000_pic_labelno,
19991 savres_routine_syms, savres_routine_name, morestack_ref,
19992 rs6000_init_machine_status, save_reg_p, first_reg_to_save,
19993 first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
19994 compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
19995 rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
19996 rs6000_return_addr, rs6000_decl_ok_for_sibcall,
19997 rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
19998 rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
19999 create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
20000 rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
20001 get_stack_clash_protection_probe_interval,
20002 get_stack_clash_protection_guard_size,
20003 rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
20004 rs6000_emit_probe_stack_range, output_probe_stack_range_1,
20005 interesting_frame_related_regno, output_probe_stack_range_stack_clash,
20006 output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
20007 gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
20008 gen_frame_mem_offset, rs6000_savres_routine_name,
20009 rs6000_savres_routine_sym, rs6000_emit_stack_reset,
20010 ptr_regno_for_savres, rs6000_emit_savres_rtx,
20011 rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
20012 rs6000_global_entry_point_prologue_needed_p,
20013 rs6000_get_separate_components, rs6000_components_for_bb,
20014 rs6000_disqualify_components, rs6000_emit_prologue_components,
20015 rs6000_emit_epilogue_components, rs6000_set_handled_components,
20016 emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
20017 rs6000_output_savres_externs, rs6000_output_function_prologue,
20018 rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
20019 load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
20020 offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
20021 rs6000_output_function_epilogue, gen_add3_const,
20022 rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
20023 rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
20024 to here from rs6000.c.
20025 * config/rs6000/rs6000.h (machine_function): Moved to here from rs6000.c.
20026 * config/rs6000/rs6000-internal.h: (rs6000_stack_t, ALTIVEC_REG_BIT,
20027 quad_address_offset_p) Moved to here from rs6000.c.
20028 * config/rs6000/t-rs6000: Add new source file rs6000-logue.c.
20029 * config/config.gcc: Add new source file rs6000-logue.c to garbage
20030 collector.
20031
20032 2019-06-25 Martin Liska <mliska@suse.cz>
20033
20034 * hash-table.c (hashtab_chk_error): Move here from ...
20035 * hash-table.h (hashtab_chk_error): ... here.
20036
20037 2019-06-25 Martin Liska <mliska@suse.cz>
20038
20039 PR tree-optimization/90978
20040 * df-scan.c (df_update_entry_block_defs): Remove dead else
20041 branch.
20042 (df_update_exit_block_uses): Likewise.
20043
20044 2019-06-25 Kwok Cheung Yeung <kcy@codesourcery.com>
20045 Andrew Stubbs <ams@codesourcery.com>
20046
20047 * config.gcc (thread_file): Set to gcn for AMD GCN.
20048 * config/gcn/gcn.c (gcn_emutls_var_init): New function.
20049 (TARGET_EMUTLS_VAR_INIT): New hook.
20050
20051 2019-06-25 Martin Jambor <mjambor@suse.cz>
20052
20053 PR ipa/90939
20054 * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert.
20055
20056 2019-06-25 Richard Biener <rguenther@suse.de>
20057
20058 PR tree-optimization/90930
20059 * tree-ssa-reassoc.c (reassociate_bb): Only rewrite expression
20060 into parallel form in the last pass instance.
20061
20062 2019-06-25 Claudiu Zissulescu <claziss@synopsys.com>
20063
20064 * config/arc/arc.c (arc_symbol_binds_local_p): New function.
20065 (arc_legitimize_pic_address): Simplify and cleanup the function.
20066 (SYMBOLIC_CONST): Remove.
20067 (prepare_pic_move): Likewise.
20068 (prepare_move_operands): Handle complex mov cases here.
20069 (arc_legitimize_address_0): Remove call to
20070 arc_legitimize_pic_address.
20071 (arc_legitimize_address): Remove call to
20072 arc_legitimize_tls_address.
20073 * config/arc/arc.md (movqi_insn): Allow Cm3 match.
20074 (movhi_insn): Likewise.
20075
20076 2019-06-25 Jozef Lawrynowicz <jozef.l@mittosystems.com>
20077
20078 * config/msp430/msp430.h: Use __int20__ for SIZE_TYPE and
20079 PTRDIFF_TYPE.
20080 * gimple-ssa-sprintf.c (build_intmax_type_nodes): Accept "__intN__"
20081 format of "__intN" types for UINTMAX_TYPE.
20082 * stor-layout.c (initialize_sizetypes): Accept "__intN__"
20083 format of "__intN" types for SIZETYPE.
20084 * tree.c (build_common_tree_nodes): Accept "__intN__"
20085 format of "__intN" types for SIZE_TYPE and PTRDIFF_TYPE.
20086 * doc/invoke.texi: Document that __intN__ disables pedantic
20087 warnings.
20088
20089 2019-06-25 Jan Hubicka <jh@suse.cz>
20090
20091 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Check that
20092 base2_alias_set is non-zero before doing TBAA based disambiguation.
20093
20094 2019-06-25 Martin Liska <mliska@suse.cz>
20095
20096 PR tree-optimization/90973
20097 * tree-vect-loop.c (vect_get_known_peeling_cost): Sum retval
20098 of prologue and epilogue.
20099
20100 2019-06-24 Jan Hubicka <jh@suse.cz>
20101
20102 * ipa-utils.h (type_with_linkage_p): Verify that type is
20103 CXX_ODR_P.
20104 (odr_type_p): Remove extra return.
20105 * lto-streamer-out.c (hash_tree): Hash TYPE_CXX_ODR_P;
20106 hash STRING_FLAG only for arrays and integers.
20107 * tree-stremaer-in.c (unpack_ts_type_common_value_fields):
20108 Update analogously.
20109 * tree-streamer-out.c (pack_ts_type_common_value_fields):
20110 Likewise.
20111 * print-tree.c (print_node): Print cxx-odr-p
20112 and string-flag.
20113 * tree.c (need_assembler_name_p): Also check that type
20114 is CXX_ODR_TYPE_P
20115 (verify_type_variant): Update verification of SRING_FLAG;
20116 also check CXX_ODR_P.
20117 * tree.h (ARRAY_OR_INTEGER_TYPE_CHECK): New macro.
20118 (TYPE_STRING_FLAG): Use it.
20119 (TYPE_CXX_ODR_P): New macro.
20120 * dwarf2out.c (gen_array_type_die): First check that type
20121 is an array and then test string flag.
20122
20123 2019-06-24 Richard Biener <rguenther@suse.de>
20124
20125 PR tree-optimization/90972
20126 * tree-vect-stmts.c (vect_init_vector): Handle CONSTANT_CLASS_P
20127 in common code, dealing with STRING_CST properly.
20128
20129 2019-06-24 Richard Biener <rguenther@suse.de>
20130
20131 PR tree-optimization/90930
20132 PR tree-optimization/90316
20133 * tree-ssa-alias.c (walk_non_aliased_vuses): Add missing
20134 decrement of limit.
20135
20136 2019-06-24 Martin Sebor <msebor@redhat.com>
20137
20138 * tree-pretty-print.h: Remove unnecessary punctuation characters
20139 from a diagnostic.
20140 * tree-ssa.c (release_defs_bitset): Correct preprocessor conditional.
20141
20142 2019-06-24 Jonathan Wakely <jwakely@redhat.com>
20143
20144 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG)
20145 (FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, LDBL_HAS_SUBNORM, FLT_TRUE_MIN)
20146 (DBL_TRUE_MIN, LDBL_TRUE_MIN): Also define for C++17.
20147
20148 2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
20149
20150 * config/rs6000/darwin.h: Handle GCC target pragma.
20151
20152 2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
20153
20154 * config/rs6000/darwin.h: (__PPC__, __PPC64__): New.
20155
20156 2019-06-22 Jeff Law <law@redhat.com>
20157
20158 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
20159
20160 2019-06-22 Jan Hubicka <jh@suse.cz>
20161
20162 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Do not
20163 give up on bitfields; continue searching for different refs
20164 appearing later.
20165
20166 2019-06-21 Jakub Jelinek <jakub@redhat.com>
20167
20168 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
20169 even zero DR_OFFSET, but DR_BASE_ADDRESS of POINTER_PLUS_EXPR
20170 containing the offset as possible simd lane access. Look through
20171 widening conversion. Move the
20172 TREE_CODE (DR_INIT (newdr)) == INTEGER_CST test earlier and reindent.
20173
20174 2019-06-21 Richard Biener <rguenther@suse.de>
20175
20176 PR tree-optimization/90930
20177 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited
20178 flag on new stmts to avoid re-processing them.
20179
20180 2019-06-21 Matthew Beliveau <mbelivea@redhat.com>
20181
20182 PR c++/90875 - added -Wswitch-outside-range option
20183 * doc/invoke.texi (Wswitch-outside-range): Document.
20184
20185 2019-06-21 Jeff Law <law@redhat.com>
20186
20187 PR tree-optimization/90949
20188 * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info.
20189 * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state.
20190
20191 2019-06-21 Richard Biener <rguenther@suse.de>
20192
20193 PR debug/90914
20194 * dwarf2out.c (prune_unused_types_walk): Always consider
20195 function-local extern declarations as used.
20196
20197 2019-06-21 Richard Biener <rguenther@suse.de>
20198
20199 PR tree-optimization/90913
20200 * tree-vect-loop-manip.c (vect_loop_versioning): Do not re-use
20201 the scalar variant of if-conversion versioning.
20202
20203 2019-06-21 Jakub Jelinek <jakub@redhat.com>
20204
20205 * omp-low.c (lower_rec_simd_input_clauses): Add rvar2 argument,
20206 create another "omp scan inscan exclusive" array if
20207 !ctx->scan_inclusive.
20208 (lower_rec_input_clauses): Handle exclusive scan inscan reductions.
20209 (lower_omp_scan): Likewise.
20210 * tree-vectorizer.h (struct _stmt_vec_info): Use 3-bit instead of
20211 2-bit bitfield for simd_lane_access_p member.
20212 * tree-vect-data-refs.c (vect_analyze_data_refs): Also handle
20213 aux == (void *)-4 as simd lane access.
20214 * tree-vect-stmts.c (check_scan_store): Handle exclusive scan. Update
20215 comment with permutations to show the canonical permutation order.
20216 (vectorizable_scan_store): Handle exclusive scan.
20217 (vectorizable_store): Call vectorizable_scan_store even for
20218 STMT_VINFO_SIMD_LANE_ACCESS_P > 3.
20219
20220 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
20221 "omp simd array" arrays with one byte elements.
20222
20223 2019-06-20 Uroš Bizjak <ubizjak@gmail.com>
20224
20225 * config/alpha/alpha.md (@unaligned_store<mode>):
20226 Rename from unaligned_store<mode>.
20227 (@reload_in<mode>_aligned): Rename from reload_in<mode>_aligned.
20228 * config/alpha/sync.md (@load_locked_<mode>): Rename
20229 from load_locked_<mode>.
20230 (@store_conditional_<mode>): Rename from store_conditional_<mode>.
20231 (@atomic_compare_and_swap<mode>_1): Rename
20232 from atomic_compare_and_swap<mode>_1.
20233 (@atomic_exchange<mode>_1): Rename from atomic_exchange<mode>_1.
20234 * config/alpha/alpha.c (alpha_expand_mov_nobwx):
20235 Use gen_reload_in_aligned and gen_unaligned_store.
20236 (emit_load_locked): Remove.
20237 (emit_store_conditional): Ditto.
20238 (alpha_split_atomic_op): Use gen_load_locked and gen_store_conditional.
20239 (alpha_split_compare_and_swap): Ditto.
20240 (alpha_expand_compare_and_swap_12): Use gen_atomic_compare_and_swap_1.
20241 (alpha_split_compare_and_swap_12): Use gen_load_locked
20242 and gen_store_conditional.
20243 (alpha_split_atomic_exchange): Ditto.
20244 (alpha_expand_atomic_exchange_12): Use gen_atomic_exchange_1.
20245 (alpha_split_atomic_exchange_12): Use gen_load_locked
20246 and gen_store_conditional.
20247
20248 2019-06-20 Richard Earnshaw <rearnsha@arm.com>
20249
20250 * config/aarch64/aarch64-errata.h: New file.
20251 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Delete.
20252 (CA53_ERR_843419_SPEC): Delete.
20253 (LINK_SPEC): Use AARCH64_ERRATA_LINK_SPEC instead of above.
20254 * config/aarch64/aarch64-linux.h: Likewise.
20255 * config/aarch64/aarch64-netbsd.h: Likewise.
20256 * config/aarch64/aarch64-freebsd.h: Likewise.
20257
20258 2019-06-20 Marek Polacek <polacek@redhat.com>
20259
20260 * config/sh/sh.c (sh2a_function_vector_p): Use get_attribute_name.
20261
20262 2019-06-20 Michael Meissner <meissner@linux.ibm.com>
20263
20264 * config/rs6000/rs6000.md (isa attribute): Add support for
20265 for a future processor.
20266
20267 2019-06-20 H.J. Lu <hongjiu.lu@intel.com>
20268
20269 PR target/54855
20270 * config/i386/i386-expand.c (ix86_expand_vector_set): Generate
20271 standard scalar operation pattern for V2DF.
20272 * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3): New.
20273 (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise.
20274 (*ieee_<ieee_maxmin><mode>3): Likewise.
20275 (vec_setv2df_0): Likewise.
20276
20277 2019-06-20 Jan Hubicka <jh@suse.cz>
20278
20279 * tree-ssa-alias.c (aliasing_component_refs_p): Remove ref2_is_decl
20280 parameter; it has no use in gimple memory model.
20281 (indirect_ref_may_alias_decl_p): Update.
20282
20283 2019-06-20 Martin Liska <mliska@suse.cz>
20284
20285 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): Decrease
20286 to 10.
20287
20288 2019-06-20 Jakub Jelinek <jakub@redhat.com>
20289
20290 * tree-vect-stmts.c (enum scan_store_kind): New type.
20291 (scan_store_can_perm_p): Change last argument from int * to
20292 vec<enum scan_store_kind> *, record precisely which permutations
20293 need whole vector left shift or that plus VEC_COND_EXPR.
20294 (vectorizable_scan_store): Adjust caller, use whole vector left shift
20295 and additional VEC_COND_EXPR only for those iterations that need it.
20296
20297 2019-06-20 Alexandre Oliva <oliva@adacore.com>
20298
20299 * config.gcc: Fix ARM --with-fpu checking and error message.
20300
20301 2019-06-19 Marek Polacek <polacek@redhat.com>
20302
20303 PR c++/60364 - noreturn after first decl not diagnosed.
20304 * attribs.c (get_attribute_namespace): No longer static.
20305 (decl_attributes): Avoid shadowing. Preserve the C++11 form for C++11
20306 attributes.
20307 (attr_noreturn_exclusions): Make it extern.
20308 * attribs.h (get_attribute_namespace): Declare.
20309 * tree-inline.c (function_attribute_inlinable_p): Use
20310 get_attribute_name.
20311
20312 2019-06-19 Martin Sebor <msebor@redhat.com>
20313
20314 PR tree-optimization/90626
20315 * tree-ssa-strlen.c (strxcmp_unequal): Fix typos.
20316
20317 PR tree-optimization/90626
20318 * tree-ssa-strlen.c (strxcmp_unequal): New function.
20319 (handle_builtin_string_cmp): Call it.
20320
20321 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
20322
20323 * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC
20324 and DARWIN_NOPIE_SPEC.
20325 (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC.
20326 (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h.
20327 (DARWIN_NOPIE_SPEC): Collate from darwin10.h.
20328 (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h
20329 (DARWIN_EXPORT_DYNAMIC): Delete.
20330 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind
20331 and pie options processing to darwin.h.
20332 * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h
20333
20334 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
20335
20336 * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors
20337 in computing the number of options to be moved.
20338
20339 2019-06-19 Maya Rashish <coypu@sdf.org>
20340
20341 * config/arm/netbsd-elf.h (SYSARCH_ARM_SYNC_ICACHE): New definition.
20342 (CLEAR_INSN_CACHE) Use it.
20343
20344 2019-06-19 Uroš Bizjak <ubizjak@gmail.com>
20345
20346 * config/i386/i386.md (cmpstrnsi): Remove dead code.
20347
20348 2019-06-19 Wilco Dijkstra <wdijkstr@arm.com>
20349
20350 PR middle-end/84521
20351 * builtins.c (expand_builtin_setjmp_setup): Save
20352 hard_frame_pointer_rtx.
20353 (expand_builtin_setjmp_receiver): Do not emit sfp = fp move since we
20354 restore fp.
20355 * function.c (expand_function_start): Save hard_frame_pointer_rtx for
20356 non-local goto.
20357 * lra-eliminations.c (eliminate_regs_in_insn): Remove sfp = fp
20358 elimination code.
20359 (remove_reg_equal_offset_note): Remove unused function.
20360 * reload1.c (eliminate_regs_in_insn): Remove sfp = hfp elimination
20361 code.
20362 * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
20363 (arc_builtin_setjmp_frame_value): Remove function.
20364 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
20365 (avr_builtin_setjmp_frame_value): Remove function.
20366 * config/i386/i386.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
20367 (ix86_builtin_setjmp_frame_value): Remove function.
20368 * config/pa/pa.md (nonlocal_goto): Remove FP adjustment.
20369 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
20370 (sparc_builtin_setjmp_frame_value): Remove function.
20371 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
20372 (vax_builtin_setjmp_frame_value): Remove function.
20373 * config/xtensa/xtensa.c (xtensa_frame_pointer_required): Force frame
20374 pointer if has_nonlocal_label.
20375
20376 2019-06-19 Jakub Jelinek <jakub@redhat.com>
20377
20378 * doc/md.texi: Document vec_shl_<mode> pattern.
20379 * optabs.def (vec_shl_optab): New optab.
20380 * optabs.c (shift_amt_for_vec_perm_mask): Add shift_optab
20381 argument, if == vec_shl_optab, check for left whole vector shift
20382 pattern rather than right shift.
20383 (expand_vec_perm_const): Add vec_shl_optab support.
20384 * optabs-query.c (can_vec_perm_var_p): Mention also vec_shl optab
20385 in the comment.
20386 * tree-vect-generic.c (lower_vec_perm): Support permutations which
20387 can be handled by vec_shl_optab.
20388 * tree-vect-stmts.c (scan_store_can_perm_p): New function.
20389 (check_scan_store): Use it.
20390 (vectorizable_scan_store): If target can't do normal permutations,
20391 try to use whole vector left shifts and if needed a VEC_COND_EXPR
20392 after it.
20393 * config/i386/sse.md (vec_shl_<mode>): New expander.
20394
20395 * omp-low.c (lower_rec_input_clauses): Handle references properly
20396 in inscan clauses.
20397 (lower_omp_scan): Likewise.
20398
20399 2019-06-19 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
20400
20401 * tree-ssa-address.c (preferred_mem_scale_factor): Handle when
20402 mem_mode is BLKmode.
20403
20404 2019-06-18 Max Filippov <jcmvbkbc@gmail.com>
20405
20406 PR target/90922
20407 * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack
20408 pointer adjustment for the case of no callee-saved registers and
20409 stack frame bigger than 128 bytes.
20410
20411 2019-06-18 Thomas Schwinge <thomas@codesourcery.com>
20412
20413 PR middle-end/90862
20414 * omp-low.c (check_omp_nesting_restrictions): Handle
20415 GF_OMP_TARGET_KIND_OACC_DECLARE.
20416
20417 2019-06-18 Uroš Bizjak <ubizjak@gmail.com>
20418
20419 * config/i386/i386.md (@cmp<mode>_1): Rename from cmp<mode>_1.
20420 (@add<mode>3_carry): Rename from add<mode>3_carry.
20421 (@sub<mode>3_carry_ccc): Rename from sub<mode>3_carry_ccc.
20422 (@sub<mode>3_carry_ccgz): Rename form sub<mode>3_carry_ccgz.
20423 (@copysign<mode>3_const): Rename from copysign<mode>3_const.
20424 (@copysign<mode>3_var): Rename from copysign<mode>3_var.
20425 (@xorsign<mode>3_1): Rename from xorsign<mode>3_1.
20426 (@x86_shift<mode>_adj_1): Rename from x86_shift<mode>_adj_1.
20427 (@x86_shift<mode>_adj_2): Rename from x86_shift<mode>_adj_2.
20428 (@x86_shift<mode>_adj_3): Rename from x86_shift<mode>_adj_3.
20429 (cmpstrnsi): Use gen_cmp_1.
20430 (lwp_slwpcb): Use gen_lwp_slwpcb_1.
20431 (@lwp_slwpcb<mode>_1): Rename from lwp_slwpcb<mode>_1.
20432 (@umonitor_<mode>): Rename from umonitor_<mode>.
20433 * config/i386/i386-expand.c (ix86_expand_copysign):
20434 Use gen_copysign3_const and gen_copysign3_var.
20435 (ix86_expand_xorsign): Use gen_xorsign3_1.
20436 (ix86_expand_branch): Use gen_sub3_carry_ccc,
20437 gen_sub3_carry_ccgz and gen_cmp1.
20438 (ix86_expand_int_addcc): Use gen_sub3_carry and gen_add3_carry.
20439 (ix86_split_ashl): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_2.
20440 (ix86_split_ashr): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_3.
20441 (ix86_split_lshr): Ditto.
20442 (ix86_expand_builtin) <case IX86_BUILTIN_UMONITOR>: Use gen_umonitor.
20443
20444 2019-06-18 Jason Merrill <jason@redhat.com>
20445
20446 * tree.c (build_constructor): Add MEM_STAT_DECL.
20447
20448 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
20449
20450 * config/aarch64/aarch64-modes.def (CC_NZC): New CC_MODE.
20451 * config/aarch64/aarch64-sve.md (*<optab><mode>3_cc)
20452 (ptest_ptrue<mode>, while_ult<GPI:mode><PRED_ALL:mode>)
20453 (*while_ult<GPI:mode><PRED_ALL:mode>_cc, *cmp<cmp_op><mode>)
20454 (*cmp<cmp_op><mode>_ptest, *cmp<cmp_op><mode>_cc)
20455 (*pred_cmp<cmp_op><mode>_combine, *pred_cmp<cmp_op><mode>)
20456 (vec_cmp<mode><vpred>, vec_cmpu<mode><vpred>, cbranch<mode>4):
20457 Use CC_NZC instead of CC.
20458 * config/aarch64/aarch64.md (condjump): Print a '.' in SVE conditions.
20459 * config/aarch64/aarch64.c (aarch64_sve_condition_codes): New variable.
20460 (aarch64_print_operand): Handle E_CC_NZCmode.
20461 (aarch64_emit_sve_ptrue_op_cc): Use gen_set_clobber_cc_nzc instead
20462 of gen_set_clobber_cc.
20463
20464 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
20465
20466 * config/aarch64/aarch64-sve.md: Tabify file.
20467
20468 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
20469
20470 * config/aarch64/aarch64-protos.h (aarch64_pfalse_reg): Declare.
20471 * config/aarch64/aarch64.c (aarch64_pfalse_reg): New function.
20472 * config/aarch64/aarch64-sve.md: Use it.
20473
20474 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
20475
20476 * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): Declare.
20477 * config/aarch64/aarch64.c (aarch64_ptrue_reg): New functions.
20478 (aarch64_expand_sve_widened_duplicate, aarch64_expand_sve_mem_move)
20479 (aarch64_maybe_expand_sve_subreg_move, aarch64_evpc_rev_local)
20480 (aarch64_expand_sve_vec_cmp_int): Use it.
20481 (aarch64_expand_sve_vec_cmp_float): Likewise.
20482 * config/aarch64/aarch64-sve.md: Likewise throughout.
20483
20484 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
20485 Kugan Vivekanandarajah <kuganv@linaro.org>
20486
20487 * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_0): Delete.
20488 (*cond_<optab><mode>_z): Fold into...
20489 (*cond_<optab><mode>_any): ...here. Also handle cases in which
20490 operand 4 can be tied to operand 0 (either inherently or via RA).
20491
20492 2019-06-18 Richard Biener <rguenther@suse.de>
20493
20494 PR debug/90900
20495 * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL
20496 as if optimized away.
20497
20498 2019-06-18 Tom de Vries <tdevries@suse.de>
20499
20500 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Remove.
20501 * config/nvptx/nvptx.c (gen_set_softstack_insn): Remove.
20502 * config/nvptx/nvptx.md (define_insn "set_softstack_<mode>"):
20503 Rename to ...
20504 (define_insn "@set_softstack_<mode>"): ... this.
20505 (define_insn "omp_simt_enter_<mode>"): Rename to ...
20506 (define_insn "@omp_simt_enter_<mode>"): ... this.
20507 (define_insn "omp_simt_exit_<mode>"): Rename to ...
20508 (define_insn "@omp_simt_exit_<mode>"): ... this.
20509
20510 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
20511
20512 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Remove
20513 vf parameter. Restore the previous iv step of nscalars_step,
20514 but give it iv_type rather than compare_type. Tweak code order
20515 to match the comments.
20516 (vect_set_loop_condition_masked): Update accordingly.
20517 * tree-vect-loop.c (vect_verify_full_masking): Use "unsigned int"
20518 for iv_precision. Tweak comment formatting.
20519
20520 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
20521
20522 * config/darwin.c: Strip trailing whitespace.
20523
20524 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
20525
20526 * config/darwin.c (darwin_emit_unwind_label): New default to false.
20527 (darwin_override_options): Set darwin_emit_unwind_label as needed.
20528
20529 2019-06-18 Martin Jambor <mjambor@suse.cz>
20530
20531 PR ipa/90889
20532 * ipa-cp.c (ignore_edge_p): Do not ignore edges when only the
20533 caller does not have flag_ipa_cp set.
20534
20535 2019-06-18 Alejandro Martinez <alejandro.martinezvicente@arm.com>
20536
20537 * config/aarch64/aarch64-sve.md (mask_fold_left_plus_<mode>): Renamed
20538 from "*fold_left_plus_<mode>", updated operands order.
20539 * doc/md.texi (mask_fold_left_plus_@var{m}): Documented new optab.
20540 * internal-fn.c (mask_fold_left_direct): New define.
20541 (expand_mask_fold_left_optab_fn): Likewise.
20542 (direct_mask_fold_left_optab_supported_p): Likewise.
20543 * internal-fn.def (MASK_FOLD_LEFT_PLUS): New internal function.
20544 * optabs.def (mask_fold_left_plus_optab): New optab.
20545 * tree-vect-loop.c (mask_fold_left_plus_optab): New function to get a
20546 masked internal_fn for a reduction ifn.
20547 (vectorize_fold_left_reduction): Add support for masking reductions.
20548
20549 2019-06-18 Kewen Lin <linkw@gcc.gnu.org>
20550
20551 PR middle-end/80791
20552 * target.def (predict_doloop_p): New hook.
20553 * targhooks.h (default_predict_doloop_p): New declaration.
20554 * targhooks.c (default_predict_doloop_p): New function.
20555 * doc/tm.texi.in (TARGET_PREDICT_DOLOOP_P): New hook.
20556 * doc/tm.texi: Regenerate.
20557 * config/rs6000/rs6000.c (rs6000_predict_doloop_p): New function.
20558 (TARGET_PREDICT_DOLOOP_P): New macro.
20559 * tree-ssa-loop-ivopts.c (generic_predict_doloop_p): New function.
20560
20561 2019-06-17 Jakub Jelinek <jakub@redhat.com>
20562
20563 * omp-low.c (struct omp_context): Add scan_inclusive field.
20564 (scan_omp_1_stmt) <case GIMPLE_OMP_SCAN>: Set ctx->scan_inclusive
20565 if inclusive scan.
20566 (struct omplow_simd_context): Add lastlane member.
20567 (lower_rec_simd_input_clauses): Add rvar argument, handle inscan
20568 reductions. Build 2 or 3 argument .GOMP_SIMD_LANE calls rather than
20569 1 or 2 argument.
20570 (lower_rec_input_clauses): Handle inscan reductions in simd contexts.
20571 (lower_lastprivate_clauses): Set TREE_THIS_NOTRAP on the ARRAY_REF.
20572 (lower_omp_scan): New function.
20573 (lower_omp_1) <case GIMPLE_OMP_SCAN>: Use lower_omp_scan.
20574 * tree-ssa-dce.c (eliminate_unnecessary_stmts): For IFN_GOMP_SIMD_LANE
20575 check 3rd argument if present rather than 2nd.
20576 * tree-vectorizer.h (struct _loop_vec_info): Add scan_map member.
20577 (struct _stmt_vec_info): Change simd_lane_access_p from bool into
20578 2-bit bitfield.
20579 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
20580 scan_map. For IFN_GOMP_SIMD_LANE check 3rd argument if present rather
20581 than 2nd.
20582 (_loop_vec_info::~_loop_vec_info): Delete scan_map.
20583 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Allow two
20584 different STMT_VINFO_SIMD_LANE_ACCESS_P refs if they have the same
20585 init.
20586 (vect_find_stmt_data_reference): Encode in ->aux the 2nd
20587 IFN_GOMP_SIMD_LANE argument.
20588 (vect_analyze_data_refs): Set STMT_VINFO_SIMD_LANE_ACCESS_P from the
20589 encoded ->aux value.
20590 * tree-vect-stmts.c: Include attribs.h.
20591 (vectorizable_call): Adjust comment about IFN_GOMP_SIMD_LANE.
20592 (scan_operand_equal_p, check_scan_store, vectorizable_scan_store): New
20593 functions.
20594 (vectorizable_load): For STMT_VINFO_SIMD_LANE_ACCESS_P tests use != 0.
20595 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P > 1.
20596
20597 2019-06-17 Uroš Bizjak <ubizjak@gmail.com>
20598
20599 PR target/62055
20600 * config/i386/i386.md (*nabstf2_1): New insn pattern.
20601 (*nabs<mode>2_1): Ditto.
20602 (nabs sse-reg splitter): New splitter.
20603 * config/i386/sse.md (*nabs<mode>2): New insn_and_split pattern.
20604
20605 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
20606
20607 PR bootstrap/90873.
20608 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
20609 TMR index check.
20610
20611 2019-06-17 Tom de Vries <tdevries@suse.de>
20612
20613 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Declare.
20614 * config/nvptx/nvptx.c (gen_set_softstack_insn): New function.
20615 * config/nvptx/nvptx.md (define_insn "set_softstack_insn"): Rename to
20616 ...
20617 (define_insn "set_softstack_<mode>"): ... this. Use P iterator on
20618 match_operand 0.
20619 (define_insn "omp_simt_enter_insn"): Rename to ...
20620 (define_insn "omp_simt_enter_<mode>"): ... this. Use P iterator on
20621 match_operand 0, 1 and 2, as well as the unspec_volatile result.
20622 (define_expand "omp_simt_enter): Use gen_omp_simt_enter_di and
20623 gen_omp_simt_enter_si.
20624 (define_expand "omp_simt_exit"): New.
20625 (define_insn "omp_simt_exit"): Rename to ...
20626 (define_insn "omp_simt_exit_<mode>"): ... this. Use P iterator on
20627 match_operand 0.
20628
20629 2019-06-17 Matthew Green <mrg@eterna.com.au>
20630 Maya Rashish <coypu@sdf.org>
20631
20632 * config.gcc (aarch64*-*-netbsd*): New target.
20633 * config/aarch64/aarch64-netbsd.h: New file.
20634 * config/aarch64/t-aarch64-netbsd: Likewise.
20635
20636 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
20637
20638 * tree-ssa-alias.c (aliasing_component_refs_p): Consider only
20639 the access path from base to first VIEW_CONVERT_EXPR or
20640 BIT_FIELD_REF.
20641
20642 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
20643
20644 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Also truncate
20645 access path on BIT_FIELD_REFs.
20646
20647 2019-06-17 Martin Liska <mliska@suse.cz>
20648
20649 PR ipa/90874
20650 * ipa-utils.h (odr_type_p): Remove dead code.
20651
20652 2019-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20653
20654 * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for
20655 alternative Solaris 11.4 format.
20656 * configure: Regenerate.
20657
20658 2019-06-17 Tom de Vries <tdevries@suse.de>
20659
20660 * config/nvptx/nvptx.md (define_insn "call_insn"): Rename to ...
20661 (define_insn "call_insn_<mode>"): ... this. Use P iterator on
20662 match_operand 0.
20663 (define_insn "call_value_insn"): Rename to ...
20664 (define_insn "call_value_insn_<mode>"): this. Use P iterator on
20665 match_operand 0.
20666 (define_insn "nvptx_red_partition"): Set unspec_volatile result mode to
20667 DI.
20668
20669 2019-06-16 John David Anglin <danglin@gcc.gnu.org>
20670
20671 PR middle-end/64242
20672 * config/pa/pa.md (nonlocal_goto): Restore frame pointer last. Add
20673 frame clobbers and schedule block.
20674 (builtin_longjmp): Likewise.
20675
20676 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
20677
20678 * config/msp430/msp430.c (msp430_expand_helper): Setup arguments which
20679 describe how to perform MSPABI compliant 64-bit shift.
20680 * config/msp430/msp430.md (ashldi3): New define_expand.
20681 (ashrdi3): New define_expand.
20682 (lshrdi3): New define_expand.
20683
20684 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
20685
20686 * doc/sourcebuild.texi: Document new effective target keyword
20687 longlong64.
20688
20689 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
20690
20691 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p,
20692 indirect_refs_may_alias_p): Revert accidental commits.
20693
20694 * tree-ssa-alias.c (aliasing_component_refs_p): Watch for arrays
20695 at the end of structures.
20696
20697 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
20698
20699 * config/darwin.c (machopic_indirect_call_target): Use renamed
20700 darwin_picsymbol_stubs to decide on output.
20701 (darwin_override_options): Handle darwin_picsymbol_stubs.
20702 * config/darwin.h (MIN_LD64_OMIT_STUBS): New.
20703 (LD64_VERSION): Revise default.
20704 * config/darwin.opt: (mpic-symbol-stubs): New option.
20705 (darwin_picsymbol_stubs): New variable.
20706 * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS):
20707 rename to TARGET_MACHO_PICSYM_STUBS.
20708 * config/i386/i386.c (output_pic_addr_const): Likewise.
20709 * config/i386/i386.h Likewise.
20710 * config/rs6000/darwin.h: Likewise.
20711 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed
20712 darwin_picsymbol_stubs.
20713
20714 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
20715
20716 * config/darwin.opt (prebind, noprebind, seglinkedit,
20717 noseglinkedit): Add RejectNegative.
20718
20719 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
20720
20721 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Fix pasto
20722 in my previous patch.
20723
20724 2019-06-16 Tom de Vries <tdevries@suse.de>
20725
20726 PR tree-optimization/89376
20727 * tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL.
20728
20729 2019-06-15 Maya Rashish <coypu@sdf.org>
20730
20731 * doc/invoke.texi (Spec Files): Update location of the
20732 Fortran spec file.
20733
20734 2019-06-15 Gerald Pfeifer <gerald@pfeifer.com>
20735
20736 * doc/extend.texi (Common Function Attributes): Clarify
20737 no_sanitize. Fix grammar.
20738
20739 2019-06-15 Jan Hubicka <hubicka@ucw.cz>
20740
20741 * tree-ssa-alias.c (alias_stats): Add
20742 nonoverlapping_component_refs_p_may_alias,
20743 nonoverlapping_component_refs_p_no_alias,
20744 nonoverlapping_component_refs_of_decl_p_may_alias,
20745 nonoverlapping_component_refs_of_decl_p_no_alias.
20746 (dump_alias_stats): Dump them.
20747 (nonoverlapping_component_refs_of_decl_p): Add stats.
20748 (nonoverlapping_component_refs_p): Add stats; do not stop on first
20749 ARRAY_REF.
20750
20751 2019-06-15 Uroš Bizjak <ubizjak@gmail.com>
20752
20753 * config/i386/i386.md (and<mode>3): Generate zero-extends for
20754 TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))
20755 only.
20756 (*anddi3_doubleword): Split before reload. Merge with
20757 anddi->zext pre-reload splitter.
20758 (*andndi3_doubleword): Split before reload.
20759 (*<code>di3_doubleword): Ditto.
20760 (*one_cmpldi2_doubleword): Ditto.
20761
20762 2019-06-15 Jakub Jelinek <jakub@redhat.com>
20763
20764 PR middle-end/90779
20765 * gimplify.c: Include omp-offload.h and context.h.
20766 (gimplify_bind_expr): Add "omp declare target" attributes
20767 to static block scope variables inside of target region or target
20768 functions.
20769
20770 2019-06-15 Tom de Vries <tdevries@suse.de>
20771
20772 PR tree-optimization/90009
20773 * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path):
20774 Return NULL if bb contains IFN_UNIQUE.
20775
20776 2019-06-14 Segher Boessenkool <segher@kernel.crashing.org>
20777
20778 * config/rs6000/rs6000.md (CCEITHER): New define_mode_iterator.
20779 (un): New define_mode_attr.
20780 (isel_signed_<mode>, isel_unsigned_<mode>): Delete, merge into ...
20781 (isel_<un>signed_<GPR:mode>): ... this. New define_insn.
20782 (isel_reversed_signed_<mode>, isel_reversed_unsigned_<mode>): Delete,
20783 merge into ...
20784 (isel_reversed_<un>signed_<GPR:mode>): ... this. New define_insn.
20785
20786 2019-06-14 Iain Sandoe <iain@sandoe.co.uk>
20787
20788 * config/darwin.opt: Add RejectNegative where needed, reorder
20789 and add minimal functional descriptions.
20790
20791 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
20792
20793 PR rtl-optimization/90765
20794 * calls.c (update_stack_alignment_for_call): New function.
20795 (expand_call): Call update_stack_alignment_for_call when
20796 outgoing parameter is passed in the stack.
20797 (emit_library_call_value_1): Likewise.
20798 * function.c (locate_and_pad_parm): Don't update
20799 stack_alignment_needed and preferred_stack_boundary.
20800
20801 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
20802
20803 PR target/90877
20804 * config/i386/i386-features.c
20805 (dimode_scalar_chain::compute_convert_gain): Replace
20806 mmxsse_to_integer with sse_to_integer.
20807 * config/i386/i386.c (ix86_register_move_cost): Verify that
20808 moves between MMX and non-MMX units require secondary memory.
20809 Correct costs of moves between SSE and integer units.
20810 * config/i386/i386.h (processor_costs): Rename cost of moving
20811 SSE register to integer to sse_to_integer. Rename cost of
20812
20813 2019-06-14 Matt Thomas <matt@3am-software.com>
20814 Matthew Green <mrg@eterna.com.au>
20815 Nick Hudson <skrll@netbsd.org>
20816 Maya Rashish <coypu@sdf.org>
20817 Richard Earnshaw <rearnsha@arm.com>
20818
20819 * config.gcc (arm*-*-netbsdelf*) Add support for EABI configuration.
20820 * config.host (arm*-*-netbsd*): Use driver-arm.o on native NetBSD.
20821 * config/arm/netbsd-eabi.h: New file.
20822 * config/arm/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Undefine before
20823 redefining.
20824 (SUBTARGET_EXTRA_ASM_SPEC): Don't pass -matpcs to the assembler.
20825 * config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): New define.
20826 (NETBSD_SUBTARGET_EXTRA_SPECS): New define.
20827 (SUBTARGET_EXTRA_SPECS): Define to NETBSD_SUBTARGET_EXTRA_SPECS.
20828
20829 2019-06-14 Richard Biener <rguenther@suse.de>
20830
20831 * tree-loop-distribution.c (classify_partition): Return
20832 whether a reduction appeared in all partitions and do not
20833 stop builtin detection because of this.
20834 (distribute_loop): Sort a non-builtin partition last if
20835 there's a reduction in all partitions and make sure the
20836 partition prevailing as last is not a builtin.
20837
20838 2019-06-14 Feng Xue <fxue@os.amperecomputing.com>
20839
20840 PR ipa/90401
20841 * ipa-prop.c (add_to_agg_contents_list): New function.
20842 (clobber_by_agg_contents_list_p): Likewise.
20843 (extract_mem_content): Likewise.
20844 (get_place_in_agg_contents_list): Delete.
20845 (determine_known_aggregate_parts): Renamed from
20846 determine_locally_known_aggregate_parts. New parameter
20847 aa_walk_budget_p.
20848
20849 2019-06-13 Martin Sebor <msebor@redhat.com>
20850
20851 PR tree-optimization/90662
20852 * tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands
20853 to the same type.
20854
20855 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
20856
20857 PR bootstrap/90873
20858 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Also check that
20859 dbase is not TARGET_MEM_REF.
20860
20861 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
20862
20863 * config/i386/i386.md (SWIM1248s): Rename from SWIM1248x.
20864 Update all uses.
20865 (and<mode>3): Use gen_extend_insn instead of indirect functions.
20866 Do not generate DImode extends for 32bit targets.
20867 (and->zext post-reload splitter): Use gen_extend_insn
20868 instead of indirect functions.
20869 (anddi->zext pre-reload splitter): New.
20870 (*zext<mode>_doubleword_and): Remove.
20871 (*zext<mode>_doubleword): Ditto.
20872 (*zextsi_doubleword): Dittto.
20873
20874 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
20875
20876 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
20877 Use gen_sub3_insn instead of indirect function.
20878 (ix86_expand_ashl_const): Use gen_add2_insn instead of
20879 indirect function.
20880 (ix86_adjust_counter): Ditto.
20881
20882 2019-06-13 Jiufu Guo <guojiufu@linux.ibm.com>
20883 Lijia He <helijia@linux.ibm.com>
20884
20885 PR tree-optimization/77820
20886 * tree-ssa-threadedge.c
20887 (edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): New
20888 function.
20889 (thread_across_edge): Add call to
20890 edge_forwards_cmp_to_conditional_jump_through_empty_bb_p.
20891
20892 2019-06-13 Iain Sandoe <iain@sandoe.co.uk>
20893
20894 * config/darwin-driver.c (validate_macosx_version_min): New.
20895 (darwin_default_min_version): Cleanup and validate supplied version.
20896 (darwin_driver_init): Likewise and push cleaned version into opts.
20897
20898 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
20899
20900 PR tree-optimization/90869
20901 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Watch for view
20902 converts in MEM_REF referencing decl rather than view converts
20903 from decl type to MEM_REF type.
20904
20905 2019-06-13 Richard Biener <rguenther@suse.de>
20906
20907 PR tree-optimization/90856
20908 * tree-sra.c (build_ref_for_model): Only use
20909 build_reconstructed_reference when address-spaces are the same.
20910
20911 2019-06-13 Jakub Jelinek <jakub@redhat.com>
20912
20913 * config/nvptx/nvptx.c (nvptx_sese_number, nvptx_sese_pseudo): Don't
20914 wrap ei variable name in the declaration in ()s.
20915 (nvptx_single): Actually use mode_label variable. Formatting fix.
20916
20917 2019-06-13 Richard Biener <rguenther@suse.de>
20918
20919 * tree-vectorizer.h (vect_loop_vectorized_call): Declare.
20920 * tree-vectorizer.c (vect_loop_vectorized_call): Export and
20921 also return the condition stmt.
20922 * tree-vect-loop-manip.c (vect_loop_versioning): Compute outermost
20923 loop we can version and version that, reusing the loop version
20924 created by if-conversion instead of versioning again.
20925
20926 2019-06-13 Aldy Hernandez <aldyh@redhat.com>
20927
20928 * gimple-loop-versioning.cc (prune_loop_conditions): Use
20929 may_contain_p.
20930 * tree-vrp (value_range_base::may_contain_p): Call into
20931 value_inside_range.
20932 (value_inside_range): Make private inside value_range_base class.
20933 Take min/max from *this.
20934 (range_includes_p): Remove.
20935 * tree-vrp.h (value_range_base): Add value_inside_range.
20936 (range_includes_p): Remove.
20937 (range_includes_zero_p): Call may_contain_p.
20938 * vr-values.c (compare_range_with_value): Same.
20939
20940 2019-06-13 Claudiu Zissulescu <claziss@synopsys.com>
20941
20942 * doc/extend.texi (ARC Function Attributes): Update info.
20943
20944 2019-06-13 Feng Xue <fxue@os.amperecomputing.com>
20945
20946 PR tree-optimization/89713
20947 * doc/invoke.texi (-ffinite-loops): Document new option.
20948 * common.opt (-ffinite-loops): New option.
20949 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark
20950 IFN_GOACC_LOOP calls as necessary.
20951 * tree-ssa-loop-niter.c (finite_loop_p): Assume loop with an exit
20952 is finite.
20953 * omp-offload.c (oacc_xform_loop): Skip lowering if return value of
20954 IFN_GOACC_LOOP call is not used.
20955 * opts.c (default_options_table): Enable -ffinite-loops at -O2+.
20956
20957 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
20958
20959 PR target/88838
20960 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): If the
20961 compare_type is not with Pmode size, we will create an IV with
20962 Pmode size with truncated use (i.e. converted to the correct type).
20963 * tree-vect-loop.c (vect_verify_full_masking): Find IV type.
20964 (vect_iv_limit_for_full_masking): New. Factored out of
20965 vect_set_loop_condition_masked.
20966 * tree-vectorizer.h (LOOP_VINFO_MASK_IV_TYPE): New.
20967 (vect_iv_limit_for_full_masking): Declare.
20968
20969 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
20970
20971 PR target/88834
20972 * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle
20973 IFN_MASK_LOAD_LANES and IFN_MASK_STORE_LANES.
20974 (get_alias_ptr_type_for_ptr_address): Likewise.
20975 (add_iv_candidate_for_use): Add scaled index candidate if useful.
20976 * tree-ssa-address.c (preferred_mem_scale_factor): New.
20977 * config/aarch64/aarch64.c (aarch64_classify_address): Relax
20978 allow_reg_index_p.
20979
20980 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
20981
20982 * config/aarch64/iterators.md (ADDSUB): Fix typo in comment.
20983
20984 2019-06-12 Dimitar Dimitrov <dimitar@dinux.eu>
20985
20986 * common/config/pru/pru-common.c: New file.
20987 * config.gcc: Add PRU target.
20988 * config/pru/alu-zext.md: New file.
20989 * config/pru/constraints.md: New file.
20990 * config/pru/predicates.md: New file.
20991 * config/pru/pru-opts.h: New file.
20992 * config/pru/pru-passes.c: New file.
20993 * config/pru/pru-pragma.c: New file.
20994 * config/pru/pru-protos.h: New file.
20995 * config/pru/pru.c: New file.
20996 * config/pru/pru.h: New file.
20997 * config/pru/pru.md: New file.
20998 * config/pru/pru.opt: New file.
20999 * config/pru/t-pru: New file.
21000 * doc/extend.texi: Document PRU pragmas.
21001 * doc/invoke.texi: Document PRU-specific options.
21002 * doc/md.texi: Document PRU asm constraints.
21003
21004 2019-06-12 Martin Sebor <msebor@redhat.com>
21005
21006 PR middle-end/90676
21007 * tree-pretty-print.c (dump_mem_ref): New function. Include
21008 MEM_REF type in output when different size than operand.
21009 (dump_generic_node): Move code to dump_mem_ref and call it.
21010
21011 2019-06-12 Martin Sebor <msebor@redhat.com>
21012
21013 PR tree-optimization/90662
21014 * tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers
21015 to arrays.
21016
21017 2019-06-12 Tom de Vries <tdevries@suse.de>
21018
21019 PR tree-optimization/90009
21020 * config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join.
21021
21022 2019-06-12 Martin Liska <mliska@suse.cz>
21023
21024 * ggc-common.c (ggc_prune_overhead_list): Do not sanitize
21025 the created map.
21026 * hash-map.h: Add sanitize_eq_and_hash into ::hash_map.
21027 * mem-stats.h (mem_alloc_description::mem_alloc_description):
21028 Do not sanitize created maps.
21029
21030 2019-06-12 Aldy Hernandez <aldyh@redhat.com>
21031
21032 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Use
21033 value_range::singleton_p.
21034 * tree-vrp.c (value_range_constant_singleton): Remove.
21035 * tree-vrp.h (value_range_constant_singleton): Remove.
21036 * vr-values.c (vr_values::singleton): Use
21037 value_range::singleton_p.
21038
21039 2019-06-12 Jakub Jelinek <jakub@redhat.com>
21040
21041 PR target/90811
21042 * cfgexpand.c (align_local_variable): Add really_expand argument,
21043 don't SET_DECL_ALIGN if it is false.
21044 (add_stack_var): Add really_expand argument, pass it through to
21045 align_local_variable.
21046 (expand_one_stack_var_1): Pass true as really_expand to
21047 align_local_variable.
21048 (expand_one_ssa_partition): Pass true as really_expand to
21049 add_stack_var.
21050 (expand_one_var): Pass really_expand through to add_stack_var.
21051
21052 2019-06-12 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
21053
21054 * config/arm/iterators.md (VABAL): New int iterator.
21055 * config/arm/neon.md (<sup>sadv16qi): New define_expand.
21056 * config/arm/unspecs.md ("unspec"): Define UNSPEC_VABAL_S,
21057 UNSPEC_VABAL_U values.
21058
21059 2019-06-12 Martin Liska <mliska@suse.cz>
21060
21061 * value-prof.c (stream_out_histogram_value): Only first value
21062 can't be negative.
21063
21064 2019-06-12 Jakub Jelinek <jakub@redhat.com>
21065
21066 PR c/90760
21067 * symtab.c (symtab_node::set_section): Allow being called on aliases
21068 as long as they aren't analyzed yet.
21069
21070 2019-06-11 Faraz Shahbazker <fshahbazker@wavecomp.com>
21071
21072 * config/mips/mips.c (mips_final_postscan_insn): Modify call
21073 to `mips_set_text_contents_type' to indicate whether a
21074 non-debug insn follows.
21075
21076 2019-06-11 Michael Meissner <meissner@linux.ibm.com>
21077
21078 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Delete
21079 enabling -mpcrel by default.
21080 * config/rs6000/rs6000.c (rs6000_option_override_internal): Update
21081 test for -mpcrel and/or -mprefixed-addr needing -mcpu=future, so
21082 that the test against -mcpu=future is done first. Then test if
21083 -mprefixed-addr is on for -mpcrel.
21084 (rs6000_disable_incompatible_switches): Add -mcpu=future support.
21085
21086 2019-06-11 Jakub Jelinek <jakub@redhat.com>
21087
21088 PR target/90811
21089 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
21090 instead of and.u%d.
21091
21092 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
21093
21094 * match.pd (X/[ex]4<Y/[ex]4): Handle conversions.
21095
21096 2019-06-11 Matthew Beliveau <mbelivea@redhat.com>
21097
21098 PR c++/90449 - add -Winaccessible-base option.
21099 * doc/invoke.texi (Winaccessible-base): Document.
21100
21101 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
21102
21103 PR tree-optimization/62041
21104 * fold-const.c (fold_real_zero_addition_p): Handle vectors.
21105
21106 2019-06-11 Jason Merrill <jason@redhat.com>
21107
21108 * gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory.
21109 * tree.c (get_tree_code_name): Likewise.
21110 * print-tree.c (print_node): Only briefly print a node with an
21111 invalid code.
21112
21113 2019-06-11 Jakub Jelinek <jakub@redhat.com>
21114
21115 PR bootstrap/90819
21116 * trans-mem.c (tm_memopt_compute_available): Add assertion
21117 that blocks is not empty. Formatting fix.
21118
21119 2019-06-11 Martin Liska <mliska@suse.cz>
21120
21121 PR c++/87847
21122 * hash-table.h: Extend create_gcc, add one parameter
21123 that is passed into hash_table::hash_table.
21124
21125 2019-06-10 Uroš Bizjak <ubizjak@gmail.com>
21126
21127 * config/i386/i386-protos.h (ix86_split_fp_absneg_operator):
21128 New prototype.
21129 * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator):
21130 Emit clobber also for non-sse operations.
21131 (ix86_split_fp_absneg_operator): New function.
21132 * config/i386/i386.md (SSEMODEF): New mode iterator.
21133 (ssevecmodef): New mode attribute.
21134 (<code>tf2): Use absneg code iterator.
21135 (*<code>tf2_1): Rename from *absnegtf3_sse. Use absneg code iterator.
21136 Add three-operand AVX alternatives.
21137 (*<code><mode>2_i387_1): Rename from *absnegxf2_i387.
21138 Use absneg code iterator and X87MODEF mode iterator.
21139 (absneg fp_reg non-sse splitter): Call absneg code iterator
21140 and X87MODEF mode iterator.
21141 (absneg general_reg non-sse splitter): Use absneg code iterator
21142 and X87MODEF mode iterator. Use ix86_split_fp_absneg_operator.
21143 (*<code><mode>2_1): Rename from *absneg<mode>2. Use absneg
21144 code iterator. Add three-operand AVX alternative.
21145 (absneg sse_reg splitter): Use absneg code iterator
21146 and SSEMODEF mode iterator. Handle AVX operands.
21147 (absneg fp_reg splitter): Use absneg code iterator
21148 and MODEF mode iterator.
21149 (absneg general_reg splitter): Merge splitters using MODEF mode
21150 iterator. Use absneg code iterator. Call
21151 ix86_split_fp_absneg_operator.
21152 (*<code><mode>2_i387): Rename from *<code><mode>2_1.
21153 Do not enable for non-sse modes before reload.
21154 (CSGNMODE): Remove.
21155 (CSGNVMODE): Ditto.
21156 (copysing<mode>3): Use SSEMODEF instead of CSGNMODE and
21157 ssevecmodef mode attribute instaed of CSGNVMODE.
21158 (copysign<mode>3_const): Ditto.
21159 (copysign<mode>3_var): Ditto.
21160 * config/i386/i386.md (*<code><mode>2): Rename from *absneg<mode>2.
21161 Use absneg code iterator. Simplify code using std::swap.
21162 * config/i386/predicates.md (absneg_operator): Remove.
21163
21164 2019-06-10 Martin Sebor <msebor@redhat.com>
21165
21166 * gimple-fold.c (get_range_strlen): Update comment that didn't
21167 make it into r267503 or related commits.
21168
21169 2019-06-10 Vladislav Ivanishin <vlad@ispras.ru>
21170
21171 * gcov-tool.c (merge_usage, rewrite_usage): Mark with
21172 ATTRIBUTE_NORETURN thus making consistent with overlap_usage.
21173
21174 2019-06-10 Jakub Jelinek <jakub@redhat.com>
21175
21176 * tree.def (OMP_SCAN): New tree code.
21177 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INCLUSIVE and
21178 OMP_CLAUSE_EXCLUSIVE.
21179 * tree.h (OMP_CLAUSES): Use OMP_SCAN instead of OMP_TASKGROUP.
21180 (OMP_SCAN_BODY, OMP_SCAN_CLAUSES): Define.
21181 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries for
21182 OMP_CLAUSE_{IN,EX}CLUSIVE.
21183 (walk_tree_1): Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
21184 * tree-nested.c (convert_nonlocal_reference_stmt,
21185 convert_local_reference_stmt, convert_gimple_call): Handle
21186 GIMPLE_OMP_SCAN.
21187 * tree-pretty-print.c (dump_omp_clause): Handle
21188 OMP_CLAUSE_{IN,EX}CLUSIVE.
21189 (dump_generic_node): Handle OMP_SCAN.
21190 * gimple.def (GIMPLE_OMP_SCAN): New gimple code.
21191 * gimple.h (gomp_scan): New type.
21192 (is_a_helper <gomp_scan *>::test,
21193 is_a_helper <const gomp_scan *>::test): New templates.
21194 (gimple_build_omp_scan): Declare.
21195 (gimple_omp_scan_clauses, gimple_omp_scan_clauses_ptr,
21196 gimple_omp_scan_set_clauses): New inline functions.
21197 (CASE_GIMPLE_OMP): Add case GIMPLE_OMP_SCAN:.
21198 * gimple.c (gimple_build_omp_scan): New function.
21199 (gimple_copy): Handle GIMPLE_OMP_SCAN.
21200 * gimple-walk.c (walk_gimple_op, walk_gimple_stmt): Likewise.
21201 * gimple-pretty-print.c (dump_gimple_omp_block): Don't handle
21202 GIMPLE_OMP_TASKGROUP.
21203 (dump_gimple_omp_scan): New function.
21204 (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCAN.
21205 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_SCAN.
21206 * tree-inline.c (remap_gimple_stmt, estimate_num_insns): Likewise.
21207 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_REDUCTION_INSCAN.
21208 (is_gimple_stmt): Handle OMP_SCAN.
21209 (gimplify_scan_omp_clauses): Reject inscan reductions on constructs
21210 other than OMP_FOR or OMP_SIMD. Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
21211 (gimplify_adjust_omp_clauses): Diagnose inscan reductions not
21212 mentioned in nested #pragma omp scan. Handle
21213 OMP_CLAUSE_{IN,EX}CLUSIVE.
21214 (gimplify_expr): Handle OMP_SCAN.
21215 * omp-low.c (check_omp_nesting_restrictions): For parent context,
21216 look through GIMPLE_OMP_SCAN context. Allow #pragma omp scan in
21217 simd constructs.
21218 (scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle
21219 GIMPLE_OMP_SCAN.
21220
21221 2019-06-10 Martin Liska <mliska@suse.cz>
21222
21223 * ipa-cp.c (ignore_edge_p): New function.
21224 (build_toporder_info): Use it.
21225 * ipa-inline.c (ignore_edge_p): New function.
21226 (inline_small_functions): Use it.
21227 * ipa-pure-const.c (ignore_edge_for_nothrow):
21228 Verify opt_for_fn for caller and callee.
21229 (ignore_edge_for_pure_const): Likewise.
21230 * ipa-reference.c (ignore_edge_p): Extend to check
21231 for opt_for_fn.
21232 * ipa-utils.c (searchc): Refactor.
21233 * ipa-utils.h: Fix coding style.
21234
21235 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
21236
21237 * config/arc/arc.c (arc_rtx_costs): Update costs.
21238
21239 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
21240
21241 * config/arc/arc-protos.h (arc_check_ior_const): Declare.
21242 (arc_split_ior): Likewise.
21243 (arc_check_mov_const): Likewise.
21244 (arc_split_mov_const): Likewise.
21245 * config/arc/arc.c (arc_print_operand): Fix 'z' letter.
21246 (arc_rtx_costs): Replace check Crr with Cax constraint.
21247 (prepare_move_operands): Cleanup, remove unused code.
21248 (arc_split_ior): New function.
21249 (arc_check_ior_const): Likewise.
21250 (arc_split_mov_const): Likewise.
21251 (arc_check_mov_const): Likewise.
21252 * config/arc/arc.md (movsi_insn): Restructure it, and convert it
21253 in define_insn_and_split pattern.
21254 (iorsi3): Likewise.
21255 (mulsi3_v2): Add new matching variant.
21256 (andsi3_i): Cleanup pattern.
21257 (rotrsi3_cnt1): Update pattern.
21258 (rotrsi3_cnt8): New pattern.
21259 (ashlsi2_cnt8): Likewise.
21260 (ashlsi2_cnt16): Likewise.
21261 * config/arc/constraints.md (C0p): Update constraint.
21262 (Crr): Remove it.
21263 (C0x): New pattern.
21264 (Cax): New pattern.
21265
21266 2019-06-10 Martin Liska <mliska@suse.cz>
21267
21268 * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes):
21269 Update coding style.
21270 (sem_item_optimizer::dump_cong_classes):
21271 Print how many items are in a non-singular class. Improve
21272 coding style.
21273
21274 2019-06-10 Martin Liska <mliska@suse.cz>
21275
21276 * value-prof.c (dump_histogram_value): Change dump format.
21277 (gimple_mod_subtract_transform): Remove legacy comment.
21278
21279 2019-06-10 Martin Liska <mliska@suse.cz>
21280
21281 * value-prof.c (dump_histogram_value): Print histogram values
21282 only if present.
21283
21284 2019-06-10 Martin Liska <mliska@suse.cz>
21285
21286 * gcov-io.h (GCOV_DISK_SINGLE_VALUES): New.
21287 (GCOV_SINGLE_VALUE_COUNTERS): Likewise.
21288 * ipa-profile.c (ipa_profile_generate_summary):
21289 Use get_most_common_single_value.
21290 * tree-profile.c (gimple_init_gcov_profiler):
21291 Instrument with __gcov_one_value_profiler_v2
21292 and __gcov_indirect_call_profiler_v4.
21293 * value-prof.c (dump_histogram_value):
21294 Print all values for HIST_TYPE_SINGLE_VALUE.
21295 (stream_out_histogram_value): Update assert for
21296 N values.
21297 (stream_in_histogram_value): Set number of
21298 counters for HIST_TYPE_SINGLE_VALUE.
21299 (get_most_common_single_value): New.
21300 (gimple_divmod_fixed_value_transform):
21301 Use get_most_common_single_value.
21302 (gimple_ic_transform): Likewise.
21303 (gimple_stringops_transform): Likewise.
21304 (gimple_find_values_to_profile): Set number
21305 of counters for HIST_TYPE_SINGLE_VALUE.
21306 * value-prof.h (get_most_common_single_value): New.
21307
21308 2019-06-10 Martin Liska <mliska@suse.cz>
21309
21310 * hash-map.h: Pass default value to hash_table ctor.
21311 * hash-table.h: Add default value to call of a ctor.
21312
21313 2019-06-08 Jonathan Wakely <jwakely@redhat.com>
21314
21315 * doc/invoke.texi (C Dialect Options): Minor grammatical change.
21316 (x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL"
21317
21318 2019-06-07 John David Anglin <danglin@gcc.gnu.orig>
21319
21320 PR target/90751
21321 * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
21322 Call pa_output_function_label.
21323 (TARGET_ASM_FUNCTION_PROLOGUE): define.
21324 * config/pa/pa-protos.h (pa_output_function_label): Declare.
21325 * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
21326 to declaration.
21327 (pa_linux_output_function_prologue): Declare.
21328 (TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
21329 (pa_output_function_label): New.
21330 (pa_output_function_prologue): Revise to use pa_output_function_label.
21331 (pa_linux_output_function_prologue): New.
21332 * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.
21333
21334 2019-06-07 Aldy Hernandez <aldyh@redhat.com>
21335
21336 * tree-vrp.h (value_range_base::intersect): New.
21337 (value_range::intersect_helper): Move from here...
21338 (value_range_base::intersect_helper): ...to here.
21339 * tree-vrp.c (value_range::intersect_helper): Rename to...
21340 (value_range_base::intersect_helper): ...this, and rewrite to
21341 return a value instead of modifying THIS in place.
21342 Also, move equivalence handling...
21343 (value_range::intersect): ...here, while calling intersect_helper.
21344 * gimple-fold.c (size_must_be_zero_p): Use value_range_base when
21345 calling intersect.
21346 * gimple-ssa-evrp-analyze.c (ecord_ranges_from_incoming_edge):
21347 Same.
21348 * vr-values.c (vrp_evaluate_conditional_warnv_with_ops): Same.
21349
21350 2019-06-07 Jakub Jelinek <jakub@redhat.com>
21351
21352 * Makefile.in (genprogerr): Add condmd.
21353 (genprog): Remove it here.
21354
21355 2019-06-07 Andrew Stubbs <ams@codesourcery.com>
21356
21357 * doc/invoke.texi (AMD GCN Options): Add gfx906.
21358
21359 2019-06-07 Richard Biener <rguenther@suse.de>
21360
21361 PR debug/90574
21362 * tree-cfg.c (stmt_starts_bb_p): Split blocks at labels
21363 that appear after user labels.
21364
21365 2019-06-07 Martin Liska <mliska@suse.cz>
21366
21367 * cselib.c (cselib_init): Disable hash table
21368 sanitization.
21369 * hash-set.h: Pass new default argument to m_table.
21370 * hash-table.c: Add global variable with hash table
21371 sanitization limit.
21372 * hash-table.h (Allocator>::hash_table): Add new argument
21373 to ctor.
21374 (hashtab_chk_error): New.
21375 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New.
21376 * toplev.c (process_options): Set hash_table_sanitize_eq_limit
21377 from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value.
21378
21379 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
21380
21381 * common.opt (flto-odr-type-merging): Ignore.
21382 * invoke.texi (-flto-odr-type-merging): Remove.
21383 * ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove.
21384 (can_be_vtable_hashed_p): Remove.
21385 (hash_odr_vtable): Remove.
21386 (odr_vtable_hasher::hash): Remove.
21387 (types_same_for_odr): Remove.
21388 (types_odr_comparable): Remove.
21389 (odr_vtable_hasher::equal): Remove.
21390 (odr_vtable_hash_type, odr_vtable_hash): Remove.
21391 (add_type_duplicate): Do not synchronize vtable and name hashtables.
21392 (get_odr_type): Do not use vtable hash.
21393 (dump_odr_type): Remove commented out code.
21394 (build_type_inheritance_graph): Do not allocate vtable hash.
21395 (rebuild_type_inheritance_graph): Do not delete vtable hash.
21396 * ipa-utils.h (type_with_linkage_p): Drop vtable hash path.
21397 (odr_type_p): Likewise.
21398 * tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering
21399 test.
21400
21401 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
21402
21403 * tree-ssa-alias.c (aliasing_component_refs_p): Do not give up
21404 immediately after same_types_for_tbaa_p returns -1 and continue
21405 looking for possible exact match; if matching types are arrays
21406 watch for partial overlaps.
21407 (indirect_ref_may_alias_decl_p): Watch for partial array overlaps.
21408 (indirect_refs_may_alias_p): Do type based disambiguation first;
21409 update comment.
21410
21411 2019-06-07 Richard Sandiford <richard.sandiford@arm.com>
21412
21413 * fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p.
21414
21415 2019-06-07 Martin Liska <mliska@suse.cz>
21416
21417 * doc/invoke.texi: Remove param.
21418 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV):
21419 Remove.
21420 * gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise.
21421 (GCOV_ICALL_TOPN_NCOUNTS): Likewise.
21422 * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
21423 * profile.c (instrument_values): Remove
21424 HIST_TYPE_INDIR_CALL_TOPN.
21425 * tree-profile.c (init_ic_make_global_vars):
21426 Always build __gcov_indirect_call only.
21427 (gimple_init_gcov_profiler): Remove usage
21428 of PARAM_INDIR_CALL_TOPN_PROFILE.
21429 (gimple_gen_ic_profiler): Likewise.
21430 * value-prof.c (dump_histogram_value): Likewise.
21431 (stream_in_histogram_value): Likewise.
21432 (gimple_indirect_call_to_profile): Likewise.
21433 (gimple_find_values_to_profile): Likewise.
21434 * value-prof.h (enum hist_type): Likewise.
21435
21436 2019-06-07 Martin Liska <mliska@suse.cz>
21437
21438 * tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the
21439 function.
21440
21441 2019-06-07 Martin Liska <mliska@suse.cz>
21442
21443 PR tree-optimization/78902
21444 * builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New.
21445 (ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove.
21446 (ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
21447 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
21448 (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove.
21449 (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove.
21450 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New.
21451 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New.
21452 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
21453 (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove.
21454 (ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
21455 (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Remove.
21456 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST):
21457 New.
21458 (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove.
21459 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New.
21460 (ATTR_MALLOC_NOTHROW_NONNULL): Remove.
21461 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
21462 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
21463 (ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove.
21464 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
21465 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
21466 * builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use
21467 warn_unused_result attribute.
21468 (BUILT_IN_STRDUP): Likewise.
21469 (BUILT_IN_STRNDUP): Likewise.
21470 (BUILT_IN_ALLOCA): Likewise.
21471 (BUILT_IN_CALLOC): Likewise.
21472 (BUILT_IN_MALLOC): Likewise.
21473 (BUILT_IN_REALLOC): Likewise.
21474
21475 2019-06-06 Jim Wilson <jimw@sifive.com>
21476
21477 PR target/89955
21478 * config/riscv/riscv.h (STARTFILE_PREFIX_SPEC): Deleted.
21479 * config/riscv/freebsd.h (STARTFILE_PREFIX_SPEC): Added.
21480 * config/riscv/linux.h (STARTFILE_PREFIX_SPEC): Added.
21481
21482 2019-06-06 Martin Sebor <msebor@redhat.com>
21483
21484 * tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article.
21485 (handle_builtin_malloc): Remove trailing spaces.
21486 (handle_builtin_memset): Same.
21487 (handle_builtin_memcmp): Same.
21488 (compute_string_length): Same.
21489 (determine_min_objsize): Same.
21490 (handle_builtin_string_cmp): Same.
21491 (handle_char_store): Same. Break up excessively long line.
21492
21493 2019-06-06 Martin Jambor <mjambor@suse.cz>
21494
21495 * tree-sra.c (build_reconstructed_reference): Drop the alignment
21496 check.
21497
21498 2019-06-06 Martin Jambor <mjambor@suse.cz>
21499
21500 * tree-sra.c (struct access): New field grp_same_access_path.
21501 (dump_access): Dump it.
21502 (build_reconstructed_reference): New function.
21503 (build_ref_for_model): Use it if possible.
21504 (path_comparable_for_same_access): New function.
21505 (same_access_path_p): Likewise.
21506 (sort_and_splice_var_accesses): Set the new flag.
21507 (analyze_access_subtree): Likewise.
21508 (propagate_subaccesses_across_link): Propagate zero value of the new
21509 flag down the access tree.
21510
21511 2019-06-06 Andrew Stubbs <ams@codesourcery.com>
21512
21513 * config.gcc (amdgcn-*-*): Allow --with-arch=gfx906.
21514 * config/gcn/gcn.opt (gpu_type): Add gfx906.
21515 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add gfx906 multilib.
21516 (MULTILIB_DIRNAMES): Rename gcn5 to gfx900.
21517 Add gfx906.
21518
21519 2019-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21520
21521 PR tree-optimization/90332
21522 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
21523 Handle VALS containing two vectors.
21524 * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Rename
21525 to...
21526 (@aarch64_combinez<mode>): ... This.
21527 (*aarch64_combinez_be<mode>): Rename to...
21528 (@aarch64_combinez_be<mode>): ... This.
21529 (vec_init<mode><Vhalf>): New define_expand.
21530 * config/aarch64/iterators.md (Vhalf): Handle V8HF.
21531
21532 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
21533
21534 * config/msp430/msp430.md (ashlhi3): Use the const_variant of shift
21535 library functions only when not optimizing for size.
21536 (ashlsi3): Likewise.
21537 (ashrhi3): Likewise.
21538 (ashrsi3): Likewise.
21539 (lshrhi3): Likewise.
21540 (lshrsi3): Likewise.
21541
21542 2019-06-06 Andreas Krebbel <krebbel@linux.ibm.com>
21543
21544 PR rtl-optimization/88751
21545 * ira.c (ira): Use the number of the actually referenced registers
21546 when calculating the threshold.
21547
21548 2019-06-06 Jakub Jelinek <jakub@redhat.com>
21549
21550 * configure: Regenerate.
21551
21552 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
21553
21554 * config/msp430/msp430.md (ashlhi3): Force shift src operand into a
21555 register if it is in memory, so the shift can be emulated with a rotate
21556 instruction.
21557 (ashrhi3): Likewise.
21558 (lshrhi3): Likewise.
21559
21560 2019-06-06 Martin Liska <mliska@suse.cz>
21561
21562 PR tree-optimization/87954
21563 * match.pd: Simplify mult where both arguments are 0 or 1.
21564
21565 2019-06-06 Richard Biener <rguenther@suse.de>
21566
21567 * vr-values.c (vr_values::extract_range_from_ssa_name): Do not
21568 put equivalences on UNDEFINED ranges.
21569 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
21570 Make sure to drop defs of stmts added during simplification
21571 to VARYING.
21572
21573 2019-06-06 Richard Biener <rguenther@suse.de>
21574
21575 * tree-ssa-structalias.c: Include tree-cfg.h.
21576 (make_heapvar): Do not make heap vars artificial.
21577 (find_func_aliases_for_builtin_call): Handle stack allocation
21578 functions.
21579 (find_func_aliases): Delay processing of simple enough returns
21580 in non-IPA mode.
21581 (set_uids_in_ptset): Adjust.
21582 (find_what_var_points_to): Likewise.
21583 (solve_constraints): Do not dump points-to sets here.
21584 (compute_points_to_sets): Post-process return statements,
21585 amending the escaped solution. Dump points-to sets afterwards.
21586 (ipa_pta_execute): Dump points-to sets.
21587
21588 2019-06-06 Martin Liska <mliska@suse.cz>
21589
21590 PR web/87933
21591 * doc/install.texi: Fix HTML headers and
21592 titles for 'Installing GCC' pages.
21593
21594 2019-06-06 Martin Liska <mliska@suse.cz>
21595
21596 * ipa-icf-gimple.h (dump_message_1): Remove.
21597 (dump_message): Likewise.
21598 (return_false_with_message_1): Print also file.
21599 (return_false_with_msg): Likewise.
21600 (return_with_result): Likewise.
21601 (return_with_debug): Likewise.
21602 * ipa-icf.c (sem_function::equals_private): Remove call
21603 to dump_message.
21604
21605 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
21606
21607 * config/i386/sse.md (define_mode_suffix vecmemsuffix): New.
21608 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Enable
21609 memory operand for it.
21610 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>"): Ditto.
21611
21612 2019-06-05 Martin Sebor <msebor@redhat.com>
21613
21614 * config/i386/i386-features.c (ix86_get_function_versions_dispatcher):
21615 Adjust quoting and hyphenation.
21616 * convert.c (convert_to_real_1): Same.
21617 * gcc.c (driver_wrong_lang_callback): Same.
21618 (driver::handle_unrecognized_options): Same.
21619 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
21620 * opts-common.c (cmdline_handle_error): Same.
21621 (read_cmdline_option): Same.
21622 * opts-global.c (complain_wrong_lang): Same.
21623 (print_ignored_options): Same.
21624 (handle_common_deferred_options): Same.
21625 * pretty-print.h: Same.
21626 * print-rtl.c (debug_bb_n_slim): Same.
21627 * sched-rgn.c (make_pass_sched_fusion): Same.
21628 * tree-cfg.c (verify_gimple_assign_unary): Same.
21629 (verify_gimple_label): Same.
21630 * tree-ssa-operands.c (verify_ssa_operands): Same.
21631 * varasm.c (do_assemble_alias): Same.
21632 (assemble_alias): Same.
21633
21634 2019-06-05 Richard Henderson <rth@twiddle.net>
21635
21636 * config/alpha/alpha.c (direct_return): Move down after
21637 struct machine_function definition; use saved frame_size;
21638 return bool.
21639 (struct machine_function): Add sa_mask, sa_size, frame_size.
21640 (alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ...
21641 (alpha_compute_frame_layout): ... new function.
21642 (TARGET_COMPUTE_FRAME_LAYOUT): New.
21643 (alpha_initial_elimination_offset): Use saved sa_size.
21644 (alpha_vms_initial_elimination_offset): Likewise.
21645 (alpha_vms_can_eliminate): Remove alpha_sa_size call.
21646 (alpha_expand_prologue): Use saved frame data. Merge integer
21647 and fp register save loops.
21648 (alpha_expand_epilogue): Likewise.
21649 (alpha_start_function): Use saved frame data.
21650 * config/alpha/alpha-protos.h (direct_return): Update.
21651 (alpha_sa_size): Remove.
21652
21653 2019-06-05 Eric Botcazou <ebotcazou@adacore.com>
21654
21655 * fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a
21656 multiplication by a power-of-two value.
21657 (fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value
21658 and turn the modulo operation into a masking operation.
21659
21660 2019-06-05 Jakub Jelinek <jakub@redhat.com>
21661
21662 PR debug/90733
21663 * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
21664 with VOIDmode inner operands.
21665
21666 2019-06-05 Richard Biener <rguenther@suse.de>
21667
21668 PR middle-end/90726
21669 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
21670 turn an expression graph into a tree.
21671
21672 2019-06-05 Jakub Jelinek <jakub@redhat.com>
21673
21674 * omp-expand.c (struct omp_region): Add has_lastprivate_conditional
21675 member.
21676 (expand_parallel_call): If region->inner->has_lastprivate_conditional,
21677 treat it like explicit monotonic schedule modifier.
21678 (expand_omp_for): Initialize has_lastprivate_conditional.
21679 If fd.lastprivate_conditional != 0, treat it like explicit monotonic
21680 schedule modifier.
21681
21682 * omp-low.c (lower_rec_input_clauses): For lastprivate conditional
21683 references, lookup in in hash map MEM_REF operand instead of the
21684 MEM_REF itself.
21685 (lower_omp_1): When looking for lastprivate conditional assignments,
21686 handle MEM_REFs with REFERENCE_TYPE operands.
21687
21688 * omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and
21689 on privatization clauses OMP_CLAUSE_DECL is privatized by reference
21690 and references a VLA. Handle references to non-VLAs if is_simd
21691 all privatization clauses like reductions.
21692 (lower_rec_input_clauses) <case do_private, case do_firstprivate>:
21693 If omp_is_reference, use always omp simd arrays and set
21694 DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses
21695 fails, emit reference initialization.
21696
21697 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
21698
21699 PR target/89803
21700 * config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask,
21701 _mm_mask_fpclass_sd_mask): New intrinsics.
21702 (_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins.
21703 * config/i386/i386-builtin.def
21704 (__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask):
21705 New builtins.
21706 (__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted.
21707 * config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT),
21708 DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted.
21709 * config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT,
21710 case QI_FTYPE_V2SF_INT): Ditto.
21711 * config/i386/sse.md
21712 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>):
21713 Extended to insnstructions with mask operands.
21714
21715 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21716
21717 * config/rs6000/constraints.md (define_register_constraint "wp"):
21718 Delete.
21719 (define_register_constraint "wq"): Delete.
21720 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
21721 (rs6000_init_hard_regno_mode_ok): Adjust.
21722 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
21723 RS6000_CONSTRAINT_wp and RS6000_CONSTRAINT_wq.
21724 * config/rs6000/vsx.md (define_mode_attr VSr3): Delete.
21725 (define_mode_attr VSa): Delete.
21726 (define_mode_attr VSisa): New.
21727 (rest of file): Adjust.
21728 * doc/md.texi (Machine Constraints): Adjust.
21729
21730 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21731
21732 * config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf.
21733 (define_attr "enabled"): Handle those new isa values.
21734
21735 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21736
21737 * config/rs6000/vsx.md (define_mode_attr VSr4): Delete.
21738 (define_mode_attr VSr5): Delete.
21739 (define_mode_attr VStype_sqrt): Delete.
21740 (define_mode_iterator VSX_SPDP): Delete.
21741 (define_mode_attr VS_spdp_res): Delete.
21742 (define_mode_attr VS_spdp_insn): Delete.
21743 (define_mode_attr VS_spdp_type): Delete.
21744 (*vsx_sqrt<mode>2): Adjust.
21745 (vsx_<VS_spdp_insn>): Delete, split to...
21746 (vsx_xscvdpsp): ... this. New. And...
21747 (vsx_xvcvspdp): ... this. New. And...
21748 (vsx_xvcvdpsp): ... this. New.
21749
21750 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21751
21752 * config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF
21753 and V2DF.
21754 * config/rs6000/vsx.md (define_mode_attr VSs): Delete.
21755 (rest of file): Adjust.
21756
21757 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21758
21759 * config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>.
21760 (vsx_extract_<mode>_var): Ditto.
21761
21762 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21763
21764 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI
21765 with just "wa".
21766
21767 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21768
21769 * config/rs6000/constraints.md (define_register_constraint "ww"):
21770 Delete.
21771 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
21772 (rs6000_init_hard_regno_mode_ok): Adjust.
21773 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
21774 RS6000_CONSTRAINT_ww.
21775 * config/rs6000/rs6000.md: Adjust.
21776 * config/rs6000/vsx.md: Adjust.
21777 * doc/md.texi (Machine Constraints): Adjust.
21778
21779 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21780
21781 * config/rs6000/rs6000.md (SFDF, SFDF2): Adjust comments.
21782 (define_mode_attr sd): New.
21783 (define_mode_attr s): New.
21784 (define_mode_attr Ftrad): Delete.
21785 (define_mode_attr Fvsx): Delete.
21786 (define_mode_attr Fs): Delete.
21787 (rest of file): Use the new mode attributes.
21788 * config.rs6000/vsx.md: Use the new mode attributes.
21789
21790 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21791
21792 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W
21793 with just "wa".
21794
21795 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21796
21797 * config/rs6000/vsx.md (define_mode_attr VSr2): Delete.
21798 (rest of file): Replace all <VSa>, <VSr>, <VSr2>, and <VSr3> that are
21799 used with VSX_B, VSX_D, or VSX_F, with just "wa".
21800
21801 2019-06-04 Bill Schmidt <wschmidt@linux.ibm.com>
21802
21803 PR target/78263
21804 * config/rs6000/altivec.h: Don't #define vector, pixel, bool for
21805 C++ with strict ANSI requirements.
21806
21807 2019-06-04 Marc Glisse <marc.glisse@inria.fr>
21808
21809 * tree-ssa-loop-niter.c (number_of_iterations_ne): Skip
21810 computations when step is 1.
21811
21812 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21813
21814 * config/rs6000/constraints.md (define_register_constraint "wf"):
21815 Delete.
21816 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
21817 (rs6000_init_hard_regno_mode_ok): Adjust.
21818 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
21819 RS6000_CONSTRAINT_wf.
21820 * config/rs6000/rs6000.md: Adjust.
21821 * config/rs6000/vsx.md: Adjust.
21822 * doc/md.texi (Machine Constraints): Adjust.
21823
21824 2019-06-04 Andrew Pinski <apinski@marvell.com>
21825
21826 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset):
21827 Fix ILP32 value.
21828
21829 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21830
21831 * config/rs6000/constraints.md (define_register_constraint "wd"):
21832 Delete.
21833 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
21834 (rs6000_init_hard_regno_mode_ok): Adjust.
21835 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
21836 RS6000_CONSTRAINT_wd.
21837 * config/rs6000/rs6000.md: Adjust.
21838 * config/rs6000/vsx.md: Adjust.
21839 * doc/md.texi (Machine Constraints): Adjust.
21840
21841 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21842
21843 * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete.
21844 (rest of file): Adjust.
21845
21846 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21847
21848 * config/rs6000/vsx.md (define_mode_attr VS_64reg): Delete.
21849 (*vsx_extract_<P:mode>_<VSX_D:mode>_load): Adjust.
21850 (vsx_splat_<mode>_reg): Adjust.
21851
21852 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21853
21854 * config/rs6000/constraints.md (define_register_constraint "ws"):
21855 Delete.
21856 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
21857 (rs6000_init_hard_regno_mode_ok): Adjust.
21858 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
21859 RS6000_CONSTRAINT_ws.
21860 * config/rs6000/rs6000.md: Adjust.
21861 * config/rs6000/vsx.md: Adjust.
21862 * doc/md.texi (Machine Constraints): Adjust.
21863
21864 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21865
21866 * config/rs6000/constraints.md (define_register_constraint "wv"):
21867 Delete.
21868 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
21869 (rs6000_init_hard_regno_mode_ok): Adjust.
21870 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
21871 RS6000_CONSTRAINT_wv.
21872 * config/rs6000/rs6000.md: Adjust.
21873 * config/rs6000/vsx.md: Adjust.
21874 * doc/md.texi (Machine Constraints): Adjust.
21875
21876 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21877
21878 * config/rs6000/constraints.md (define_register_constraint "wi"):
21879 Delete.
21880 (define_register_constraint "wt"): Delete.
21881 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
21882 (rs6000_init_hard_regno_mode_ok): Adjust.
21883 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
21884 RS6000_CONSTRAINT_wi and RS6000_CONSTRAINT_wt.
21885 * config/rs6000/rs6000.md: Adjust.
21886 * config/rs6000/vsx.md: Adjust.
21887 * doc/md.texi (Machine Constraints): Adjust.
21888
21889 2019-06-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
21890
21891 * config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove
21892 const.
21893 * config/aarch64/aarch64.c (aarch64_asm_output_external): Call
21894 default_elf_asm_output_external.
21895
21896 2019-06-04 Martin Liska <mliska@suse.cz>
21897
21898 * ipa-icf.c (INCLUDE_LIST): Remove.
21899 (sem_item_optimizer::execute): Remove call to init_wpa.
21900 * ipa-icf.h (init_wpa): Remove.
21901
21902 2019-06-04 Jakub Jelinek <jakub@redhat.com>
21903
21904 * gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate
21905 conditional on combined for simd.
21906 * omp-low.c (struct omp_context): Add combined_into_simd_safelen0
21907 member.
21908 (lower_rec_input_clauses): For gimple_omp_for_combined_into_p max_vf 1
21909 constructs, don't remove lastprivate_conditional_map, but instead set
21910 ctx->combined_into_simd_safelen0 and adjust hash_map, so that it points
21911 to parent construct temporaries.
21912 (lower_lastprivate_clauses): Handle ctx->combined_into_simd_safelen0
21913 like !ctx->lastprivate_conditional_map.
21914 (lower_omp_1) <case GIMPLE_ASSIGN>: If up->combined_into_simd_safelen0,
21915 use up->outer context instead of up.
21916 * omp-expand.c (expand_omp_for_generic): Perform cond_var bump even if
21917 gimple_omp_for_combined_p.
21918 (expand_omp_for_static_nochunk): Likewise.
21919 (expand_omp_for_static_chunk): Add forgotten cond_var bump that was
21920 probably moved over into expand_omp_for_generic rather than being copied
21921 there.
21922
21923 2019-06-04 Martin Liska <mliska@suse.cz>
21924
21925 * value-prof.c (dump_histogram_value): Fix typo.
21926 (gimple_mod_subtract_transform): Likewise.
21927
21928 2019-06-04 Richard Biener <rguenther@suse.de>
21929
21930 PR middle-end/90726
21931 * tree-chrec.c (chrec_contains_symbols): Add to visited.
21932 (tree_contains_chrecs): Likewise.
21933 (chrec_contains_symbols_defined_in_loop): Move here and avoid
21934 exponential behaivor from ...
21935 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
21936 ... here.
21937 (expression_expensive_p): Avoid exponential behavior and compute
21938 expanded size, rejecting any expansion.
21939 * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): Remove.
21940 (idx_contains_abnormal_ssa_name_p): Likewise.
21941 (contains_abnormal_ssa_name_p_1): New helper for walk_tree.
21942 (contains_abnormal_ssa_name_p): Simplify and use
21943 walk_tree_without_duplicates.
21944
21945 2019-06-04 Richard Biener <rguenther@suse.de>
21946
21947 PR tree-optimization/90738
21948 Revert
21949 2019-06-03 Richard Biener <rguenther@suse.de>
21950
21951 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
21952 full reference tree and record in ref->ref.
21953 (vn_reference_lookup_3): Pass in original ref to
21954 ao_ref_init_from_vn_reference.
21955 (vn_reference_lookup): Likewise.
21956 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
21957 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
21958 Handle non-decl bases in the original reference.
21959
21960 2019-06-04 Martin Liska <mliska@suse.cz>
21961
21962 * ipa-icf.c (sem_item_optimizer::add_item_to_class): Count
21963 number of references.
21964 (sem_item_optimizer::do_congruence_step):
21965 (sem_item_optimizer::worklist_push): Dump how references
21966 a class has.
21967 (sem_item_optimizer::worklist_pop): Use heap.
21968 (sem_item_optimizer::process_cong_reduction): Likewise.
21969 * ipa-icf.h: Use fibonacci_heap insteam of std::list.
21970
21971 2019-06-04 Martin Liska <mliska@suse.cz>
21972
21973 * ipa-icf.h (struct sem_usage_pair_hash): New.
21974 (sem_usage_pair_hash::hash): Likewise.
21975 (sem_usage_pair_hash::equal): Likewise.
21976 (struct sem_usage_hash): Likewise.
21977 * ipa-icf.c (sem_item::sem_item): Initialize
21978 referenced_by_count.
21979 (sem_item::add_reference): Register a reference
21980 in ref_map and not in target->usages.
21981 (sem_item::setup): Remove initialization of
21982 dead vectors.
21983 (sem_item::~sem_item): Remove usage of dead vectors.
21984 (sem_item::dump): Remove dump of references.
21985 (sem_item_optimizer::sem_item_optimizer): Initialize
21986 m_references.
21987 (sem_item_optimizer::read_section): Remove useless
21988 dump.
21989 (sem_item_optimizer::parse_funcs_and_vars): Likewise here.
21990 (sem_item_optimizer::build_graph): Pass m_references
21991 to ::add_reference.
21992 (sem_item_optimizer::verify_classes): Remove usage of dead
21993 vectors.
21994 (sem_item_optimizer::traverse_congruence_split): Return true
21995 when a class is split.
21996 (sem_item_optimizer::do_congruence_step_for_index): Use
21997 hash_map for look up of (sem_item *, index). That brings
21998 significant speed up.
21999 (sem_item_optimizer::do_congruence_step): Return true
22000 when a split is done.
22001 (congruence_class::is_class_used): Use referenced_by_count.
22002
22003 2019-06-04 Alan Modra <amodra@gmail.com>
22004
22005 PR target/90689
22006 * config/rs6000/rs6000.c (rs6000_call_aix): Correct r271753 merge
22007 error.
22008
22009 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
22010
22011 * config/rs6000/rs6000.h (MASK_MFPGPR): Delete.
22012 * config/rs6000/rs6000.c (direct_move_p): Adjust.
22013 (rs6000_secondary_reload_simple_move): Adjust.
22014 (rs6000_opt_masks): Neuter the "mfpgpr" option.
22015 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust.
22016 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): Adjust
22017 comment.
22018 (power6x): Adjust.
22019 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Adjust.
22020 (floatunssi<mode>2_lfiwzx): Adjust.
22021 (fix_trunc<mode>si2_stfiwx): Adjust.
22022 (fixuns_trunc<mode>si2_stfiwx): Adjust.
22023 * config/rs6000/rs6000.opt (mno-mfpgpr): New.
22024 (mfpgpr): Mark as deprecated.
22025 * doc/extend.texi (PowerPC Function Attributes): Delete mfpgpr.
22026 (Basic PowerPC Built-in Functions Available on ISA 2.05): Adjust.
22027 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mmfpgpr.
22028
22029 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
22030
22031 * config/rs6000/constraints.md (define_register_constraint "wg"):
22032 Delete.
22033 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22034 RS6000_CONSTRAINT_wg.
22035 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22036 (rs6000_init_hard_regno_mode_ok): Adjust.
22037 * config/rs6000/rs6000.md (*mov<mode>_softfloat32, *movdi_internal64):
22038 Delete "wg" alternatives.
22039 * doc/md.texi (Machine Constraints): Adjust.
22040
22041 2019-06-03 Alan Modra <amodra@gmail.com>
22042
22043 * bb-reorder.c (copy_bb_p): Don't overflow size calculation.
22044 (get_uncond_jump_length): Assert length less than INT_MAX and
22045 non-negative.
22046
22047 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
22048
22049 PR middle-end/64242
22050 * builtins.c (expand_builtin_longjmp): Add frame clobbers and schedule
22051 block.
22052 (expand_builtin_nonlocal_goto): Likewise.
22053
22054 2019-06-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
22055
22056 * config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare.
22057 (aarch64_asm_output_external): Declare.
22058 * config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New.
22059 (aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs.
22060 (aarch64_asm_output_alias): New.
22061 (aarch64_asm_output_external): New.
22062 * config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
22063 (ASM_OUTPUT_EXTERNAL): Define.
22064
22065 2019-06-03 Aldy Hernandez <aldyh@redhat.com>
22066 * tree-vrp.h (value_range_base::nonzero_p): New.
22067 (value_range_base::set_nonnull): Rename to...
22068 (value_range_base::set_nonzero): ...this.
22069 (value_range_base::set_null): Rename to...
22070 (value_range_base::set_zero): ...this.
22071 (value_range::set_nonnull): Remove.
22072 (value_range::set_null): Remove.
22073 * tree-vrp.c (range_is_null): Remove.
22074 (range_is_nonnull): Remove.
22075 (extract_range_from_binary_expr): Use value_range_base::*zero_p
22076 instead of range_is_*null.
22077 (extract_range_from_unary_expr): Same.
22078 (value_range_base::set_nonnull): Rename to...
22079 (value_range_base::set_nonzero): ...this.
22080 (value_range::set_nonnull): Remove.
22081 (value_range_base::set_null): Rename to...
22082 (value_range_base::set_zero): ...this.
22083 (value_range::set_null): Remove.
22084 (extract_range_from_binary_expr): Rename set_*null uses to
22085 set_*zero.
22086 (extract_range_from_unary_expr): Same.
22087 (union_helper): Same.
22088 * vr-values.c (get_value_range): Use set_*zero instead of
22089 set_*null.
22090 (vr_values::extract_range_from_binary_expr): Same.
22091 (vr_values::extract_range_basic): Same.
22092
22093 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
22094
22095 PR driver/90684
22096 * opts.c (parse_and_check_align_values): Allow 4 alignment values.
22097
22098 2019-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22099
22100 * config/aarch64/iterators.md (MAX_OPP): New code attr.
22101 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3):
22102 Rename to...
22103 (aarch64_<su>abd<mode>_3): ... This.
22104 (<sur>sadv16qi): Add TARGET_DOTPROD expansion.
22105
22106 2019-06-03 Richard Biener <rguenther@suse.de>
22107
22108 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
22109 full reference tree and record in ref->ref.
22110 (vn_reference_lookup_3): Pass in original ref to
22111 ao_ref_init_from_vn_reference.
22112 (vn_reference_lookup): Likewise.
22113 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
22114 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
22115 Handle non-decl bases in the original reference.
22116
22117 2019-06-03 Martin Liska <mliska@suse.cz>
22118
22119 * doc/generic.texi: Remove Java Trees.
22120
22121 2019-06-03 Martin Liska <mliska@suse.cz>
22122
22123 * fold-const.c (operand_equal_p): Fix typo as compare_tree_int
22124 returns 0 when operands are equal.
22125
22126 2019-06-03 Richard Biener <rguenther@suse.de>
22127
22128 PR tree-optimization/90716
22129 * tree-loop-distribution.c (destroy_loop): Process blocks in
22130 correct order.
22131
22132 2019-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
22133
22134 PR target/88837
22135 * vector-builder.h (vector_builder::count_dups): New method.
22136 * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vector_init):
22137 Declare prototype.
22138 * config/aarch64/aarch64/sve.md (aarch64_sve_rev64<mode>): Use @.
22139 (vec_init<mode><Vel>): New pattern.
22140 * config/aarch64/aarch64.c (emit_insr): New function.
22141 (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise.
22142 (aarch64_sve_expand_vector_init_insert_elems): Likewise.
22143 (aarch64_sve_expand_vector_init_handle_trailing_same_elem): Likewise.
22144 (aarch64_sve_expand_vector_init): Define two overloaded functions.
22145
22146 2019-06-03 Alejandro Martinez <alejandro.martinezvicente@arm.com>
22147
22148 PR tree-optimization/90681
22149 * internal-fn.c (mask_load_direct): Mark as non-vectorizable again.
22150 * tree-vect-slp.c (vect_build_slp_tree_1): Add masked loads as a
22151 special case for SLP, but fail on non-groupped loads.
22152
22153 2019-06-03 Martin Liska <mliska@suse.cz>
22154
22155 * cfg.c (debug): Use TDF_DETAILS for debug and
22156 print edge info only once.
22157
22158 2019-06-02 Thomas Koenig <tkoenig@gcc.gnu.org>
22159
22160 PR fortran/90539
22161 * predict.def (PRED_FORTRAN_CONTIGUOUS): New predictor.
22162
22163 2019-06-01 Martin Sebor <msebor@redhat.com>
22164
22165 PR middle-end/90694
22166 * tree-pretty-print.c (dump_generic_node): Add parentheses.
22167
22168 2019-05-31 Jan Hubicka <jh@suse.cz>
22169
22170 * alias.c: Include ipa-utils.h.
22171 (get_alias_set): Try to complete ODR type via ODR type hash lookup.
22172 * ipa-devirt.c (prevailing_odr_type): New.
22173 * ipa-utils.h (previaling_odr_type): Declare.
22174
22175 2019-05-31 H.J. Lu <hongjiu.lu@intel.com>
22176 Hongtao Liu <hongtao.liu@intel.com>
22177
22178 PR target/89355
22179 * config/i386/i386-features.c (rest_of_insert_endbranch): Remove
22180 NOTE_INSN_DELETED_LABEL check.
22181
22182 2019-05-31 Prachi Godbole <prachi.godbole@imgtec.com>
22183 Robert Suchanek <robert.suchanek@mips.com>
22184
22185 * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st
22186 and 3rd operands of the fmadd/fmsub/maddv builtin.
22187
22188 2019-05-31 Jakub Jelinek <jakub@redhat.com>
22189
22190 * tree.h (OMP_CLAUSE__CONDTEMP__ITER): Define.
22191 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
22192 on OMP_SIMD if not nested inside of worksharing loop that also has
22193 lastprivate conditional clause for the same decl.
22194 (gimplify_omp_for): Add _condtemp_ clauses to OMP_SIMD if needed.
22195 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_ also
22196 on simd.
22197 (lower_rec_input_clauses): Likewise. Handle lastprivate conditional
22198 on simd construct.
22199 (lower_lastprivate_conditional_clauses): Handle lastprivate conditional
22200 on simd construct.
22201 (lower_lastprivate_clauses): Likewise.
22202 (lower_omp_sections): Call lower_lastprivate_conditional_clauses before
22203 calling lower_rec_input_clauses.
22204 (lower_omp_for): Likewise.
22205 (lower_omp_1): Use first rather than second OMP_CLAUSE__CONDTEMP_
22206 clause on simd construct.
22207 * omp-expand.c (expand_omp_simd): Initialize cond_var if
22208 OMP_CLAUSE__CONDTEMP_ clause is present.
22209
22210 * omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on
22211 ivar and lvar.
22212
22213 2019-05-31 Xiong Hu Luo <luoxhu@linux.ibm.com>
22214
22215 PR c/43673
22216 * c-format.c (print_char_table, scanf_char_table): Replace BADLEN with
22217 TEX_D32, TEX_D64 or TEX_D128.
22218
22219 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
22220
22221 * match.pd (~(vec?cst1:cst2)): New transformation.
22222
22223 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
22224
22225 * match.pd (X/[ex]D<Y/[ex]D): Handle negative denominator.
22226 ((size_t)(A /[ex] B) CMP C): New transformation.
22227
22228 2019-05-31 Richard Sandiford <richard.sandiford@arm.com>
22229
22230 * doc/md.texi: Document define_insn_and_rewrite.
22231 * rtl.def (DEFINE_INSN_AND_REWRITE): New rtx code.
22232 * gensupport.c (queue_elem): Update comment.
22233 (replace_operands_with_dups): New function.
22234 (gen_rewrite_sequence): Likewise.
22235 (process_rtx): Handle DEFINE_INSN_AND_REWRITE.
22236 * read-rtl.c (apply_subst_iterator): Likewise.
22237 (add_condition_to_rtx, named_rtx_p): Likewise.
22238 (rtx_reader::read_rtx_operand): Likewise.
22239 * config/aarch64/aarch64-sve.md
22240 (while_ult<GPI:mode><PRED_ALL:mode>_cc): Rename to...
22241 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): ...this and use
22242 define_insn_and_rewrite.
22243 (*cond_<optab><mode>_any): Turn into define_insn_and_rewrites.
22244 Remove separate define_split.
22245
22246 2019-05-31 Jan Hubicka <jh@suse.cz>
22247
22248 * tree-ssa-alias.c (type_has_components_p): New function.
22249 (aliasing_component_refs_p): Use it.
22250
22251 2019-05-31 Martin Liska <mliska@suse.cz>
22252
22253 * gdbhooks.py: Add const_tree to TreePrinter.
22254
22255 2019-05-31 Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
22256
22257 PR debug/86964
22258 * common.opt (feliminate-unused-debug-symbols): Enable by default.
22259 * doc/invoke.texi (Debugging Options): Document new default of
22260 -feliminate-unused-debug-symbols and remove restriction to 'stabs'.
22261
22262 2019-05-31 Jakub Jelinek <jakub@redhat.com>
22263
22264 PR tree-optimization/90671
22265 * tree-ssa-threadupdate.c (ssa_create_duplicates): If
22266 template_block used to be empty on the first call, don't use
22267 gsi_split_seq_after and gsi_insert_seq_after, but remember whole
22268 seq with bb_seq and set it with set_bb_seq.
22269
22270 2019-05-31 Iain Sandoe <iain@sandoe.co.uk>
22271
22272 * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
22273
22274 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
22275 Michael Meissner <meissner@linux.ibm.com>
22276
22277 * config/rs6000/predicates.md (pcrel_address): New define_predicate.
22278 (prefixed_mem_operand): Likewise.
22279 (non_prefixed_mem_operand): Likewise.
22280 * config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New
22281 prototype.
22282 * config/rs6000/rs6000.c (print_operand_address): Handle
22283 PC-relative addresses.
22284 (mode_supports_prefixed_address_p): New function.
22285 (rs6000_prefixed_address): New function.
22286 * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define.
22287 (SYMBOL_REF_PCREL_P): Likewise.
22288
22289 2019-05-30 Jakub Jelinek <jakub@redhat.com>
22290
22291 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP.
22292 (gimplify_adjust_omp_clauses_1): Handle GOVD_CONDTEMP.
22293 (gimplify_omp_for): If worksharing loop with lastprivate conditional
22294 is nested inside of parallel region, add _condtemp_ clause to both.
22295 * tree-nested.c (convert_nonlocal_omp_clauses,
22296 convert_local_omp_clauses): Ignore OMP_CLAUSE__CONDTEMP_ instead of
22297 assertion failure.
22298 * omp-general.h (struct omp_for_data): Add have_pointer_condtemp
22299 member.
22300 * omp-general.c (omp_extract_for_data): Compute it.
22301 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_.
22302 (lower_rec_input_clauses): Likewise.
22303 (lower_lastprivate_conditional_clauses): If OMP_CLAUSE__CONDTEMP_
22304 clause is already present, just add one further one after it.
22305 (lower_lastprivate_clauses): Handle cond_ptr with array type.
22306 (lower_send_shared_vars): Clear _condtemp_ vars.
22307 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle target data like critical
22308 or section or taskgroup.
22309 * omp-expand.c (determine_parallel_type): Disallow combining only if
22310 first OMP_CLAUSE__CONDTEMP_ has pointer type. Disallow combining
22311 of parallel sections if OMP_CLAUSE__CONDTEMP_ is present.
22312 (expand_omp_for_generic, expand_omp_for_static_nochunk,
22313 expand_omp_for_static_chunk, expand_omp_for): Use
22314 fd->have_pointer_condtemp instead of fd->lastprivate_conditional to
22315 determine if a special set of API routines are needed and if condtemp
22316 needs to be initialized, while always initialize cond_var if
22317 fd->lastprivate_conditional is non-zero.
22318
22319 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
22320 Michael Meissner <meissner@linux.ibm.com>
22321
22322 * config/rs6000/constraints.md (eI): New constraint.
22323 * config/rs6000/predicates.md (cint34_operand): New predicate.
22324 * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): New #define.
22325 (SIGNED_34BIT_OFFSET_P): Likewise.
22326 * doc/md.texi (eI): Document constraint.
22327
22328 2019-05-30 Sylvia Taylor <sylvia.taylor@arm.com>
22329
22330 * config/aarch64/aarch64-sve.md (*fabd<mode>3): New.
22331
22332 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
22333 Michael Meissner <meissner@linux.ibm.com>
22334
22335 * rs6000-cpus.def (OTHER_FUSION_MASKS): New #define.
22336 (ISA_3_0_MASKS_SERVER): Mask off OTHER_FUSION_MASKS.
22337 (ISA_3_0_MASKS_IEEE): Remove OPTION_MASK_DIRECT_MOVE.
22338 (ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PREFIXED_ADDR.
22339 (OTHER_FUTURE_MASKS): Likewise.
22340 (POWERPC_MASKS): Likewise.
22341 * rs6000.c (rs6000_option_override_internal): Error if -mpcrel is
22342 specified without -mprefixed-addr or -mcpu=future. Error if
22343 -mprefixed-addr is specified without -mcpu=future.
22344 (rs6000_opt_masks): Add entry for prefixed-addr.
22345 * rs6000.opt (mprefixed-addr): New option.
22346
22347 2019-05-30 Sam Tebbs <sam.tebbs@arm.com>
22348
22349 * aarch64/aarch64.c (aarch64_post_cfi_startproc): Add
22350 cfun->is_thunk check.
22351
22352 2019-05-30 Jakub Jelinek <jakub@redhat.com>
22353
22354 * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
22355 to length.
22356
22357 2019-05-30 Martin Liska <mliska@suse.cz>
22358
22359 * gdbinit.in: Fix 'ptc' command. Add trt
22360 that prints TREE_TYPE($).
22361
22362 2019-05-29 Bill Schmidt <wschmidt@linux.ibm.com>
22363 Alan Modra <amodra@gmail.com>
22364
22365 * config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel
22366 calls here...
22367 (rs6000_indirect_call_template_1): ...and here.
22368 (rs6000_pltseq_template): Handle plt_pcrel34. Rework tocsave,
22369 plt16_ha, plt16_lo, mtctr indirect calls. Use
22370 rs6000_pltseq_enum.
22371 (rs6000_decl_ok_for_sibcall): New function.
22372 (rs6000_function_ok_for_sibcall): Refactor.
22373 (rs6000_longcall_ref): Use UNSPEC_PLT_PCREL when pcrel.
22374 (rs6000_call_aix): Don't emit toc restore rtl for indirect calls
22375 when pcrel. Reorganize.
22376 (rs6000_sibcall_aix): Don't add r2 to function usage when pcrel.
22377 * rs6000.h (rs6000_pltseq_enum): New enum.
22378 * rs6000.md (UNSPEC_PLT_PCREL): New unspec.
22379 (*pltseq_tocsave): Use rs6000_pltseq_enum.
22380 (*pltseq_plt16_ha): Likewise.
22381 (*pltseq_plt16_lo): Likewise.
22382 (*pltseq_mtctr): Likewise.
22383 (*pltseq_plt_pcrel): New insn.
22384 (*call_local_aix): Handle @notoc calls.
22385 (*call_value_local_aix): Likewise.
22386 (*call_nonlocal_aix): Adjust lengths for pcrel calls.
22387 (*call_value_nonlocal_aix): Likewise.
22388 (*call_indirect_pcrel): New insn.
22389 (*call_value_indirect_pcrel): Likewise.
22390
22391 2019-05-29 Uroš Bizjak <ubizjak@gmail.com>
22392
22393 * config/i386/sse.md (*save_multiple<mode>): Rename from
22394 save_multiple<mode>.
22395 (*restore_multiple<mode>): Rename from restore_multiple<mode>.
22396 (*restore_multiple_and_return<mode>): Rename from
22397 restore_multiple_and_return<mode>.
22398 (*restore_multiple_leave_return<mode>): Rename from
22399 restore_multiple_leave_return<mode>.
22400
22401 2019-05-29 Yoshinori Sato <ysato@users.sourceforge.jp>
22402
22403 * config.gcc (rx-*-linux*): New target.
22404 * config/rx/elf.opt: New file.
22405 * config/rx/linux.h: Likewise.
22406 * config/rx/t-linux: Likewise.
22407 * config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined,
22408 make it zero.
22409 * config/rx/rx.h (ASM_APP_ON): Allow to be overridden.
22410 (ASM_APP_OFF): Likewise.
22411 * config/rx/rx.opt: Drop -msim and -mas100-syntax, they were
22412 moved elsewhere.
22413
22414 2019-05-29 Jan Hubicka <jh@suse.cz>
22415
22416 * tree-ssa-alias.c (same_type_for_tbaa): Return ture if main
22417 variants are pointer equivalent.
22418
22419 2019-05-29 Alejandro Martinez <alejandro.martinezvicente@arm.com>
22420
22421 * config/aarch64/aarch64-c.c: Added TARGET_SVE2.
22422 * config/aarch64/aarch64-sve2.md: New file.
22423 (<u>avg<mode>3_floor): New pattern.
22424 (<u>avg<mode>3_ceil): Likewise.
22425 (*<sur>h<addsub><mode>): Likewise.
22426 * config/aarch64/aarch64.h: Added AARCH64_ISA_SVE2 and TARGET_SVE2.
22427 * config/aarch64/aarch64.md: Include aarch64-sve2.md.
22428
22429 2019-05-29 Jakub Jelinek <jakub@redhat.com>
22430
22431 PR bootstrap/90543
22432 * optc-save-gen.awk: In cl_optimization_print, use correct condition
22433 for var_opt_string printing. In cl_optimization_print_diff, print
22434 (null) instead of invoking undefined behavior if one of the
22435 var_opt_string pointers is NULL and use && instead of first || in the
22436 guarding condition. For var_target_other options, handle const char *
22437 target variables similarly to const char * optimize node variables.
22438
22439 2019-05-29 Sam Tebbs <sam.tebbs@arm.com>
22440
22441 * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add
22442 AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716.
22443 * config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins):
22444 Add autib1716 and pacib1716 initialisation.
22445 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks
22446 for autib1716 and pacib1716.
22447 * config/aarch64/aarch64-protos.h (aarch64_key_type,
22448 aarch64_post_cfi_startproc): Define.
22449 * config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern.
22450 * config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection,
22451 aarch64_handle_pac_ret_protection): Set default sign key to A.
22452 * config/aarch64/aarch64.c (aarch64_expand_epilogue,
22453 aarch64_expand_prologue): Add check for b-key.
22454 * config/aarch64/aarch64.c (aarch64_ra_sign_key,
22455 aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define.
22456 * config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define.
22457 * config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key".
22458 * config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716,
22459 UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716,
22460 UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP.
22461 * config/aarch64/aarch64.md (do_return): Add check for b-key.
22462 * config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace
22463 pauth_hint_num_a with pauth_hint_num.
22464 * config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace
22465 pauth_hint_num_a with pauth_hint_num.
22466 * config/aarch64/aarch64.opt (msign-return-address=): Deprecate.
22467 * config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP,
22468 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
22469 * config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716,
22470 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716.
22471 * config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716,
22472 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP,
22473 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
22474 * config/aarch64/iterators.md (pauth_hint_num_a): Replace
22475 UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and
22476 UNSPEC_AUTIA1716 respectively.
22477 * config/aarch64/iterators.md (pauth_hint_num_a): Rename to
22478 pauth_hint_num and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP,
22479 UNSPEC_PACIB1716, UNSPEC_AUTIB1716.
22480 * doc/invoke.texi (-mbranch-protection): Add b-key type.
22481 * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename
22482 UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP.
22483
22484 2019-05-29 Jakub Jelinek <jakub@redhat.com>
22485
22486 * gimplify.c (struct gimplify_omp_ctx): Add clauses member.
22487 (gimplify_scan_omp_clauses): Initialize ctx->clauses.
22488 (gimplify_adjust_omp_clauses_1): Transform lastprivate conditional
22489 explicit clause on combined parallel into implicit shared clause.
22490 (gimplify_adjust_omp_clauses): Move lastprivate conditional clause
22491 and firstprivate if the decl has one too from combined parallel to
22492 the worksharing construct.
22493
22494 2019-05-28 Bill Schmidt <wschmidt@linux.ibm.com>
22495 Michael Meissner <meissner@linux.ibm.com>
22496
22497 * config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define.
22498
22499 2019-05-28 Michael Meissner <meissner@linux.ibm.com>
22500
22501 * rtl.h (LABEL_REF_P): New #define.
22502
22503 2019-05-28 John David Anglin <danglin@gcc.gnu.org>
22504
22505 * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
22506
22507 2019-05-28 Alejandro Martinez <alejandro.martinezvicente@arm.com>
22508
22509 * internal-fn.c: Marked mask_load_direct as vectorizable.
22510 * tree-data-ref.c (data_ref_compare_tree): Fixed comment typo.
22511 * tree-vect-data-refs.c (can_group_stmts_p): Allow masked loads to be
22512 combined even if masks different with allow_slp_p param.
22513 (vect_analyze_data_ref_accesses): Mark SLP only vectorizable groups.
22514 * tree-vect-loop.c (vect_dissolve_slp_only_groups): New function to
22515 dissolve SLP-only vectorizable groups when SLP has been discarded.
22516 (vect_analyze_loop_2): Call vect_dissolve_slp_only_groups when needed.
22517 * tree-vect-slp.c (vect_get_and_check_slp_defs): Check masked loads
22518 masks.
22519 (vect_build_slp_tree_1): Fixed comment typo.
22520 (vect_build_slp_tree_2): Include masks from masked loads in SLP tree.
22521 * tree-vect-stmts.c (vectorizable_load): Allow vectorizaion of masked
22522 loads for SLP only.
22523 * tree-vectorizer.h (_stmt_vec_info): Added flag for SLP-only
22524 vectorizable.
22525 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Likewise.
22526
22527 2019-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22528
22529 * config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf):
22530 Remove obsolete use_thunk reference.
22531 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
22532 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
22533 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
22534 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
22535 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
22536 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
22537 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
22538 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
22539 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
22540
22541 2019-05-28 Nathan Sidwell <nathan@acm.org>
22542
22543 * tree.h (IDENTIFIER_ANON_P): New.
22544 (anon_aggrname_format, anon_aggname_p): Don't declare.
22545 (make_anon_name): Declare.
22546 * lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P.
22547 (hash_tree): Likewise.
22548 * tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise.
22549 * tree.c (anon_aggrname_p, anon_aggrname_format): Delete.
22550 (anon_cnt, make_anon_name): New.
22551
22552 2019-05-28 Martin Liska <mliska@suse.cz>
22553
22554 PR other/90315
22555 * opts-global.c (decode_options): Print help for all
22556 help_option_arguments.
22557 * opts.c (print_help): Add new argument.
22558 (common_handle_option): Remember all values into
22559 help_option_arguments.
22560 * opts.h (print_help): Add new argument.
22561
22562 2019-05-28 Martin Liska <mliska@suse.cz>
22563
22564 PR ipa/90555
22565 * ipa-icf-gimple.c (func_checker::compare_loops): New function.
22566 * ipa-icf-gimple.h (func_checker::compare_loops): Likewise.
22567 (func_checker::compare_bb): Call compare_loops.
22568
22569 2019-05-27 Jakub Jelinek <jakub@redhat.com>
22570
22571 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
22572 on sections construct.
22573 * omp-low.c (lower_lastprivate_conditional_clauses): Handle sections
22574 construct.
22575 (lower_omp_sections): Handle lastprivate conditional.
22576 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with
22577 lastprivate_conditional_map.
22578 * omp-expand.c (expand_omp_sections): Handle lastprivate conditional.
22579
22580 * omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered,
22581 critical, taskgroup and section regions when looking for a region
22582 with non-NULL lastprivate_conditional_map.
22583
22584 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
22585
22586 * config/i386/i386.c (ix86_gen_add3): Remove indirect function.
22587 (*ix86_gen_sub3): Ditto.
22588 (*ix86_gen_sub3_carry): Ditto.
22589 (*ix86_gen_one_cmpl2): Ditto.
22590 (*ix86_gen_andsp): Ditto.
22591 (ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3.
22592 (gen_and2_insn): New static function.
22593 (ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp.
22594 Use gen_add3_insn instead of ix86_gen_add3.
22595 (ix86_expand_split_stack_prologue): Use gen_add2_insn
22596 instead of ix86_gen_add3.
22597 (legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3.
22598 Use gen_sub3_insn instead of ix86_gen_sub3.
22599 * config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn
22600 instead of ix86_gen_add3.
22601 (ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of
22602 ix86_gen_add3. Use gen_sub3_insn instead of ix86_gen_sub3.
22603 (construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3.
22604 * config/i386/i386-options.c (ix86_option_override_internal):
22605 Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
22606 ix86_gen_one_cmpl2 and ix86_gen_andsp.
22607
22608 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
22609
22610 * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
22611 and DW_OP_GNU_const_index opcodes.
22612
22613 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
22614
22615 * config/i386/i386.h (STACK_SIZE_MODE): Define.
22616
22617 2019-05-27 Richard Biener <rguenther@suse.de>
22618
22619 PR tree-optimization/90637
22620 * tree-ssa-sink.c (statement_sink_location): Honor the
22621 computed sink location for single-uses.
22622
22623 2019-05-27 Richard Biener <rguenther@suse.de>
22624
22625 PR middle-end/90610
22626 * match.pd (vec_perm): Avoid clobbering op0 when not generating
22627 a bit-insert.
22628
22629 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
22630
22631 * config/i386/i386.md (@sub<mode>3_carry): Rename
22632 from sub<mode>3_carry.
22633 (@leave_<mode>): New expander.
22634 (*leave): Rename from leave.
22635 (*leave_rex64): Rename from leave_rex64.
22636 (@monitorx_<mode>): Rename from monitorx_<mode>.
22637 (@clzero_<mode>): Rename from clzero_<mode>.
22638 * config/i386/sse.md (@sse3_monitor_<mode>): Rename
22639 from sse3_monitor_<mode>.
22640 * config/i386/i386.c (ix86_gen_sub3_carry): Remove indirect function.
22641 (*ix86_gen_leave): Ditto.
22642 (*ix86_gen_monitor): Ditto.
22643 (*ix86_gen_monitorx): Ditto.
22644 (*ix86_gen_clzero): Ditto.
22645 (ix86_emit_leave): Use gen_leave instead of ix86_gen_leave.
22646 * config/i386/i386-expand.c (ix86_expand_strlensi_unroll_1):
22647 Use gen_sub3_carry instead of ix86_gen_sub3_carry.
22648 (ix86_expand_builtin) <case IX86_BUILTIN_MONITOR>:
22649 Use gen_sse3_monitor instead of ix86_gen_monitor.
22650 <case IX86_BUILTIN_MONITORX>: Use gen_monitorx
22651 instead of ix86_gen_monitorx.
22652 <case IX86_BUILTIN_CLZERO>: Use gen_clzero
22653 instead of ix86_gen_clzero.
22654 * config/i386/i386-options.c (ix86_option_override_internal):
22655 Do not initialize ix86_gen_leave, ix86_gen_sub3_carry,
22656 ix86_gen_monitor, ix86_gen_monitorx and ix86_gen_clzero.
22657
22658 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
22659
22660 * config/i386/i386.md (@tls_global_dynamic_64_<mode>):
22661 Rename from tls_global_dynamic_64_<mode>.
22662 (@tls_local_dynamic_base_64_<mode>): Rename from
22663 tls_local_dynamic_base_64_<mode>.
22664 * config/i386/i386.c (*ix86_gen_tls_global_dynamic_64):
22665 Remove indirect function.
22666 (*ix86_gen_tls_local_dynamic_base_64): Ditto.
22667 (legitimize_tls_address): Use gen_tls_global_dynamic_64 function
22668 instead of ix86_gen_tls_global_dynamic_64.
22669 Use gen_tls_local_dynamic_base_64 instead of
22670 ix86_gen_tls_local_dynamic_base_64.
22671 * config/i386/i386-options.c (ix86_option_override_internal):
22672 Do not initialize ix86_gen_tls_global_dynamic_64 and
22673 ix86_gen_tls_local_dynamic_base_64.
22674
22675 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
22676
22677 * config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>)
22678 Rename from pro_epilogue_adjust_stack_<mode>_add.
22679 (@pro_epilogue_adjust_stack_sub_<mode>)
22680 Rename from pro_epilogue_adjust_stack_<mode>_sub.
22681 (@allocate_stack_worker_probe_<mode>):
22682 Rename from allocate_stack_worker_probe_<mode>.
22683 (allocate_stack): Use gen_allocate_stack_worker_probe.
22684 (probe_stack): Use gen_probe_stack_1.
22685 (@probe_stack_1_<mode>): Rename from probe_stack_<mode>.
22686 (@adjust_stack_and_probe_<mode>): Rename from
22687 adjust_stack_and_probe<mode>.
22688 (@probe_stack_range_<mode>): Rename from probe_stack_range<mode>.
22689 (stack_protect_set): Use gen_stack_protect_set_1.
22690 (@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>.
22691 (stack_protect_test): Use gen_stack_protect_test_1.
22692 (@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>.
22693 * config/i386/i386.c (*ix86_gen_allocate_stack_worker):
22694 Remove indirect function.
22695 (*ix86_gen_adjust_stack_and_probe): Ditto.
22696 (*ix86_gen_probe_stack_range): Ditto.
22697 (pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add
22698 instead of gen_pro_epilogue_adjust_stack_{si,di}_add.
22699 (ix86_adjust_stack_and_probe_stack_clash): Use
22700 gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe.
22701 (ix86_adjust_stack_and_probe): Ditto.
22702 (ix86_emit_probe_stack_range): Use gen_probe_stack_range instead
22703 of ix86_gen_probe_stack_range.
22704 (ix86_expand_prologue): Use gen_pro_epilogue_adjust_stack_sub
22705 instead of gen_pro_epilogue_adjust_stack_{si,di}_sub.
22706 * config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p):
22707 Include insn-opinit.h. Use code_for_stack_protect_test_1 instead of
22708 CODE_FOR_stack_protect_test_{si,di}.
22709 * config/i386/i386-options.c (ix86_option_override_internal):
22710 Do not initialize ix86_gen_allocate_stack_worker,
22711 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
22712
22713 2019-05-26 Gerald Pfeifer <gerald@pfeifer.com>
22714
22715 * doc/invoke.texi (Link Options): Many editorial changes around
22716 -flinker-output.
22717
22718 2019-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22719
22720 * doc/invoke.texi (x86 Options, -mvect8-ret-in-mem): Remove
22721 pre-Solaris 11 referene and most Studio compiler details.
22722
22723 2019-05-24 John David Anglin <danglin@gcc.gnu.org>
22724
22725 PR target/90530
22726 * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from
22727 DImode to SImode in floating-point registers on 64-bit target.
22728 * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
22729 register_operand in xmpyu patterns.
22730
22731 2019-05-24 Jakub Jelinek <jakub@redhat.com>
22732
22733 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.
22734 * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of
22735 OMP_CLAUSE__REDUCTEMP_.
22736 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
22737 OMP_CLAUSE__CONDTEMP_.
22738 (walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_.
22739 * tree-pretty-print.c (dump_omp_clause): Likewise.
22740 * tree-nested.c (convert_nonlocal_omp_clauses,
22741 convert_local_omp_clauses): Likewise.
22742 * gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants
22743 instead of decimal. Add GOVD_LASTPRIVATE_CONDITIONAL.
22744 (gimplify_scan_omp_clauses): Don't reject lastprivate conditional
22745 on OMP_FOR.
22746 (gimplify_omp_for): Warn and disable conditional modifier from
22747 lastprivate on loop iterators.
22748 * omp-general.h (struct omp_for_data): Add lastprivate_conditional
22749 member.
22750 * omp-general.c (omp_extract_for_data): Initialize it.
22751 * omp-low.c (struct omp_context): Add lastprivate_conditional_map
22752 member.
22753 (delete_omp_context): Delete it.
22754 (lower_lastprivate_conditional_clauses): New function.
22755 (lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments,
22756 handle lastprivate conditional clauses.
22757 (lower_reduction_clauses): Add CLIST argument, emit it into
22758 the critical section if any.
22759 (lower_omp_sections): Adjust lower_lastprivate_clauses and
22760 lower_reduction_clauses callers.
22761 (lower_omp_for_lastprivate): Add CLIST argument, pass it through
22762 to lower_lastprivate_clauses.
22763 (lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust
22764 lower_omp_for_lastprivate and lower_reduction_clauses callers, emit
22765 clist into a critical section if not emitted there already by
22766 lower_reduction_clauses.
22767 (lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses
22768 callers.
22769 (lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate
22770 conditional variables.
22771 * omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_
22772 clause is present.
22773 (expand_omp_for_generic, expand_omp_for_static_nochunk,
22774 expand_omp_for_static_chunk): Handle lastprivate conditional.
22775 (expand_omp_for): Handle fd.lastprivate_conditional like
22776 fd.have_reductemp.
22777
22778 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
22779
22780 * config/gcn/gcn-run.c (main): Set a non-zero return value if the
22781 kernel does not exit cleanly.
22782 * config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb.
22783
22784 2019-05-24 Jason Merrill <jason@redhat.com>
22785
22786 Revert:
22787 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
22788
22789 2019-05-24 Richard Biener <rguenther@suse.de>
22790
22791 PR testsuite/90607
22792 * tree-loop-distribution.c (struct partition): Add location
22793 member.
22794 (partition_alloc): Initialize all fields.
22795 (generate_memset_builtin): Use the location recorded in the
22796 partition for the generated call.
22797 (generate_memcpy_builtin): Likewise.
22798 (classify_partition): Record the location of a single store
22799 as location for the partition.
22800
22801 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
22802
22803 * config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry
22804 for lo-part.
22805
22806 2019-05-24 Matthew Malcomson <matthew.malcomson@arm.com>
22807
22808 PR target/90588
22809 * common/config/aarch64/aarch64-common.c
22810 (aarch64_rewrite_selected_cpu): Change local temporary variable
22811 type from unsigned long to uint64_t.
22812 * config/aarch64/aarch64-protos.h (aarch64_parse_extension,
22813 aarch64_get_extension_string_for_isa_flags): Change declaration to
22814 match new definition by replacing unsigned long with uint64_t.
22815
22816 2019-05-24 Jakub Jelinek <jakub@redhat.com>
22817
22818 PR target/90568
22819 * config/i386/x86-tune-sched.c (ix86_macro_funsion_pair_p): Call
22820 gen_attr_type just once instead of 4-7 times. Formatting fixes.
22821 Handle stack_protect_test_<mode> codegen similarly to corresponding
22822 sub instruction.
22823
22824 2019-05-23 Iain Sandoe <iain@sandoe.co.uk>
22825
22826 * config/i386/darwin.h: Reject -mfentry*.
22827 * doc/sourcebuild.texi: Document mfentry target support.
22828
22829 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
22830
22831 * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p):
22832 Rename to rs6000_global_entry_point_prologue_needed_p. Return
22833 false for PC-relative functions.
22834 (rs6000_output_function_prologue): Change called function name to
22835 rs6000_global_entry_point_prologue_needed_p. Emit ".localentry
22836 name,1" for PC-relative functions.
22837 (rs6000_elf_declare_function_name): Change called function name to
22838 rs6000_global_entry_point_prologue_needed_p.
22839
22840 2019-05-23 Uroš Bizjak <ubizjak@gmail.com>
22841
22842 PR target/90552
22843 * config/i386/i386.c (gen_rtx_cost):
22844 Use ix86_tune_cost instead of ix86_cost.
22845
22846 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
22847 Michael Meissner <meissner@linux.ibm.com>
22848 Segher Boessenkool <segher@kernel.crashing.org>
22849
22850 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add
22851 OPTION_MASK_PCREL.
22852 (POWERPC_MASKS): Add OPTION_MASK_PCREL.
22853 * config/rs6000/rs6000-protos.h (rs6000_pcrel_p): New prototype.
22854 (rs6000_fndecl_pcrel_p): Likewise.
22855 * config/rs6000/rs6000.c (rs6000_option_override_internal): Report
22856 error if -mpcrel is requested without -mcpu=future.
22857 (rs6000_opt_masks): Add entry for pcrel.
22858 (rs6000_fndecl_pcrel_p): New function.
22859 (rs6000_pcrel_p): Likewise.
22860 * config/rs6000/rs6000.opt (mpcrel): New option.
22861 * doc/invoke.texi: Document -mpcrel and -mno-pcrel.
22862
22863 2019-05-23 Jan Hubicka <jh@suse.cz>
22864 Martin Liska <mliska@suse.cz>
22865
22866 PR tree-optimization/90576
22867 * tree-ssa-alias.c (compare_sizes): Remove dead calls to
22868 poly_int_tree_p.
22869 (aliasing_component_refs_p): Fix three way size compare conditional;
22870 give up earlier in case we can not decide on equivalence.
22871
22872 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
22873 Michael Meissner <meissner@linux.ibm.com>
22874 Segher Boessenkool <segher@kernel.crashing.org>
22875
22876 * config.gcc: Add future cpu.
22877 * config/rs6000/driver-rs6000.c (asm_names): Add future cpu.
22878 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): New
22879 #define.
22880 (POWERPC_MASKS): Add OPTION_MASK_FUTURE.
22881 (RS6000_CPU): New instantiation for future cpu.
22882 * config/rs6000/rs6000-opts.h (enum processor_type): Add
22883 PROCESSOR_FUTURE.
22884 * config/rs6000/rs6000-string.c (expand_compare_loop): Treat
22885 PROCESSOR_FUTURE like PROCESSOR_POWER9 for now.
22886 * config/rs6000/rs6000-tables.opt: Regenerate.
22887 * config/rs6000/rs6000.c (rs6000_option_override_internal): Treat
22888 PROCESSOR_FUTURE similarly to PROCESSOR_POWER9 for now.
22889 (rs6000_machine_from_flags): Handle future cpu.
22890 (rs6000_reassociation_width): Treat PROCESSOR_FUTURE like
22891 PROCESSOR_POWER9 for now.
22892 (rs6000_adjust_cost): Likewise.
22893 (rs6000_issue_rate): Likewise.
22894 (rs6000_register_move_cost): Likewise.
22895 (rs6000_opt_masks): Add entry for future.
22896 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add future cpu.
22897 (MASK_FUTURE): New #define.
22898 * config/rs6000/rs6000.md (define_attr "cpu"): Add future cpu.
22899 * config/rs6000/rs6000.opt (mfuture): New target option.
22900 * doc/invoke.texi (mcpu): Add future cpu.
22901
22902 2019-05-23 Martin Liska <mliska@suse.cz>
22903
22904 PR c++/90587
22905 * tree-ssa-uninit.c (value_sat_pred_p): The result of &
22906 operation points to a temporary (pointed via tree_to_wide_ref)
22907 that is out of scope after the &.
22908
22909 2019-05-23 Jonathan Wakely <jwakely@redhat.com>
22910
22911 PR c++/90592
22912 * doc/extend.texi (Function Names): Add missing word.
22913
22914 2019-05-23 Richard Biener <rguenther@suse.de>
22915
22916 PR tree-optimization/88440
22917 * opts.c (default_options_table): Enable -ftree-loop-distribute-patterns
22918 at -O[2s]+.
22919 * tree-loop-distribution.c (generate_memset_builtin): Fold the
22920 generated call.
22921 (generate_memcpy_builtin): Likewise.
22922 (distribute_loop): Pass in whether to only distribute patterns.
22923 (prepare_perfect_loop_nest): Also allow size optimization.
22924 (pass_loop_distribution::execute): When optimizing a loop
22925 nest for size allow pattern replacement.
22926
22927 2019-05-23 Jakub Jelinek <jakub@redhat.com>
22928
22929 PR target/90568
22930 * config/i386/i386.md (stack_protect_test_<mode>): Use sub instead
22931 of xor.
22932
22933 2019-05-23 Martin Liska <mliska@suse.cz>
22934
22935 PR sanitizer/90570
22936 * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
22937 expression similarly to gimplify_decl_expr.
22938
22939 2019-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
22940
22941 * cse.c (cse_dump_path): s/dump_file/f.
22942
22943 2019-05-22 David Malcolm <dmalcolm@redhat.com>
22944
22945 PR c++/90462
22946 * diagnostic-format-json.cc: Include "selftest.h".
22947 (json_from_expanded_location): Only add "file" key for non-NULL
22948 file strings.
22949 (json_from_location_range): Don't add "start" and "finish"
22950 children if they are UNKNOWN_LOCATION.
22951 (selftest::test_unknown_location): New selftest.
22952 (selftest::test_bad_endpoints): New selftest.
22953 (selftest::diagnostic_format_json_cc_tests): New function.
22954 * json.cc (json::object::get): New function.
22955 (selftest::test_object_get): New selftest.
22956 (selftest::json_cc_tests): Call it.
22957 * json.h (json::object::get): New decl.
22958 * selftest-run-tests.c (selftest::run_tests): Call
22959 selftest::diagnostic_format_json_cc_tests.
22960 * selftest.h (selftest::diagnostic_format_json_cc_tests): New
22961 decl.
22962
22963 2019-05-22 Kwok Cheung Yeung <kcy@codesourcery.com>
22964 Andrew Stubbs <amd@codesourcery.com>
22965
22966 * config.gcc (gcc_cv_initfini_array): Set for AMD GCN.
22967 * config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New.
22968 (kernel): Rename to...
22969 (main_kernel): ... this.
22970 (load_image): Load _init_array and _fini_array kernels.
22971 (run): Add argument for kernel to run.
22972 (main): Run init_array_kernel before main_kernel, and
22973 fini_array_kernel after.
22974 * config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow
22975 amdgpu_hsa_kernel attribute on functions.
22976 (gcn_disable_constructors): Delete.
22977 (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete.
22978 * config/gcn/crt0.c (size_t): Define.
22979 (_init_array, _fini_array): New.
22980 (__preinit_array_start, __preinit_array_end,
22981 __init_array_start, __init_array_end,
22982 __fini_array_start, __fini_array_end): Declare weak references.
22983
22984 2019-05-22 Andrew Stubbs <ams@codesourcery.com>
22985
22986 * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5.
22987
22988 2019-05-22 Jason Merrill <jason@redhat.com>
22989
22990 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
22991
22992 2019-05-22 H.J. Lu <hongjiu.lu@intel.com>
22993
22994 PR target/88483
22995 * config/i386/i386-options.c (ix86_init_machine_status): Set
22996 stack_frame_required to true.
22997 * config/i386/i386.c (ix86_get_frame_size): New function.
22998 (ix86_frame_pointer_required): Replace get_frame_size with
22999 ix86_get_frame_size.
23000 (ix86_compute_frame_layout): Likewise.
23001 (ix86_find_max_used_stack_alignment): Changed to void. Set
23002 stack_frame_required.
23003 (ix86_finalize_stack_frame_flags): Always call
23004 ix86_find_max_used_stack_alignment. Replace get_frame_size with
23005 ix86_get_frame_size.
23006 * config/i386/i386.h (machine_function): Add stack_frame_required.
23007
23008 2019-05-22 Uroš Bizjak <ubizjak@gmail.com>
23009
23010 * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.
23011
23012 2019-05-22 Matthew Malcomson <matthew.malcomson@arm.com>
23013
23014 * common/config/aarch64/aarch64-common.c
23015 (struct aarch64_option_extension, struct processor_name_to_arch,
23016 struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp,
23017 aarch64_contains_opt,
23018 aarch64_get_extension_string_for_isa_flags): Change type of
23019 variables storing flags to uint64_t.
23020 * config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4,
23021 sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags.
23022 * config/aarch64/aarch64.c (struct processor,
23023 aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu,
23024 aarch64_validate_march, aarch64_override_options,
23025 aarch64_option_print, aarch64_handle_attr_isa_flags,
23026 aarch64_declare_function_name, aarch64_start_file): Make flag
23027 variables uint64_t.
23028 * config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES,
23029 AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3,
23030 AARCH64_FL_SVE2_BITPERM): New macro feature flags.
23031 * config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t.
23032 * config/aarch64/driver-aarch64.c
23033 (struct aarch64_arch_extension, struct aarch64_core_data,
23034 struct aarch64_arch_driver_info, host_detect_local_cpu): Make
23035 flag variables uint64_t.
23036 * doc/invoke.texi: Add documentation for new arguments.
23037
23038 2019-05-22 Richard Biener <rguenther@suse.de>
23039
23040 * alias.c (ao_ref_from_mem): Move stack-slot sharing
23041 rewrite ...
23042 * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here.
23043
23044 2019-05-22 Martin Liska <mliska@suse.cz>
23045
23046 PR lto/90500
23047 * doc/extend.texi: Document the change.
23048
23049 2019-05-22 Richard Biener <rguenther@suse.de>
23050
23051 PR tree-optimization/90450
23052 * tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed.
23053 (mem_ref_hasher::equal): Check it.
23054 (mem_ref_alloc): Initialize it.
23055 (gather_mem_refs_stmt): Set it.
23056
23057 2019-05-22 Richard Biener <rguenther@suse.de>
23058
23059 * gimple-fold.c (arith_code_with_undefined_signed_overflow):
23060 Add ABS_EXPR.
23061 (rewrite_to_defined_overflow): Handle rewriting ABS_EXPR
23062 as ABSU_EXPR.
23063
23064 2019-05-22 Alan Modra <amodra@gmail.com>
23065
23066 * config/rs6000/rs6000.h (ASM_OPT_ANY): Define.
23067 (ASM_CPU_SPEC): Conditionally add -many.
23068 * config/rs6000/rs6000.c (rs6000_machine): New static var.
23069 (rs6000_machine_from_flags, emit_asm_machine): New functions..
23070 (rs6000_file_start): ..extracted from here, and modified to
23071 test all ISA bits.
23072 (rs6000_output_function_prologue): Emit .machine as necessary.
23073
23074 2019-05-22 Hans-Peter Nilsson <hp@axis.com>
23075
23076 PR middle-end/90553
23077 * ira-lives.c (process_bb_node_lives): Consider defs
23078 for a call insn to be die before the call, not after.
23079
23080 * function.c (assign_parm_setup_block): Raise alignment of
23081 stacked parameter only for STRICT_ALIGNMENT targets.
23082
23083 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
23084
23085 * config/rs6000/constraints.md (define_register_constraint "wz"):
23086 Delete.
23087 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23088 RS6000_CONSTRAINT_wz.
23089 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23090 (rs6000_init_hard_regno_mode_ok): Adjust.
23091 * config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7".
23092 * doc/md.texi (Machine Constraints): Adjust.
23093
23094 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
23095
23096 * config/rs6000/constraints.md (define_register_constraint "wl"):
23097 Delete.
23098 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23099 RS6000_CONSTRAINT_wl.
23100 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23101 (rs6000_init_hard_regno_mode_ok): Adjust.
23102 * config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6".
23103 * doc/md.texi (Machine Constraints): Adjust.
23104
23105 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
23106
23107 * config/rs6000/constraints.md (define_register_constraint "wm"):
23108 Delete.
23109 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23110 RS6000_CONSTRAINT_wm.
23111 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23112 (rs6000_init_hard_regno_mode_ok): Adjust.
23113 * config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v".
23114 * doc/md.texi (Machine Constraints): Adjust.
23115
23116 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
23117
23118 * config/rs6000/constraints.md (define_register_constraint "wk"):
23119 Delete.
23120 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23121 RS6000_CONSTRAINT_wk.
23122 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23123 (rs6000_init_hard_regno_mode_ok): Adjust.
23124 * config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v".
23125 * doc/md.texi (Machine Constraints): Adjust.
23126
23127 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
23128
23129 * config/rs6000/constraints.md (define_register_constraint "wj"):
23130 Delete.
23131 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23132 RS6000_CONSTRAINT_wj.
23133 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23134 (rs6000_init_hard_regno_mode_ok): Adjust.
23135 * config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v".
23136 (VS_64dm): Delete.
23137 * config/rs6000/vsx.md: Ditto.
23138 * doc/md.texi (Machine Constraints): Adjust.
23139
23140 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
23141
23142 * config/rs6000/constraints.md (define_register_constraint "wh"):
23143 Delete.
23144 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23145 RS6000_CONSTRAINT_wh.
23146 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23147 (rs6000_init_hard_regno_mode_ok): Adjust.
23148 * config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v".
23149 * doc/md.texi (Machine Constraints): Adjust.
23150
23151 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
23152
23153 PR target/90547
23154 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
23155 Avoid calling gen_lowpart with CONST operand.
23156
23157 2019-05-21 Alexandre Oliva <aoliva@redhat.com>
23158
23159 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add
23160 field template_last_to_copy.
23161 (ssa_create_duplicates): Set it, and use it. Attempt to
23162 preserve more debug stmts.
23163
23164 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
23165
23166 * config/i386/sse.md (VF1_AVX2): New mode iterator.
23167 (signbit<mode>2): New expander
23168
23169 2019-05-21 James Clarke <jrtc27@jrtc27.com>
23170
23171 PR bootstrap/87338
23172 * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
23173 instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.
23174
23175 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
23176
23177 * config/i386/cpuid.h (__cpuid): For 32bit targets, zero
23178 %ebx and %ecx bafore calling cpuid with leaf 1 or
23179 non-constant leaf argument.
23180
23181 2019-05-21 Alan Modra <amodra@gmail.com>
23182
23183 PR target/90545
23184 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase
23185 power9 direct move cost.
23186
23187 2019-05-21 Richard Biener <rguenther@suse.de>
23188
23189 PR middle-end/90510
23190 * fold-const.c (fold_read_from_vector): New function.
23191 * fold-const.h (fold_read_from_vector): Declare.
23192 * match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for
23193 single-element insert permutations. Canonicalize selector
23194 further and fix issue with last commit.
23195
23196 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
23197
23198 * tree-cfg.h (split_critical_edges): Add for_edge_insertion_p
23199 parameter with default value false to declaration.
23200 (split_edges_for_insertion): New inline function. Wrapper for
23201 split_critical_edges with for_edge_insertion_p = true.
23202 * tree-cfg.c (split_critical_edges): Don't split non-critical
23203 edges if for_edge_insertion_p is false. Fix whitespace.
23204 * tree-ssa-pre.c (pass_pre::execute): Call
23205 split_edges_for_insertion instead of split_critical_edges.
23206 * tree-ssa-tail-merge.c (tail_merge_optimize): Ditto.
23207 * tree-ssa-sink.c (pass_sink_code::execute): Ditto.
23208 (pass_data_sink_code): Update function name in the comment.
23209
23210 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
23211
23212 * tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper
23213 around is_value_included_in that knows how to handle BIT_AND_EXPR.
23214 (is_pred_expr_subset_of): Use the new function. Handle more cases where
23215 code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false
23216 positives.
23217
23218 2019-05-21 Martin Liska <mliska@suse.cz>
23219
23220 * config/rs6000/driver-rs6000.c (elf_platform): Do not use
23221 an extra newline.
23222 * config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>.
23223 (altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and
23224 vec_lvsr.
23225 * config/rs6000/rs6000.c (rs6000_option_override_internal):
23226 Quote a C type.
23227 (rs6000_function_arg): Likewise.
23228 (rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot.
23229 (rs6000_expand_ternop_builtin): Use interval syntax.
23230 (get_element_number): Likewise.
23231 (altivec_expand_builtin): Likewise.
23232 (rs6000_get_function_versions_dispatcher): Quote target_clones.
23233
23234 2019-05-20 Jakub Jelinek <jakub@redhat.com>
23235
23236 PR c++/59813
23237 PR target/90418
23238 * function.h (struct function): Add calls_eh_return member.
23239 * gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when
23240 gimplifying __builtin_eh_return call.
23241 * tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun
23242 to cfun.
23243 (expand_call_inline): Or in src_cfun->calls_eh_return into
23244 dst_cfun->calls_eh_return.
23245 * tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if
23246 cfun->calls_eh_return.
23247 * lto-streamer-in.c (input_struct_function_base): Read calls_eh_return.
23248 * lto-streamer-out.c (output_struct_function_base): Write
23249 calls_eh_return.
23250
23251 2019-05-20 Marc Glisse <marc.glisse@inria.fr>
23252
23253 PR rtl-optimization/43147
23254 * config/i386/i386.c (ix86_gimple_fold_builtin): Handle
23255 IX86_BUILTIN_SHUFPD.
23256
23257 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
23258
23259 * tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
23260 (refs_may_alias_p_1): ... here; update stats.
23261 (refs_may_alias_p): Do not update stats here.
23262
23263 2019-05-20 Richard Biener <rguenther@suse.de>
23264
23265 * tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR
23266 doesn't produce pointers.
23267 {TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what
23268 the first operand points to.
23269
23270 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
23271
23272 * tree-ssa-alias.c (compare_sizes): New function.
23273 (sompare_type_sizes): New function
23274 (aliasing_component_refs_p): Use it.
23275 (indirect_ref_may_alias_decl_p): Likewise.
23276
23277 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23278
23279 * config/i386/sol2.h (CC1_SPEC): Reject -mx32.
23280
23281 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23282
23283 * config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e.
23284 (LIBLSAN_EARLY_SPEC): Likewise.
23285 * config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise.
23286
23287 2019-05-20 Martin Liska <mliska@suse.cz>
23288
23289 * config/i386/i386.c (ix86_libc_has_fast_function):
23290 Add ATTRIBUTE_UNUSED for the argument.
23291
23292 2019-05-20 Richard Biener <rguenther@suse.de>
23293
23294 * gimple-match-head.c: Include vec-perm-indices.h.
23295 * generic-match-head.c: Likewise.
23296 * fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h
23297 is included.
23298 * fold-const.c (fold_vec_perm): Export.
23299 (fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR...
23300 (match.pd): ...here.
23301
23302 2019-05-20 Jakub Jelinek <jakub@redhat.com>
23303
23304 * cfgloop.h (struct loop): Add simdlen member.
23305 * cfgloopmanip.c (copy_loop_info): Copy simdlen as well.
23306 * omp-expand.c (expand_omp_simd): Set it if simdlen clause is present.
23307 * tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0
23308 as new argument to autovectorize_vector_sizes target hook. If
23309 loop->simdlen, pick up vector size where the vectorization factor
23310 is equal to loop->simd, and if there is none, fall back to the first
23311 successful one.
23312 (vect_transform_loop): Adjust autovectorize_vector_sizes target hook
23313 caller.
23314 * omp-low.c (omp_clause_aligned_alignment): Likewise.
23315 * omp-general.c (omp_max_vf): Likewise.
23316 * optabs-query.c (can_vec_mask_load_store_p): Likewise.
23317 * tree-vect-slp.c (vect_slp_bb): Likewise.
23318 * target.def (autovectorize_vector_sizes): Add ALL argument and
23319 document it.
23320 * doc/tm.texi: Adjust documentation.
23321 * targhooks.c (default_autovectorize_vector_sizes): Add bool argument.
23322 * targhooks.h (default_autovectorize_vector_sizes): Likewise.
23323 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add
23324 bool argument.
23325 * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
23326 * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
23327 * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
23328 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. If
23329 true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if
23330 preferred vector size is not 512-bit or 256-bit, just put those
23331 unpreferred ones last.
23332
23333 2019-05-20 Martin Liska <mliska@suse.cz>
23334
23335 * targhooks.c (default_libc_has_fast_function): New function.
23336 * targhooks.h (default_libc_has_fast_function): Likewise.
23337
23338 2019-05-20 Martin Liska <mliska@suse.cz>
23339
23340 PR middle-end/90263
23341 * builtins.c (expand_builtin_memory_copy_args): When having a
23342 target with fast mempcpy implementation do now use memcpy.
23343 * config/i386/i386.c (ix86_libc_has_fast_function): New.
23344 (TARGET_LIBC_HAS_FAST_FUNCTION): Likewise.
23345 * doc/tm.texi: Likewise.
23346 * doc/tm.texi.in: Likewise.
23347 * target.def:
23348 * expr.c (emit_block_move_hints): Add 2 new arguments.
23349 * expr.h (emit_block_move_hints): Bail out when libcall
23350 to memcpy would be used.
23351
23352 2019-05-20 Martin Liska <mliska@suse.cz>
23353
23354 * profile-count.c: Add vertical spacing in order
23355 to separate functions.
23356 * profile-count.h: Likewise.
23357
23358 2019-05-20 Martin Liska <mliska@suse.cz>
23359
23360 * profile-count.h: Do not use full qualified
23361 names if possible.
23362 * profile-count.c (profile_count::to_frequency): Likewise.
23363
23364 2019-05-20 Martin Liska <mliska@suse.cz>
23365
23366 * profile-count.h (enum profile_quality): Use capital letters
23367 for enum value names. Use the adjusted names.
23368 * profile-count.c: Use the adjusted names.
23369
23370 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
23371
23372 * config/rs6000/constraints.md (define_register_constraint "wH"):
23373 Delete.
23374 (define_register_constraint "wI"): Delete.
23375 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23376 RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI.
23377 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23378 (rs6000_init_hard_regno_mode_ok): Adjust.
23379 * config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v"
23380 resp. "d", or with "wa" as appropriate, all with "p8v".
23381 * config/rs6000/vsx.md: Ditto.
23382 * doc/md.texi (Machine Constraints): Adjust.
23383
23384 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
23385
23386 * config/rs6000/constraints.md (define_register_constraint "wy"):
23387 Delete.
23388 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23389 RS6000_CONSTRAINT_wy.
23390 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23391 (rs6000_init_hard_regno_mode_ok): Adjust.
23392 * config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v".
23393 Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>".
23394 (define_mode_attr Fisa): New.
23395 * config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v".
23396 * doc/md.texi (Machine Constraints): Adjust.
23397
23398 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
23399
23400 * config/rs6000/constraints.md (define_register_constraint "wu"):
23401 Delete.
23402 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23403 RS6000_CONSTRAINT_wu.
23404 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23405 (rs6000_init_hard_regno_mode_ok): Adjust.
23406 * config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa",
23407 both with "p8v".
23408 (define_mode_attr Fa): Delete.
23409 * config/rs6000/vsx.md: Ditto.
23410 * doc/md.texi (Machine Constraints): Adjust.
23411
23412 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
23413
23414 * config/rs6000/constraints.md (define_register_constraint "wJ"):
23415 Delete.
23416 (define_register_constraint "wK"): Delete.
23417 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23418 RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK.
23419 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23420 (rs6000_init_hard_regno_mode_ok): Adjust.
23421 * config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v".
23422 Replace "wK" constraint by "wH" with "p9v".
23423 * config/rs6000/vsx.md: Ditto.
23424 * doc/md.texi (Machine Constraints): Adjust.
23425
23426 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
23427
23428 * config/rs6000/constraints.md (define_register_constraint "wb"):
23429 Delete.
23430 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23431 RS6000_CONSTRAINT_wb.
23432 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23433 (rs6000_init_hard_regno_mode_ok): Adjust.
23434 * config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v".
23435 * config/rs6000/vsx.md: Ditto.
23436 * doc/md.texi (Machine Constraints): Adjust.
23437
23438 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
23439
23440 * config/rs6000/constraints.md (define_register_constraint "wo"):
23441 Delete.
23442 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23443 RS6000_CONSTRAINT_wo.
23444 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23445 (rs6000_init_hard_regno_mode_ok): Adjust.
23446 * config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v".
23447 * config/rs6000/altivec.md: Ditto.
23448 * doc/md.texi (Machine Constraints): Adjust.
23449
23450 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
23451
23452 * config/darwin-c.c (darwin_register_objc_includes): Do not
23453 prepend the sysroot when building gnu-runtime header search
23454 paths.
23455
23456 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
23457
23458 * config/darwin.c (darwin_file_end): Use switch_to_section ()
23459 instead of direct output of the asm.
23460
23461 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
23462
23463 * config/rs6000/rs6000.c (restore_saved_cr): Change a boolean
23464 argument to be type bool (was int before).
23465 (rs6000_emit_epilogue): Simplify some code. Declare some variables
23466 at first use. Use type bool for some variables. Fix a theoretical
23467 eh_return bug for svr4.
23468
23469 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
23470
23471 * config/rs6000/rs6000.md (isa): New attribute.
23472 (enabled): New attribute.
23473
23474 2019-05-17 Max Filippov <jcmvbkbc@gmail.com>
23475
23476 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call
23477 assemble_start_function and assemble_end_function.
23478
23479 2019-05-17 Thomas Schwinge <thomas@codesourcery.com>
23480
23481 PR middle-end/89433
23482 * omp-general.c (oacc_verify_routine_clauses): Change formal
23483 parameters. Add checking if already marked with an OpenACC
23484 'routine' directive. Adjust all users.
23485
23486 PR middle-end/89433
23487 * omp-general.c (oacc_build_routine_dims): Move some of its
23488 processing into...
23489 (oacc_verify_routine_clauses): ... this new function.
23490 * omp-general.h (oacc_verify_routine_clauses): New prototype.
23491
23492 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
23493
23494 * config/rs6000/rs6000.c (machopic_output_stub): Adjust the
23495 formating of picbase labels to match other ports.
23496
23497 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
23498
23499 * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent
23500 in the generated code.
23501
23502 2019-05-16 Martin Sebor <msebor@redhat.com>
23503
23504 * builtins.c (expand_builtin_atomic_always_lock_free): Quote
23505 identifiers, keywords, operators, and types in diagnostics. Correct
23506 quoting, spelling, and sentence capitalization issues.
23507 (expand_builtin_atomic_is_lock_free): Same.
23508 (fold_builtin_next_arg): Same.
23509 * cfgexpand.c (expand_one_var): Same.
23510 (tree_conflicts_with_clobbers_p): Same.
23511 (expand_asm_stmt): Same.
23512 (verify_loop_structure): Same.
23513 * cgraphunit.c (process_function_and_variable_attributes): Same.
23514 * collect-utils.c (collect_execute): Same.
23515 * collect2.c (maybe_run_lto_and_relink): Same.
23516 (is_lto_object_file): Same.
23517 (scan_prog_file): Same.
23518 * convert.c (convert_to_real_1): Same.
23519 * dwarf2out.c (dwarf2out_begin_prologue): Same.
23520 * except.c (verify_eh_tree): Same.
23521 * gcc.c (execute): Same.
23522 (eval_spec_function): Same.
23523 (run_attempt): Same.
23524 (driver::set_up_specs): Same.
23525 (compare_debug_auxbase_opt_spec_function): Same.
23526 * gcov-tool.c (unlink_gcda_file): Same.
23527 (do_merge): Same.
23528 (do_rewrite): Same.
23529 * gcse.c (gcse_or_cprop_is_too_expensive): Same.
23530 * gimplify.c (gimplify_asm_expr): Same.
23531 (gimplify_adjust_omp_clauses): Same.
23532 * hsa-gen.c (gen_hsa_addr_insns): Same.
23533 (gen_hsa_insns_for_load): Same.
23534 (gen_hsa_cmp_insn_from_gimple): Same.
23535 (gen_hsa_insns_for_operation_assignment): Same.
23536 (gen_get_level): Same.
23537 (gen_hsa_alloca): Same.
23538 (omp_simple_builtin::generate): Same.
23539 (gen_hsa_atomic_for_builtin): Same.
23540 (gen_hsa_insns_for_call): Same.
23541 * input.c (dump_location_info): Same.
23542 * ipa-devirt.c (compare_virtual_tables): Same.
23543 * ira.c (ira_setup_eliminable_regset): Same.
23544 * lra-assigns.c (lra_assign): Same.
23545 * lra-constraints.c (lra_constraints): Same.
23546 * lto-streamer-in.c (lto_input_mode_table): Same.
23547 * lto-wrapper.c (get_options_from_collect_gcc_options): Same.
23548 (merge_and_complain): Same.
23549 (compile_offload_image): Same.
23550 (compile_images_for_offload_targets): Same.
23551 (debug_objcopy): Same.
23552 (run_gcc): Same.
23553 (main): Same.
23554 * opts.c (print_specific_help): Same.
23555 (parse_no_sanitize_attribute): Same.
23556 (print_help): Same.
23557 (handle_param): Same.
23558 * plugin.c (add_new_plugin): Same.
23559 (parse_plugin_arg_opt): Same.
23560 (try_init_one_plugin): Same.
23561 * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords,
23562 operators, and types in diagnostics. Correct quoting and spelling
23563 issues.
23564 * read-rtl-function.c (parse_edge_flag_token): Same.
23565 (function_reader::parse_enum_value): Same.
23566 * reg-stack.c (check_asm_stack_operands): Same.
23567 * regcprop.c (validate_value_data): Same.
23568 * sched-rgn.c (make_pass_sched_fusion): Same.
23569 * stmt.c (check_unique_operand_names): Same.
23570 * targhooks.c (default_target_option_pragma_parse): Same.
23571 * tlink.c (recompile_files): Same.
23572 * toplev.c (process_options): Same.
23573 (do_compile): Same.
23574 * trans-mem.c (diagnose_tm_1): Same.
23575 (ipa_tm_scan_irr_block): Same.
23576 (ipa_tm_diagnose_transaction): Same.
23577 * tree-cfg.c (verify_address): Same. Use get_tree_code_name to
23578 format a tree code name in a diagnostic.
23579 (verify_types_in_gimple_min_lval): Same.
23580 (verify_types_in_gimple_reference): Same.
23581 (verify_gimple_call): Same.
23582 (verify_gimple_assign_unary): Same.
23583 (verify_gimple_assign_binary): Same.
23584 (verify_gimple_assign_ternary): Same.
23585 (verify_gimple_assign_single): Same.
23586 (verify_gimple_switch): Same.
23587 (verify_gimple_label): Same.
23588 (verify_gimple_phi): Same.
23589 (verify_gimple_in_seq): Same.
23590 (verify_eh_throw_stmt_node): Same.
23591 (collect_subblocks): Same.
23592 (gimple_verify_flow_info): Same.
23593 (do_warn_unused_result): Same.
23594 * tree-inline.c (expand_call_inline): Same.
23595 * tree-into-ssa.c (update_ssa): Same.
23596 * tree.c (tree_int_cst_elt_check_failed): Same.
23597 (tree_vec_elt_check_failed): Same.
23598 (omp_clause_operand_check_failed): Same.
23599 (verify_type_variant): Same.
23600 (verify_type): Same.
23601 * value-prof.c (verify_histograms): Same.
23602 * varasm.c (assemble_start_function): Same.
23603
23604 2019-05-16 Martin Sebor <msebor@redhat.com>
23605
23606 * config/i386/i386-expand.c (get_element_number): Quote keywords
23607 and other internal names in diagnostics. Adjust other diagnostic
23608 formatting issues noted by -Wformat-diag.
23609 * config/i386/i386-features.c
23610 (ix86_mangle_function_version_assembler_name): Same.
23611 * config/i386/i386-options.c (ix86_handle_abi_attribute): Same.
23612 * config/i386/i386.c (ix86_function_type_abi): Same.
23613 (ix86_function_ms_hook_prologue): Same.
23614 (classify_argument): Same.
23615 (ix86_expand_prologue): Same.
23616 (ix86_md_asm_adjust): Same.
23617 (ix86_memmodel_check): Same.
23618
23619 2019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
23620
23621 * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
23622 TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
23623 and fpxx modes.
23624
23625 2019-05-17 H.J. Lu <hongjiu.lu@intel.com>
23626
23627 PR target/90497
23628 * config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX
23629 intrinsics without SSE/SSE2/SSSE3.
23630 * config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW
23631 check.
23632 (*mmx_uavgv8qi3): Likewise.
23633
23634 2019-05-17 Richard Biener <rguenther@suse.de>
23635
23636 * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping
23637 VEC_PERM_EXPR as __VEC_PERM with -gimple.
23638
23639 2019-05-17 Andreas Krebbel <krebbel@linux.ibm.com>
23640
23641 * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the
23642 vec_sldw insn pattern.
23643
23644 2019-05-17 Richard Biener <rguenther@suse.de>
23645
23646 * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree.
23647
23648 2019-05-17 Martin Liska <mliska@suse.cz>
23649
23650 PR driver/90496
23651 * toplev.c (output_stack_usage): With LTO and sanitizer it
23652 happens that a global ctor (_GLOBAL__sub_I_00099_0_main)
23653 has no file location.
23654
23655 2019-05-16 Jakub Jelinek <jakub@redhat.com>
23656
23657 PR c++/90484
23658 * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that
23659 sz0 is equal to sz1, instead return false in that case.
23660
23661 * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF
23662 has non-constant expression, force sctx.lane and use two
23663 argument IFN_GOMP_SIMD_LANE instead of single argument.
23664 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE
23665 two argument IFN_GOMP_SIMD_LANE without lhs.
23666 * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond
23667 member.
23668 (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND):
23669 Define.
23670 (LOOP_REQUIRES_VERSIONING): Or in
23671 LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND.
23672 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
23673 simd_if_cond.
23674 (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0.
23675 * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check
23676 from simd if clause if needed.
23677
23678 2019-05-16 Richard Biener <rguenther@suse.de>
23679
23680 * tree-affine.c (expr_to_aff_combination): New function split
23681 out from...
23682 (tree_to_aff_combination): ... here.
23683 (aff_combination_expand): Avoid building a GENERIC tree.
23684
23685 2019-05-16 Max Filippov <jcmvbkbc@gmail.com>
23686
23687 * cgraphunit.c (cgraph_node::expand_thunk): Remove
23688 assemble_start_function and assemble_end_function calls.
23689 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call
23690 assemble_start_function and assemble_end_function.
23691 * config/arc/arc.c (arc_output_mi_thunk): Likewise.
23692 * config/arm/arm.c (arm_output_mi_thunk): Likewise.
23693 * config/bfin/bfin.c (bfin_output_mi_thunk): Likewise.
23694 * config/c6x/c6x.c (c6x_output_mi_thunk): Likewise.
23695 * config/cris/cris.c (cris_asm_output_mi_thunk): Likewise.
23696 * config/csky/csky.c (csky_output_mi_thunk): Likewise.
23697 * config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise.
23698 * config/frv/frv.c (frv_asm_output_mi_thunk): Likewise.
23699 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
23700 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
23701 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
23702 * config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk):
23703 Likewise.
23704 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
23705 * config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise.
23706 * config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise.
23707 * config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise.
23708 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
23709 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
23710 * config/pa/pa.c (pa_asm_output_mi_thunk): Likewise.
23711 * config/riscv/riscv.c (riscv_output_mi_thunk): Likewise.
23712 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
23713 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
23714 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
23715 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
23716 * config/spu/spu.c (spu_output_mi_thunk): Likewise.
23717 * config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk):
23718 Likewise.
23719 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
23720 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
23721 * config/vax/vax.c (vax_output_mi_thunk): Likewise.
23722
23723 2019-05-16 Jan Hubicka <hubicka@ucw.cz>
23724
23725 * tree-ssa-alias.c (alias_stats): Add
23726 aliasing_component_refs_p_may_alias and
23727 aliasing_component_refs_p_no_alias.
23728 (dump_alias_stats): Print aliasing_component_refs_p stats.
23729 (aliasing_component_refs_p): Update stats.
23730
23731 2019-05-16 Martin Liska <mliska@suse.cz>
23732
23733 PR lto/90500
23734 * multiple_target.c (expand_target_clones): Do not allow
23735 target_clones being used with a symbol that is an alias.
23736
23737 2019-05-16 Vladislav Ivanishin <vlad@ispras.ru>
23738
23739 PR tree-optimization/90394
23740 * tree-ssa-uninit.c (is_pred_expr_subset_of): Potentially give false
23741 positives rather than ICE for cases where (code2 == NE_EXPR
23742 && code1 == BIT_AND_EXPR).
23743
23744 2019-05-16 Jakub Jelinek <jakub@redhat.com>
23745
23746 PR fortran/90329
23747 * tree-core.h (struct tree_decl_common): Document
23748 decl_nonshareable_flag for PARM_DECLs.
23749 * tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
23750 * calls.c (expand_call): Don't try tail call if caller
23751 has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
23752 passed on the stack and callee needs to pass any arguments on the
23753 stack.
23754 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
23755 else if instead of series of mutually exclusive ifs. Handle
23756 DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
23757 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
23758
23759 * lto-streamer.h (LTO_major_version): Bump to 9.
23760
23761 2019-05-16 Jun Ma <JunMa@linux.alibaba.com>
23762
23763 PR tree-optimization/90106
23764 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Add
23765 new parameter as new internal function call, also move it to new
23766 basic block.
23767 (use_internal_fn): Pass internal function call to
23768 shrink_wrap_one_built_in_call_with_conds.
23769
23770 2019-05-15 Jakub Jelinek <jakub@redhat.com>
23771
23772 * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set
23773 max_vf to 1.
23774 * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear
23775 safelen_int and set loop->dont_vectorize.
23776
23777 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23778
23779 PR target/89021
23780 * config/i386/i386-builtin.def: Enable MMX intrinsics with
23781 SSE/SSE2/SSSE3.
23782 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
23783 Likewise.
23784 * config/i386/i386-expand.c (ix86_expand_builtin): Allow
23785 SSE/SSE2/SSSE3 to emulate MMX intrinsics with TARGET_MMX_WITH_SSE.
23786 * config/i386/mmintrin.h: Only require SSE2 if __MMX_WITH_SSE__
23787 is defined.
23788
23789 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23790
23791 PR target/89021
23792 * config/i386/mmx.md (*vec_dupv2sf): Changed to
23793 define_insn_and_split to support SSE emulation.
23794 (*vec_extractv2sf_0): Likewise.
23795 (*vec_extractv2sf_1): Likewise.
23796 (*vec_extractv2si_0): Likewise.
23797 (*vec_extractv2si_1): Likewise.
23798 (*vec_extractv2si_zext_mem): Likewise.
23799 (vec_setv2sf): Also allow TARGET_MMX_WITH_SSE.
23800 (vec_extractv2sf_1 splitter): Likewise.
23801 (vec_extractv2sfsf): Likewise.
23802 (vec_setv2si): Likewise.
23803 (vec_extractv2si_1 splitter): Likewise.
23804 (vec_extractv2sisi): Likewise.
23805 (vec_setv4hi): Likewise.
23806 (vec_extractv4hihi): Likewise.
23807 (vec_setv8qi): Likewise.
23808 (vec_extractv8qiqi): Likewise.
23809 (vec_extractv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
23810 TARGET_MMX_WITH_SSE ix86_expand_vector_extract.
23811 (vec_extractv2sisi): Likewise.
23812 (vec_extractv4hihi): Likewise.
23813 (vec_extractv8qiqi): Likewise.
23814 (vec_initv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
23815 TARGET_MMX_WITH_SSE to ix86_expand_vector_init.
23816 (vec_initv2sisi): Likewise.
23817 (vec_initv4hihi): Likewise.
23818 (vec_initv8qiqi): Likewise.
23819 (vec_setv2si): Also allow TARGET_MMX_WITH_SSE. Pass
23820 TARGET_MMX_WITH_SSE to ix86_expand_vector_set.
23821 (vec_setv4hi): Likewise.
23822 (vec_setv8qi): Likewise.
23823
23824 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23825
23826 PR target/89021
23827 * config/i386/mmx.md (MMXMODE:mov<mode>): Also allow
23828 TARGET_MMX_WITH_SSE.
23829 (MMXMODE:*mov<mode>_internal): Likewise.
23830 (MMXMODE:movmisalign<mode>): Likewise.
23831
23832 2019-05-15 Uroš Bizjak <ubizjak@gmail.com>
23833
23834 PR target/89021
23835 * config/i386/i386.md (*zero_extendsidi2): Add mmx_isa attribute.
23836 * config/i386/sse.md (sse2_cvtpi2pd): Ditto.
23837 (sse2_cvtpd2pi): Ditto.
23838 (sse2_cvttpd2pi): Ditto.
23839 (*vec_concatv2sf_sse4_1): Ditto.
23840 (*vec_concatv2sf_sse): Ditto.
23841 (*vec_concatv2si_sse4_1): Ditto.
23842 (*vec_concatv2si): Ditto.
23843 (*vec_concatv4si_0): Ditto.
23844 (*vec_concatv2di_0): Ditto.
23845
23846 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23847
23848 PR target/89021
23849 * config/i386/sse.md (abs<mode>2): Add SSE emulation.
23850
23851 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23852
23853 PR target/89021
23854 * config/i386/sse.md (ssse3_palignrdi): Changed to
23855 define_insn_and_split to support SSE emulation.
23856
23857 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23858
23859 PR target/89021
23860 * config/i386/sse.md (ssse3_psign<mode>3): Add SSE emulation.
23861
23862 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23863
23864 PR target/89021
23865 * config/i386/sse.md (ssse3_pshufbv8qi3): Changed to
23866 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
23867 SSE emulation.
23868
23869 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23870
23871 PR target/89021
23872 * config/i386/sse.md (ssse3_pmulhrswv4hi3): Require TARGET_MMX
23873 or TARGET_MMX_WITH_SSE.
23874 (*ssse3_pmulhrswv4hi3): Add SSE emulation.
23875
23876 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23877
23878 PR target/89021
23879 * config/i386/sse.md (ssse3_pmaddubsw): Add SSE emulation.
23880
23881 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23882
23883 PR target/89021
23884 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>dv2si3):
23885 Changed to define_insn_and_split to support SSE emulation.
23886
23887 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23888
23889 PR target/89021
23890 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
23891 Changed to define_insn_and_split to support SSE emulation.
23892
23893 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23894
23895 PR target/89021
23896 * config/i386/mmx.md (mmx_<emms>): Renamed to ...
23897 (*mmx_<emms>): This.
23898 (mmx_<emms>): New expander.
23899
23900 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23901
23902 PR target/89021
23903 * config/i386/mmx.md (sse2_umulv1siv1di3): Add SSE emulation
23904 support.
23905 (*sse2_umulv1siv1di3): Add SSE2 emulation.
23906
23907 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23908
23909 PR target/89021
23910 * config/i386/mmx.md (sse_movntq): Add SSE2 emulation.
23911
23912 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23913
23914 PR target/89021
23915 * config/i386/mmx.md (mmx_psadbw): Add SSE emulation.
23916
23917 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23918
23919 PR target/89021
23920 * config/i386/mmx.md (mmx_uavgv4hi3): Also check TARGET_MMX and
23921 TARGET_MMX_WITH_SSE.
23922 (*mmx_uavgv4hi3): Add SSE emulation.
23923
23924 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23925
23926 PR target/89021
23927 * config/i386/mmx.md (mmx_uavgv8qi3): Also check TARGET_MMX
23928 and TARGET_MMX_WITH_SSE.
23929 (*mmx_uavgv8qi3): Add SSE emulation.
23930
23931 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23932
23933 PR target/89021
23934 * config/i386/xmmintrin.h: Emulate MMX maskmovq with SSE2
23935 maskmovdqu for __MMX_WITH_SSE__.
23936
23937 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23938
23939 PR target/89021
23940 * config/i386/mmx.md (mmx_umulv4hi3_highpart): Also check
23941 TARGET_MMX and TARGET_MMX_WITH_SSE.
23942 (*mmx_umulv4hi3_highpart): Add SSE emulation.
23943
23944 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23945
23946 PR target/89021
23947 * config/i386/mmx.md (mmx_pmovmskb): Changed to
23948 define_insn_and_split to support SSE emulation.
23949
23950 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23951
23952 PR target/89021
23953 * config/i386/mmx.md (mmx_<code>v4hi3): Also check TARGET_MMX
23954 and TARGET_MMX_WITH_SSE.
23955 (mmx_<code>v8qi3): Likewise.
23956 (smaxmin:<code>v4hi3): New.
23957 (umaxmin:<code>v8qi3): Likewise.
23958 (smaxmin:*mmx_<code>v4hi3): Add SSE emulation.
23959 (umaxmin:*mmx_<code>v8qi3): Likewise.
23960
23961 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23962
23963 PR target/89021
23964 * config/i386/mmx.md (mmx_pinsrw): Also check TARGET_MMX and
23965 TARGET_MMX_WITH_SSE.
23966 (*mmx_pinsrw): Add SSE emulation.
23967
23968 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23969
23970 PR target/89021
23971 * config/i386/mmx.md (mmx_pextrw): Add SSE emulation.
23972
23973 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23974
23975 PR target/89021
23976 * config/i386/sse.md (sse_cvtpi2ps): Changed to
23977 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
23978 SSE emulation.
23979
23980 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23981
23982 PR target/89021
23983 * config/i386/sse.md (sse_cvtps2pi): Add SSE emulation.
23984 (sse_cvttps2pi): Likewise.
23985
23986 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23987
23988 PR target/89021
23989 * config/i386/mmx.md (mmx_pshufw): Also check TARGET_MMX and
23990 TARGET_MMX_WITH_SSE.
23991 (mmx_pshufw_1): Add SSE emulation.
23992 (*vec_dupv4hi): Changed to define_insn_and_split and also allow
23993 TARGET_MMX_WITH_SSE to support SSE emulation.
23994
23995 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23996
23997 PR target/89021
23998 * config/i386/constraints.md (Yw): New constraint.
23999 * config/i386/mmx.md (*vec_dupv2si): Changed to
24000 define_insn_and_split and also allow TARGET_MMX_WITH_SSE to
24001 support SSE emulation.
24002
24003 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
24004
24005 PR target/89021
24006 * config/i386/mmx.md (mmx_eq<mode>3): Also allow
24007 TARGET_MMX_WITH_SSE.
24008 (*mmx_eq<mode>3): Also allow TARGET_MMX_WITH_SSE. Add SSE
24009 support.
24010 (mmx_gt<mode>3): Likewise.
24011
24012 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
24013
24014 PR target/89021
24015 * config/i386/mmx.md (mmx_andnot<mode>3): Also allow
24016 TARGET_MMX_WITH_SSE. Add SSE support.
24017
24018 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
24019
24020 PR target/89021
24021 * config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow
24022 TARGET_MMX_WITH_SSE.
24023 (any_logic:<code><mode>3): New.
24024 (any_logic:*mmx_<code><mode>3): Also allow TARGET_MMX_WITH_SSE.
24025 Add SSE support.
24026
24027 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
24028
24029 PR target/89021
24030 * config/i386/mmx.md (mmx_ashr<mode>3): Also allow
24031 TARGET_MMX_WITH_SSE. Add SSE emulation.
24032 (mmx_<shift_insn><mode>3): Likewise.
24033 (ashr<mode>3): New.
24034 (<shift_insn><mode>3): Likewise.
24035
24036 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
24037
24038 PR target/89021
24039 * config/i386/mmx.md (mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE.
24040 (*mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE. Add SSE support.
24041
24042 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
24043
24044 PR target/89021
24045 * config/i386/mmx.md (mmx_smulv4hi3_highpart): Also allow
24046 TARGET_MMX_WITH_SSE.
24047 (*mmx_smulv4hi3_highpart): Also allow TARGET_MMX_WITH_SSE. Add
24048 SSE support.
24049
24050 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
24051
24052 PR target/89021
24053 * config/i386/mmx.md (mmx_mulv4hi3): Also allow
24054 TARGET_MMX_WITH_SSE.
24055 (mulv4hi3): New.
24056 (*mmx_mulv4hi3): Also allow TARGET_MMX_WITH_SSE. Add SSE
24057 support.
24058
24059 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
24060
24061 PR target/89021
24062 * config/i386/mmx.md (MMXMODEI8): Require TARGET_SSE2 for V1DI.
24063 (plusminus:mmx_<plusminus_insn><mode>3): Check
24064 TARGET_MMX_WITH_SSE.
24065 (sat_plusminus:mmx_<plusminus_insn><mode>3): Likewise.
24066 (<plusminus_insn><mode>3): New.
24067 (*mmx_<plusminus_insn><mode>3): Add SSE emulation.
24068 (*mmx_<plusminus_insn><mode>3): Likewise.
24069
24070 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
24071
24072 PR target/89021
24073 * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function.
24074 * config/i386/i386-protos.h (ix86_split_mmx_punpck): New
24075 prototype.
24076 * config/i386/mmx.m (mmx_punpckhbw): Changed to
24077 define_insn_and_split to support SSE emulation.
24078 (mmx_punpcklbw): Likewise.
24079 (mmx_punpckhwd): Likewise.
24080 (mmx_punpcklwd): Likewise.
24081 (mmx_punpckhdq): Likewise.
24082 (mmx_punpckldq): Likewise.
24083
24084 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
24085 Uros Bizjak <ubizjak@gmail.com>
24086
24087 PR target/89021
24088 * config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx):
24089 New function.
24090 (ix86_split_mmx_pack): Likewise.
24091 * config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx):
24092 New prototype.
24093 (ix86_split_mmx_pack): Likewise.
24094 * config/i386/i386.md (mmx_isa): New.
24095 (enabled): Also check mmx_isa.
24096 * config/i386/mmx.md (any_s_truncate): New code iterator.
24097 (s_trunsuffix): New code attr.
24098 (mmx_packsswb): Removed.
24099 (mmx_packssdw): Likewise.
24100 (mmx_packuswb): Likewise.
24101 (mmx_pack<s_trunsuffix>swb): New define_insn_and_split to emulate
24102 MMX packsswb/packuswb with SSE2.
24103 (mmx_packssdw): Likewise.
24104 * config/i386/predicates.md (register_mmxmem_operand): New.
24105
24106 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
24107
24108 PR target/89021
24109 * config/i386/i386-c.c (ix86_target_macros_internal): Define
24110 __MMX_WITH_SSE__ for TARGET_MMX_WITH_SSE.
24111 * config/i386/i386.c (ix86_set_reg_reg_cost): Add support for
24112 TARGET_MMX_WITH_SSE with VALID_MMX_REG_MODE.
24113 (ix86_vector_mode_supported_p): Likewise.
24114 * config/i386/i386.h (TARGET_MMX_WITH_SSE): New.
24115
24116 2019-05-15 Martin Liska <mliska@suse.cz>
24117
24118 PR middle-end/90478
24119 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
24120 Check for overflow.
24121
24122 2019-05-15 Richard Biener <rguenther@suse.de>
24123
24124 * tree-into-ssa.c (pass_build_ssa::execute): Run
24125 update_address_taken before going into SSA.
24126
24127 2019-05-15 Richard Biener <rguenther@suse.de>
24128
24129 * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF
24130 as __BIT_FIELD_REF with type with -gimple.
24131
24132 2019-05-15 Vladislav Ivanishin <vlad@ispras.ru>
24133
24134 * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge
24135 semantically equivalent branches (left over after prior refactorings).
24136
24137 2019-05-15 Richard Biener <rguenther@suse.de>
24138
24139 PR tree-optimization/88828
24140 * tree-ssa-forwprop.c (simplify_vector_constructor): Fix
24141 bogus check.
24142
24143 2019-05-14 Richard Biener <rguenther@suse.de>
24144
24145 * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR
24146 as __VIEW_CONVERT with -gimple.
24147
24148 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
24149
24150 PR target/82920
24151 * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
24152 Darwin.
24153
24154 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
24155
24156 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following
24157 define_split to become a define_insn_and_split.
24158
24159 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
24160
24161 * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change
24162 arguments.
24163 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments.
24164 * config/rs6000/rs6000.md (epilogue_type): New define_enum.
24165 (sibcall_epilogue): Adjust.
24166 (epilogue): Adjust.
24167
24168 2019-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24169
24170 * config.gcc: Move *-*-solaris2.10* from obsolete configurations
24171 to unsupported ones.
24172 Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*.
24173 * config.host: Likewise.
24174 * config/i386/sol2.h (ASM_COMMENT_START): Remove.
24175 * config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ &&
24176 __svr4__]: Remove "brand" fallback.
24177 [!KSTAT_DATA_STRING]: Remove.
24178 * configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]*
24179 to *-*-solaris2*.
24180 (comdat_group): Likewise.
24181 (set_have_as_tls): Likewise.
24182 (gcc_cv_target_dl_iterate_phdr): Likewise.
24183 (gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround.
24184 (gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround.
24185 * configure: Regenerate.
24186 * doc/install.texi: Simplify Solaris target triplets.
24187 (Specific, i?86-*-solaris2*): Remove Solaris 10 references.
24188 (Specific, *-*-solaris2*): Document Solaris 10 removal.
24189 Remove Solaris 10 references.
24190 Remove obsolete Solaris bug reference.
24191 (Specific, sparc-sun-solaris2.10): Remove.
24192
24193 2019-05-14 Uroš Bizjak <ubizjak@gmail.com>
24194
24195 * config/i386/i386.md (any_div): New code iterator.
24196 (paired_mod): New code attribute.
24197 (sgnprefix): Handle DIV and UDIV RTXes.
24198 (u): Ditto.
24199 (<u>divmod<mode>4): Macroize expander from divmod<mode>4
24200 and udivmod<mode>4 patterns using any_div code iterator.
24201 (divmod splitters): Macroize splitters using any_div code iterator.
24202 (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition.
24203 (*udivmodsi4_pow2_zext_2): Ditto.
24204 (*<u>divmod<mode>4_noext): Macroize insn from *divmod<mode>4_noext
24205 and *udivmod<mode>4_noext patterns using any_div code iterator.
24206 (*<u>divmod<mode>4_noext_zext_1): Macroize insn from
24207 *divmod<mode>4_noext_zext_1 and *udivmod<mode>4_noext_zext_1
24208 patterns using any_div code iterator.
24209 (*<u>divmod<mode>4_noext_zext_2): Macroize insn from
24210 *divmod<mode>4_noext_zext_2 and *udivmod<mode>4_noext_zext_2
24211 patterns using any_div code iterator.
24212 (<u>divmodhiqi3): Macroize insn from divmodhiqi3 and
24213 udivmodhiqi3 patterns using any_extend code iterator.
24214
24215 2019-05-14 Richard Biener <rguenther@suse.de>
24216 H.J. Lu <hongjiu.lu@intel.com>
24217
24218 PR tree-optimization/88828
24219 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
24220 permuting in a single non-constant element not extracted
24221 from a vector.
24222
24223 2019-05-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
24224
24225 * internal-fn.def (SIGNBIT): New.
24226 * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand
24227 defined.
24228 (signbitv4sf2): Likewise.
24229
24230 2019-05-14 Chenghua Xu <paul.hua.gm@gmail.com>
24231
24232 PR target/90357
24233 * config/mips/mips.c (mips_split_move): Skip forward SRC into
24234 next insn when the SRC reg is dead.
24235
24236 2019-05-14 Bin Cheng <bin.cheng@linux.alibaba.com>
24237
24238 * gimple-ssa-strength-reduction.c (lookup_cand): Adjust index by 1.
24239 (alloc_cand_and_find_basis): Ditto.
24240 (backtrace_base_for_ref, create_mul_ssa_cand): Remove if-then-else.
24241 (create_mul_imm_cand, create_add_ssa_cand): Ditto.
24242 (create_add_imm_cand, slsr_process_cast): Ditto.
24243 (slsr_process_copy, replace_mult_candidate): Ditto.
24244 (replace_rhs_if_not_dup, replace_one_candidate): Ditto.
24245 (dump_cand_vec, analyze_candidates_and_replace): Skip NULL element.
24246 (pass_strength_reduction::execute): Init the first NULL element.
24247
24248 2019-05-13 Nathan Sidwell <nathan@acm.org>
24249
24250 * gcc.c (execute): Simplify cond-expr into if. Reformat comment.
24251 (run_attempt): Reformat line break.
24252
24253 2019-05-13 David Edelsohn <dje.gcc@gmail.com>
24254
24255 PR target/90418
24256 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH
24257 data registers in sibcall epilogues.
24258 Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
24259
24260 2019-05-13 Uroš Bizjak <ubizjak@gmail.com>
24261
24262 PR target/89221
24263 * configure.ac (--enable-frame-pointer):
24264 Disable by default for cygwin and mingw.
24265 * configure: Regenerate.
24266
24267 2019-05-13 Nathan Sidwell <nathan@acm.org>
24268
24269 * dwarf2out.c (breakout_comdat_types): Move comment to correct
24270 piece of code.
24271 (const_ok_for_output_1): Balance parens around #if/#else/#endif
24272 (gen_member_die): Move abstract origin check earlier. Only VARs
24273 can be static_inline_p. Simplify splicing control flow.
24274
24275 2019-05-13 Richard Biener <rguenther@suse.de>
24276
24277 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
24278 VIEW_CONVERT_EXPR.
24279 (vect_build_slp_tree_1): Likewise.
24280
24281 2019-05-13 Richard Biener <rguenther@suse.de>
24282
24283 PR tree-optimization/90402
24284 * tree-if-conv.c (tree_if_conversion): Value number only
24285 the loop body by making the latch an exit of the region
24286 as well.
24287 * tree-ssa-sccvn.c (process_bb): Add flag whether to skip
24288 processing PHIs.
24289 (do_rpo_vn): Deal with multiple edges into the entry block
24290 that are not backedges inside the region by skipping PHIs
24291 of the entry block.
24292
24293 2019-05-13 Richard Biener <rguenther@suse.de>
24294
24295 PR tree-optimization/90316
24296 * tree-ssa-pre.c (insert_aux): Fold into ...
24297 (insert): ... this function. Use a RPO walk to reduce the
24298 number of required iterations.
24299
24300 2019-05-13 Martin Liska <mliska@suse.cz>
24301
24302 PR tree-optimization/90416
24303 * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate
24304 string instead of passing the second part as va_arg argument.
24305
24306 2019-05-13 Martin Liska <mliska@suse.cz>
24307
24308 PR gcov-profile/90380
24309 * gcov.c (handle_cycle): Do not support zero cycle count,
24310 it should not be possible.
24311 (path_contains_zero_cycle_arc): New function.
24312 (circuit): Ignore zero cycle arc counts.
24313
24314 2019-05-13 Martin Liska <mliska@suse.cz>
24315
24316 PR gcov-profile/90380
24317 * gcov.c (enum loop_type): Remove the enum and
24318 the operator.
24319 (handle_cycle): Assert that we should not reach
24320 a negative count.
24321 (circuit): Use loop_found instead of a tri-state loop_type.
24322 (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't
24323 happen.
24324
24325 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
24326
24327 PR target/82920
24328 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
24329 (ix86_output_indirect_branch_via_reg): Use output mechanism
24330 accounting for __USER_LABEL_PREFIX__.
24331 (ix86_output_indirect_branch_via_push): Likewise.
24332 (ix86_output_function_return): Likewise.
24333 (ix86_output_indirect_function_return): Likewise.
24334
24335 2019-05-12 Richard Sandiford <richard.sandiford@arm.com>
24336
24337 * doc/md.texi: Document use of code attributes in rtx patterns.
24338 * read-md.h (rtx_reader::rtx_alloc_for_name): New member function.
24339 * read-rtl.c (find_code): Split out search loops into...
24340 (maybe_find_code): ...this new function.
24341 (check_code_iterator): Make the error message more informative.
24342 (check_code_attribute): New function.
24343 (rtx_reader::rtx_alloc_for_name): Likewise.
24344 (rtx_reader::read_rtx_code): Use rtx_alloc_for_name.
24345 * config/aarch64/predicates.md (aarch64_smin, aarch64_umin): Delete.
24346 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Use
24347 <max_opp> directly as an rtx code instead of via a match_operator.
24348 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Likewise.
24349 (<su>abd<mode>_3): Update accordingly.
24350
24351 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
24352
24353 * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack
24354 is given, print the state of the EH "save world" computation for
24355 Darwin.
24356
24357 2019-05-11 Jakub Jelinek <jakub@redhat.com>
24358
24359 PR c++/59813
24360 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add
24361 EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
24362
24363 2019-05-11 Uroš Bizjak <ubizjak@gmail.com>
24364
24365 * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm):
24366 Use pinsrd for TARGET_SSE4_1.
24367 * config/i386/sse.md (movdi_to_sse): Ditto.
24368
24369 2019-05-10 Richard Biener <rguenther@suse.de>
24370
24371 * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id.
24372 (do_rpo_vn): Initialize next_value_id.
24373
24374 2019-05-10 Martin Liska <mliska@suse.cz>
24375
24376 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
24377 Fix plural form.
24378
24379 2019-05-10 Jakub Jelinek <jakub@redhat.com>
24380
24381 PR tree-optimization/90385
24382 * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME
24383 arguments of the exit phis.
24384
24385 PR c++/90383
24386 * tree-inline.h (struct copy_body_data): Add do_not_fold member.
24387 * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if
24388 id->do_not_fold.
24389 (copy_tree_body_r): Likewise.
24390 (copy_fn): Set id.do_not_fold to true.
24391
24392 2019-05-10 Martin Liska <mliska@suse.cz>
24393
24394 * config/i386/i386-expand.c (ix86_expand_floorceildf_32):
24395 Reapply changes from r269790.
24396
24397 2019-05-10 Martin Liska <mliska@suse.cz>
24398
24399 PR middle-end/90340
24400 * doc/invoke.texi: New params.
24401 * params.def (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE): New.
24402 (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED): Likewise.
24403 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
24404 Use it.
24405 * tree-switch-conversion.h (struct jump_table_cluster):
24406 Likewise.
24407
24408 2019-05-09 Segher Boessenkool <segher@kernel.crashing.org>
24409
24410 * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL.
24411
24412 2019-05-09 Bill Schmidt <wschmidt@linux.ibm.com>
24413
24414 * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK.
24415
24416 2019-05-09 Alexander Monakov <amonakov@ispras.ru>
24417
24418 PR rtl-optimization/88879
24419 * sel-sched.c (sel_target_adjust_priority): Remove assert.
24420
24421 2019-05-09 Richard Earnshaw <rearnsha@arm.com>
24422
24423 PR target/90405
24424 * config/arm/arm.c (callee_saved_reg_p): Move before
24425 thumb_find_work_register.
24426 (thumb1_prologue_unused_call_clobbered_lo_regs): Move before
24427 thumb_find_work_register. Only call df_get_live_out once.
24428 (thumb1_epilogue_unused_call_clobbered_lo_regs): Likewise.
24429 (thumb_find_work_register): Use
24430 thumb1_prologue_unused_call_clobbered_lo_regs instead of ad hoc
24431 algorithms to locate a spare call clobbered reg.
24432
24433 2019-05-09 Martin Liska <mliska@suse.cz>
24434
24435 * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR
24436 and MAX_EXPR in GIMPLE FE format.
24437
24438 2019-05-09 Martin Liska <mliska@suse.cz>
24439
24440 * tree-cfg.c (dump_function_to_file): Dump entry BB count.
24441 * gimple-pretty-print.c (dump_gimple_bb_header):
24442 Dump BB count.
24443 (pp_cfg_jump): Dump edge probability.
24444 * profile-count.c (profile_quality_as_string): Simplify
24445 with a static array.
24446 (parse_profile_quality): New function.
24447 (profile_count::dump): Simplify with a static array.
24448 (profile_count::from_gcov_type): Add new argument.
24449 * profile-count.h (parse_profile_quality): Likewise.
24450 * predict.h (set_hot_bb_threshold): New.
24451 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
24452 New param.
24453 * predict.c (get_hot_bb_threshold): Set from the new param.
24454 (set_hot_bb_threshold): New.
24455
24456 2019-05-09 Richard Biener <rguenther@suse.de>
24457
24458 PR tree-optimization/90395
24459 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not
24460 rewrite vector stores that throw internally.
24461
24462 2019-05-09 Thomas Schwinge <thomas@codesourcery.com>
24463
24464 * cif-code.def (CHKP): Remove.
24465
24466 PR target/89221
24467 * configure.ac (--enable-frame-pointer): Disable by default for
24468 GNU systems.
24469 * configure: Regenerate.
24470
24471 2019-05-09 Alan Modra <amodra@gmail.com>
24472
24473 PR target/89271
24474 * config/rs6000/rs6000.h (enum reg_class, REG_CLASS_NAMES),
24475 (REG_CLASS_CONTENTS): Add GEN_OR_VSX_REGS class.
24476 * config/rs6000/rs6000.c (rs6000_register_move_cost): Correct
24477 cost for general <-> vsx when direct moves are available.
24478 Cost union classes at minimal cost for any reg in the class.
24479 Correct calculation for moves between vsx, float, and altivec.
24480 Don't return a low cost for moves between special regs. Don't
24481 use hard coded register numbers.
24482 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define.
24483 (rs6000_ira_change_pseudo_allocno_class): New function.
24484 * config/rs6000/rs6000.md (movsi_internal1, mov<mode>_internal),
24485 (movdi_internal32, movdi_internal64): Remove '*' from vsx register
24486 alternatives.
24487 (movsi_internal1): Don't disparage vector alternatives.
24488 (mov<mode>_internal): Likewise, excepting alternative that
24489 will be split.
24490 * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage
24491 we <- b alternative.
24492
24493 2019-05-08 Jakub Jelinek <jakub@redhat.com>
24494
24495 PR c++/59813
24496 PR tree-optimization/89060
24497 * tree-ssa-live.h (live_vars_map): New typedef.
24498 (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare.
24499 * tree-ssa-live.c: Include gimple-walk.h and cfganal.h.
24500 (struct compute_live_vars_data): New type.
24501 (compute_live_vars_visit, compute_live_vars_1, compute_live_vars,
24502 live_vars_at_stmt, destroy_live_vars): New functions.
24503 * tree-tailcall.c: Include tree-ssa-live.h.
24504 (live_vars, live_vars_vec): New global variables.
24505 (find_tail_calls): Perform variable life analysis before punting.
24506 (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec.
24507 * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest
24508 member.
24509 * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument.
24510 Perform variable life analysis to select variables that really need
24511 clobbers added.
24512 (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here,
24513 instead set id->eh_landing_pad_dest and assert it is the same.
24514 (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL.
24515
24516 2019-05-08 Mihail Ionescu <mihail.ionescu@arm.com>
24517 Richard Earnshaw <rearnsha@arm.com>
24518
24519 PR target/88167
24520 * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
24521 function.
24522 (thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
24523 (thumb1_compute_save_core_reg_mask): Don't force a spare work
24524 register if both the epilogue and prologue can use call-clobbered
24525 regs.
24526 (thumb1_unexpanded_epilogue): Use
24527 thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for
24528 picking temporaries for restoring high regs to match that of the
24529 prologue where possible.
24530 (thumb1_expand_prologue): Add any usable call-clobbered low registers to
24531 the list of work registers. Detect if the return address is still live
24532 at the end of the prologue and avoid using it for a work register if so.
24533 If the return address is not live, add LR to the list of pushable regs
24534 after the first pass.
24535
24536 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
24537
24538 PR tree-optimization/90078
24539 * tree-ssa-loop-ivopts.c (inttypes.h): Include new header file.
24540 (INFTY): Increase the value for infinite cost.
24541 (struct comp_cost): Promote type of members to int64_t.
24542 (infinite_cost): Don't set complexity in initialization.
24543 (comp_cost::operator +,-,+=,-+,/=,*=): Assert when cost computation
24544 overflows to infinite_cost.
24545 (adjust_setup_cost): Promote type of parameter and cost computation
24546 to int64_t.
24547 (struct ainc_cost_data, struct iv_ca): Promote type of member to
24548 int64_t.
24549 (get_scaled_computation_cost_at, determine_iv_cost): Promote type of
24550 cost computation to int64_t.
24551 (determine_group_iv_costs, iv_ca_dump, find_optimal_iv_set): Use
24552 int64_t's format specifier in dump.
24553
24554 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
24555
24556 PR tree-optimization/90240
24557 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Scale cost
24558 with respect to scaling factor pre-computed for each basic block.
24559 (try_improve_iv_set): Return bool if best_cost equals to iv_ca cost.
24560 (find_optimal_iv_set_1): Free iv_ca set if it has infinite_cost.
24561 (COST_SCALING_FACTOR_BOUND, determine_scaling_factor): New.
24562 (tree_ssa_iv_optimize_loop): Call determine_scaling_factor. Extend
24563 live range for array of loop's basic blocks. Cleanup aux field of
24564 loop's basic blocks.
24565
24566 2019-05-08 Jakub Jelinek <jakub@redhat.com>
24567
24568 PR tree-optimization/90356
24569 * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible.
24570
24571 2019-05-07 Wei Xiao <wei3.xiao@intel.com>
24572
24573 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET
24574 OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New.
24575 (OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET.
24576 (ix86_handle_option): Handle -mavx512bf16.
24577 * config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h
24578 to extra_headers.
24579 * config/i386/avx512bf16vlintrin.h: New.
24580 * config/i386/avx512bf16intrin.h: New.
24581 * config/i386/cpuid.h (bit_AVX512BF16): New.
24582 * config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16.
24583 * config/i386/i386-builtin-types.def: Add new types.
24584 * config/i386/i386-builtin.def: Add new builtins.
24585 * config/i386/i386-c.c (ix86_target_macros_internal): Define
24586 __AVX512BF16__.
24587 * config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16.
24588 (ix86_option_override_internal): Handle BF16.
24589 (ix86_valid_target_attribute_inner_p): Ditto.
24590 * config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto.
24591 * config/i386/i386-builtin.c (enum processor_features): Add
24592 F_AVX512BF16.
24593 (static const _isa_names_table isa_names_table): Ditto.
24594 * config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New.
24595 (PTA_AVX512BF16): Ditto.
24596 * config/i386/i386.opt: Add -mavx512bf16.
24597 * config/i386/immintrin.h: Include avx512bf16intrin.h
24598 and avx512bf16vlintrin.h.
24599 * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>,
24600 avx512f_cvtneps2bf16_<mode><mask_name>,
24601 avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns.
24602 * config/i386/subst.md (mask_half): Add new subst.
24603 * doc/invoke.texi: Document -mavx512bf16.
24604
24605 2019-05-07 Segher Boessenkool <segher@kernel.crashing.org>
24606
24607 * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr):
24608 Delete declaration.
24609 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete.
24610 (rs6000_debug_legitimize_reload_address): Delete.
24611 (rs6000_legitimize_reload_address_ptr): Delete.
24612 (rs6000_option_override_internal): Adjust.
24613 (mem_operand_gpr): Adjust comment.
24614 (legitimate_lo_sum_address_p): Ditto.
24615 (rs6000_legitimize_reload_address): Delete.
24616 (rs6000_debug_legitimize_reload_address): Delete.
24617 * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete.
24618
24619 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org>
24620
24621 PR target/89765
24622 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
24623 In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
24624 to compute vector element selector for both constant and variable
24625 operands.
24626
24627 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
24628
24629 * config/i386/i386.md (cvt_mnemonic): New mode attribute.
24630 (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and
24631 ashrdi3_cvt using SWI48 mode iterator.
24632
24633 2019-05-07 Alejandro Martinez <alejandro.martinezvicente@arm.com>
24634
24635 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand.
24636 (aarch64_<su>abd<mode>_3): Likewise.
24637 (*aarch64_<su>abd<mode>_3): New define_insn.
24638 (<sur>sad<vsi2qi>): New define_expand.
24639 * config/aarch64/iterators.md: Added MAX_OPP attribute.
24640 * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR.
24641 (build_vect_cond_expr): Likewise.
24642
24643 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
24644
24645 * cfgexpand.c (asm_clobber_reg_is_valid): Reject
24646 clobbers outside of accessible_reg_set.
24647 * config/i386/i386.c (ix86_conditional_register_usage):
24648 Disable register sets by clearing corresponding bits in
24649 accessible_reg_set. Do not set corresponding bits in fixed_regs,
24650 call_used_regs and don't clear corresponding reg_names array members.
24651
24652 2019-05-07 Richard Biener <rguenther@suse.de>
24653
24654 * tree-vect-stmts.c (vect_is_simple_cond): When vectype is
24655 not specified still compute a comp_vectype for invariant
24656 compares.
24657
24658 2019-05-07 Richard Biener <rguenther@suse.de>
24659
24660 PR tree-optimization/90316
24661 * tree-ssa-pre.c (translate_vuse_through_block): When
24662 same_valid is NULL do not bother to search for a virtual
24663 PHI continuation.
24664 (phi_translate_1): When operands changed we cannot keep
24665 the same value-number so do not bother to ask whether
24666 that's possible from translate_vuse_through_block.
24667
24668 2019-05-07 Martin Liska <mliska@suse.cz>
24669
24670 * bitmap.c (bitmap_register): Come up with
24671 alloc_descriptor_max_uid and assign it for
24672 a new bitmap.
24673 (register_overhead): Use get_descriptor as
24674 a descriptor.
24675 (release_overhead): New.
24676 (bitmap_elem_to_freelist): Call it.
24677 (bitmap_elt_clear_from): Likewise.
24678 (bitmap_obstack_free): Likewise.
24679 (bitmap_move): Sensitively release memory.
24680 * bitmap.h (struct GTY): Add alloc_descriptor and padding.
24681 (bitmap_initialize): Initialize alloc_descriptor to zero.
24682 * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move.
24683
24684 2019-05-07 Richard Biener <rguenther@suse.de>
24685
24686 * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever
24687 we build a SLP node. Remove max_size and limiting.
24688 (vect_analyze_slp_instance): Record and dump size of the SLP graph.
24689
24690 2019-05-07 Richard Biener <rguenther@suse.de>
24691
24692 PR tree-optimization/90316
24693 * tree-ssa-alias.h (get_continuation_for_phi): Take walking
24694 limit by reference.
24695 (walk_non_aliased_vuses): Take walking limit argument.
24696 * tree-ssa-alias.c (maybe_skip_until): Take limit and abort
24697 walking if it is reached instead of just counting.
24698 (get_continuation_for_phi): Likewise.
24699 (walk_non_aliased_vuses): Likewise, instead of leaving counter
24700 limiting to the callback.
24701 * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
24702 (vn_reference_lookup_3): Likewise.
24703 (vn_reference_lookup_pieces): Likewise.
24704 (vn_reference_lookup): Likewise.
24705 * tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
24706 * tree-ssa-scopedtables.c (vuse_eq): Adjust.
24707 (avail_exprs_stack::lookup_avail_expr): Likewise.
24708
24709 2019-05-07 Jan Hubicka <hubicka@ucw.cz>
24710
24711 * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking
24712 for comparaible types in the second direction even if first one
24713 hits incomparable type.
24714
24715 2019-05-07 Richard Biener <rguenther@suse.de>
24716
24717 PR lto/90369
24718 * lto-wrapper.c (debug_objcopy): Use the original filename
24719 including archive offset for the filename used for -save-temps.
24720
24721 2019-05-07 Li Jia He <helijia@linux.ibm.com>
24722
24723 * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
24724 detection.
24725
24726 2019-05-06 H.J. Lu <hongjiu.lu@intel.com>
24727 Hongtao Liu <hongtao.liu@intel.com>
24728
24729 PR target/89750
24730 PR target/86444
24731 * config/i386/i386-expand.c (ix86_expand_sse_comi_round):
24732 Modified, original implementation isn't correct.
24733
24734 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
24735
24736 * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO)
24737 (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO)
24738 (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO)
24739 (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO)
24740 (FRAME_POINTER_REGNUM): Change numbering.
24741 * config/rs6000/rs6000.c (rs6000_reg_names): Adjust.
24742 (alt_reg_names): Adjust.
24743 (rs6000_conditional_register_usage): Don't mark hard register 64 as
24744 fixed.
24745 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
24746 (DWARF_FRAME_REGISTERS): Delete.
24747 (DWARF2_FRAME_REG_OUT): Fix whitespace.
24748 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
24749 Adjust.
24750 (REG_ALLOC_ORDER): Adjust.
24751 (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust.
24752 (REG_CLASS_CONTENTS): Adjust.
24753 (RETURN_ADDR_RTX): Change comment.
24754 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM
24755 instead of 67.
24756 (REGISTER_NAMES): Adjust.
24757 (ADDITIONAL_REGISTER_NAMES): Adjust.
24758 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
24759
24760 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
24761
24762 * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO):
24763 Delete.
24764 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
24765 (DWARF_FRAME_REGISTERS): Adjust.
24766 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
24767 Adjust.
24768 (REG_ALLOC_ORDER): Adjust.
24769 (enum reg_class): Delete SPR_REGS.
24770 (REG_CLASS_NAMES): Delete SPR_REGS.
24771 (REG_CLASS_CONTENTS): Delete SPR_REGS. Adjust for deleted TM regs.
24772 (REGISTER_NAMES): Adjust.
24773 (ADDITIONAL_REGISTER_NAMES): Adjust.
24774 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
24775 * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust.
24776 * config/rs6000/predicates.md (htm_spr_reg_operand): Delete.
24777 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust.
24778 (htm_spr_regno): Delete.
24779 (htm_expand_builtin): Adjust: the HTM builtins now have one fewer
24780 argument.
24781 (rs6000_dbx_register_number): Adjust.
24782
24783 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
24784
24785 * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete.
24786
24787 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
24788
24789 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle
24790 FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ).
24791
24792 2019-05-06 Jakub Jelinek <jakub@redhat.com>
24793
24794 PR tree-optimization/88709
24795 PR tree-optimization/90271
24796 * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter.
24797 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle
24798 non-clobber CONSTRUCTORs with no elts. Remove useless tmp_int
24799 variable.
24800 (imm_store_chain_info::coalesce_immediate_stores): Punt if the size
24801 of the store merging group is larger than
24802 PARAM_STORE_MERGING_MAX_SIZE parameter.
24803 (split_group): Add bzero_first argument. If set, always emit first
24804 the first store which must be = {} of the whole area and then for the
24805 rest of the stores consider all zero bytes as paddings.
24806 (imm_store_chain_info::output_merged_store): Check if first store
24807 is = {} of the whole area and if yes, determine which setting of
24808 bzero_first for split_group gives smaller number of stores. Adjust
24809 split_group callers.
24810 (lhs_valid_for_store_merging_p): Allow decls.
24811 (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with
24812 no elts.
24813 (pass_store_merging::process_store): Likewise.
24814
24815 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
24816
24817 PR target/89424
24818 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
24819 handling of V1TImode.
24820
24821 2019-05-06 Uroš Bizjak <ubizjak@gmail.com>
24822
24823 PR target/89221
24824 * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld
24825 and enable_frame_pointer ...
24826 * configure.ac: ... here. Update help strings for
24827 --enable-frame-pointer.
24828 * configure: Regenerate.
24829 * config/i386/i386-options.c (ix86_option_override_internal): Remove
24830 USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead.
24831 * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove.
24832 (USE_X86_64_FRAME_POINTER): Ditto.
24833
24834 2019-05-06 Martin Liska <mliska@suse.cz>
24835
24836 * config.gcc: Append to target_gtfiles and fix indentation.
24837
24838 2019-05-06 Richard Biener <rguenther@suse.de>
24839
24840 PR tree-optimization/90358
24841 * tree-vect-stmts.c (get_group_load_store_type): Properly
24842 detect unused upper half of load.
24843 (vectorizable_load): Likewise.
24844
24845 2019-05-06 Richard Biener <rguenther@suse.de>
24846
24847 PR tree-optimization/88828
24848 * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from...
24849 (simplify_vector_constructor): ...here. Handle constants in
24850 the constructor.
24851
24852 2019-05-06 Richard Biener <rguenther@suse.de>
24853
24854 PR tree-optimization/90328
24855 * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
24856 * tree-data-ref.c (dr_may_alias_p): Check whether the clique
24857 is valid in the loop nest before using it.
24858 (initialize_data_dependence_relation): Adjust.
24859 * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
24860 loop as loop-nest to dr_may_alias_p.
24861
24862 2019-05-06 Richard Biener <rguenther@suse.de>
24863
24864 * dwarf2out.c (mem_loc_descriptor): Initialize int_mode.
24865
24866 2019-05-06 Richard Biener <rguenther@suse.de>
24867
24868 PR tree-optimization/90316
24869 * tree-ssa-alias.c (maybe_skip_until): Pass in target BB,
24870 compute target on demand.
24871 (get_continuation_for_phi): Remove code walking stmts to
24872 get to a target virtual operand which could end up being
24873 quadratic.
24874
24875 2019-05-06 Martin Liska <mliska@suse.cz>
24876
24877 PR sanitizer/90312
24878 * config/i386/i386-options.c (ix86_option_override_internal): Error only
24879 when -mabi is selected to a non-default version.
24880
24881 2019-05-06 Hrishikesh Kulkarni <hrishikeshparag@gmail.com>
24882 Martin Liska <mliska@suse.cz>
24883
24884 * Makefile.in: Add lto-dump.texi.
24885 * cgraph.h: Add new functions get_visibility_string and
24886 get_symtab_type_string.
24887 * doc/gcc.texi: Include lto-dump section.
24888 * doc/lto-dump.texi: New file.
24889 * dumpfile.c (dump_switch_p_1): Use parse_dump_option.
24890 (parse_dump_option): Factor out this function.
24891 * dumpfile.h (enum dump_flag): Add new value TDF_ERROR.
24892 (parse_dump_option): Export the function.
24893 * symtab.c (symtab_node::get_visibility_string): New function.
24894 (symtab_node::get_symtab_type_string): Likewise.
24895
24896 2019-05-06 Martin Liska <mliska@suse.cz>
24897
24898 * config/i386/i386-builtins.c: New file.
24899 * config/i386/i386-builtins.h: New file.
24900 * config/i386/i386-expand.c: New file.
24901 * config/i386/i386-expand.h: New file.
24902 * config/i386/i386-features.c: New file.
24903 * config/i386/i386-features.h: New file.
24904 * config/i386/i386-options.c: New file.
24905 * config/i386/i386-options.h: New file.
24906 * config.gcc: Add new files into extra_objs and
24907 target_gtfiles.
24908 * config/i386/i386.c: Split content of the file
24909 into newly introduced files.
24910 * config/i386/i386.h: Declare common variables
24911 and macros.
24912 * config/i386/t-i386: Define dependencies for new files.
24913
24914 2019-05-03 Richard Earnshaw <rearnsha@arm.com>
24915
24916 PR target/89400
24917 * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
24918 Restrict 'all' variant to 32-bit configurations.
24919 (unaligned_loadhiu): Likewise.
24920 (unaligned_storehi): Likewise.
24921 (unaligned_storesi): Likewise.
24922 (unaligned_loadhis): Disable when compiling for thumb1.
24923
24924 2019-05-03 Marc Glisse <marc.glisse@inria.fr>
24925
24926 PR tree-optimization/90269
24927 * tree-loop-distribution.c (find_seed_stmts_for_distribution):
24928 Ignore clobbers.
24929
24930 2019-05-03 Martin Liska <mliska@suse.cz>
24931
24932 * hash-map.h: Add is_empty function.
24933 * hash-set.h: Likewise.
24934 * hash-table.h: Likewise.
24935 * dwarf2out.c (dwarf2out_finish): Use is_empty instead of
24936 elements () == 0 (and similar usages).
24937 * gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise.
24938 * gimplify.c (gimplify_bind_expr): Likewise.
24939 (gimplify_switch_expr): Likewise.
24940 * hash-map-tests.c (test_map_of_strings_to_int): Likewise.
24941 * ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise.
24942 * postreload-gcse.c (dump_hash_table): Likewise.
24943 (gcse_after_reload_main): Likewise.
24944 * predict.c (combine_predictions_for_bb): Likewise.
24945 * tree-parloops.c (reduction_phi): Likewise.
24946 (separate_decls_in_region): Likewise.
24947 (transform_to_exit_first_loop): Likewise.
24948 (gen_parallel_loop): Likewise.
24949 (gather_scalar_reductions): Likewise.
24950 (try_create_reduction_list): Likewise.
24951 * var-tracking.c (dump_vars): Likewise.
24952 (emit_notes_for_changes): Likewise.
24953 (vt_emit_notes): Likewise.
24954
24955 2019-05-03 Richard Biener <rguenther@suse.de>
24956
24957 PR tree-optimization/90316
24958 * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries
24959 before running VN.
24960
24961 2019-05-03 Richard Biener <rguenther@suse.de>
24962
24963 * tree-vect-stmts.c (get_group_load_store_type): Avoid
24964 peeling for gaps by loading only lower halves of vectors
24965 if possible.
24966 (vectorizable_load): Likewise.
24967
24968 2019-05-03 Richard Biener <rguenther@suse.de>
24969
24970 PR middle-end/89518
24971 * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A.
24972
24973 2019-05-03 Richard Biener <rguenther@suse.de>
24974
24975 PR middle-end/87314
24976 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)):
24977 Handle STRING_CST vs DECL or STRING_CST.
24978
24979 2019-05-03 Richard Biener <rguenther@suse.de>
24980
24981 PR tree-optimization/88963
24982 * tree-ssa-forwprop.c (pass_forwprop::execute): Rewrite
24983 vector loads feeding only BIT_FIELD_REFs to component
24984 loads. Rewrite stores fed by CONSTRUCTORs to component
24985 stores.
24986
24987 2019-05-03 Jakub Jelinek <jakub@redhat.com>
24988
24989 * opts.h (finish_options): Remove lang_mask argument.
24990 (print_help, help_option_argument): Declare.
24991 * opts.c (print_help): Remove forward declaration, no longer static.
24992 (finish_options): Remove lang_mask argument, don't call print_help
24993 here.
24994 * opts-global.c (decode_options): Adjust finish_option caller, call
24995 print_help here.
24996
24997 PR tree-optimization/90303
24998 * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use
24999 TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode.
25000
25001 2019-05-03 Richard Biener <rguenther@suse.de>
25002
25003 PR tree-optimization/89698
25004 * gimple-fold.c (canonicalize_constructor_val): Early out
25005 for constants, handle unfolded INTEGER_CSTs as they appear in
25006 C++ virtual table ctors.
25007
25008 2019-05-03 Richard Biener <rguenther@suse.de>
25009
25010 * passes.c (execute_function_todo): Remove dead code.
25011
25012 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
25013
25014 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use
25015 the internal register number, for any "real" register.
25016
25017 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
25018
25019 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
25020 correct numbers for TFHAR, TFIAR, TEXASR.
25021
25022 2019-05-02 Richard Biener <rguenther@suse.de>
25023
25024 PR tree-optimization/89653
25025 * tree-ssa-loop.c (pass_data_tree_loop_init): Execute
25026 update-address-taken before the pass.
25027 * passes.def (pass_tree_loop_init): Put comment before it.
25028
25029 2019-05-02 Richard Biener <rguenther@suse.de>
25030
25031 PR tree-optimization/89509
25032 * tree-ssa-structalias.c (compute_dependence_clique): Look
25033 at the first subvar when determining whether it is restrict.
25034
25035 2019-05-02 Richard Biener <rguenther@suse.de>
25036
25037 PR tree-optimization/90273
25038 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate
25039 useless debug stmts.
25040
25041 2019-05-02 Alejandro Martinez <alejandro.martinezvicente@arm.com>
25042
25043 * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE
25044 ACLE branch.
25045 * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from
25046 SVE ACLE branch.
25047 * tree-vect-loop.c (use_mask_by_cond_expr_p): New function to check if a
25048 VEC_COND_EXPR be inserted to emulate a conditional internal function.
25049 (build_vect_cond_expr): Emit the VEC_COND_EXPR.
25050 (vectorizable_reduction): Use the functions above to vectorize in a
25051 fully masked loop codes that don't have a conditional internal
25052 function.
25053
25054 2019-05-02 Martin Liska <mliska@suse.cz>
25055
25056 * cgraphclones.c: Call valid_attribute_p with 1 for
25057 target_clone.
25058 * config/i386/i386-c.c (ix86_pragma_target_parse): Use 0 as
25059 it's for target attribute.
25060 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
25061 Add new boolean argument.
25062 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
25063 Likewise.
25064 (ix86_valid_target_attribute_tree): Pass target_clone_attr
25065 to ix86_valid_target_attribute_inner_p.
25066 (ix86_valid_target_attribute_p): Pass flags argument to
25067 ix86_valid_target_attribute_inner_p.
25068 (get_builtin_code_for_version): Use 0 as it's target attribute.
25069
25070 2019-05-02 Martin Liska <mliska@suse.cz>
25071
25072 * gcc.c (process_command): Add dummy file only
25073 if n_infiles == 0.
25074 * opts-global.c (decode_options): Pass lang_mask.
25075 * opts.c (print_help): New function.
25076 (finish_options): Print --help if help_option_argument
25077 is set.
25078 (common_handle_option): Factor out content of OPT__help_
25079 into print_help.
25080 * opts.h (finish_options): Add new argument.
25081
25082 2019-05-02 Martin Liska <mliska@suse.cz>
25083
25084 PR target/88809
25085 * config/i386/i386.c (ix86_expand_strlen): Use strlen call.
25086 With -minline-all-stringops use inline expansion using 4B loop.
25087 * doc/invoke.texi: Document the change of
25088 -minline-all-stringops.
25089
25090 2019-05-01 Jeff Law <law@redhat.com>
25091
25092 PR tree-optimization/88797
25093 * gimple-ssa-split-paths (is_feasible_trace): Reject cases where the
25094 PHI feeds a conditional on the RHS of an assignment.
25095
25096 2019-04-30 Andrew Waterman <andrew@sifive.com>
25097 Jim Wilson <jimw@sifive.com>
25098
25099 * config/riscv/constraints.md (L): New.
25100 * config/riscv/predicates.md (lui_operand): New.
25101 (sfb_alu_operand): New.
25102 * config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare.
25103 * config/riscv/riscv.c (riscv_expand_conditional_move): New.
25104 * config/riscv/riscv.h (TARGET_SFB_ALU): New.
25105 * config/riscv/risc.md (type): Add sfb_alu.
25106 (branch<mode>): Renamed from branch_order<mode>. Change predicate for
25107 operand 3 to reg_or_0_operand. In output string, change %3 to %z3.
25108 (branch_zero<mode>): Delete.
25109 (mov<mode>cc): New.
25110 (mov<GPR:mode><X:mode>cc): Likewise.
25111 * config/riscv/sifive-7.md (sifive_7_sfb_alu): New. Use in bypasses.
25112
25113 2019-04-30 Nathan Sidwell <nathan@acm.org>
25114
25115 * tree.h (MARK_TS_EXP): New.
25116
25117 2019-04-30 Martin Liska <mliska@suse.cz>
25118
25119 * opts.c (enable_warning_as_error): Provide hints
25120 for unknown options.
25121
25122 2019-04-30 Martin Liska <mliska@suse.cz>
25123
25124 PR debug/90288
25125 * doc/invoke.texi: Add missing dash for gas-locview-support
25126 and gno-as-locview-support.
25127
25128 2019-04-30 Jakub Jelinek <jakub@redhat.com>
25129
25130 PR target/89093
25131 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip
25132 whitespace at the start of target attribute string.
25133
25134 2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25135
25136 PR target/86538
25137 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
25138 Define __ARM_FEATURE_ATOMICS.
25139
25140 2019-04-30 Martin Liska <mliska@suse.cz>
25141
25142 * gimple-fold.c (gimple_fold_builtin_memory_op): Change endp
25143 into built_in_function enum. Remove code for endp == 2 and
25144 use BUILT_IN_* constants.
25145 (gimple_fold_builtin): Call the function with fcode.
25146
25147 2019-04-30 Martin Liska <mliska@suse.cz>
25148
25149 * config/i386/i386.c (ix86_builtin_reciprocal): Cast
25150 DECL_FUNCTION_CODE into ix86_builtins enum before
25151 the switch statement.
25152
25153 2019-04-30 Jakub Jelinek <jakub@redhat.com>
25154
25155 PR tree-optimization/89475
25156 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64}
25157 calls.
25158
25159 2019-04-30 Martin Liska <mliska@suse.cz>
25160
25161 PR translation/90274
25162 * opts.c (print_filtered_help): Wrap string in _(...).
25163
25164 2019-04-30 Bin Cheng <bin.cheng@linux.alibaba.com>
25165
25166 PR tree-optimization/90240
25167 Revert:
25168 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
25169
25170 PR tree-optimization/90078
25171 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
25172 checks for infinite_cost overflow.
25173
25174 2019-04-29 Jeff Law <law@redhat.com>
25175
25176 * passes.def: Move -Wrestrict pass after copy propagation.
25177
25178 2019-04-29 Maya Rashish <coypu@sdf.org>
25179
25180 * config.gcc (default_gnu_indirect_function): Default to yes
25181 for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*,
25182 sparc*-*-netbsd*, x86_64-*-netbsd*.
25183
25184 2019-04-29 Vladislav Ivanishin <vlad@ispras.ru>
25185
25186 * tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases
25187 where cond2 is NE_EXPR.
25188 (is_value_included_in): Update comment.
25189
25190 2019-04-29 Richard Biener <rguenther@suse.de>
25191
25192 PR tree-optimization/90278
25193 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
25194 EH on comparison simplification.
25195
25196 2019-04-29 Jason Merrill <jason@redhat.com>
25197
25198 PR c++/82081 - tail call optimization breaks noexcept
25199 * tree-tailcall.c (find_tail_calls): Don't turn a call from a
25200 nothrow function to a might-throw function into a tail call.
25201
25202 2019-04-29 Richard Sandiford <richard.sandiford@arm.com>
25203
25204 * tree-data-ref.h (data_dependence_relation::inner_loop): Delete.
25205 (DDR_INNER_LOOP): Likewise.
25206 * tree-data-ref.c (dump_data_dependence_relation): Update accordingly.
25207 (initialize_data_dependence_relation): Likewise.
25208 (insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP.
25209
25210 2019-04-29 Jakub Jelinek <jakub@redhat.com>
25211
25212 PR rtl-optimization/90257
25213 * cfgrtl.c (flow_active_insn_p): Return true for USE of a function
25214 return value.
25215
25216 Revert the revert:
25217 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
25218
25219 PR target/90178
25220 Revert:
25221 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
25222
25223 Revert the revert:
25224 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
25225
25226 Revert:
25227 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
25228
25229 * lra-spills.c (lra_final_code_change): Remove useless move insns.
25230
25231 2019-04-29 Richard Biener <rguenther@suse.de>
25232
25233 * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER}
25234 rhs issue a reset.
25235
25236 2019-04-27 Iain Buclaw <ibuclaw@gdcproject.org>
25237
25238 * config/netbsd-d.c: Include memmodel.h. Remove unused tree.h,
25239 varasm.h, and netbsd-protos.h.
25240
25241 2019-04-27 Uroš Bizjak <ubizjak@gmail.com>
25242
25243 PR target/89261
25244 * config/i386/i386-protos.h (ix86_data_alignment): Change
25245 the second argument type to unsigned int.
25246 * config/i386/i386.c (ix86_data_alignment): Change "align"
25247 argument type to unsigned int.
25248
25249 2019-04-27 Martin Liska <mliska@suse.cz>
25250
25251 PR middle-end/90258
25252 * opt-suggestions.c (option_proposer::build_option_suggestions):
25253 When get_valid_option_values returns empty values, add the
25254 misspelling candidate.
25255
25256 2019-04-26 Jim Wilson <jimw@sifive.com>
25257
25258 * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode
25259 parameter.
25260 * config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode.
25261 Pass orig_mode to riscv_build_integer.
25262 (riscv_split_integer): Pass mode to riscv_move_integer.
25263 (riscv_legitimize_const_move): Likewise.
25264 (riscv_legitimize_move): For MEM dest and CONST_INT src case, new local
25265 promoted_mode. Replace force_reg call with code to load constant into
25266 promoted reg and then subreg it for the store.
25267 * config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to
25268 riscv_move_integer.
25269
25270 2018-04-26 Eugene Sharygin <eush@ispras.ru>
25271
25272 * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with
25273 corrupt codes.
25274
25275 2019-04-26 Richard Sandiford <richard.sandiford@arm.com>
25276
25277 * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add
25278 commentary about the encoding of precision.
25279
25280 2019-04-25 Andreas Tobler <andreast@gcc.gnu.org>
25281
25282 * config/i386/freebsd64.h: Add bits for 32-bit multilib support.
25283 * config/i386/t-freebsd64: New file.
25284 * config.gcc: Add the t-freebsd64 for multilib support.
25285
25286 2019-04-25 Uroš Bizjak <ubizjak@gmail.com>
25287
25288 * doc/extend.texi (vector_size): Add missing comma after @xref.
25289
25290 2019-04-25 Jakub Jelinek <jakub@redhat.com>
25291
25292 * BASE-VER: Set to 10.0.0.
25293
25294 2019-04-25 Richard Biener <rguenther@suse.de>
25295
25296 PR middle-end/89765
25297 * gimplify.c (gimplify_expr): Avoid turning a lvalue
25298 VIEW_CONVERT_EXPR into one operating on an rvalue.
25299
25300 2019-04-25 H.J. Lu <hongjiu.lu@intel.com>
25301
25302 PR target/89929
25303 * config/i386/i386.c (feature_priority): Moved to file scope.
25304 (processor_features): Likewise.
25305 (processor_model): Likewise.
25306 (_arch_names_table): Likewise.
25307 (arch_names_table): Likewise.
25308 (_feature_list): Removed.
25309 (feature_list): Likewise.
25310 (_isa_names_table): Moved to file scope. Add priority.
25311 (isa_names_table): Likewise.
25312 (get_builtin_code_for_version): Replace feature_list with
25313 isa_names_table. Update error message for P_ZERO priority.
25314
25315 2019-04-25 Richard Biener <rguenther@suse.de>
25316
25317 * tree-pass.h (make_pass_phi_only_cprop): Remove.
25318 * timevar.def (TV_TREE_PHI_CPROP): Likewise.
25319
25320 2019-04-24 Jeff Law <law@redhat.com>
25321
25322 PR tree-optimization/90037
25323 * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c
25324 * passes.def: Replace all instance of phi-only cprop with the
25325 lattice propagator. Move propagation pass from after erroneous
25326 path isolation to before erroneous path isolation.
25327 * tree-ssa-phionlycprop.c: Remove.
25328
25329 2019-04-24 Richard Biener <rguenther@suse.de>
25330
25331 PR middle-end/90213
25332 * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
25333 by size and BITS_PER_UNIT on poly-wide-ints.
25334
25335 2019-04-25 Richard Biener <rguenther@suse.de>
25336
25337 PR middle-end/90194
25338 * match.pd: Add pattern to simplify view-conversion of an
25339 empty constructor.
25340
25341 2019-04-24 Clement Chigot <clement.chigot@atos.net>
25342
25343 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable
25344 OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags
25345 for Go on 32 bit AIX.
25346 * config/rs6000/aix72.h: Likewise.
25347
25348 2019-04-24 Jakub Jelinek <jakub@redhat.com>
25349
25350 PR target/90193
25351 * rtl.c (classify_insn): Return JUMP_INSN for asm goto.
25352 * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
25353
25354 2019-04-24 Andreas Krebbel <krebbel@linux.ibm.com>
25355
25356 PR target/89952
25357 * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs
25358 from FPRs in reverse order. Generate REG_CFA_DEF_CFA note also
25359 for restored hard frame pointer.
25360 (s390_sched_dependencies_evaluation): Implement new target hook.
25361 (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition.
25362
25363 2019-04-24 Claudiu Zissulescu <claziss@sysnopsys.com>
25364
25365 * config/arc/arc-options.def: Fix typos and spelling mistakes.
25366 * config/arc/arc.c (arc_init): Cleanup warning message.
25367 (arc_override_options): Likewise.
25368
25369 2019-04-24 Jakub Jelinek <jakub@redhat.com>
25370
25371 PR target/90187
25372 * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
25373 a register if both if_true and if_false are MEMs.
25374
25375 PR tree-optimization/90208
25376 * tree-cfg.c (remove_bb): Move forced labels from removed bbs
25377 after labels of new_bb, not before them.
25378
25379 PR tree-optimization/90211
25380 * tree-parloops.c (try_create_reduction_list): Ignore phi arguments
25381 which are not SSA_NAMEs.
25382
25383 2018-04-23 Sudakshina Das <sudi.das@arm.com>
25384
25385 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for
25386 AArch64.
25387 (aarch64_file_end_indicate_exec_stack): Add gnu note section.
25388
25389 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
25390
25391 PR rtl-optimization/87979
25392 * modulo-sched.c (sms_schedule): Start ii value "mii" should
25393 not equal zero.
25394
25395 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
25396
25397 PR rtl-optimization/84032
25398 * modulo-sched.c (ps_insn_find_column): Change condition so that
25399 branch will always be the last insn in a row inside partial
25400 schedule.
25401
25402 2019-04-23 Richard Biener <rguenther@suse.de>
25403
25404 PR debug/90131
25405 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add
25406 dest_single_pred_p argument.
25407 (remove_forwarder_block): Adjust.
25408 (remove_forwarder_block_with_phi): Likewise.
25409
25410 2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25411 Bernd Edlinger <bernd.edlinger@hotmail.de>
25412 Jakub Jelinek <jakub@redhat.com>
25413
25414 PR target/89093
25415 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
25416 if used with general-regs-only.
25417 (arm_conditional_register_usage): Don't add non-general regs if
25418 general-regs-only.
25419 (arm_valid_target_attribute_rec): Handle general-regs-only.
25420 * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
25421 general-regs-only.
25422 (TARGET_HARD_FLOAT_SUB): Define.
25423 (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
25424 (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
25425 (TARGET_REALLY_IWMMXT2): Likewise.
25426 * config/arm/arm.opt: Add -mgeneral-regs-only.
25427 * doc/extend.texi: Document ARM general-regs-only target.
25428 * doc/invoke.texi: Document ARM -mgeneral-regs-only.
25429
25430 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
25431
25432 PR tree-optimization/90078
25433 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
25434 checks for infinite_cost overflow.
25435
25436 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
25437
25438 PR tree-optimization/90021
25439 * tree-chrec.c (evolution_function_is_univariate_p): New parameter
25440 and check univariate against it.
25441 * tree-chrec.h (evolution_function_is_univariate_p): New parameter.
25442 * tree-data-ref.c (add_other_self_distances): Pass new argument.
25443
25444 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
25445
25446 PR target/90178
25447 Revert:
25448 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
25449
25450 Revert the revert:
25451 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
25452
25453 Revert:
25454 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
25455
25456 * lra-spills.c (lra_final_code_change): Remove useless move insns.
25457
25458 2019-04-21 Iain Sandoe <iain@sandoe.co.uk>
25459
25460 * config/rs6000/rs6000.md (group_end_nop): Emit insn register
25461 names using operand format, rather than hard-wired.
25462 (speculation_barrier): Likewise.
25463
25464 2019-04-19 Segher Boessenkool <segher@kernel.crashing.org>
25465
25466 PR tree-optimization/88055
25467 * tree-call-cdce.c (comparison_code_if_no_nans): New function.
25468 (gen_one_condition): Use it if !HONOR_NANS.
25469
25470 2019-04-19 Jakub Jelinek <jakub@redhat.com>
25471
25472 PR middle-end/90139
25473 * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
25474 assign_temp instead of gen_reg_rtx.
25475
25476 2019-04-19 Christophe Lyon <christophe.lyon@linaro.org>
25477
25478 PR translation/90118
25479 * config/aarch64/aarch64.c (aarch64_override_options_internal):
25480 Add missing space before %<.
25481
25482 2019-04-18 Peter Bergner <bergner@linux.ibm.com>
25483
25484 PR rtl-optimization/87871
25485 * ira-lives.c (make_object_dead): Don't add conflicts to
25486 TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts.
25487
25488 2019-04-18 Martin Sebor <msebor@redhat.com>
25489
25490 PR middle-end/89797
25491 * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U.
25492 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid
25493 assuming type size fits in SHWI.
25494
25495 2019-04-18 Jan Hubicka <hubicka@ucw.cz>
25496
25497 PR ipa/85051
25498 * ipa-inline.c (flatten_function): New parameter UPDATE.
25499 (ipa_inline, early_inliner): Use it.
25500
25501 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
25502
25503 * fold-const.c (int_const_binop): Return early on failure.
25504
25505 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
25506
25507 PR middle-end/85164
25508 * combine.c (force_int_to_mode): Cast the argument rather than
25509 the result of known_alignment.
25510 * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p.
25511
25512 2019-04-18 Richard Biener <rguenther@suse.de>
25513
25514 PR debug/90131
25515 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
25516 out from ...
25517 (remove_forwarder_block): ... here.
25518 (remove_forwarder_block_with_phi): Also move debug stmts here.
25519
25520 2019-04-18 Jakub Jelinek <jakub@redhat.com>
25521
25522 PR translation/79183
25523 * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
25524 inform where appropriate.
25525
25526 2019-04-18 Richard Biener <rguenther@suse.de>
25527
25528 * tree.c (get_qualified_type): Put found type variants at the
25529 head of the variant list.
25530
25531 2018-04-17 Segher Boessenkool <segher@kernel.crashing.org>
25532
25533 * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo.
25534
25535 2019-04-17 Hongtao Liu <hongtao.liu@intel.com>
25536
25537 PR target/90125
25538 * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd,
25539 _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd,
25540 _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd,
25541 _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd,
25542 _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3.
25543
25544 2019-04-17 Peter Bergner <bergner@linux.ibm.com>
25545
25546 * ira-conflicts.c (print_allocno_conflicts): Always print something,
25547 even for allocno's with no conflicts.
25548 (print_conflicts): Print an extra newline.
25549
25550 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
25551
25552 * auto-inc-dec.c (attempt_change): Set the alignment of the
25553 temporary memory to that of the original.
25554
25555 2019-04-17 Joao Moreira <jmoreira@suse.de>
25556
25557 * targhooks.c (default_print_patchable_function_entry): Emit
25558 __patchable_function_entries section with writable flags to allow
25559 relocation resolution.
25560
25561 2019-04-17 Jonny Grant <jg@jguk.org>
25562
25563 * collect2.c (main): Change gcc.gnu.org URL to HTTPS.
25564
25565 2019-04-17 Jakub Jelinek <jakub@redhat.com>
25566
25567 PR middle-end/90095
25568 * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
25569 on lowpart SUBREGs.
25570
25571 2019-04-17 Claudiu Zissulescu <claziss@synopsys.com>
25572
25573 * config/arc/arc.c (arc_init): Format diagnostic string.
25574 (arc_override_options): Likewise.
25575 (check_if_valid_regno_const): Likewise.
25576 (arc_reorg): Likewise.
25577
25578 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
25579
25580 PR target/17108
25581 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
25582 name.
25583 (rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern
25584 name.
25585 * config/rs6000/rs6000.md (bits): Add entries for SF and DF.
25586 (*movdi_update1): Use Pmode.
25587 (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
25588 (movdi_<mode>_update_stack): Rename to ...
25589 (movdi_update_stack): ... this. Fix comment. Change condition. Don't
25590 use Pmode.
25591 (*movsi_update1): Use Pmode.
25592 (*movsi_update2): Use Pmode.
25593 (movsi_update): Rename to ...
25594 (movsi_<mode>_update): ... this. Use Pmode.
25595 (movsi_update_stack): Fix condition.
25596 (*movhi_update1): Use Pmode. Fix argument to
25597 avoiding_indexed_address_p.
25598 (*movhi_update2): Ditto.
25599 (*movhi_update3): Ditto.
25600 (*movhi_update4): Ditto.
25601 (*movqi_update1): Ditto.
25602 (*movqi_update2): Ditto.
25603 (*movqi_update3): Ditto.
25604 (*movsf_update1, *movdf_update1): Merge, rename to...
25605 (*mov<mode>_update1): This. Use Pmode. Fix argument to
25606 avoiding_indexed_address_p. Add "size" attribute.
25607 (*movsf_update2, *movdf_update2): Merge, rename to...
25608 (*mov<mode>_update2): This. Ditto.
25609 (*movsf_update3): Use Pmode. Fix argument to
25610 avoiding_indexed_address_p.
25611 (*movsf_update4): Ditto.
25612 (allocate_stack): Simplify condition. Adjust pattern names.
25613
25614 2019-04-17 Jakub Jelinek <jakub@redhat.com>
25615
25616 PR target/89093
25617 * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
25618 whitespace at the start of target attribute string.
25619
25620 2019-04-16 Pat Haugen <pthaugen@us.ibm.com>
25621
25622 PR target/84369
25623 * config/rs6000/power9.md: Add store forwarding bypass.
25624
25625 2019-04-16 Alexandre Oliva <aoliva@redhat.com>
25626
25627 PR debug/89528
25628 * valtrack.c (dead_debug_insert_temp): Reset debug references
25629 to the return value of a call being removed.
25630
25631 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
25632
25633 * config/arc/arc-protos.h (arc_register_move_cost): Remove.
25634 * config/arc/arc.c (arc_register_move_cost): Re-purpose it to
25635 implement target hook.
25636 (arc_memory_move_cost): New function.
25637 (TARGET_REGISTER_MOVE_COST): Define.
25638 (TARGET_MEMORY_MOVE_COST): Likewise.
25639 * config/arc/arc.h (REGISTER_MOVE_COST): Remove.
25640 (MEMORY_MOVE_COST): Likewise.
25641
25642 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
25643
25644 * config/arc/arc.md (sibcall_insn): Use Rcd constraint.
25645 (sibcall_value_insn): Likewise.
25646 * config/arc/constraints.md (Rs5): Remove.
25647
25648 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
25649
25650 * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
25651 for last two fake registers.
25652 (arc_conditional_register_usage): Make sure fake frame and arg
25653 pointer regs are in general regs class.
25654 (FRAME_POINTER_MASK): Remove.
25655 (RETURN_ADDR_MASK): Remove.
25656 (arc_must_save_register): Use hard frame regnum.
25657 (frame_restore_reg): Use hard_frame_pointer_rtx.
25658 (arc_save_callee_saves): Likewise.
25659 (arc_restore_callee_saves): Likewise.
25660 (arc_save_callee_enter): Likewise.
25661 (arc_restore_callee_leave): Likewise.
25662 (arc_save_callee_milli): Likewise.
25663 (arc_eh_return_address_location): Likewise.
25664 (arc_check_multi): Use hard frame regnum.
25665 (arc_can_eliminate): Likewise.
25666 * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
25667 for register allocator.
25668 (REG_CLASS_CONTENTS): Update GENERAL_REGS.
25669 (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
25670 (FRAME_POINTER_REGNUM): Change it to a fake register.
25671 (HARD_FRAME_POINTER_REGNUM): Defined.
25672 (ARG_POINTER_REGNUM): Change it to a new fake register.
25673 (ELIMINABLE_REGS): Update.
25674 (REGISTER_NAMES): Update names.
25675 * config/arc/arc.md (LP_START): Remove.
25676 (LP_END): Likewise.
25677 (shift_si3_loop): Update pattern.
25678
25679 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
25680
25681 * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
25682 to avoid delay slot scheduling.
25683 (arc_must_save_register): Don't save SP.
25684 * config/arc/arc.md (stack_tie): Remove.
25685 (UNSPEC_ARC_STKTIE): Likewise.
25686
25687 2019-04-16 Kito Cheng <kito.cheng@gmail.com>
25688 Shiva Chen <shiva0217@gmail.com>
25689
25690 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
25691 code gen with large shift amount.
25692
25693 2019-04-16 Chung-Ju Wu <jasonwucj@gmail.com>
25694
25695 * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
25696 subreg.
25697
25698 2019-04-16 Jakub Jelinek <jakub@redhat.com>
25699
25700 PR target/90096
25701 * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
25702 print -m64/-mx32/-m32 if it is true.
25703 (ix86_debug_options, ix86_function_specific_print): Pass true as
25704 ADD_ABI_P to ix86_target_string.
25705 (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
25706 ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
25707 or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.
25708
25709 PR rtl-optimization/90082
25710 * dce.c (can_delete_call): New function.
25711 (deletable_insn_p, mark_insn): Use it.
25712
25713 PR tree-optimization/90090
25714 * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
25715 throw internally.
25716 (is_division_by_square): Likewise. Formatting fix.
25717
25718 2019-04-16 Richard Biener <rguenther@suse.de>
25719
25720 PR tree-optimization/56049
25721 * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
25722 equality check if alias-set zero will prevail.
25723
25724 2019-04-15 Jeff Law <law@redhat.com>
25725
25726 * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
25727 size and alignment as unsigned.
25728
25729 2019-04-15 Richard Biener <rguenther@suse.de>
25730
25731 PR debug/90074
25732 * tree-loop-distribution.c (destroy_loop): Preserve correct
25733 debug info.
25734
25735 2019-04-15 Richard Biener <rguenther@suse.de>
25736
25737 PR tree-optimization/90071
25738 * tree-ssa-reassoc.c (init_range_entry): Do not pick up
25739 abnormal operands from def stmts.
25740
25741 2019-04-15 Segher Boessenkool <segher@kernel.crashing.org>
25742
25743 PR rtl-optimization/89794
25744 * combine.c (count_auto_inc): New function.
25745 (try_combine): Count how many auto_inc expressions there were in the
25746 original instructions. Ensure we have the same number in the new
25747 instructions. Remove the code that tried to ensure auto_inc side
25748 effects on i1 and i0 are not lost.
25749
25750 2019-04-15 Richard Biener <rguenther@suse.de>
25751
25752 PR ipa/88936
25753 * tree.h (auto_var_p): Declare.
25754 * tree.c (auto_var_p): New function, split out from ...
25755 (auto_var_in_fn_p): ... here.
25756 * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
25757 member.
25758 (new_var_info): Initialize it.
25759 (set_uids_in_ptset): Also set the shadow variable uid if required.
25760 (ipa_pta_execute): Postprocess points-to solutions assigning
25761 shadow variable uids for locals that may reach their containing
25762 function recursively.
25763 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
25764 assert but instead check whether the points-to solution is
25765 a singleton.
25766
25767 2019-04-15 Martin Jambor <mjambor@suse.cz>
25768
25769 PR ipa/pr89693
25770 * cgraph.c (clone_of_p): Loop over clone chain for each step in
25771 the thunk chain.
25772
25773 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
25774
25775 * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.
25776
25777 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
25778 Kito Cheng <kito.cheng@gmail.com>
25779 Shiva Chen <shiva0217@gmail.com>
25780
25781 * config/nds32/nds32-md-auxiliary.c
25782 (nds32_legitimize_pic_address): Use new PIC pattern.
25783 (nds32_legitimize_tls_address): Use new TLS pattern.
25784 (nds32_output_symrel): New.
25785 * config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
25786 (nds32_alloc_relax_group_id): Ditto.
25787 * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
25788 (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
25789 relax_group_id.
25790 (nds32_group_tls_insn): Ditto.
25791 (nds32_group_float_insns): Ditto.
25792 * config/nds32/nds32.md (tls_le): New.
25793 (sym_got): Ditto.
25794
25795 2019-04-15 Chung-Ju Wu <jasonwucj@gmail.com>
25796
25797 * configure: Add nds32 target for dwarf2 debug_line checking.
25798 * configure.ac: Regenerated.
25799
25800 2019-04-14 Jan Hubicka <hubicka@ucw.cz>
25801
25802 PR lto/89358
25803 * ipa-devirt.c (skip_in_fields_list_p): New.
25804 (odr_types_equivalent_p): Use it.
25805
25806 2019-04-13 Jakub Jelinek <jakub@redhat.com>
25807
25808 PR target/89093
25809 * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
25810 instead of strncmp when checking for thumb and arm. Formatting fixes.
25811
25812 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org>
25813
25814 * doc/install.texi: Document --with-target-system-zlib.
25815
25816 2019-04-12 Martin Sebor <msebor@redhat.com>
25817
25818 PR c/88383
25819 PR c/89288
25820 PR c/89798
25821 PR c/89797
25822 * targhooks.c (default_vector_alignment): Avoid assuming
25823 argument fits in SHWI.
25824 * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
25825 a shift expression.
25826 * doc/extend.texi (__builtin_has_attribute): Add a clarifying note.
25827
25828 2019-04-12 Jakub Jelinek <jakub@redhat.com>
25829
25830 PR rtl-optimization/89965
25831 * dce.c: Include rtl-iter.h.
25832 (struct check_argument_load_data): New type.
25833 (check_argument_load): New function.
25834 (find_call_stack_args): Check for loads from stack slots still tracked
25835 in sp_bytes and punt if any is found.
25836
25837 * config/mips/loongson-mmiintrin.h: Fix up #error message.
25838
25839 2019-04-12 Jan Hubicka <hubicka@ucw.cz>
25840
25841 * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
25842 * doc/invoke.texi (max-lto-streaming-paralellism): New --param.
25843
25844 2019-04-12 Martin Liska <mliska@suse.cz>
25845
25846 PR middle-end/89970
25847 * multiple_target.c (create_dispatcher_calls): Wrap ifunc
25848 in error message.
25849 (separate_attrs): Handle multiple 'default's.
25850 (expand_target_clones): Rework error handling code.
25851
25852 2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org>
25853
25854 PR target/87532
25855 * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
25856 mode of vector rather than mode of destination for move instruction.
25857 * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
25858 Use QI inner mode with V16QI vector mode.
25859
25860 2019-04-12 Jakub Jelinek <jakub@redhat.com>
25861
25862 PR target/52726
25863 * config/tilepro/tilepro.c (tilepro_print_operand): Use just
25864 "invalid %%t operand" in output_operand_lossage message.
25865
25866 2019-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
25867
25868 * config/s390/predicates.md (permute_pattern_operand): New
25869 predicate.
25870 * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
25871 operand for the permute pattern.
25872 ("*vec_perm<mode>"): New insn definition.
25873 ("bswap<mode>"): Generate the permute pattern operand in the
25874 expander and perform the operand reloads for pre arch13 level
25875 already.
25876 ("*bswap<mode>_emu"): Rename to ...
25877 ("*bswap<mode>"): ... this. And make the splitter vxe2 only.
25878 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
25879 Add the USE operand for the permute pattern.
25880 ("*vec_set_bswap_vec<mode>"): Likewise.
25881
25882 2019-04-12 Jakub Jelinek <jakub@redhat.com>
25883
25884 PR c/89946
25885 * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
25886 and gcc_unreachable if it fails, just call tree_to_uhwi which
25887 verifies that too. Test TREE_CHAIN instead of list_length > 1.
25888 Start warning message with a lower-case letter. Formatting fixes.
25889
25890 PR rtl-optimization/90026
25891 * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
25892 successors, look for BARRIERs inside of the whole BB_FOOTER chain
25893 rather than just at the start of it. If e->src BB_FOOTER is not NULL
25894 in cfglayout mode, use emit_barrier_after_bb.
25895
25896 2018-04-11 Steve Ellcey <sellcey@marvell.com>
25897
25898 PR rtl-optimization/87763
25899 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
25900 New Instruction.
25901
25902 2019-04-11 Tom de Vries <tdevries@suse.de>
25903
25904 * doc/extend.texi (@node Statement Exprs): Note variable shadowing at
25905 max macro using statement expression.
25906
25907 2019-04-11 David Edelsohn <dje.gcc@gmail.com>
25908
25909 * xcoffout.h (xcoff_private_rodata_section_name): Declare.
25910 * xcoffout.c (xcoff_private_rodata_section_name): Define.
25911 * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
25912 read_only_private_data_section using xcoff_private_rodata_section_name.
25913 (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.
25914
25915 2019-04-11 Christophe Lyon <christophe.lyon@linaro.org>
25916
25917 PR target/90016
25918 * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.
25919
25920 2019-04-11 Jakub Jelinek <jakub@redhat.com>
25921
25922 PR rtl-optimization/89965
25923 * dce.c (sp_based_mem_offset): New function.
25924 (find_call_stack_args): Use sp_based_mem_offset.
25925
25926 2019-04-11 Jonathan Wakely <jwakely@redhat.com>
25927
25928 * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.
25929
25930 2019-04-11 Richard Biener <rguenther@suse.de>
25931
25932 PR tree-optimization/90020
25933 * tree-ssa-sccvn.c (vn_reference_may_trap): New function.
25934 * tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
25935 * tree-ssa-pre.c (compute_avail): Use it to not put
25936 possibly trapping references after a call that might not
25937 return into EXP_GEN.
25938 * gcse.c (compute_hash_table_work): Do not elide
25939 marking a block containing a call if the call might not
25940 return.
25941
25942 2019-04-11 Richard Biener <rguenther@suse.de>
25943
25944 PR tree-optimization/90018
25945 * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
25946 Test both SLP and interleaving variants.
25947
25948 2019-04-11 Robin Dapp <rdapp@linux.ibm.com>
25949
25950 * config/s390/8561.md: New file.
25951 * config/s390/driver-native.c (s390_host_detect_local_cpu):
25952 Add arch13 cpu model.
25953 * config/s390/s390-opts.h (enum processor_type): Likewise.
25954 * config/s390/s390.c (s390_get_sched_attrmask): Add arch13.
25955 (s390_get_unit_mask): Likewise.
25956 (s390_is_fpd): Likewise.
25957 (s390_is_fxd): Likewise.
25958 * config/s390/s390.h (s390_tune_attr): Likewise.
25959 * config/s390/s390.md: Include arch13 pipeline description.
25960 * config/s390/s390.opt: Add arch13.
25961
25962 2018-04-10 Steve Ellcey <sellcey@marvell.com>
25963
25964 PR rtl-optimization/87763
25965 * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
25966 New prototype.
25967 * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
25968 New function.
25969 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
25970 New instruction.
25971 (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
25972 (*aarch64_bfi<GPI:mode>4_noand): Ditto.
25973 (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
25974 (*aarch64_bfi<GPI:mode>4_noshift): Ditto.
25975
25976 2019-04-10 Jonathan Wakely <jwakely@redhat.com>
25977
25978 * doc/invoke.texi (Optimize Options): Change "Nevertheless" to
25979 "Although" in -fipa-icf documentation.
25980
25981 * doc/invoke.texi (Debugging Options): Explicitly state the semantics
25982 of using multiple -g options.
25983
25984 2019-04-10 Martin Liska <mliska@suse.cz>
25985
25986 PR gcov-profile/89959
25987 * doc/gcov.texi: Make documentation of -x option
25988 more precise.
25989
25990 2019-04-10 Richard Biener <rguenther@suse.de>
25991
25992 * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
25993 member.
25994 (DR_GROUP_SAME_DR_STMT): Remove.
25995 * tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
25996 * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
25997 replace with assert.
25998 (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
25999 (vect_record_grouped_load_vectors): Remove unreachable code.
26000
26001 2019-04-10 Richard Earnshaw <rearnsha@arm.com>
26002
26003 PR target/90016
26004 * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
26005 obsolete reference to N.
26006
26007 2019-04-10 Jakub Jelinek <jakub@redhat.com>
26008
26009 PR middle-end/90025
26010 * expr.c (store_expr): Set properly size on the MEM passed to
26011 clear_storage.
26012
26013 PR c++/90010
26014 * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
26015 with strlen in between hostsz-3 and hostsz-1 inclusive when no
26016 translation is needed, and when translation is needed, only append
26017 ... if the string length is hostsz or more bytes long. Avoid using
26018 strncpy or strcat.
26019
26020 2019-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
26021
26022 PR target/90024
26023 * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
26024 * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
26025 into three.
26026 * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
26027 differences directly.
26028 (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
26029
26030 2019-04-09 Jakub Jelinek <jakub@redhat.com>
26031
26032 PR translation/90011
26033 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
26034 from diagnostics.
26035 * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
26036 diagnostics.
26037 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
26038 * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
26039 * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
26040 trailing space from -gsplit-dwarf diagnostics.
26041
26042 PR tree-optimization/89998
26043 * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
26044 instead of integer_type_node if possible, don't add ranges if return
26045 type is not compatible with int.
26046 * gimple-fold.c (gimple_fold_builtin_sprintf,
26047 gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
26048 integer_type_node.
26049
26050 2019-04-09 Martin Liska <mliska@suse.cz>
26051
26052 * Makefile.in: Use GENERATOR_CFLAGS for all generators.
26053 * doc/install.texi: Document the new config.
26054
26055 2019-04-09 Richard Sandiford <richard.sandiford@arm.com>
26056
26057 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
26058 use gimple_expr_type for load and store calls. Skip over the
26059 condition argument in a conditional internal function.
26060 Protect use of TREE_INT_CST_LOW.
26061
26062 2019-04-09 Jakub Jelinek <jakub@redhat.com>
26063
26064 PR target/90015
26065 * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
26066 (riscv_merge_decl_attributes): Fix typo in diagnostics. Remove
26067 trailing period from it too.
26068
26069 2019-04-08 wu yuan <wuyuan5@huawei.com>
26070
26071 * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
26072 * config/aarch64/aarch64.md: Add "tsv110.md".
26073 * config/aarch64/tsv110.md: New file.
26074
26075 2019-04-08 Richard Biener <rguenther@suse.de>
26076
26077 PR tree-optimization/90006
26078 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
26079 calls like lrint.
26080
26081 2019-04-08 Andrea Corallo <andrea.corallo@arm.com>
26082
26083 PR target/83033
26084 * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
26085 construction.
26086 (fma_root_node): Likewise.
26087 (func_fma_steering): Likewise.
26088
26089 2019-04-08 Jakub Jelinek <jakub@redhat.com>
26090
26091 PR rtl-optimization/89865
26092 * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.
26093
26094 PR rtl-optimization/89865
26095 * config/i386/i386.md
26096 (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
26097 numbers not to clash with the additional operands[4].
26098 (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
26099 with extra register copy in the middle.
26100
26101 2019-04-08 Martin Liska <mliska@suse.cz>
26102
26103 PR gcov-profile/89961
26104 * doc/gcov.texi: Document data_file.
26105 * gcov.c (generate_results): Add data_info into JSON output.
26106
26107 2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com>
26108
26109 PR tree-optimization/89725
26110 * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer
26111 loop's chrec as invariant symbol.
26112 * tree-chrec.h (chrec_contains_symbols): New parameter.
26113 * tree-data-ref.c (analyze_miv_subscript): Pass new argument.
26114 (build_classic_dist_vector_1, add_other_self_distances): Bypass access
26115 function of loops not in DDR's loop_nest.
26116 * tree-data-ref.h (index_in_loop_nest): Add unreachable check.
26117
26118 2019-04-08 Chenghua Xu <paul.hua.gm@gmail.com>
26119
26120 PR target/89623
26121 * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
26122 Mask.
26123
26124 2019-04-07 Uroš Bizjak <ubizjak@gmail.com>
26125
26126 PR target/89945
26127 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
26128 Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
26129
26130 2019-04-05 Joern Rennecke <joern.rennecke@embecosm.com>
26131
26132 * sched-deps.c (sched_macro_fuse_insns): Check return value of
26133 targetm.fixed_condition_code_regs.
26134
26135 2019-04-05 Richard Biener <rguenther@suse.de>
26136
26137 PR debug/89892
26138 PR debug/89905
26139 * tree-cfgcleanup.c (remove_forwarder_block): Always move
26140 debug bind stmts but reset them if they are not valid at the
26141 destination.
26142
26143 2019-04-05 Martin Liska <mliska@suse.cz>
26144
26145 PR translation/89936
26146 * collect-utils.c (collect_execute): Use %< and %>, or %qs in
26147 order to wrap keywords or arguments.
26148 * collect2.c (main): Likewise.
26149 (scan_prog_file): Likewise.
26150 (scan_libraries): Likewise.
26151 * common/config/riscv/riscv-common.c
26152 (riscv_subset_list::parsing_subset_version): Likewise.
26153 (riscv_subset_list::parse_std_ext): Likewise.
26154 * config/aarch64/aarch64.c (aarch64_override_options_internal):
26155 Likewise.
26156 * config/arm/arm.c (arm_option_override): Likewise.
26157 * config/cris/cris.c (cris_print_operand): Likewise.
26158 * config/darwin-c.c (darwin_pragma_options): Likewise.
26159 (darwin_pragma_unused): Likewise.
26160 (darwin_pragma_ms_struct): Likewise.
26161 * config/ft32/ft32.c (ft32_print_operand): Likewise.
26162 * config/i386/i386.c (print_reg): Likewise.
26163 (ix86_print_operand): Likewise.
26164 * config/i386/xm-djgpp.h: Likewise.
26165 * config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
26166 * config/m32c/m32c.c (m32c_option_override): Likewise.
26167 * config/msp430/msp430.c (msp430_option_override): Likewise.
26168 * config/nds32/nds32.c (nds32_option_override): Likewise.
26169 * config/nvptx/mkoffload.c (main): Likewise.
26170 * config/rx/rx.c (rx_print_operand): Likewise.
26171 (valid_psw_flag): Likewise.
26172 * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
26173 (vms_pragma_nomember_alignment): Likewise.
26174 (vms_pragma_extern_model): Likewise.
26175 * lto-wrapper.c (compile_offload_image): Likewise.
26176 * omp-offload.c (oacc_parse_default_dims): Likewise.
26177 * symtab.c (symtab_node::verify_base): Likewise.
26178 * tlink.c (recompile_files): Likewise.
26179 (start_tweaking): Likewise.
26180 * tree-profile.c (parse_profile_filter): Likewise.
26181
26182 2019-04-05 Richard Sandiford <richard.sandiford@arm.com>
26183
26184 PR tree-optimization/89956
26185 * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
26186 multiple negates of the same value.
26187
26188 2019-04-04 Martin Sebor <msebor@redhat.com>
26189
26190 PR middle-end/89957
26191 PR middle-end/89911
26192 * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
26193 have the same precision since the function crashes otherwise.
26194 * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
26195 has non-zero arguments.
26196
26197 2019-04-04 Martin Sebor <msebor@redhat.com>
26198
26199 PR middle-end/89934
26200 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
26201 out if the number of arguments is less than expected.
26202
26203 2019-04-04 Jeff Law <law@redhat.com>
26204
26205 PR rtl-optimization/89399
26206 * ree.c (combine_set_extension): Use single_set rather than
26207 digging into PATTERN for items on the candidate list.
26208 (combine_reaching_defs): Likewise.
26209
26210 2019-04-04 Richard Sandiford <richard.sandiford@arm.com>
26211
26212 PR rtl-optimization/46590
26213 * loop-invariant.c (find_defs): Move df_remove_problem and
26214 df_process_deferred_rescans to move_invariants.
26215 Move df_live_add_problem and df_live_set_all_dirty calls
26216 to move_invariants.
26217 (move_invariants): Likewise.
26218 (move_loop_invariants): Likewise, making the df_live calls
26219 conditional on -O. Remove the problem again if we added it
26220 locally.
26221
26222 2019-04-03 qing zhao <qing.zhao@oracle.com>
26223
26224 PR tree-optimization/89730
26225 * ipa-inline.c (can_inline_edge_p): Delete the checking for
26226 -flive-patching=inline-only-static.
26227 (can_inline_edge_by_limits_p): Add the checking for
26228 -flive-patching=inline-only-static and grant always_inline
26229 even when -flive-patching=inline-only-static is specified.
26230
26231 2019-04-03 Jeff Law <law@redhat.com>
26232
26233 PR rtl-optimization/81025
26234 * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
26235
26236 2019-04-03 Richard Biener <rguenther@suse.de>
26237
26238 PR tree-optimization/84101
26239 * tree-vect-stmts.c: Include explow.h for hard_function_value,
26240 regs.h for hard_regno_nregs.
26241 (cfun_returns): New helper.
26242 (vect_model_store_cost): When vectorizing a store to a decl
26243 we return and the function ABI returns in a multi-reg location
26244 account for the possible spilling that will happen.
26245
26246 2019-04-03 Andreas Krebbel <krebbel@linux.ibm.com>
26247
26248 * config/s390/s390.c (s390_legitimate_address_p): Reject long
26249 displacement addresses for vector mode operands.
26250
26251 2019-04-03 Claudiu Zissulescu <claziss@synopsys.com>
26252
26253 * config/arc/arc.c (GMASK_LEN): Define.
26254 (arc_restore_callee_saves): Restore first blink when
26255 !optimize_size.
26256
26257 2019-04-03 Sudakshina Das <sudi.das@arm.com>
26258
26259 * doc/extend.texi: Add deprecated comment on sign-return-address
26260 function attribute and add mbranch-protection.
26261 * doc/invoke.texi: Add bti to the options for mbranch-protection.
26262
26263 2019-04-03 Richard Biener <rguenther@suse.de>
26264
26265 PR lto/89896
26266 * lto-wrapper.c (run_gcc): Avoid implicit rules making
26267 the all target phony.
26268
26269 2019-04-02 Uroš Bizjak <ubizjak@gmail.com>
26270
26271 PR target/89902
26272 PR target/89903
26273 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
26274 Return false for variable DImode shifts.
26275 (dimode_scalar_chain::compute_convert_gain): Do not handle
26276 register count operand in variable DImode shifts.
26277 (dimode_scalar_chain::make_vector_copies): Remove support to copy
26278 count argument of a variable shift instruction to a vector register.
26279 (dimode_scalar_chain::convert_reg): Remove support to convert
26280 count argument of a variable shift instruction.
26281
26282 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
26283
26284 PR rtl-optimization/84206
26285 * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
26286 iterating over loop headers.
26287
26288 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
26289
26290 PR rtl-optimization/85876
26291 * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
26292 beyond the original fence.
26293
26294 2019-04-02 Ulrich Weigand <uweigand@de.ibm.com>
26295
26296 * config.gcc: Mark spu* targets as deprecated/obsolete.
26297
26298 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
26299
26300 * config/s390/s390-builtin-types.def: New builtin function type
26301 definitions. Remove unused types.
26302 * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
26303 (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
26304 (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
26305 overloaded builtins.
26306 (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
26307 (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
26308 * config/s390/vecintrin.h (vec_float): New builtin macro definition.
26309 (vec_double, vec_signed, vec_unsigned): Define to use the new
26310 overloaded builtins.
26311 * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
26312 Remove expanders.
26313
26314 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
26315
26316 * config/s390/s390-builtin-types.def: New builtin function type
26317 definitions.
26318 * config/s390/s390-builtins.def (s390_vec_search_string_cc)
26319 (s390_vec_search_string_until_zero_cc): New overloaded builtins.
26320 (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
26321 (s390_vstrszh, s390_vstrszf): New low-level builtins.
26322 * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
26323 constant definitions.
26324 * config/s390/vecintrin.h (vec_search_string_cc)
26325 (vec_search_string_until_zero_cc): New builtin name definitions.
26326 * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
26327 expanders.
26328 ("vec_vstrs<mode>"): New insn definition.
26329
26330 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
26331
26332 * config/s390/s390-builtin-types.def: Add new builtin function
26333 types.
26334 * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
26335 New overloaded builtins.
26336 (s390_vec_sldb, s390_vec_srdb): New low-level builtins. and
26337 s390_vsrd.
26338 * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
26339 (UNSPEC_VEC_SLDBYTE): ... this.
26340 (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
26341 * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
26342 definitions.
26343 * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
26344 Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
26345 ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.
26346
26347 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
26348
26349 ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
26350 New insn definition.
26351 * config/s390/vx-builtins.md (V_HW_HSD): Move to ...
26352 * config/s390/vector.md (V_HW_HSD): ... here.
26353
26354 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
26355
26356 * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
26357 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
26358 ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
26359 ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
26360 New insn definitions.
26361
26362 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
26363
26364 * config/s390/s390-builtin-types.def: Add new builtin function type.
26365 * config/s390/s390-builtins.def: Add overloaded builtin
26366 s390_vec_reve and low-level builtins for s390_vler and s390_vster.
26367 * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
26368 * config/s390/vecintrin.h (vec_reve): New builtin name definition.
26369 * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
26370 ("eltswap<mode>"): New expander.
26371 ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
26372 insn definitions.
26373
26374 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
26375
26376 * config/s390/s390-builtin-types.def: Add new builtin function types.
26377 * config/s390/s390-builtins.def: Add overloaded builtin
26378 s390_vec_revb. Add low-level builtins for vlbr and vstbr
26379 instructions.
26380 * config/s390/vecintrin.h (vec_revb): New builtin name definition.
26381 * config/s390/vector.md (VT_HW_HSDT): New mode iterator.
26382 ("bswap<mode>"): New expander.
26383 ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.
26384
26385 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
26386
26387 * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
26388 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
26389 vector builtin version number in __VEC__.
26390
26391 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
26392
26393 * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
26394 iterators.
26395 (SFSI): New mode attribute.
26396 ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
26397 ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
26398 rename to ...
26399 ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
26400 ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
26401 ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
26402 ("floatsi<mode>2"): Add wcefb instruction.
26403
26404 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
26405
26406 * config/s390/s390.md ("xde"): Extend mode attribute to vector types.
26407 * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
26408 mode iterators.
26409 ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
26410 ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
26411 support 32 bit fp-int conversions. Rename to ...
26412 ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
26413 ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
26414 ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
26415 ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
26416 ... to these.
26417
26418 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
26419
26420 * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
26421 if-then-else constructs if we can use the select instruction.
26422 * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.
26423
26424 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
26425
26426 * config/s390/s390.md ("*popcountdi_arch13_cc")
26427 ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
26428 definition.
26429 ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
26430 Append _z196 to make it ...
26431 ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
26432 ("popcounthi2_z196"): ... this.
26433 ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
26434 ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.
26435
26436 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
26437
26438 * config/s390/s390.c (s390_canonicalize_comparison): Convert
26439 certain compares for arch13 in order to make use of the condition
26440 code result produced by the new instructions.
26441 (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
26442 nxrk, and nxgrk instruction patterns.
26443 * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
26444 (inv_no): Add new code iterator together with some attributes.
26445 ("*andc_split_<mode>"): Disable splitter for arch13.
26446 ("*<ANDOR:bitops_name>c<GPR:mode>_cc")
26447 ("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
26448 ("*<ANDOR:bitops_name>c<GPR:mode>")
26449 ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
26450 ("*n<ANDOR:inv_bitops_name><mode>_cconly")
26451 ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
26452 ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.
26453
26454 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
26455
26456 * common/config/s390/s390-common.c (processor_flags_table): New
26457 entry for arch13.
26458 * config.gcc: Support arch13 with the --with-arch= configure flag.
26459 * config/s390/driver-native.c (s390_host_detect_local_cpu):
26460 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
26461 * config/s390/s390.c (s390_get_sched_attrmask)
26462 (s390_get_unit_mask): Add PROCESSOR_ARCH13.
26463 * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
26464 * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
26465 (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
26466 (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
26467 definitions.
26468 * config/s390/s390.opt: Support arch13 as processor type in
26469 command line options.
26470
26471 2019-04-02 Martin Liska <mliska@suse.cz>
26472
26473 PR translation/89912
26474 * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
26475 Fix param description of graphite-max-arrays-per-scop.
26476
26477 2019-04-02 Eric Botcazou <ebotcazou@adacore.com>
26478
26479 * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
26480 (ASAN_CC1_SPEC): Use it in 64-bit mode.
26481 * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.
26482
26483 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
26484
26485 PR rtl-optimization/85412
26486 * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
26487 sel_sched_region_1, not after.
26488
26489 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
26490
26491 PR rtl-optimization/86928
26492 * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
26493 compute_live if necessary.
26494 (sel_redirect_edge_and_branch): Likewise.
26495
26496 2019-04-01 Vladimir Makarov <vmakarov@redhat.com>
26497
26498 PR rtl-optimization/89865
26499 * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
26500 register if it is a part of small class.
26501
26502 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
26503
26504 PR rtl-optimization/87273
26505 * sel-sched-ir.c (merge_fences): Remove assert.
26506
26507 2019-04-01 Richard Biener <rguenther@suse.de>
26508
26509 PR tree-optimization/46590
26510 * domwalk.h (dom_walker::dom_walker): Consolidate constructors.
26511 (dom_walker::m_reachability): Add in place of...
26512 (dom_walker::m_skip_unreachable_blocks): ...this.
26513 * domwalk.c (dom_walker::dom_walker): Consoliate constructors.
26514 Move complex initialization ...
26515 (dom_walker::walk): Here. Especially compute m_bb_to_rpo
26516 lazily and initialize edge flags on each invocation.
26517 (dom_walker::bb_reachable): Use m_reachability.
26518
26519 2019-04-01 Martin Liska <mliska@suse.cz>
26520
26521 PR driver/89861
26522 * opt-suggestions.c (option_proposer::build_option_suggestions):
26523 Add variant without any argument in order to provide better
26524 hints.
26525
26526 2019-04-01 Richard Biener <rguenther@suse.de>
26527
26528 PR c/71598
26529 * gimple.c: Include langhooks.h.
26530 (gimple_get_alias_set): Treat enumeral types as the underlying
26531 integer type.
26532
26533 2019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org>
26534 Eric Botcazou <ebotcazou@adacore.com>
26535
26536 PR rtl-optimization/89862
26537 * rtl.h (word_register_operation_p): Exclude CONST_INT from operations
26538 that operates on the full registers for WORD_REGISTER_OPERATIONS
26539 architectures.
26540
26541 2019-03-29 Jim Wilson <jimw@sifive.com>
26542
26543 * common/config/riscv/riscv-common.c (riscv_parse_arch_string):
26544 Clear MASK_RVC and then set if C subset supported.
26545
26546 2019-03-29 Jakub Jelinek <jakub@redhat.com>
26547
26548 PR c/89872
26549 * gimplify.c (gimplify_compound_literal_expr): Don't optimize a
26550 non-addressable complit into its initializer if it is volatile.
26551
26552 2019-03-29 Roman Zhuykov <zhroma@ispras.ru>
26553
26554 * opts-common.c (integral_argument): Set errno properly in one case.
26555
26556 2019-03-29 Martin Liska <mliska@suse.cz>
26557
26558 * doc/invoke.texi: Remove -Wchkp from documentation.
26559
26560 2019-03-29 Martin Liska <mliska@suse.cz>
26561
26562 * dbgcnt.c (print_limit_reach): New function.
26563 (dbg_cnt): Use it.
26564
26565 2019-03-29 Martin Liska <mliska@suse.cz>
26566
26567 * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
26568 (dbg_cnt_process_opt): Parse first tokens aas
26569 dbg_cnt_process_single_pair is also using strtok.
26570
26571 2019-03-29 Jakub Jelinek <jakub@redhat.com>
26572
26573 PR rtl-optimization/87485
26574 * function.c (expand_function_end): Move stack_protect_epilogue
26575 before loading of return value into hard register(s).
26576
26577 2019-03-28 Jakub Jelinek <jakub@redhat.com>
26578
26579 PR middle-end/89621
26580 * tree-inline.h (struct copy_body_data): Add
26581 dont_remap_vla_if_no_change flag.
26582 * tree-inline.c (remap_type_3, remap_type_2): New functions.
26583 (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
26584 and remap_type_2 returns false.
26585 * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
26586 Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
26587 only from where it is copied to nested contexts.
26588
26589 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
26590
26591 PR target/89865
26592 * config/i386/i386.md (RMW operation with LEA peephole):
26593 Use LEAMODE mode attribute instead of SWI mode iterator for
26594 LEA pattern.
26595
26596 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
26597
26598 PR target/89848
26599 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
26600 Also process XEXP (src, 0) of a shift insn.
26601
26602 2019-03-28 David Malcolm <dmalcolm@redhat.com>
26603
26604 PR middle-end/89725
26605 * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
26606 Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.
26607
26608 2019-03-28 Jakub Jelinek <jakub@redhat.com>
26609
26610 * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
26611 test.
26612 (cprop_hardreg_bb, cprop_hardreg_debug): New functions.
26613 (pass_cprop_hardreg::execute): Use those. Don't repeat bb processing
26614 immediately after first one with df_analyze in between, but rather
26615 process all bbs, queueing ones that need second pass in a worklist,
26616 df_analyze, process queued debug insn changes and if second pass is
26617 needed, process bbs from worklist, df_analyze, process queued debug
26618 insns again.
26619
26620 * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
26621 or CALL_P instead of INSN_P && !DEBUG_INSN_P.
26622 (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.
26623
26624 2019-03-28 Jonathan Wakely <jwakely@redhat.com>
26625
26626 PR c/79022
26627 * gengtype.h (create_nested_ptr_option): Fix parameter names to match
26628 definition.
26629
26630 2019-03-27 Mateusz B <mateuszb@poczta.onet.pl>
26631
26632 PR target/85667
26633 * config/i386/i386.c (ix86_function_value_1): Call the newly added
26634 function for 32-bit MS_ABI.
26635 (function_value_ms_32): New function.
26636
26637 2019-03-27 Andrew Stubbs <ams@codesourcery.com>
26638
26639 * config/gcn/gcn.md (CC_SAVE_REG): New constant.
26640 (movdi): Call gen_movdi_symbol_save_scc.
26641 (gen_movdi_symbol_save_scc): New insn and split.
26642
26643 2019-03-27 Peter Bergner <bergner@linux.ibm.com>
26644
26645 PR rtl-optimization/89313
26646 * function.c (matching_constraint_num): New static function.
26647 (match_asm_constraints_1): Use it. Fixup white space and comment.
26648 Don't replace inputs with non-matching constraints which conflict
26649 with early clobber outputs.
26650
26651 2019-03-27 Jeff Law <law@redhat.com>
26652
26653 PR rtl-optimization/87761
26654 PR rtl-optimization/89826
26655 * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
26656 slightly later.
26657 (pass_cprop_hardreg::execute): Call df_analyze after adding the
26658 note problem to get REG_DEAD/REG_UNUSED notes updated.
26659
26660 2019-03-27 Richard Biener <rguenther@suse.de>
26661
26662 PR tree-optimization/89463
26663 * tree-ssa-dce.c (remove_dead_stmt): Take output vector to
26664 queue edges to remove.
26665 (eliminate_unnecessary_stmts): Remove dead PHIs alongside
26666 dead stmts. Delay edge removal until PHIs are removed to
26667 make debug-stmt creation not confused by seemingly degenerate
26668 PHIs.
26669
26670 2019-03-27 Alan Modra <amodra@gmail.com>
26671
26672 * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
26673 throughout file.
26674 * config/rs6000/darwin.h: Likewise.
26675 * config/rs6000/rs6000.c: Likewise.
26676
26677 2019-03-27 Alan Modra <amodra@gmail.com>
26678
26679 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
26680 assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting.
26681
26682 2019-03-26 Andrew Waterman <andrew@sifive.com>
26683 Jim Wilson <jimw@sifive.com>
26684
26685 * config/riscv/generic.md (generic_alu, generic_load, generic_store)
26686 (generic_xfer, generic_branch, generic_imul, generic_idivsi)
26687 (generic_idivdi, generic_fmul_single, generic_fmul_double)
26688 (generic_fdiv, generic_fsqrt): Add check for generic tune.
26689 (generic_alu): Add auipc to type list.
26690 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
26691 (riscv_microarchitecture): Declare.
26692 * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
26693 * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
26694 field.
26695 (riscv_microarchitecture): New.
26696 (sifive_7_tune_info): New.
26697 (riscv_cpu_info_table): Add microarchitecture value for rocket and
26698 size. Add sifive-3-series, sifive-5-series, and sifive-7-series
26699 entries.
26700 (riscv_store_data_bypass_p): New.
26701 (riscv_option_override): Set riscv_microarchitecture from
26702 cpu->microarchitecture.
26703 * config/riscv/riscv.md: Include sifive-7.md.
26704 (type): Add auipc.
26705 (tune): New.
26706 (auipc<mode>): Change type to auipc.
26707 (restore_stack_nonlocal): New.
26708 * config/riscv/sifive-7.md: New.
26709 * doc/invoke.texi (RISC-V Options): Update mtune docs.
26710
26711 2019-03-26 Uroš Bizjak <ubizjak@gmail.com>
26712
26713 PR target/89827
26714 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
26715 Also process XEXP (src, 0) of a shift insn.
26716
26717 2019-03-26 Richard Biener <rguenther@suse.de>
26718
26719 * tree-inline.c (remap_gimple_stmt): Cache gimple_block.
26720 (copy_debug_stmt): Likewise.
26721 (expand_call_inline): Likewise.
26722 (copy_bb): Avoid redundant lookup & set of gimple_block.
26723 * gimple-low.c (lower_gimple_return): Likewise.
26724 (lower_builtin_setjmp): Likewise.
26725
26726 2019-03-26 Jakub Jelinek <jakub@redhat.com>
26727
26728 * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
26729 is constant 0, turn into static const data member initialized to false.
26730 (hash_table::hash_table): Only initialize m_gather_mem_stats #if
26731 GATHER_STATISTICS. Add ATTRIBUTE_UNUSED to gather_mem_stats param.
26732
26733 2019-03-26 Jason Merrill <jason@redhat.com>
26734 Jakub Jelinek <jakub@redhat.com>
26735
26736 * mem-stats.h (mem_alloc_description::unregister_descriptor): New
26737 method.
26738 (mem_alloc_description::release_object_overhead): Fix comment typos.
26739 * hash-table.h (hash_table::~hash_table): Call
26740 release_instance_overhead only if m_entries is non-NULL, otherwise
26741 call unregister_descriptor.
26742
26743 2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com>
26744
26745 PR tree-optimization/81740
26746 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
26747 In case of outer loop vectorization, check for backward dependence
26748 at the inner loop if outer loop dependence is reversed.
26749
26750 2019-03-26 Alan Modra <amodra@gmail.com>
26751
26752 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
26753 rs6000_vector_mem init. Correct wI and wJ comment.
26754
26755 2019-03-25 Alexander Monakov <amonakov@ispras.ru>
26756
26757 PR rtl-optimization/88347
26758 PR rtl-optimization/88423
26759 * sched-deps.c (sched_analyze_insn): Take into account that for
26760 tablejumps the barrier appears after a label and a jump_table_data.
26761
26762 2019-03-25 Martin Sebor <msebor@redhat.com>
26763
26764 PR c/89812
26765 * c-common.c (check_user_alignment): Rename local. Correct maximum
26766 alignment in diagnostic. Avoid assuming argument fits in SHWI,
26767 convert it to UHWI when it fits.
26768
26769 2019-03-25 Johan Karlsson <johan.karlsson@enea.com>
26770
26771 PR debug/86964
26772 * dwarf2out.c (premark_used_variables): New function.
26773 (prune_unused_types_walk): Do not mark not premarked external
26774 variables.
26775 (prune_unused_types): Call premark_used_variables.
26776
26777 2019-03-25 Vladimir Makarov <vmakarov@redhat.com>
26778
26779 PR rtl-optimization/89676
26780 * lra-constraints.c (curr_insn_transform): Do match reload for
26781 early clobbers when the match was successful only for different
26782 registers.
26783
26784 2019-03-25 Martin Sebor <msebor@redhat.com>
26785
26786 * doc/extend.texi (Common Type Attributes): Document vector_size.
26787 (Common Variable Attributes): Mention size constraint. Correct
26788 quoting and typos.
26789 (Vector Extensions): Use @dfn when defining bas type. Clarify
26790 base type and size constraints.
26791
26792 2019-03-25 Richard Biener <rguenther@suse.de>
26793
26794 PR tree-optimization/89789
26795 * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
26796 changes from non-undefined back to undefined.
26797
26798 2019-03-25 Thomas Otto <thomas.otto@pdv-fs.de>
26799
26800 * dwarf2out.c (comp_dir_string): cached_wd could be set to both a
26801 heap string and a gc string, but since this variable is unknown to
26802 ggc the gc string might get reused and corrupted. Fixed by always
26803 using a heap string.
26804
26805 2019-03-25 Richard Biener <rguenther@suse.de>
26806
26807 PR tree-optimization/89779
26808 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
26809 to remove IV defs, delay actual removal.
26810 (tree_ssa_iv_optimize_loop): Likewise. Avoid SCEV reset.
26811 (tree_ssa_iv_optimize): Remove eliminated IV defs at the
26812 very end, properly also reset loop control IV information.
26813
26814 2019-03-25 Richard Biener <rguenther@suse.de>
26815
26816 PR tree-optimization/89802
26817 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
26818 move EH data to folded stmt.
26819
26820 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
26821
26822 * config/s390/s390-builtin-types.def: Remove few unused types and
26823 fix sort order for others.
26824
26825 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
26826
26827 * config/s390/s390-c.c (s390_fn_types_compatible): Print the
26828 expected and found types with -mdebug during builtin matching.
26829
26830 2019-03-25 Richard Biener <rguenther@suse.de>
26831
26832 PR middle-end/89790
26833 * fold-const.c (operand_equal_p): Revert last change with
26834 updated comment.
26835
26836 2019-03-24 Segher Boessenkool <segher@kernel.crashing.org>
26837
26838 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
26839 notes for the result of the __tls_get_addr calls.
26840 * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.
26841
26842 2019-03-24 Jeff Law <law@redhat.com>
26843
26844 * config/bfin/bfin.md (movpdi): Fix length for alternative 1.
26845
26846 PR rtl-optimization/87761
26847 * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET,
26848 not INSN. Also check RTX_FRAME_RELATED_P. Queue insns for DF rescan
26849 as needed.
26850 (pass_cprop_hardreg::execute): Add df note problem and defer insn
26851 rescans. Reprocess blocks as needed, calling df_analyze before
26852 reprocessing. Always call df_analyze before fixing up debug bind
26853 insns.
26854
26855 2019-03-23 Segher Boessenkool <segher@kernel.crashing.org>
26856
26857 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
26858 big endian.
26859
26860 2019-03-22 Andrew Pinski <apinski@marvell.com>
26861
26862 * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
26863 attrribute for uxtw.
26864
26865 2019-03-26 Jeff Law <law@redhat.com>
26866
26867 PR rtl-optimization/87761
26868 * config/mips/mips-protos.h (mips_split_move): Add new argument.
26869 (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move.
26870 (mips_split_move): Accept new INSN argument. Try to forward SRC
26871 into the next instruction.
26872 (mips_split_move_insn): Pass INSN through to mips_split_move.
26873
26874 2019-03-22 Vladimir Makarov <vmakarov@redhat.com>
26875
26876 PR rtl-optimization/89676
26877 * lra-constraints.c (curr_insn_transform): Do match reload for
26878 early clobbers even if the match was successful.
26879
26880 2019-03-22 Jakub Jelinek <jakub@redhat.com>
26881
26882 PR c++/87481
26883 * doc/invoke.texi (-fconstexpr-ops-limit=): Document.
26884
26885 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com>
26886
26887 * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
26888
26889 2019-03-22 Jakub Jelinek <jakub@redhat.com>
26890
26891 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
26892 <avx512>_fmsub_<mode>_mask3<round_name>,
26893 <avx512>_fnmadd_<mode>_mask3<round_name>,
26894 <avx512>_fnmsub_<mode>_mask3<round_name>,
26895 avx512f_vmfmadd_<mode>_mask3<round_name>,
26896 avx512f_vmfmsub_<mode>_mask3<round_name>,
26897 *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
26898 instead of register_operand and %v instead of v for match_operand 1.
26899 (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
26900 (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use
26901 <round_nimm_predicate> instead of register_operand and %v instead of v
26902 for match_operand 1.
26903
26904 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
26905 <avx512>_fmadd_<mode>_mask3<round_name>,
26906 <avx512>_fmsub_<mode>_mask<round_name>,
26907 <avx512>_fmsub_<mode>_mask3<round_name>,
26908 <avx512>_fnmadd_<mode>_mask<round_name>,
26909 <avx512>_fnmadd_<mode>_mask3<round_name>,
26910 <avx512>_fnmsub_<mode>_mask<round_name>,
26911 <avx512>_fnmsub_<mode>_mask3<round_name>,
26912 <avx512>_fmaddsub_<mode>_mask<round_name>,
26913 <avx512>_fmaddsub_<mode>_mask3<round_name>,
26914 <avx512>_fmsubadd_<mode>_mask<round_name>,
26915 <avx512>_fmsubadd_<mode>_mask3<round_name>): Use
26916 <round_nimm_predicate> instead of nonimmediate_operand.
26917 (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
26918 fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>):
26919 Use register_operand instead of <round_nimm_predicate> for the
26920 operand that needs to match output.
26921 (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
26922 *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>):
26923 Likewise. Formatting fixes.
26924
26925 PR target/89784
26926 * config/i386/i386.c (enum ix86_builtins): Remove
26927 IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
26928 * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
26929 __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
26930 __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
26931 __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
26932 __builtin_ia32_vfmsubss3_mask3): New builtins.
26933 * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>,
26934 avx512f_vmfmadd_<mode>_mask3<round_name>,
26935 avx512f_vmfmadd_<mode>_maskz_1<round_name>,
26936 *avx512f_vmfmsub_<mode>_mask<round_name>,
26937 avx512f_vmfmsub_<mode>_mask3<round_name>,
26938 *avx512f_vmfmasub_<mode>_maskz_1<round_name>,
26939 *avx512f_vmfnmadd_<mode>_mask<round_name>,
26940 *avx512f_vmfnmadd_<mode>_mask3<round_name>,
26941 *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
26942 *avx512f_vmfnmsub_<mode>_mask<round_name>,
26943 avx512f_vmfnmsub_<mode>_mask3<round_name>,
26944 *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns.
26945 (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
26946 * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
26947 _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
26948 _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
26949 _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
26950 _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
26951 _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
26952 _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
26953 _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
26954 _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
26955 _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
26956 _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
26957 _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
26958 _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
26959 _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
26960 _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
26961 _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
26962 _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
26963 _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
26964 _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
26965 _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.
26966
26967 2019-03-21 Martin Sebor <msebor@redhat.com>
26968
26969 PR tree-optimization/89350
26970 * builtins.c (compute_objsize): Also ignore offsets whose upper
26971 bound is negative.
26972 * gimple-ssa-warn-restrict.c (builtin_memref): Add new member.
26973 (builtin_memref::builtin_memref): Initialize new member.
26974 Allow EXPR to be null.
26975 (builtin_memref::extend_offset_range): Replace local with a member.
26976 Avoid assuming pointer offsets are unsigned.
26977 (builtin_memref::set_base_and_offset): Determine base object
26978 before computing offset range.
26979 (builtin_access::builtin_access): Handle memset.
26980 (builtin_access::generic_overlap): Replace local with a member.
26981 (builtin_access::strcat_overlap): Same.
26982 (builtin_access::overlap): Same.
26983 (maybe_diag_overlap): Same.
26984 (maybe_diag_access_bounds): Same.
26985 (wrestrict_dom_walker::check_call): Handle memset.
26986 (check_bounds_or_overlap): Same.
26987
26988 2019-03-21 Jan Hubicka <hubicka@ucw.cz>
26989 Jakub Jelinek <jakub@redhat.com>
26990
26991 PR lto/89692
26992 * tree.c (fld_type_variant, fld_incomplete_type_of,
26993 fld_process_array_type): Call fld->pset.add and don't call
26994 add_tree_to_fld_list if it returns true.
26995 (free_lang_data_in_type): Similarly with self-recursive call. Purge
26996 non-marked types from TYPE_NEXT_VARIANT list.
26997 (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t).
26998
26999 2019-03-21 Jakub Jelinek <jakub@redhat.com>
27000
27001 * hash-table.h (hash_table): Add Lazy template parameter defaulted
27002 to false, if true, don't alloc_entries during construction, but defer
27003 it to the first method that needs m_entries allocated.
27004 (hash_table::hash_table, hash_table::~hash_table,
27005 hash_table::alloc_entries, hash_table::find_empty_slot_for_expand,
27006 hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow,
27007 hash_table::clear_slot, hash_table::traverse_noresize,
27008 hash_table::traverse, hash_table::iterator::slide): Adjust all methods.
27009 * hash-set.h (hash_set): Add Lazy template parameter defaulted to
27010 false.
27011 (hash_set::contains): If Lazy is true, use find_slot_with_hash with
27012 NO_INSERT instead of find_with_hash.
27013 (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter,
27014 hash_set::m_table): Add Lazy to template params of hash_table.
27015 (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param.
27016 * attribs.c (test_attribute_exclusions): Likewise.
27017 * hash-set-tests.c (test_set_of_strings): Add iterator tests for
27018 hash_set. Add tests for hash_set with Lazy = true.
27019
27020 2019-03-21 Richard Biener <rguenther@suse.de>
27021
27022 PR tree-optimization/89779
27023 * tree.c (tree_nop_conversion): Consolidate and fix defensive
27024 checks with respect to released SSA names now having error_mark_node
27025 type.
27026 * fold-const.c (operand_equal_p): Likewise.
27027
27028 2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com>
27029
27030 PR target/89775
27031 * config/s390/s390.c (global_not_special_regno_p): Move to make it
27032 available to ...
27033 (s390_optimize_register_info): Use global_not_special_regno_p to
27034 check for global regs.
27035
27036 2019-03-20 Jakub Jelinek <jakub@redhat.com>
27037
27038 PR target/89752
27039 * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
27040 update this_alternative nor this_alternative_set.
27041
27042 2019-03-19 Jim Wilson <jimw@sifive.com>
27043
27044 PR target/89411
27045 * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals
27046 align, size, offset. Use them to handle a BLKmode reference. Update
27047 comment.
27048 (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p.
27049
27050 2019-03-19 Jakub Jelinek <jakub@redhat.com>
27051
27052 PR rtl-optimization/89768
27053 * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
27054 instead of GEN_INT.
27055 (unroll_loop_runtime_iterations): Likewise.
27056
27057 2019-03-19 Martin Sebor <msebor@redhat.com>
27058
27059 PR tree-optimization/89644
27060 * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p
27061 rather than endptr as an indicator of nul-termination.
27062
27063 PR tree-optimization/89644
27064 * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated
27065 arrays in determining sequence sizes in strncpy and stpncpy.
27066
27067 2019-03-19 Martin Liska <mliska@suse.cz>
27068
27069 PR middle-end/89737
27070 * predict.c (combine_predictions_for_bb): Empty likely_edges and
27071 unlikely_edges if there's an edge that belongs to both these sets.
27072
27073 2018-03-19 Segher Boessenkool <segher@kernel.crashing.org>
27074
27075 PR target/89746
27076 * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a
27077 non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned,
27078 go via a stack temporary.
27079
27080 2019-03-19 Jakub Jelinek <jakub@redhat.com>
27081
27082 PR target/89378
27083 * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
27084 instead of gen_rtx_SUBREG.
27085 * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.
27086
27087 2019-03-19 Richard Biener <rguenther@suse.de>
27088
27089 PR debug/88389
27090 * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
27091
27092 2019-03-19 Jan Hubicka <hubicka@ucw.cz>
27093
27094 PR lto/87809
27095 PR lto/89335
27096 * tree.c (free_lang_data_in_decl): Do not free context of C++
27097 destrutors.
27098
27099 2019-03-19 Jakub Jelinek <jakub@redhat.com>
27100
27101 PR target/89506
27102 * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use
27103 subs for the first alternative except when operands[3] is 1.
27104
27105 PR target/89752
27106 * gimplify.c (gimplify_asm_expr): For output argument with
27107 TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
27108 diagnose error.
27109
27110 2019-03-19 Eric Botcazou <ebotcazou@adacore.com>
27111
27112 PR rtl-optimization/89753
27113 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
27114 explicit unrolling factor even more robust.
27115
27116 2019-03-19 Jakub Jelinek <jakub@redhat.com>
27117
27118 PR target/89726
27119 * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
27120 compensation use x2 += 1 instead of x2 -= -1 and when honoring
27121 signed zeros, do another copysign after the compensation.
27122
27123 2019-03-18 Martin Sebor <msebor@redhat.com>
27124
27125 PR tree-optimization/89720
27126 * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min
27127 more conservatively, the same as anti-range.
27128
27129 2019-03-18 Richard Biener <rguenther@suse.de>
27130
27131 PR middle-end/88945
27132 * tree-ssanames.c (release_ssa_name_fn): For released SSA names
27133 use a TREE_TYPE of error_mark_node to avoid ICEs when dumping
27134 basic-blocks that are removed. Remove restoring SSA_NAME_VAR.
27135 * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking.
27136
27137 2019-03-18 Andrew Stubbs <ams@codesourcery.com>
27138
27139 * config/gcn/gcn-run.c (struct output): Make next_output unsigned.
27140 Extend queue to 1024 entries.
27141 Add "consumed" field.
27142 (gomp_print_output): Remove print_index parameter.
27143 Add final parameter.
27144 Change limit to unsigned.
27145 Use consumed field to implement circular buffer.
27146 Detect interrupted print in final pass.
27147 Flush output at the end.
27148 (run): Update gomp_print_output usage.
27149 (main): Initialize kernargs->output_data.consumed.
27150
27151 2019-03-18 Richard Sandiford <richard.sandiford@arm.com>
27152
27153 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the
27154 calculation of the minimum number of scalar iterations for
27155 fully-predicated loops.
27156
27157 2019-03-18 Martin Jambor <mjambor@suse.cz>
27158
27159 PR tree-optimization/89546
27160 * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
27161 any propagation to its children took place.
27162
27163 2019-03-18 Andrew Burgess <andrew.burgess@embecosm.com>
27164
27165 PR target/89627
27166 * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset
27167 parameter, and make use of it.
27168 (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single.
27169
27170 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
27171
27172 * config/arc/arc.opt (mcode-density-frame): Get the inital value
27173 from TARGET_CODE_DENSITY_FRAME_DEFAULT.
27174 * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
27175 * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
27176 * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to
27177 match what the ops is doing.
27178 (push_multi_fp_blink): Likewise.
27179 * config/arc/arc.c (arc_override_options): Enable enter/leave when
27180 compiling for size and elf target.
27181 (arc_save_callee_enter): Adjust note to match what enter/leave
27182 operation does.
27183
27184 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
27185
27186 * config/arc/arc.md (tst_movb): Fix constraint.
27187
27188 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
27189
27190 * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
27191
27192 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
27193
27194 * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare.
27195 * config/arc/arc.c (arc_conditional_register_usage): Remove all
27196 reg_alloc_order references.
27197 (size_alloc_order): Define.
27198 (arc_adjust_reg_alloc_order): New function.
27199 * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register
27200 order.
27201 (ADJUST_REG_ALLOC_ORDER): Define.
27202 (HONOR_REG_ALLOC_ORDER): Likewise.
27203
27204 2019-03-18 Richard Biener <rguenther@suse.de>
27205
27206 PR target/87561
27207 * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided
27208 loads and stores a bit more.
27209
27210 2019-03-18 Richard Biener <rguenther@suse.de>
27211
27212 PR target/87561
27213 * config/i386/i386.c (ix86_add_stmt_cost): Apply strided
27214 load pessimization to stores as well.
27215
27216 2019-03-18 Andrey Belevantsev <abel@ispras.ru>
27217
27218 PR middle-end/86979
27219 * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible
27220 successor, use NULL as its av set.
27221
27222 2019-03-15 Segher Boessenkool <segher@kernel.crashing.org>
27223
27224 PR rtl-optimization/89721
27225 * lra-constraints (invariant_p): Return false if side_effects_p holds.
27226
27227 2019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org>
27228
27229 PR target/87532
27230 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
27231 When handling vec_extract, use modular arithmetic to allow
27232 constant selectors greater than vector length.
27233 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
27234 V1TImode vectors to have constant selector values greater than 0.
27235 Use modular arithmetic to compute vector index.
27236 (rs6000_split_vec_extract_var): Use modular arithmetic to compute
27237 index for in-memory vectors. Correct code generation for
27238 in-register vectors.
27239 (altivec_expand_vec_ext_builtin): Use modular arithmetic to
27240 compute index.
27241
27242 2019-03-15 Alexandre Oliva <aoliva@redhat.com>
27243
27244 PR c++/88534
27245 PR c++/88537
27246 * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
27247 VAR_DECL args.
27248
27249 2019-03-15 Jakub Jelinek <jakub@redhat.com>
27250
27251 PR c++/89709
27252 * tree.c (inchash::add_expr): Strip any location wrappers.
27253 * fold-const.c (operand_equal_p): Move stripping of location wrapper
27254 after hash verification.
27255
27256 PR debug/89704
27257 * dwarf2out.c (add_const_value_attribute): Return false for MINUS,
27258 SIGN_EXTEND and ZERO_EXTEND.
27259
27260 2019-03-14 Jason Merrill <jason@redhat.com>
27261 Jakub Jelinek <jakub@redhat.com>
27262
27263 * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
27264 than if is_empty (*slot).
27265 * hash-set-tests.c (test_set_of_strings): Add tests for addition of
27266 existing elt and for elt removal.
27267 * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
27268 of already removed elt.
27269
27270 2019-03-15 H.J. Lu <hongjiu.lu@intel.com>
27271
27272 PR target/89650
27273 * config/i386/i386.c (remove_partial_avx_dependency): Handle
27274 REG_EH_REGION note.
27275
27276 2019-03-14 Martin Liska <mliska@suse.cz>
27277
27278 PR other/89712
27279 * doc/invoke.texi: Remove -fdump-class-hierarchy option.
27280
27281 2019-03-14 Richard Biener <rguenther@suse.de>
27282
27283 PR target/89711
27284 * config/i386/i386.c (make_resolver_func): Properly set
27285 DECL_CONTEXT on the RESULT_DECL.
27286 * config/rs6000/rs6000.c (make_resolver_func): Likewise.
27287
27288 2019-03-14 Richard Biener <rguenther@suse.de>
27289
27290 * gimple-pretty-print.c: Include cfgloop.h.
27291 (dump_gimple_phi): Adjust.
27292 (dump_gimple_bb_header): Dump loop header for GIMPLE.
27293 (pp_cfg_jump): Adjust.
27294 (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
27295 * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
27296 (lower_phi_internal_fn): Remove.
27297 (verify_gimple_call): Remove IFN_PHI special-casing.
27298 (dump_function_to_file): Dump IL state.
27299 * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
27300 done to deal with PHI nodes being present in non-SSA state.
27301
27302 2019-03-14 Jakub Jelinek <jakub@redhat.com>
27303
27304 PR ipa/89684
27305 * multiple_target.c (create_dispatcher_calls): Change
27306 references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
27307 In the node->iterate_referring loop, push *ref rather than ref, call
27308 ref->remove_reference () and always pass 0 to iterate_referring.
27309
27310 PR rtl-optimization/89679
27311 * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
27312 would contain a paradoxical SUBREG.
27313
27314 2019-03-14 Richard Biener <rguenther@suse.de>
27315
27316 PR tree-optimization/89710
27317 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
27318 safe_dyn_cast.
27319
27320 2019-03-14 Martin Liska <mliska@suse.cz>
27321
27322 * coverage.c (coverage_begin_function): Stream also
27323 end_column.
27324 * doc/gcov.texi: Document 2 new fields in JSON file. Improve
27325 documentation about function declaration location.
27326 * gcov-dump.c (tag_function): Print whole range
27327 of function declaration.
27328 * gcov.c (struct function_info): Add end_column field.
27329 (function_info::function_info): Initialize it.
27330 (output_json_intermediate_file): Output {start,end}_column
27331 fields.
27332 (read_graph_file): Read end_column.
27333
27334 2019-03-14 Richard Biener <rguenther@suse.de>
27335
27336 PR middle-end/89698
27337 * fold-const.c (operand_equal_p): For INDIRECT_REF check
27338 that the access types are similar.
27339
27340 2019-03-14 Jakub Jelinek <jakub@redhat.com>
27341
27342 PR tree-optimization/89703
27343 * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
27344 aren't compatible also with builtin_decl_explicit. Check pure
27345 or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
27346 and BUILT_IN_STPNCPY{,_CHK}.
27347
27348 2019-03-14 H.J. Lu <hongjiu.lu@intel.com>
27349
27350 PR target/89523
27351 * config/i386/i386.c (ix86_print_operand): Handle 'M' to add
27352 addr32 prefix to VSIB address for X32.
27353 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
27354 "%M2" to opcode.
27355 (*avx512pf_gatherpf<mode>df_mask): Likewise.
27356 (*avx512pf_scatterpf<mode>sf_mask): Likewise.
27357 (*avx512pf_scatterpf<mode>df_mask): Likewise.
27358 (*avx2_gathersi<mode>): Prepend "%M3" to opcode.
27359 (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
27360 (*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
27361 (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
27362 (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
27363 (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
27364 (*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
27365 (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
27366 (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
27367 (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
27368 (*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
27369 (*avx512f_scatterdi<mode>): Likewise.
27370
27371 2019-03-13 Vladimir Makarov <vmakarov@redhat.com>
27372
27373 PR target/85860
27374 * lra-constraints.c (inherit_in_ebb): Update
27375 potential_reload_hard_regs along with live_hard_regs.
27376
27377 2019-03-13 Jakub Jelinek <jakub@redhat.com>
27378
27379 PR debug/89498
27380 * dwarf2out.c (size_of_die): For dw_val_class_view_list always use
27381 DWARF_OFFSET_SIZE.
27382 (value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
27383
27384 2019-03-13 Martin Sebor <msebor@redhat.com>
27385
27386 PR tree-optimization/89662
27387 * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
27388 has a size.
27389
27390 2019-03-13 Richard Biener <rguenther@suse.de>
27391
27392 PR middle-end/89677
27393 * tree-scalar-evolution.c (simplify_peeled_chrec): Do not
27394 throw FP expressions at tree-affine.
27395
27396 2019-03-14 Richard Biener <rguenther@suse.de>
27397
27398 * tree-pretty-print.c (dump_generic_node): For -gimple properly
27399 dump negative integer constants using _Literal (type) -num.
27400
27401 2019-03-13 Jakub Jelinek <jakub@redhat.com>
27402
27403 * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
27404 nonlocal_value member.
27405
27406 PR middle-end/88588
27407 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
27408 (ipa_simd_modify_function_body): Handle PHIs.
27409
27410 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
27411
27412 * config/s390/s390.c (s390_option_override_internal): Use more
27413 aggressive inlining parameters.
27414
27415 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
27416
27417 * config/s390/3906.md: New file.
27418 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
27419 (LONGRUNNING_THRESHOLD): Remove.
27420 (MAX_SCHED_MIX_SCORE): Decrease.
27421 (MAX_SCHED_MIX_DISTANCE): Decrease.
27422 (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely.
27423 (struct s390_sched_state): New struct to hold scheduling state.
27424 (S390_SCHED_STATE_NORMAL): Remove.
27425 (S390_SCHED_STATE_CRACKED): Remove.
27426 (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add.
27427 (s390_get_sched_attrmask): Use new attribute.
27428 (s390_get_unit_mask): Use new units.
27429 (s390_is_fpd): New function.
27430 (s390_is_fxd): New function.
27431 (s390_is_longrunning): New function.
27432 (s390_sched_score): Use new functions.
27433 (s390_sched_reorder): Likewise.
27434 (s390_sched_variable_issue): Rework and use new functions.
27435 (s390_sched_init): Use new functions.
27436 * config/s390/s390.h (s390_tune_attr): Add z14.
27437 * config/s390/s390.md: Add z14.
27438
27439 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
27440
27441 * config/s390/2964.md: Update pipeline description.
27442 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
27443 (LONGRUNNING_THRESHOLD): Remove.
27444 (LATENCY_FACTOR): Remove.
27445 (s390_get_unit_mask): Add unit.
27446 (s390_sched_score): Use fxd/fpd.
27447 (s390_sched_variable_issue): Use fxd/fpd.
27448
27449 2019-03-12 Martin Liska <mliska@suse.cz>
27450
27451 * config/i386/i386.c: Reword an error message.
27452
27453 2019-03-12 Martin Jambor <mjambor@suse.cz>
27454
27455 * cgraph.c (cgraph_node::dump): Dump more info for former thunks,
27456 terminate with newline.
27457
27458 2019-03-12 Jakub Jelinek <jakub@redhat.com>
27459
27460 PR target/52726
27461 * config/s390/s390.md (tabort): Use %wd instead of
27462 HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital
27463 letters and periods.
27464 * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in
27465 output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace
27466 's with %< and %>.
27467
27468 PR middle-end/89663
27469 * builtins.c (expand_builtin_int_roundingfn,
27470 expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
27471 gcc_unreachable if validate_arglist fails.
27472
27473 2019-03-12 Richard Biener <rguenther@suse.de>
27474
27475 PR tree-optimization/89664
27476 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly
27477 free the occurance tree after the early out.
27478
27479 2019-03-11 Jakub Jelinek <jakub@redhat.com>
27480
27481 PR middle-end/89655
27482 PR bootstrap/89656
27483 * vr-values.c (vr_values::update_value_range): If
27484 old_vr->varying_p (), don't update it, make new_vr also VARYING
27485 and return false.
27486
27487 2019-03-11 Martin Liska <mliska@suse.cz>
27488
27489 * config/aarch64/aarch64.c (aarch64_override_options_internal):
27490 Fix double string quoting.
27491
27492 2019-03-11 Martin Liska <mliska@suse.cz>
27493
27494 * collect-utils.c (collect_wait): Wrap apostrophes
27495 in gcc internal format with %'.
27496 * collect2.c (main): Likewise.
27497 (scan_prog_file): Likewise.
27498 (scan_libraries): Likewise.
27499 * config/i386/i386.c (ix86_expand_call): Likewise.
27500 (ix86_handle_interrupt_attribute): Likewise.
27501 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
27502 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
27503 * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise.
27504 * lto-wrapper.c (find_crtoffloadtable): Likewise.
27505 * symtab.c (symtab_node::verify_base): Likewise.
27506 * tree-cfg.c (verify_gimple_label): Likewise.
27507 * tree.c (verify_type_variant): Likewise.
27508
27509 2019-03-11 Martin Liska <mliska@suse.cz>
27510
27511 * builtins.c (expand_builtin_thread_pointer): Wrap an option name
27512 in a string format message and fix GNU coding style.
27513 (expand_builtin_set_thread_pointer): Likewise.
27514 * common/config/aarch64/aarch64-common.c
27515 (aarch64_rewrite_selected_cpu): Likewise.
27516 * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise.
27517 * common/config/arc/arc-common.c (arc_handle_option): Likewise.
27518 * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise.
27519 * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
27520 * common/config/i386/i386-common.c (ix86_handle_option): Likewise.
27521 * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise.
27522 * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise.
27523 * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise.
27524 * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise.
27525 * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option):
27526 Likewise.
27527 * common/config/riscv/riscv-common.c
27528 (riscv_subset_list::parsing_subset_version): Likewise.
27529 (riscv_subset_list::parse_std_ext): Likewise.
27530 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
27531 (riscv_subset_list::parse): Likewise.
27532 * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise.
27533 * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise.
27534 (aarch64_override_options_internal): Likewise.
27535 (aarch64_validate_mcpu): Likewise.
27536 (aarch64_validate_march): Likewise.
27537 (aarch64_validate_mtune): Likewise.
27538 (aarch64_override_options): Likewise.
27539 * config/alpha/alpha.c (alpha_option_override): Likewise.
27540 * config/arc/arc.c (arc_init): Likewise.
27541 (parse_mrgf_banked_regs_option): Likewise.
27542 (arc_override_options): Likewise.
27543 (arc_expand_builtin_aligned): Likewise.
27544 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise.
27545 (arm_expand_builtin): Likewise.
27546 * config/arm/arm.c (arm_option_check_internal): Likewise.
27547 (arm_configure_build_target): Likewise.
27548 (arm_option_override): Likewise.
27549 (arm_options_perform_arch_sanity_checks): Likewise.
27550 (arm_handle_cmse_nonsecure_entry): Likewise.
27551 (arm_handle_cmse_nonsecure_call): Likewise.
27552 (arm_tls_referenced_p): Likewise.
27553 (thumb1_expand_prologue): Likewise.
27554 * config/avr/avr.c (avr_option_override): Likewise.
27555 * config/bfin/bfin.c (bfin_option_override): Likewise.
27556 * config/c6x/c6x.c (c6x_option_override): Likewise.
27557 * config/cr16/cr16.c (cr16_override_options): Likewise.
27558 * config/cris/cris.c (cris_option_override): Likewise.
27559 * config/csky/csky.c (csky_handle_isr_attribute): Likewise.
27560 * config/darwin-c.c (macosx_version_as_macro): Likewise.
27561 * config/darwin.c (darwin_override_options): Likewise.
27562 * config/frv/frv.c (frv_expand_builtin): Likewise.
27563 * config/h8300/h8300.c (h8300_option_override): Likewise.
27564 * config/i386/i386.c (parse_mtune_ctrl_str): Likewise.
27565 (ix86_option_override_internal): Likewise.
27566 (warn_once_call_ms2sysv_xlogues): Likewise.
27567 (ix86_expand_prologue): Likewise.
27568 (split_stack_prologue_scratch_regno): Likewise.
27569 (ix86_warn_parameter_passing_abi): Likewise.
27570 * config/ia64/ia64.c (fix_range): Likewise.
27571 * config/m68k/m68k.c (m68k_option_override): Likewise.
27572 * config/microblaze/microblaze.c (microblaze_option_override): Likewise.
27573 * config/mips/mips.c (mips_emit_probe_stack_range): Likewise.
27574 (mips_set_compression_mode): Likewise.
27575 * config/mmix/mmix.c (mmix_option_override): Likewise.
27576 * config/mn10300/mn10300.c (mn10300_option_override): Likewise.
27577 * config/msp430/msp430.c (msp430_option_override): Likewise.
27578 * config/nds32/nds32.c (nds32_option_override): Likewise.
27579 * config/nios2/nios2.c (nios2_custom_check_insns): Likewise.
27580 (nios2_option_override): Likewise.
27581 (nios2_expand_custom_builtin): Likewise.
27582 * config/nvptx/mkoffload.c (main): Likewise.
27583 * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise.
27584 * config/pa/pa.c (fix_range): Likewise.
27585 (pa_option_override): Likewise.
27586 * config/riscv/riscv.c (riscv_parse_cpu): Likewise.
27587 (riscv_option_override): Likewise.
27588 * config/rl78/rl78.c (rl78_option_override): Likewise.
27589 * config/rs6000/aix61.h: Likewise.
27590 * config/rs6000/aix71.h: Likewise.
27591 * config/rs6000/aix72.h: Likewise.
27592 * config/rs6000/driver-rs6000.c (elf_platform): Likewise.
27593 * config/rs6000/freebsd64.h: Likewise.
27594 * config/rs6000/linux64.h: Likewise.
27595 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
27596 (rs6000_expand_zeroop_builtin): Likewise.
27597 (rs6000_expand_mtfsb_builtin): Likewise.
27598 (rs6000_expand_set_fpscr_rn_builtin): Likewise.
27599 (rs6000_expand_set_fpscr_drn_builtin): Likewise.
27600 (rs6000_invalid_builtin): Likewise.
27601 (rs6000_expand_split_stack_prologue): Likewise.
27602 * config/rs6000/rtems.h: Likewise.
27603 * config/rx/rx.c (valid_psw_flag): Likewise.
27604 (rx_expand_builtin): Likewise.
27605 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
27606 * config/s390/s390.c (s390_expand_builtin): Likewise.
27607 (s390_function_profiler): Likewise.
27608 (s390_option_override_internal): Likewise.
27609 (s390_option_override): Likewise.
27610 * config/sh/sh.c (sh_option_override): Likewise.
27611 (sh_builtin_saveregs): Likewise.
27612 (sh_fix_range): Likewise.
27613 * config/sh/vxworks.h: Likewise.
27614 * config/sparc/sparc.c (sparc_option_override): Likewise.
27615 * config/spu/spu.c (spu_option_override): Likewise.
27616 (fix_range): Likewise.
27617 * config/visium/visium.c (visium_option_override): Likewise.
27618 (visium_handle_interrupt_attr): Likewise.
27619 * config/xtensa/xtensa.c (xtensa_option_override): Likewise.
27620 * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise.
27621 (dbg_cnt_process_opt): Likewise.
27622 * dwarf2out.c (output_dwarf_version): Likewise.
27623 * except.c (expand_eh_return): Likewise.
27624 * gcc.c (defined): Likewise.
27625 (driver_handle_option): Likewise.
27626 (process_command): Likewise.
27627 (compare_files): Likewise.
27628 (driver::prepare_infiles): Likewise.
27629 (driver::do_spec_on_infiles): Likewise.
27630 (driver::maybe_run_linker): Likewise.
27631 * omp-offload.c (oacc_parse_default_dims): Likewise.
27632 * opts-global.c (handle_common_deferred_options): Likewise.
27633 * opts.c (parse_sanitizer_options): Likewise.
27634 (common_handle_option): Likewise.
27635 (enable_warning_as_error): Likewise.
27636 * passes.c (enable_disable_pass): Likewise.
27637 * plugin.c (parse_plugin_arg_opt): Likewise.
27638 (default_plugin_dir_name): Likewise.
27639 * targhooks.c (default_expand_builtin_saveregs): Likewise.
27640 (default_pch_valid_p): Likewise.
27641 * toplev.c (init_asm_output): Likewise.
27642 (process_options): Likewise.
27643 (toplev::run_self_tests): Likewise.
27644 * tree-cfg.c (verify_gimple_call): Likewise.
27645 * tree-inline.c (inline_forbidden_p_stmt): Likewise.
27646 (tree_inlinable_function_p): Likewise.
27647 * var-tracking.c (vt_find_locations): Likewise.
27648
27649 2019-03-11 Andreas Krebbel <krebbel@linux.ibm.com>
27650
27651 * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
27652 only on the else branch.
27653
27654 2019-03-11 Martin Liska <mliska@suse.cz>
27655
27656 * gcov.c (output_intermediate_json_line): Print function
27657 name of each line.
27658 (output_json_intermediate_file): Add new argument.
27659 * doc/gcov.texi: Document the change.
27660
27661 2019-03-11 Eric Botcazou <ebotcazou@adacore.com>
27662
27663 PR rtl-optimization/89588
27664 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
27665 explicit unrolling factor more robust.
27666
27667 2019-03-11 Richard Biener <rguenther@suse.de>
27668
27669 PR tree-optimization/89649
27670 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
27671 * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize
27672 on the prolog and epilog loops.
27673 (vect_loop_versioning): Return copy of loop.
27674 * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize
27675 on the non-vectorized version of the loop.
27676
27677 2019-03-10 Uroš Bizjak <ubizjak@gmail.com>
27678
27679 PR target/68924
27680 * config/i386/sse.md (*vec_extractv2di_0_sse):
27681 Add (=r,x) alternative and corresponding splitter.
27682
27683 2019-03-10 Martin Jambor <mjambor@suse.cz>
27684
27685 PR tree-optimization/85762
27686 PR tree-optimization/87008
27687 PR tree-optimization/85459
27688 * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool
27689 it points to if there is a type changing MEM_REF. Adjust all callers.
27690 (build_accesses_from_assign): Disable total scalarization if
27691 contains_vce_or_bfcref_p returns true through the new parameter, for
27692 both rhs and lhs.
27693
27694 2019-03-09 Jakub Jelinek <jakub@redhat.com>
27695
27696 PR c/88568
27697 * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
27698 dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
27699
27700 PR target/79645
27701 * common.opt (fdiagnostics-show-labels,
27702 fdiagnostics-show-line-numbers, fdiagnostics-format=,
27703 fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support,
27704 gas-locview-support, ginline-points, ginternal-reset-location-views):
27705 Terminate description text with a dot.
27706 * config/microblaze/microblaze.opt (mxl-prefetch): Likewise.
27707 * config/mcore/mcore.opt (m210, m340): Likewise.
27708 * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove,
27709 mnops=): Start description text with a capital letter.
27710 * config/arc/arc.opt (msize-level=): Likewise.
27711 * config/sh/sh.opt (minline-ic_invalidate): Likewise.
27712 * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib,
27713 mnewlib): Likewise.
27714 * config/ft32/ft32.opt (msim): Likewise.
27715 (mft32b, mcompress): Likewise. Terminate description text with a dot.
27716 (mnodiv, mnopm): Terminate description text with a dot.
27717 * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with
27718 a colon.
27719 * config/i386/i386.opt (prefer_vector_width, instrument_return):
27720 Likewise.
27721 * config/rx/rx.opt (nofpu): Remove trailing spaces from description
27722 text.
27723
27724 PR rtl-optimization/89634
27725 * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1
27726 are modified in BB_END (e->src) instruction.
27727
27728 2019-03-08 David Malcolm <dmalcolm@redhat.com>
27729
27730 PR target/79926
27731 * config/i386/i386.c (ix86_set_current_function): Make "sorry"
27732 messages more amenable to translation, and improve wording.
27733
27734 2019-03-08 Bill Schmidt <wschmidt@linux.ibm.com>
27735
27736 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
27737 ud- and du-chains between phases.
27738
27739 2019-03-08 Richard Sandiford <richard.sandiford@arm.com>
27740
27741 PR debug/89631
27742 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
27743 instead of POLY_INT_CST.
27744
27745 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
27746
27747 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
27748 requirement.
27749
27750 2019-03-08 Uroš Bizjak <ubizjak@gmail.com>
27751
27752 PR target/68924
27753 PR target/78782
27754 PR target/87558
27755 * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
27756 (_mm_storeu_si64): Ditto.
27757
27758 2019-03-08 Martin Liska <mliska@suse.cz>
27759
27760 PR target/86952
27761 * config/i386/i386.c (ix86_option_override_internal): Disable
27762 jump tables when retpolines are used.
27763
27764 2019-03-08 Jan Hubicka <hubicka@ucw.cz>
27765
27766 PR go/63560
27767 * ipa-split.c (execute_split_functions): Do not split
27768 'noinline' or 'section' function.
27769
27770 2019-03-08 Jakub Jelinek <jakub@redhat.com>
27771
27772 PR target/79846
27773 * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of
27774 HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of
27775 HOST_WIDE_INT_PRINT_DEC. Formatting fixes.
27776
27777 PR ipa/80000
27778 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
27779 from diagnostics. Formatting fixes.
27780
27781 PR target/85665
27782 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
27783 warn_odr diagnostics.
27784
27785 PR other/80058
27786 * lra-constraints.c (process_alt_operands): Avoid one space before
27787 " at the end of line and another after " on another line in a string
27788 literal.
27789 * attribs.c (handle_dll_attribute): Likewise.
27790 * config/avr/avr-devices.c (avr_texinfo): Likewise.
27791
27792 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
27793 warning_at or inform messages in G_() if there is no ?:.
27794
27795 PR tree-optimization/89550
27796 * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at
27797 returned true. Formatting fixes.
27798 (expand_builtin_strnlen): Formatting fixes.
27799 * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING
27800 if warning_at returned true.
27801 * tree-cfg.c (pass_warn_function_return::execute): Likewise.
27802
27803 2019-03-08 Richard Biener <rguenther@suse.de>
27804
27805 PR middle-end/89578
27806 * cfgloop.h (struct loop): Add owned_clique field.
27807 * cfgloopmanip.c (copy_loop_info): Copy it.
27808 * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
27809 cliques.
27810 * tree-inline.c (copy_loops): Remap owned_clique.
27811 * lto-streamer-in.c (input_cfg): Stream owned_clique.
27812 * lto-streamer-out.c (output_cfg): Likewise.
27813
27814 2019-03-08 Jakub Jelinek <jakub@redhat.com>
27815
27816 PR target/80190
27817 * config/darwin.c: Include intl.h.
27818 (darwin_build_constant_cfstring): Improve i18n of diagnostics by not
27819 composing the message out of two separate parts.
27820
27821 2019-03-07 Jakub Jelinek <jakub@redhat.com>
27822
27823 PR target/80003
27824 * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
27825 doesn't start with a capital letter and doesn't end with a dot.
27826 (ix86_function_arg_boundary): Make sure diagnostics doesn't start
27827 with a capital letter.
27828 (ix86_mangle_function_version_assembler_name): Likewise.
27829 (ix86_generate_version_dispatcher_body): Likewise.
27830 (fold_builtin_cpu): Likewise.
27831 (get_builtin_code_for_version): Likewise. Remove extraneous space.
27832 (ix86_handle_interrupt_attribute): Make the diagnostics easier for
27833 translators, wrap full type name in %qs.
27834
27835 PR translation/79999
27836 * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
27837 depend clause with source (or sink) modifier.
27838 * omp-expand.c (expand_omp_ordered_sink): Likewise.
27839
27840 PR target/89602
27841 * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask,
27842 *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns.
27843 (avx512f_load<mode>_mask): New define_expand.
27844 * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask,
27845 __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask,
27846 __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask,
27847 __builtin_ia32_movess_mask): New builtins.
27848 * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss,
27849 _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss,
27850 _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd,
27851 _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics.
27852
27853 2019-03-07 Martin Jambor <mjambor@suse.cz>
27854
27855 PR lto/87525
27856 * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
27857 for extern inline functions.
27858
27859 2019-03-07 Martin Jambor <mjambor@suse.cz>
27860
27861 PR ipa/88235
27862 * cgraph.h (cgraph_node): New inline method former_thunk_p.
27863 * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
27864 (clone_of_p): Treat expanded thunks like thunks, be optimistic if they
27865 have multiple callees. At the end check if declarations match as
27866 opposed to cgraph_nodes.
27867
27868 2019-03-07 Martin Liska <mliska@suse.cz>
27869
27870 * cgraph.c (cgraph_node::verify_node): Verify with a neighbour
27871 which is equivalent to searching for this in clones chain.
27872 * symtab.c (symtab_node::verify_base): Similarly compare ASM
27873 names with a neighbour and special case first node in a chain.
27874
27875 2019-01-25 Jason Merrill <jason@redhat.com>
27876
27877 PR c++/80916 - spurious "static but not defined" warning.
27878 * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false
27879 for an internal symbol with DECL_EXTERNAL.
27880
27881 2019-04-07 Richard Biener <rguenther@suse.de>
27882
27883 PR middle-end/89618
27884 * cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
27885 * tree-inline.c (copy_loops): Simplify.
27886
27887 2019-03-07 Martin Liska <mliska@suse.cz>
27888
27889 * dwarf2out.c (add_AT_vms_delta): Revert function removal.
27890
27891 2019-03-07 Richard Biener <rguenther@suse.de>
27892
27893 PR tree-optimization/89595
27894 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
27895 stmt iterator as reference, take boolean output parameter to
27896 indicate whether the stmt was removed and thus the iterator
27897 already advanced.
27898 (dom_opt_dom_walker::before_dom_children): Re-iterate over
27899 stmts created by folding.
27900
27901 2019-03-07 Jakub Jelinek <jakub@redhat.com>
27902
27903 PR c++/89585
27904 * doc/extend.texi (Basic Asm): Document qualifiers are not allowed
27905 at toplevel.
27906
27907 2019-03-06 Peter Bergner <bergner@linux.ibm.com>
27908
27909 PR rtl-optimization/88845
27910 * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
27911 LRA.
27912 * lra.c (remove_scratches_1): New function.
27913 (remove_scratches): Use it.
27914 (lra_emit_move): Likewise.
27915
27916 2019-03-06 Claudiu Zissulescu <claziss@synopsys.com>
27917
27918 * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
27919 unaligned_access variable.
27920 * config/arc/arc.c (arc_override_options): Set unaligned access
27921 default on for HS CPUs.
27922 * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.
27923
27924 2019-03-06 Martin Liska <mliska@suse.cz>
27925
27926 PR gcov-profile/89577
27927 * doc/gcov.texi: Prefer to use --coverage.
27928 * doc/sourcebuild.texi: Likewise.
27929
27930 2019-03-02 Jason Merrill <jason@redhat.com>
27931
27932 PR c++/86485 - -Wmaybe-unused with empty class ?:
27933 * gimplify.c (gimplify_cond_expr): Use INIT_EXPR.
27934
27935 2019-03-05 Jakub Jelinek <jakub@redhat.com>
27936
27937 PR target/89587
27938 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
27939 if_multiarch.
27940
27941 PR middle-end/89590
27942 * builtins.c (maybe_emit_free_warning): Punt if free doesn't have
27943 exactly one argument.
27944
27945 2019-03-05 Jakub Jelinek <jakub@redhat.com>
27946 Richard Sandiford <richard.sandiford@arm.com>
27947
27948 PR tree-optimization/89570
27949 * match.pd (vec_cond into cond_op simplification): Don't use
27950 get_conditional_internal_fn, use as_internal_fn (cond_op).
27951
27952 2019-03-05 Wilco Dijkstra <wdijkstr@arm.com>
27953
27954 PR target/89222
27955 * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
27956 to decide when to split off a non-zero offset from a symbol.
27957 * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
27958 in function symbols.
27959
27960 2019-03-05 Richard Biener <rguenther@suse.de>
27961
27962 PR tree-optimization/89594
27963 * tree-if-conv.c (pass_if_conversion::execute): Handle
27964 case where .LOOP_VECTORIZED_FUNCTION was removed.
27965
27966 2019-03-05 Jakub Jelinek <jakub@redhat.com>
27967
27968 PR bootstrap/89560
27969 * fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
27970 instead alloca it only when needed with the needed size.
27971
27972 PR tree-optimization/89570
27973 * match.pd (vec_cond into cond_op simplification): Guard with
27974 vectorized_internal_fn_supported_p test and #if GIMPLE.
27975
27976 PR tree-optimization/89566
27977 * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call):
27978 Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed.
27979 Punt if get_user_idx_format succeeds, but idx_format argument is
27980 not provided or doesn't have pointer type, or if idx_args is above
27981 number of provided arguments.
27982
27983 2019-03-04 Wilco Dijkstra <wdijkstr@arm.com>
27984
27985 PR tree-optimization/89437
27986 * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications.
27987
27988 2019-03-04 Richard Biener <rguenther@suse.de>
27989
27990 PR middle-end/89572
27991 * tree-scalar-evolution.c: (get_loop_exit_condition): Use
27992 safe_dyn_cast.
27993
27994 2019-03-04 Bin Cheng <bin.cheng@linux.alibaba.com>
27995
27996 PR tree-optimization/89487
27997 * tree-loop-distribution.c (has_nonaddressable_dataref_p): New.
27998 (create_rdg_vertices): Compute has_nonaddressable_dataref_p.
27999 (distribute_loop): Don't do runtime alias check if there is non-
28000 addressable data reference.
28001 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL
28002 is a register variable.
28003
28004 2019-03-02 Jakub Jelinek <jakub@redhat.com>
28005
28006 PR target/89506
28007 * config/arm/arm.md (cmpsi2_addneg): Use
28008 trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...).
28009 If operands[2] is 0 or INT_MIN, force use of subs.
28010 (*compare_scc splitter): Use gen_int_mode.
28011 (*negscc): Likewise.
28012 * config/arm/thumb2.md (*thumb2_negscc): Likewise.
28013
28014 2019-03-01 Kito Cheng <kito.cheng@gmail.com>
28015 Monk Chiang <sh.chiang04@gmail.com>
28016
28017 * common/config/riscv/riscv-common.c: Include sstream.
28018 (riscv_subset_list::to_string): New.
28019 (riscv_arch_str): Likewise.
28020 * config.gcc (riscv*-*-*): Handle --with-riscv-attribute=
28021 * config.in: Regen.
28022 * config/riscv/riscv-protos.h (riscv_arch_str): New.
28023 * config/riscv/riscv.c (INCLUDE_STRING): Defined.
28024 (riscv_emit_attribute): New.
28025 (riscv_file_start): Emit attribute if needed.
28026 (riscv_option_override): Init riscv_emit_attribute_p.
28027 * config/riscv/riscv.opt (mriscv-attribute): New option.
28028 * configure.ac (riscv*-*-*): Check binutils is supporting ELF
28029 * configure: Regen.
28030 * doc/install.texi: Document --with-riscv-attribute.
28031 * doc/invoke.texi: Document -mriscv-attribute.
28032
28033 * common/config/riscv/riscv-common.c:
28034 Include config/riscv/riscv-protos.h.
28035 (INCLUDE_STRING): Defined.
28036 (RISCV_DONT_CARE_VERSION): Defined.
28037 (riscv_subset_t): Declare.
28038 (riscv_subset_t::riscv_subset_t): New.
28039 (riscv_subset_list): Declare.
28040 (riscv_subset_list::riscv_subset_list): New.
28041 (riscv_subset_list::~riscv_subset_list): Likewise.
28042 (riscv_subset_list::parsing_subset_version): Likewise.
28043 (riscv_subset_list::parse_std_ext): Likewise.
28044 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
28045 (riscv_subset_list::add): Likewise.
28046 (riscv_subset_list::lookup): Likewise.
28047 (riscv_subset_list::xlen): Likewise.
28048 (riscv_subset_list::parse): Likewise.
28049 (riscv_supported_std_ext): Likewise.
28050 (current_subset_list): Likewise.
28051 (riscv_parse_arch_string): Using riscv_subset_list::parse to
28052 parse.
28053
28054 2019-03-01 Segher Boessenkool <segher@kernel.crashing.org>
28055
28056 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
28057 rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
28058 * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.
28059
28060 2019-03-01 Alexander Monakov <amonakov@ispras.ru>
28061
28062 PR rtl-optimization/85899
28063 * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
28064 fallthru edges leading to the exit block.
28065
28066 2019-03-01 Tamar Christina <tamar.christina@arm.com>
28067
28068 PR target/89517
28069 * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
28070 rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.
28071
28072 2019-03-01 Richard Sandiford <richard.sandiford@arm.com>
28073
28074 PR tree-optimization/89535
28075 * tree-vect-stmts.c (vectorizable_call): Record the vector types
28076 for each operand. Calculate the fallback choice for mask operands
28077 and pass it to vect_get_vec_def_for_operand.
28078
28079 2019-03-01 Richard Biener <rguenther@suse.de>
28080
28081 PR middle-end/89541
28082 * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may
28083 get virtual operands.
28084 (get_expr_operands): Handle CONST_DECL like other decls.
28085
28086 2019-03-01 Jakub Jelinek <jakub@redhat.com>
28087
28088 PR middle-end/89503
28089 * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
28090 on DECL_P and EXPR_P.
28091
28092 2019-03-01 Richard Biener <rguenther@suse.de>
28093
28094 PR middle-end/89497
28095 * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
28096 argument, defaulted to zero.
28097 * passes.c (execute_function_todo): Pass down SSA update flags
28098 to cleanup_tree_cfg.
28099 * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
28100 (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
28101 form if requested.
28102 (cleanup_tree_cfg): Get and pass down SSA update flags.
28103
28104 2019-03-01 Jakub Jelinek <jakub@redhat.com>
28105
28106 PR bootstrap/89539
28107 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
28108 early_lto_debug argument.
28109
28110 2019-02-28 Eric Botcazou <ebotcazou@adacore.com>
28111
28112 PR tree-optimization/89536
28113 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
28114 only whether bit #0 of the value is 0 instead of the entire value.
28115
28116 2019-02-28 Marek Polacek <polacek@redhat.com>
28117
28118 PR c++/87068 - missing diagnostic with fallthrough statement.
28119 * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
28120 at the end of a seq, save its location to walk_stmt_info.
28121 (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
28122 a switch.
28123
28124 2019-02-28 Jan Hubicka <hubicka@ucw.cz>
28125
28126 PR lto/88585
28127 * tree.c (find_atomic_core_type): Move ahead in file.
28128 (check_base_type): Correctly compare alignments of atomic types.
28129
28130 2019-02-28 H.J. Lu <hongjiu.lu@intel.com>
28131
28132 PR target/89455
28133 * config/i386/i386.c (get_builtin_code_for_version): Identify
28134 Westmere from PCLMUL, instead of AES.
28135
28136 2019-02-28 Jakub Jelinek <jakub@redhat.com>
28137
28138 PR target/89434
28139 * config/arm/arm.md (*subsi3_carryin_compare_const): Use
28140 trunc_int_for_mode (-INTVAL (...), SImode), just instead of
28141 -UINTVAL (...).
28142
28143 2019-02-28 Tamar Christina <tamar.christina@arm.com>
28144
28145 PR target/88530
28146 * config/aarch64/aarch64-option-extensions.def: Document it.
28147 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
28148 if empty hwcaps.
28149
28150 2019-02-28 Jakub Jelinek <jakub@redhat.com>
28151
28152 PR c/89520
28153 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
28154 builtins if they don't have a single scalar floating point argument.
28155 Formatting fixes.
28156
28157 2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
28158
28159 PR rtl-optimization/89490
28160 * varasm.c (get_block_for_section): Bail out for mergeable sections.
28161 (default_use_anchors_for_symbol_p, output_object_block): Assert the
28162 block section is not mergeable.
28163
28164 2019-02-27 Jakub Jelinek <jakub@redhat.com>
28165
28166 PR target/70341
28167 * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename
28168 old define_insn to ...
28169 (*arm_casesi_internal): ... this. Add mode to LABEL_REFs.
28170 * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
28171 Rename old define_insn to ...
28172 (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs.
28173 (thumb2_casesi_internal_pic): New define_expand. Rename old
28174 define_insn to ...
28175 (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs.
28176 * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
28177 MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
28178
28179 2019-02-27 Richard Biener <rguenther@suse.de>
28180
28181 PR debug/88878
28182 * dwarf2out.c (use_debug_types): Disable when in_lto_p.
28183
28184 2019-02-27 Richard Biener <rguenther@suse.de>
28185
28186 * passes.c (should_skip_pass_p): Do not skip cgraph-edge
28187 building.
28188
28189 2019-02-27 Richard Biener <rguenther@suse.de>
28190
28191 PR debug/88878
28192 * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
28193 parameter, prefix section name with .gnu.debuglto_ if true.
28194 (dwarf2out_finish): Pass false to output_comdat_type_unit.
28195 (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
28196
28197 2019-02-27 Richard Biener <rguenther@suse.de>
28198
28199 PR debug/89514
28200 * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
28201 rather than on use_debug_types, doing what output_die does.
28202 (value_format): Likewise.
28203
28204 2019-02-27 Martin Jambor <mjambor@suse.cz>
28205 Martin Sebor <msebor@redhat.com>
28206
28207 * doc/invoke.texi (Warning Options): Reword description of
28208 -Wno-absolute-value.
28209
28210 2019-02-27 Jakub Jelinek <jakub@redhat.com>
28211
28212 PR tree-optimization/89280
28213 * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
28214 builtin_setjmp_setup_bb): New functions.
28215 (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
28216 When visiting __builtin_setjmp_setup block, queue in special
28217 setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
28218 __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks
28219 from visited after the loop if they don't have any visited successor
28220 blocks.
28221
28222 2018-02-26 Steve Ellcey <sellcey@marvell.com>
28223
28224 * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
28225 New function.
28226 (TARGET_GET_MULTILIB_ABI_NAME): New macro.
28227
28228 2019-02-26 Jakub Jelinek <jakub@redhat.com>
28229
28230 PR c++/89507
28231 * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
28232 with types other than sizetype/ssizetype.
28233
28234 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
28235
28236 * config/sparc/sparc-opts.h (enum processor_type): Rename to...
28237 (enum sparc_processor_type): ...this.
28238 (enum sparc_code_model_type): New enumeration type.
28239 (enum sparc_memory_model_type): Tweak comments.
28240 * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
28241 (mtune): Likewise.
28242 (mcmodel): Use sparc_code_model enumeration and variable.
28243 (sparc_code_model): New enumeration.
28244 (mdebug): Add Undocumented marker.
28245 * config/sparc/sparc.h (enum cmodel): Delete.
28246 (sparc_cmodel): Likewise.
28247 (TARGET_CM_MEDLOW): Adjust to above renaming.
28248 (TARGET_CM_MEDMID): Likewise.
28249 (TARGET_CM_MEDANY): Likewise.
28250 (TARGET_CM_EMBMEDANY): Likewise.
28251 * config/sparc/sparc.c (sparc_cmodel): Delete.
28252 (sparc_option_override): Remove string/value mapping support for the
28253 code model. Move code and memory model support to after the handling
28254 of target flags. Do private machine setup last.
28255 (sparc_emit_set_symbolic_const64): Use sparc_code_model.
28256 (sparc_legitimize_reload_address): Likewise.
28257 (sparc_output_mi_thunk): Likewise.
28258 * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
28259
28260 2019-02-26 Jakub Jelinek <jakub@redhat.com>
28261
28262 PR tree-optimization/89500
28263 * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
28264 (handle_builtin_strlen): Remove noncst_bound variable. Always
28265 optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to
28266 cst if the first cst bytes starting at x are known to be non-zero,
28267 even if the string is not zero terminated. Don't try to modify
28268 *si for strnlen. Update strlen_to_stridx only for strlen or if
28269 we can prove strnlen returns the same value as strlen would.
28270
28271 2019-02-26 Martin Liska <mliska@suse.cz>
28272
28273 * alloc-pool.h (struct pool_usage): Remove extra
28274 print_dash_line.
28275 * bitmap.h (struct bitmap_usage): Likewise.
28276 * ggc-common.c (struct ggc_usage): Likewise.
28277 * mem-stats.h (struct mem_usage): Likewise.
28278 (mem_alloc_description::dump): Print dash lines
28279 here and repeat header at the end of a table report.
28280 It's then more readable.
28281 * tree-phinodes.c (phinodes_print_statistics): Make
28282 horizontal alignment.
28283 * tree-ssanames.c (ssanames_print_statistics): Likewise.
28284 * vec.c (struct vec_usage): Remove extra print_dash_line.
28285 * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
28286
28287 2019-02-26 Uroš Bizjak <ubizjak@gmail.com>
28288
28289 * doc/extend.texi (__builtin_object_size):
28290 Use @pxref instead of @xref inside parenthesis.
28291 (__builtin_has_attribute): Add missing comma after @xref.
28292 (__builtin_object_size): Ditto.
28293 * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
28294
28295 2019-02-26 Jeff Law <law@redhat.com>
28296
28297 PR rtl-optimization/87761
28298 * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
28299 detect obviously dead insns and delete them.
28300
28301 2019-02-26 Richard Biener <rguenther@suse.de>
28302
28303 PR tree-optimization/89505
28304 * tree-ssa-structalias.c (compute_dependence_clique): Make sure
28305 to handle restrict pointed-to vars with multiple subvars
28306 correctly.
28307
28308 2019-02-26 Richard Biener <rguenther@suse.de>
28309
28310 PR tree-optimization/89489
28311 * tree-parloops.c (create_loop_fn): Copy over last_clique.
28312
28313 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
28314
28315 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
28316 and move around comment.
28317 <BIT_AND_EXPR>: Likewise.
28318 <BIT_NOT_EXPR>: Add specific handling for boolean types.
28319
28320 2019-02-26 Jakub Jelinek <jakub@redhat.com>
28321
28322 PR target/89474
28323 * config/i386/i386.c (remove_partial_avx_dependency): Call
28324 df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
28325 after changing possibly many instructions to use that pseudo. Fix up
28326 insertion of v4sf_const0 setter at the start of bb.
28327
28328 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
28329
28330 PR c/80409
28331 * doc/extend.texi (Variadic Pointer Args): New section.
28332
28333 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
28334 Martin Sebor <msebor@gmail.com>
28335
28336 * common.opt (Wattribute-alias): Likewise.
28337 * doc/invoke.texi (Option Summary): List general form of
28338 -Wattribute-alias=. List positive form of -Wmissing-attributes.
28339 (-Wmissing-attributes): Invert entry, rewrite and correct default.
28340 Add cross-references.
28341 (-Wattribute-alias): Rewrite and correct default. Mention
28342 considered attributes (same as for -Wmissing-attributes).
28343
28344 2019-02-25 Paul A. Clarke <pc@us.ibm.com>
28345
28346 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
28347 (_mm_cvtpd_ps): Likewise.
28348 (_mm_cvttpd_epi32): Likewise.
28349
28350 PR target/89338
28351 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
28352 (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
28353
28354 PR target/89339
28355 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
28356
28357 2019-02-25 Tamar Christina <tamar.christina@arm.com>
28358
28359 PR target/88530
28360 * common/config/aarch64/aarch64-common.c
28361 (struct aarch64_option_extension): Add is_synthetic.
28362 (all_extensions): Use it.
28363 (TARGET_OPTION_INIT_STRUCT): Define hook.
28364 (struct gcc_targetm_common): Moved to end.
28365 (all_extensions_by_on): New.
28366 (opt_ext_cmp, typedef opt_ext): New.
28367 (aarch64_option_init_struct): New.
28368 (aarch64_contains_opt): New.
28369 (aarch64_get_extension_string_for_isa_flags): Output smallest set.
28370 * config/aarch64/aarch64-option-extensions.def
28371 (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
28372 (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
28373 sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
28374 Set is_synthetic to false.
28375 (crypto): Set is_synthetic to true.
28376 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
28377 SYNTHETIC.
28378
28379 2019-02-25 Tamar Christina <tamar.christina@arm.com>
28380
28381 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
28382 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
28383 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
28384 vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
28385 vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
28386 vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
28387 vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
28388 vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
28389 Rename ...
28390 (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
28391 vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
28392 vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
28393 vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
28394 vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
28395 vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
28396 vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
28397 vfmlsl_laneq_high_f16): ... To this.
28398 * config/arm/neon.md: Update comments.
28399
28400 2019-02-25 Tamar Christina <tamar.christina@arm.com>
28401
28402 * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
28403 vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
28404 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
28405 vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
28406 vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
28407 vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
28408 vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
28409 vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
28410 Rename ...
28411 (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
28412 vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
28413 vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
28414 vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
28415 vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
28416 vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
28417 vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
28418 vfmlslq_laneq_high_f16): ... To this.
28419
28420 2019-02-25 Alexander Monakov <amonakov@ispras.ru>
28421
28422 PR rtl-optimization/86096
28423 * df-scan.c (df_mw_compare): Do not check mw_reg fields when
28424 comparing mw_order values.
28425
28426 2019-02-25 Jakub Jelinek <jakub@redhat.com>
28427
28428 PR target/89434
28429 * config/arm/arm.md (*subsi3_carryin_const): Use
28430 arm_neg_immediate_operand predicate instead of
28431 arm_not_immediate_operand, "L" constraint instead of "K" and
28432 print it using %n2 instead of %B2.
28433 (*subsi3_carryin_const0): New define_insn.
28434 (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
28435 instead of arm_not_operand and "I" constraint instead of "K" and
28436 print it using %n3 instead of %B2. Instead of using match_dup 2 add
28437 another match_operand and in the condition check that it is negation
28438 of operands[2].
28439 (*subsi3_carryin_compare_const0): New define_ins.
28440 (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
28441 *subsi3_carryin_const.
28442 (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
28443 split into *subsi3_carryin_compare_const0 if the highpart is zero.
28444
28445 PR target/89438
28446 * config/arm.vfp.md (*negdf2_vfp): Use
28447 gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
28448 * config/arm/neon.md (neon_copysignf<mode>): Likewise.
28449
28450 2019-02-24 Jakub Jelinek <jakub@redhat.com>
28451
28452 PR rtl-optimization/89445
28453 * simplify-rtx.c (simplify_ternary_operation): Don't use
28454 simplify_merge_mask on operands that may trap.
28455 * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
28456 SCALAR_FLOAT_MODE_P checks. For integral division by zero, if
28457 second operand is CONST_VECTOR, check if any element could be zero.
28458 Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
28459 their operands can trap.
28460
28461 2019-02-23 Martin Sebor <msebor@redhat.com>
28462
28463 * gimple-ssa-sprintf.c (target_strtol): Rename...
28464 (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX.
28465 (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to
28466 check for range error.
28467
28468 2019-02-23 H.J. Lu <hongjiu.lu@intel.com>
28469
28470 PR driver/69471
28471 * opts-common.c (prune_options): Also prune joined switches
28472 with Negative and RejectNegative.
28473 * config/i386/i386.opt (march=): Add Negative(march=).
28474 (mtune=): Add Negative(mtune=).
28475 * doc/options.texi: Document Negative used together with Joined
28476 and RejectNegative.
28477
28478 2019-02-22 Martin Sebor <msebor@redhat.com>
28479
28480 * doc/extend.texi (Other Builtins): Add
28481 __builtin_is_constant_evaluated.
28482
28483 2019-02-22 Richard Biener <rguenther@suse.de>
28484
28485 PR tree-optimization/87609
28486 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
28487
28488 2019-02-22 Jeff Law <law@redhat.com>
28489
28490 PR rtl-optimization/87761
28491 * config/mips/mips.md: Add new combiner pattern to recognize
28492 a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
28493
28494 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com>
28495
28496 PR target/89324
28497 * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
28498 destination register in peepholes generating patterns for ADDS/SUBS.
28499 (add<mode>3_compare0,
28500 *addsi3_compare0_uxtw, add<mode>3_compareC,
28501 add<mode>3_compareV_imm, add<mode>3_compareV,
28502 *adds_<optab><ALLX:mode>_<GPI:mode>,
28503 *subs_<optab><ALLX:mode>_<GPI:mode>,
28504 *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
28505 *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
28506 *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
28507 *sub<mode>3_compare0, *subsi3_compare0_uxtw,
28508 sub<mode>3_compare1): Allow stack pointer for source register.
28509 * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
28510
28511 2019-02-22 Martin Sebor <msebor@redhat.com>
28512
28513 PR tree-optimization/88993
28514 PR tree-optimization/88853
28515 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
28516 New helper.
28517 (sprintf_dom_walker::call_info::is_string_func): New helper.
28518 (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
28519 for formatted string functions.
28520 (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
28521
28522 2019-02-22 Martin Sebor <msebor@redhat.com>
28523
28524 PR c/89425
28525 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
28526 unreachable subexpressions.
28527
28528 2019-02-22 H.J. Lu <hongjiu.lu@intel.com>
28529 Hongtao Liu <hongtao.liu@intel.com>
28530 Sunil K Pandey <sunil.k.pandey@intel.com>
28531
28532 PR target/87007
28533 * config/i386/i386-passes.def: Add
28534 pass_remove_partial_avx_dependency.
28535 * config/i386/i386-protos.h
28536 (make_pass_remove_partial_avx_dependency): New.
28537 * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
28538 New function.
28539 (pass_data_remove_partial_avx_dependency): New.
28540 (pass_remove_partial_avx_dependency): Likewise.
28541 (make_pass_remove_partial_avx_dependency): Likewise.
28542 * config/i386/i386.md (avx_partial_xmm_update): New attribute.
28543 (*extendsfdf2): Add avx_partial_xmm_update.
28544 (truncdfsf2): Likewise.
28545 (*float<SWI48:mode><MODEF:mode>2): Likewise.
28546 (SF/DF conversion splitters): Disabled for TARGET_AVX.
28547
28548 2019-02-22 Aldy Hernandez <aldyh@redhat.com>
28549
28550 PR middle-end/85598
28551 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
28552 analysis for pass.
28553
28554 2019-02-22 Thiago Macieira <thiago.macieira@intel.com>
28555
28556 PR target/89444
28557 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
28558 (PTA_SKYLAKE): Add PTA_AES.
28559 (PTA_GOLDMONT): Likewise.
28560
28561 2019-02-22 Sudakshina Das <sudi.das@arm.com>
28562
28563 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
28564 instruction if enabled.
28565 (aarch64_override_options): Remove reference to return address key.
28566
28567 2019-02-22 Richard Biener <rguenther@suse.de>
28568
28569 PR tree-optimization/89440
28570 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
28571 not necessary assert.
28572
28573 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
28574
28575 PR fortran/72741
28576 * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
28577 (oacc_replace_fn_attrib_attr): ... this new function.
28578 * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
28579 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
28580
28581 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28582
28583 * config/arm/arm-cpus.in (ares): Rename to...
28584 (neoverse-n1): ... This. Add ares as alias.
28585 * config/arm/arm-tables.opt: Regenerate.
28586 * config/arm/arm-tune.md: Likewise.
28587 * doc/invoke.txt (ARM Options): Document neoverse-n1.
28588
28589 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28590
28591 * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
28592 * config/aarch64/aarch64-tune.md: Regenerate.
28593 * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
28594
28595 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28596
28597 * config/aarch64/aarch64.c (ares_tunings): Rename to...
28598 (neoversen1_tunings): ... This.
28599 * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
28600 (neoverse-n1): New CPU.
28601 * config/aarch64/aarch64-tune.md: Regenerate.
28602 * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
28603
28604 2019-02-22 Richard Biener <rguenther@suse.de>
28605
28606 PR middle-end/87609
28607 * cfghooks.h (dependence_hash): New typedef.
28608 (struct copy_bb_data): New type.
28609 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
28610 (duplicate_block): Likewise.
28611 * cfghooks.c (duplicate_block): Pass down copy_bb_data.
28612 (copy_bbs): Create and pass down copy_bb_data.
28613 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
28614 (rtl_duplicate_bb): Likewise.
28615 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
28616 remap dependence info.
28617
28618 2019-02-22 Richard Biener <rguenther@suse.de>
28619
28620 PR tree-optimization/87609
28621 * tree-core.h (tree_base): Document special clique values.
28622 * tree-inline.c (remap_dependence_clique): Do not use the
28623 special clique value of one.
28624 (maybe_set_dependence_info): Use clique one.
28625 (clear_dependence_clique): New callback.
28626 (compute_dependence_clique): Clear clique one from all refs
28627 before assigning it (again).
28628
28629 2019-02-21 Martin Sebor <msebor@redhat.com>
28630
28631 * doc/extend.texi (__clear_cache): Correct signature.
28632
28633 2019-02-21 Ian Lance Taylor <iant@golang.org>
28634
28635 PR go/89170
28636 * varasm.c (decode_addr_const): Call lookup_constant_def rather
28637 than output_constant_def.
28638 (add_constant_to_table): New static function.
28639 (output_constant_def): Call add_constant_to_table.
28640 (tree_output_constant_def): Likewise.
28641
28642 2019-02-21 Jakub Jelinek <jakub@redhat.com>
28643
28644 PR c++/89285
28645 * builtins.c (fold_builtin_arith_overflow): If first two args are
28646 INTEGER_CSTs, set intres and ovfres to constants rather than calls
28647 to ifn.
28648
28649 2019-02-21 H.J. Lu <hongjiu.lu@intel.com>
28650
28651 PR target/87412
28652 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
28653 error for -mindirect-branch/-mfunction-return with incompatible
28654 -fcf-protection.
28655
28656 2019-02-21 Jakub Jelinek <jakub@redhat.com>
28657
28658 PR bootstrap/88714
28659 * constraints.md (q): Remove.
28660 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
28661 instead of q.
28662
28663 2019-02-21 Martin Jambor <mjambor@suse.cz>
28664
28665 PR hsa/89302
28666 * omp-general.c (omp_extract_for_data): Removed a duplicate call
28667 to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
28668 (omp_adjust_for_condition): ...here. Added necessary parameters.
28669 * omp-general.h (omp_adjust_for_condition): Updated declaration.
28670 * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
28671 proper values to new parameters of omp_adjust_for_condition.
28672
28673 2019-02-20 Jakub Jelinek <jakub@redhat.com>
28674
28675 PR middle-end/89412
28676 * expr.c (expand_assignment): If result is a MEM, use change_address
28677 instead of simplify_gen_subreg.
28678
28679 2019-02-20 Jakub Jelinek <jakub@redhat.com>
28680 David Malcolm <dmalcolm@redhat.com>
28681
28682 PR middle-end/89091
28683 * fold-const.c (decode_field_reference): Return NULL_TREE if
28684 lang_hooks.types.type_for_size returns NULL. Check it before
28685 overwriting *exp_. Use return NULL_TREE instead of return 0.
28686
28687 2019-02-20 Jakub Jelinek <jakub@redhat.com>
28688
28689 PR middle-end/88074
28690 PR middle-end/89415
28691 * toplev.c (do_compile): Double the emin/emax exponents to workaround
28692 buggy mpc_norm.
28693
28694 2019-02-20 Uroš Bizjak <ubizjak@gmail.com>
28695
28696 PR target/89397
28697 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
28698 TARGET_SSE in addition to TARGET_SSE_MATH.
28699
28700 (ix86_excess_precision): Ditto.
28701 (ix86_float_exceptions_rounding_supported_p): Ditto.
28702 (use_rsqrt_p): Ditto.
28703 * config/i386/sse.md (rsqrt<mode>2): Ditto.
28704
28705 2019-02-20 David Malcolm <dmalcolm@redhat.com>
28706
28707 PR c/89410
28708 * diagnostic-show-locus.c (layout::calculate_line_spans): Use
28709 linenum_arith_t when determining if two adjacent line spans are
28710 close enough to merge.
28711 (diagnostic_show_locus): Use linenum_arith_t when iterating over
28712 lines within each line_span.
28713
28714 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
28715
28716 PR target/86487
28717 * lra-constraints.c(uses_hard_regs_p): Fix handling of
28718 paradoxical SUBREGS.
28719
28720 2019-02-20 Li Jia He <helijia@linux.ibm.com>
28721
28722 PR target/88100
28723 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
28724 <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
28725 ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
28726 range checking it.
28727
28728 2019-02-19 Jonathan Wakely <jwakely@redhat.com>
28729
28730 * config/gcn/gcn.c (print_operand): Fix typo.
28731
28732 2019-02-19 Richard Biener <rguenther@suse.de>
28733
28734 PR middle-end/88074
28735 * toplev.c (do_compile): Initialize mpfr's exponent range
28736 based on available float modes.
28737
28738 2019-02-19 Eric Botcazou <ebotcazou@adacore.com>
28739
28740 * rtlanal.c (get_initial_register_offset): Fall back to the estimate
28741 as long as the epilogue isn't completed.
28742
28743 2019-02-18 Martin Sebor <msebor@redhat.com>
28744
28745 * doc/cpp.texi (Conditional syntax): Add __has_attribute,
28746 __has_cpp_attribute, and __has_include.
28747
28748 2019-02-18 Martin Sebor <msebor@redhat.com>
28749
28750 * doc/invoke.texi (-Wreturn-type): Correct and expand.
28751
28752 2019-02-18 Martin Sebor <msebor@redhat.com>
28753
28754 PR middle-end/89294
28755 * tree.c (valid_constant_size_p): Avoid assuming size is a constant
28756 expression.
28757 * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
28758
28759 2019-02-18 Richard Biener <rguenther@suse.de>
28760
28761 PR tree-optimization/89296
28762 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
28763 of no-warning flag to cases that might emit the bogus warning.
28764
28765 2019-02-18 Jakub Jelinek <jakub@redhat.com>
28766
28767 PR bootstrap/88714
28768 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
28769 "q" constraint.
28770 * config/arm/vfp.md (*movdi_vfp): Likewise.
28771 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
28772 "q" constraint for operands[0].
28773
28774 PR target/89369
28775 * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
28776 *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
28777 pattern in a temporary buffer.
28778 (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather
28779 than 64-operands[2].
28780
28781 PR target/89361
28782 * config/s390/s390.c (s390_indirect_branch_attrvalue,
28783 s390_indirect_branch_settings): Define unconditionally.
28784 (s390_set_current_function): Likewise, but guard the whole body except
28785 the s390_indirect_branch_settings call with
28786 #if S390_USE_TARGET_ATTRIBUTE.
28787 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
28788
28789 * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
28790 *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
28791 Use HOST_WIDE_INT_M1U instead of ~(0ULL).
28792 (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
28793 HOST_WIDE_INT_1U instead of 1ULL.
28794 (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
28795 to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
28796 (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
28797 z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
28798 instead of 1UL.
28799 (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
28800 instead of 1ul.
28801
28802 2019-02-18 Martin Jambor <mjambor@suse.cz>
28803
28804 PR tree-optimization/89209
28805 * tree-sra.c (create_access_replacement): New optional parameter
28806 reg_tree. Use it as a type if non-NULL and access type is not of
28807 a register type.
28808 (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
28809 to create_access_replacement.
28810 (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
28811 Check lacc is non-NULL before attempting to re-create it on the RHS.
28812
28813 2019-02-18 Martin Liska <mliska@suse.cz>
28814
28815 PR ipa/89306
28816 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
28817 by default.
28818 (symbol_table::free_edge): Recycle m_summary_id.
28819 * cgraph.h (get_summary_id): New.
28820 (symbol_table::release_symbol): Set m_summary_id to -1
28821 by default.
28822 (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
28823 * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
28824 function_summary to fast_function_summary.
28825 * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
28826 * ipa-pure-const.c (class funct_state_summary_t):
28827 Switch from function_summary to fast_function_summary.
28828 * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
28829 (class ipa_ref_opt_summary_t): Switch from function_summary
28830 to fast_function_summary.
28831 * symbol-summary.h (class function_summary_base): New class
28832 that is created from base of former function_summary.
28833 (function_summary_base::unregister_hooks): New.
28834 (class function_summary): Inherit from function_summary_base.
28835 (class call_summary_base): New class
28836 that is created from base of former call_summary.
28837 (class call_summary): Inherit from call_summary_base.
28838 (struct is_same): New.
28839 (class fast_function_summary): New summary class.
28840 (class fast_call_summary): New summary class.
28841 * vec.h (vec_safe_grow_cleared): New function.
28842
28843 2019-02-18 Martin Liska <mliska@suse.cz>
28844
28845 * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
28846 (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
28847 * doc/tm.texi: Document new target hook.
28848 * doc/tm.texi.in: Likewise.
28849 * target.def: Add new target macro.
28850 * gcc.c (find_fortran_preinclude_file): Do not search multilib
28851 suffixes.
28852
28853 2019-02-17 Alan Modra <amodra@gmail.com>
28854
28855 PR target/89271
28856 * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
28857 output reg on add insn.
28858 (<bd>tf_<mode> split): Likewise. Match predicates with insn.
28859
28860 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
28861
28862 PR target/89372
28863 * config/i386/sse.md (ssedoublemode): Remove V4HI.
28864 (PMULHRSW): Likewise.
28865 (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
28866 TARGET_AVX2.
28867 (ssse3_pmulhrswv4hi3): New expander.
28868
28869 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
28870
28871 * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
28872 MMX. Add isa attribute.
28873
28874 2019-02-16 Jakub Jelinek <jakub@redhat.com>
28875
28876 PR rtl-optimization/66152
28877 * builtins.h (c_readstr): Declare.
28878 * builtins.c (c_readstr): Remove forward declaration. Add
28879 null_terminated_p argument, if false, read all bytes from the
28880 string instead of stopping after '\0'.
28881 * expr.c (string_cst_read_str): New function.
28882 (store_expr): Use string_cst_read_str instead of
28883 builtin_strncpy_read_str. Try to store by pieces the whole
28884 exp_len first, and only if that fails, split it up into
28885 store by pieces followed by clear_storage. Formatting fix.
28886
28887 * config/i386/i386.md (*movqi_internal): Remove static from
28888 buf variable. Use output_asm_insn (buf, operands); return "";
28889 instead of return buf;.
28890 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
28891 *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
28892 *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
28893
28894 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
28895
28896 * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
28897 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
28898 * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
28899 (CC1_SPEC): Likewise.
28900 * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
28901
28902 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
28903
28904 * asan.c (asan_emit_stack_protection): Use full-sized mask to align
28905 the base address on 64-bit strict-alignment platforms.
28906
28907 2019-02-15 H.J. Lu <hongjiu.lu@intel.com>
28908
28909 * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
28910
28911 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
28912
28913 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
28914
28915 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com>
28916
28917 PR rtl-optimization/88308
28918 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
28919 on copied instruction.
28920
28921 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
28922
28923 * final.c (insn_current_reference_address): Replace test on JUMP_P
28924 with test on jump_to_label_p.
28925 * config/visium/visium-passes.def: New file.
28926 * config/visium/t-visium (PASSES_EXTRA): Define.
28927 * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
28928 * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
28929 (TRAMPOLINE_ALIGNMENT): Define.
28930 * config/visium/visium.c (visium_option_override): Do not register
28931 the machine-specific reorg pass here.
28932 (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
28933 for the GR6.
28934 (output_branch): Adjust threshold for long branch instruction.
28935 * config/visium/visium.md (cpu): Move around.
28936 (length): Adjust for the GR6.
28937
28938 2019-02-15 Richard Biener <rguenther@suse.de>
28939 Jakub Jelinek <jakub@redhat.com>
28940
28941 PR tree-optimization/89278
28942 * tree-loop-distribution.c: Include tree-eh.h.
28943 (generate_memset_builtin, generate_memcpy_builtin): Call
28944 rewrite_to_non_trapping_overflow on builtin->size before passing it
28945 to force_gimple_operand_gsi.
28946
28947 2019-02-15 Jakub Jelinek <jakub@redhat.com>
28948
28949 PR other/89342
28950 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
28951 optimize_debug.
28952 * opth-gen.awk: Likewise.
28953
28954 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
28955
28956 * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
28957 Enable MMX, SSE and SSE2 by default.
28958 * config/i386/i386.c (ix86_option_override_internal): Do not
28959 explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
28960
28961 2019-02-14 Jakub Jelinek <jakub@redhat.com>
28962
28963 PR rtl-optimization/89354
28964 * combine.c (make_extraction): Punt if extraction_mode is narrower
28965 than len bits.
28966
28967 2019-02-14 Maya Rashish <coypu@sdf.org>
28968
28969 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
28970 * config/netbsd-d.c: New file.
28971 * config/t-netbsd: Add netbsd-d.o
28972
28973 2018-02-14 Steve Ellcey <sellcey@marvell.com>
28974
28975 * config/aarch64/aarch64.c (aarch64_attribute_table): Change
28976 affects_type_identity to true for aarch64_vector_pcs.
28977 (aarch64_comp_type_attributes): New function.
28978 (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
28979
28980 2019-02-14 Tamar Christina <tamar.christina@arm.com>
28981
28982 PR target/88850
28983 * config/arm/iterators.md (ANY64): Add V4HF.
28984
28985 2019-02-14 Martin Liska <mliska@suse.cz>
28986
28987 PR rtl-optimization/89242
28988 * dce.c (delete_unmarked_insns): Call free_dominance_info we
28989 process a transformation.
28990
28991 2019-02-14 Jakub Jelinek <jakub@redhat.com>
28992
28993 PR tree-optimization/89314
28994 * fold-const.c (fold_binary_loc): Cast strlen argument to
28995 const char * before dereferencing it. Formatting fixes.
28996
28997 PR middle-end/89284
28998 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
28999
29000 2019-02-13 Ian Lance Taylor <iant@golang.org>
29001
29002 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
29003 and set current index for other optimizations.
29004
29005 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
29006
29007 * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
29008 nonimmediate_operand as operand 2 predicate.
29009 (vec_set<VF2_512_256:mode>_0): Ditto.
29010 (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
29011 (*vec_concatv2si): Remove alternative 2.
29012 (*vec_concatv4si_0): Use vm constraint for alternative 0.
29013 (*vec_concatv4si_0): Remove preferred_for_speed attribute.
29014 (vec_concatv2di): Split alternatives 4,5,6 to ...
29015 (*vec_concatv2di_0) ... new pattern.
29016
29017 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
29018
29019 PR target/89190
29020 * config/arm/arm.c (ldm_stm_operation_p) Set
29021 addr_reg_in_reglist correctly for first register.
29022 (load_multiple_sequence): Remove dead base check.
29023 (gen_ldm_seq): Correctly set write_back for Thumb-1.
29024
29025 2019-02-13 Tamar Christina <tamar.christina@arm.com>
29026
29027 PR target/88847
29028 * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
29029 Expose as @aarch64_pred_mov.
29030 * config/aarch64/aarch64.c (aarch64_classify_address):
29031 Use expand_insn which legitimizes operands.
29032
29033 2019-02-13 Martin Liska <mliska@suse.cz>
29034
29035 * builtins.h (expand_builtin_with_bounds): Remove declaration.
29036 * calls.c (struct arg_data): Remove special_slot, pointer_arg
29037 and pointer_offset fields.
29038 (initialize_argument_information): Remove usage of dead
29039 fields.
29040 * cgraph.h (struct cgraph_thunk_info): Remove
29041 add_pointer_bounds_args.
29042 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
29043 fields.
29044 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
29045 fields.
29046 * config/i386/i386.c (ix86_function_arg_advance): Remove
29047 unrelated comment.
29048 (struct builtin_isa): Remove leaf_p and nothrow_p fields.
29049 (def_builtin): Remove usage of dead fields.
29050 (ix86_add_new_builtins): Likewise.
29051 * ipa-fnsummary.c (compute_fn_summary): Likewise.
29052 * ipa-icf.c (sem_function::equals_wpa): Likewise.
29053 (sem_function::init): Likewise.
29054 (sem_variable::merge): Likewise.
29055 * ipa-visibility.c (function_and_variable_visibility): Likewise.
29056 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
29057 * lto-cgraph.c (lto_output_node): Likewise.
29058 (lto_output_varpool_node): Likewise.
29059 (input_node): Likewise.
29060 (input_varpool_node): Likewise.
29061 * lto-streamer-out.c (lto_output): Likewise.
29062 * tree-inline.c (expand_call_inline): Remove usage of
29063 assign_stmts.
29064 * tree-inline.h (struct copy_body_data): Likewise.
29065 * varpool.c (varpool_node::dump): Likewise.
29066
29067 2019-02-13 Jakub Jelinek <jakub@redhat.com>
29068
29069 PR middle-end/89303
29070 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
29071 into pt->vars_contains_escaped_heap instead of setting
29072 pt->vars_contains_escaped_heap to it.
29073
29074 PR middle-end/89281
29075 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
29076 INTVAL (size), compare it to GET_MODE_MASK instead of
29077 1 << GET_MODE_BITSIZE.
29078
29079 PR target/89290
29080 * config/i386/predicates.md (x86_64_immediate_operand): Allow
29081 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
29082 -mcmodel=large.
29083
29084 2019-02-13 Martin Liska <mliska@suse.cz>
29085
29086 PR lto/88858
29087 * cfgrtl.c (remove_barriers_from_footer): New function.
29088 (try_redirect_by_replacing_jump): Use it.
29089 (cfg_layout_redirect_edge_and_branch): Likewise.
29090
29091 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
29092
29093 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
29094 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
29095 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
29096 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
29097 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
29098 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
29099 New BU_CRYPTO_2.
29100 * config/rs6000/rs6000.c (builtin_function_type)
29101 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
29102 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
29103 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
29104 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
29105 vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
29106
29107 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
29108
29109 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
29110 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
29111
29112 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
29113
29114 PR target/89229
29115 * config/i386/i386.md (*movoi_internal_avx): Revert revision
29116 268678 and revision 268657.
29117 (*movti_internal): Likewise.
29118
29119 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
29120
29121 PR target/89233
29122 * config/s390/s390.c (s390_decompose_address): Update comment.
29123 (s390_check_qrst_address): Reject invalid address forms after
29124 LRA.
29125
29126 2019-02-12 Martin Liska <mliska@suse.cz>
29127
29128 PR lto/88876
29129 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
29130 we need default values of funct_state for a function that
29131 is not optimized.
29132
29133 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
29134
29135 * asan.c (asan_expand_mark_ifn): Take into account the alignment of
29136 the object to pick the size of stores on strict-alignment platforms.
29137
29138 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
29139 (*movdi_insn_sp32): Likewise.
29140 (*movdi_insn_sp64): Likewise.
29141
29142 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
29143
29144 PR lto/88677
29145 * cgraphunit.c (analyze_functions): Clear READONLY flag for external
29146 types that needs constructiong.
29147 * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
29148
29149 2019-02-12 Richard Biener <rguenther@suse.de>
29150
29151 PR tree-optimization/89253
29152 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
29153 duplicate the loop.
29154
29155 2019-02-11 David Malcolm <dmalcolm@redhat.com>
29156
29157 PR lto/88147
29158 * input.c (selftest::test_line_offset_overflow): New selftest.
29159 (selftest::input_c_tests): Call it.
29160
29161 2019-02-11 Martin Sebor <msebor@redhat.com>
29162
29163 PR tree-optimization/88771
29164 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
29165 when -Wstringop-overflow is set.
29166 (builtin_memref::builtin_memref): Adjust excessive upper bound
29167 only when lower bound is not excessive.
29168 (maybe_diag_overlap): Detect and diagnose excessive bounds via
29169 -Wstringop-ovefflow.
29170 (maybe_diag_offset_bounds): Rename...
29171 (maybe_diag_access_bounds): ...to this.
29172 (check_bounds_or_overlap): Adjust for name change above.
29173
29174 2019-02-11 Martin Sebor <msebor@redhat.com>
29175
29176 PR c++/87996
29177 * builtins.c (max_object_size): Move from here...
29178 * builtins.h (max_object_size): ...and here...
29179 * tree.c (max_object_size): ...to here...
29180 * tree.h (max_object_size): ...and here.
29181
29182 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
29183
29184 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
29185 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
29186 for correct semantics.
29187
29188 2019-02-11 Alan Modra <amodra@gmail.com>
29189
29190 * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
29191 -mlongcall and -mpltseq.
29192 (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
29193 (RS/6000 and PowerPC Options <-mpltseq>): Document.
29194 * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
29195 * config/rs6000/sysv4.opt (mpltseq): New option.
29196 * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
29197 (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
29198 support is lacking. Don't allow -mpltseq with -mbss-plt.
29199 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
29200 -mpltseq given for ELFv1.
29201 * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
29202 Only use UNSPEC_PLTSEQ for inline PLT calls.
29203 (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only
29204 use UNSPEC_PLTSEQ for inline PLT calls.
29205 (rs6000_indirect_call_template_1, rs6000_longcall_ref),
29206 (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
29207 uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
29208 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
29209 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
29210 (pltseq_mtctr_<mode>): Likewise.
29211
29212 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29213
29214 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
29215 Solaris ld.
29216 * configure: Regenerate.
29217
29218 2019-02-11 Jakub Jelinek <jakub@redhat.com>
29219
29220 PR bootstrap/88714
29221 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
29222 instead of r.
29223
29224 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
29225
29226 * function.c (assign_parm_setup_block): Use the stored
29227 size, not the passed size, when allocating stack-space,
29228 also for a parameter with alignment larger than
29229 MAX_SUPPORTED_STACK_ALIGNMENT.
29230
29231 2019-02-11 Martin Liska <mliska@suse.cz>
29232
29233 PR ipa/89009
29234 * ipa-cp.c (build_toporder_info): Remove usage of a param.
29235 * ipa-inline.c (inline_small_functions): Likewise.
29236 * ipa-pure-const.c (propagate_pure_const): Likewise.
29237 (propagate_nothrow): Likewise.
29238 * ipa-reference.c (propagate): Likewise.
29239 * ipa-utils.c (struct searchc_env): Remove unused field.
29240 (searchc): Always search across AVAIL_INTERPOSABLE.
29241 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
29242 the only called IPA pure const can properly not propagate
29243 across interposable boundary.
29244 * ipa-utils.h (ipa_reduced_postorder): Remove param.
29245
29246 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
29247
29248 * config/nds32/nds32.md (call_internal, call_value_internal,
29249 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
29250
29251 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
29252
29253 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
29254 typo.
29255
29256 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
29257
29258 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
29259 in comments
29260
29261 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
29262
29263 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
29264
29265 2019-02-10 Jakub Jelinek <jakub@redhat.com>
29266
29267 PR tree-optimization/89268
29268 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
29269 if preds is non-NULL.
29270
29271 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
29272
29273 PR lto/89272
29274 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
29275 polymorphic types.
29276
29277 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
29278
29279 * config/nds32/nds32.md (trap): New pattern.
29280
29281 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
29282
29283 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
29284 dwarf span.
29285
29286 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
29287
29288 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
29289 to split POST_INC.
29290
29291 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
29292
29293 * ipa-visibility.c (localize_node): Also do not localize
29294 LDPR_PREVAILING_DEF_IRONLY_EXP.
29295
29296 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
29297
29298 PR lto/87957
29299 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
29300 instead of type_with_linkage.
29301
29302 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
29303
29304 PR ipa/88755
29305 * params.def (uninlined-function-insns, uninlined-function-time,
29306 uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
29307 bound so we don't get overflows.
29308
29309 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
29310
29311 * config/rs6000/rs6000-string.c (expand_compare_loop,
29312 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
29313 memcmp/strncmp.
29314
29315 2019-02-09 Jakub Jelinek <jakub@redhat.com>
29316
29317 PR middle-end/89246
29318 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
29319 If !node->definition and TYPE_ARG_TYPES is non-NULL, use
29320 TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
29321
29322 2019-02-09 Alan Modra <amodra@gmail.com>
29323
29324 PR target/88343
29325 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
29326 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
29327 setup.
29328
29329 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
29330
29331 PR middle-end/88560
29332 * lra-constraints.c (process_alt_operands): Don't increase reject
29333 for memory when offset memory is required.
29334
29335 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
29336
29337 * config/s390/vector.md: Implement vector copysign.
29338
29339 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
29340
29341 * expr.c (expand_constructor): Correct indentations.
29342
29343 2019-02-08 Richard Biener <rguenther@suse.de>
29344
29345 PR tree-optimization/89247
29346 * tree-if-conv.c: Include tree-cfgcleanup.h.
29347 (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
29348 (tree_if_conversion): Pass through predicate vector.
29349 (pass_if_conversion::execute): Do CFG cleanup and SSA update
29350 inline, see if any if-converted loops we refrece in
29351 LOOP_VECTORIZED calls vanished and fixup.
29352 * tree-if-conv.h (tree_if_conversion): Adjust prototype.
29353
29354 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
29355
29356 * config/s390/constraints.md (jdd): New constraint.
29357
29358 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
29359
29360 PR target/89229
29361 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
29362 upper 16 vector registers without TARGET_AVX512VL.
29363 (*movti_internal): Likewise.
29364
29365 2019-02-08 Jakub Jelinek <jakub@redhat.com>
29366
29367 PR rtl-optimization/89234
29368 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
29369 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
29370 (copy_reg_eh_region_note_backward): Likewise.
29371
29372 2019-02-08 Richard Biener <rguenther@suse.de>
29373
29374 PR middle-end/89223
29375 * tree-data-ref.c (initialize_matrix_A): Fail if constant
29376 doesn't fit in HWI.
29377 (analyze_subscript_affine_affine): Handle failure from
29378 initialize_matrix_A.
29379
29380 2019-02-08 Jakub Jelinek <jakub@redhat.com>
29381
29382 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
29383 cfun everywhere.
29384
29385 2019-02-07 David Malcolm <dmalcolm@redhat.com>
29386
29387 PR tree-optimization/86637
29388 PR tree-optimization/89235
29389 * tree-vect-loop.c (optimize_mask_stores): Add an
29390 auto_purge_vect_location sentinel to ensure that vect_location is
29391 purged on exit.
29392 * tree-vectorizer.c
29393 (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
29394 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
29395 to ensure that vect_location is purged on exit.
29396 (pass_slp_vectorize::execute): Likewise, replacing the manual
29397 reset.
29398 * tree-vectorizer.h (class auto_purge_vect_location): New class.
29399
29400 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29401
29402 * config/aarch64/iterators.md (max_opp): New code_attr.
29403 (USMAX): New code iterator.
29404 * config/aarch64/predicates.md (aarch64_smin): New predicate.
29405 (aarch64_smax): Likewise.
29406 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
29407 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
29408 MINUS (MAX MIN).
29409
29410 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
29411
29412 PR target/89229
29413 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
29414 for TARGET_AVX512VL.
29415 (*movti_internal): Set mode to TI for TARGET_AVX512VL.
29416
29417 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
29418
29419 * config/s390/s390-builtin-types.def: Add new types.
29420 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
29421 (s390_vec_xlw4): Make the memory operand into a const pointer.
29422 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
29423 float.
29424 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
29425 a new vector type with the alignment of the scalar memory operand.
29426
29427 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
29428 Jakub Jelinek <jakub@redhat.com>
29429
29430 PR bootstrap/88714
29431 * config/arm/arm-protos.h (valid_operands_ldrd_strd,
29432 arm_count_ldrdstrd_insns): New declarations.
29433 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
29434 MINUS.
29435 (valid_operands_ldrd_strd): New function.
29436 (arm_count_ldrdstrd_insns): New function.
29437 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
29438 sets instead of single DImode set and define new insns to match this.
29439
29440 2019-02-07 Tamar Christina <tamar.christina@arm.com>
29441
29442 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
29443 Make it a C initializer.
29444
29445 2019-02-07 Tamar Christina <tamar.christina@arm.com>
29446
29447 PR/target 88850
29448 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
29449
29450 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29451
29452 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
29453 Use neon_dot<q> for type.
29454 (neon_<sup>dot_lane<vsi2qi>): Likewise.
29455
29456 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29457
29458 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
29459 Use neon_dot<q> for type.
29460 (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
29461 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
29462
29463 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
29464
29465 PR rtl-optimization/89225
29466 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
29467 sizes check.
29468
29469 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
29470
29471 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
29472 after restoring registers saved to allocate the frame on Windows.
29473
29474 2019-02-06 Richard Biener <rguenther@suse.de>
29475
29476 PR tree-optimization/89182
29477 * graphite.h (cached_scalar_evolution_in_region): Declare.
29478 * graphite.c (struct seir_cache_key): New.
29479 (struct sese_scev_hash): Likewise.
29480 (seir_cache): New global.
29481 (cached_scalar_evolution_in_region): New function.
29482 (graphite_transform_loops): Allocate and release seir_cache.
29483 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
29484 cached_scalar_evolution_in_region.
29485 * graphite-scop-detection.c (scop_detection::can_represent_loop):
29486 Simplify.
29487 (scop_detection::graphite_can_represent_expr: Use
29488 cached_scalar_evolution_in_region.
29489 (scop_detection::stmt_simple_for_scop_p): Likewise.
29490 (find_params_in_bb): Likewise.
29491 (gather_bbs::before_dom_children): Likewise.
29492 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
29493 (add_loop_constraints): Likewise.
29494
29495 2019-02-06 Jakub Jelinek <jakub@redhat.com>
29496
29497 PR middle-end/89210
29498 * fold-const-call.c (fold_const_vec_convert): Pass true as last
29499 operand to new_unary_operation only if both element types are integral
29500 and it isn't a widening conversion. Return NULL_TREE if
29501 new_unary_operation failed.
29502
29503 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
29504
29505 PR target/88856
29506 * config/s390/s390.md: Remove load and test FP splitter.
29507
29508 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
29509
29510 PR target/89112
29511 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
29512 expand_compare_loop, expand_block_compare_gpr,
29513 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
29514 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
29515 #include "profile-count.h" and "predict.h" for types and functions
29516 needed to work with REG_BR_PROB notes.
29517
29518 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
29519
29520 PR target/89112
29521 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
29522 for the long branch case.
29523
29524 2019-02-05 Jakub Jelinek <jakub@redhat.com>
29525
29526 PR target/89188
29527 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
29528 can throw, non-call exceptions are enabled and we can't delete
29529 dead exceptions or alter cfg. Set must_clean if
29530 delete_insn_and_edges returns true, don't set it blindly for calls.
29531 Assert that delete_unreachable_blocks is called only if can_alter_cfg.
29532
29533 PR rtl-optimization/89195
29534 * combine.c (make_extraction): For MEMs, don't extract bytes outside
29535 of the original MEM.
29536
29537 2019-02-05 Martin Liska <mliska@suse.cz>
29538
29539 PR gcov-profile/89000
29540 * gcov.c (function_summary): Remove argument.
29541 (file_summary): New function.
29542 (print_usage): Replace tabs with spaces.
29543 (generate_results): Use new function file_summary.
29544
29545 2019-02-05 Jakub Jelinek <jakub@redhat.com>
29546
29547 PR target/89186
29548 * optabs.c (prepare_cmp_insn): Pass x and y to
29549 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
29550
29551 2019-02-05 Richard Biener <rguenther@suse.de>
29552
29553 PR middle-end/89150
29554 * bitmap.h (struct bitmap_obstack): Do not mark GTY.
29555 (struct bitmap_element): Drop chain_prev so we properly recurse on
29556 the prev member, supporting tree views.
29557 (struct bitmap_head): GTY skip the obstack member.
29558
29559 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
29560
29561 PR c/88698
29562 * doc/extend.texi (Vector Extensions): Add an example of using vector
29563 types together with x86 intrinsics.
29564
29565 2019-02-04 Alan Modra <amodra@gmail.com>
29566
29567 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
29568 str[] size to 160, and comment.
29569
29570 2019-02-04 Alan Modra <amodra@gmail.com>
29571
29572 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
29573 (rs6000_pltseq_template): Guard output of TLS markers with
29574 TARGET_TLS_MARKERS.
29575 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
29576 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
29577 to use inline PLT sequences.
29578 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
29579 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
29580 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
29581
29582 2019-02-04 Martin Liska <mliska@suse.cz>
29583
29584 PR ipa/88985
29585 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
29586 out when ipa_fn_summaries does not contain entry for callee.
29587
29588 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
29589
29590 * config/sparc/sparc.h: Remove superfluous blank lines.
29591 * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
29592 (got_register_rtx): ...this.
29593 (sparc_got): Adjust to above renaming.
29594 (sparc_tls_got): Likewise.
29595 (sparc_delegitimize_address): Likewise.
29596 (sparc_output_mi_thunk): Likewise.
29597 (sparc_init_pic_reg): Likewise.
29598 (save_local_or_in_reg_p): Fix test on the GOT register.
29599 (USE_HIDDEN_LINKONCE): Move around.
29600 (get_pc_thunk_name): Likewise.
29601 (gen_load_pcrel_sym): Likewise.
29602 (load_got_register): Likewise.
29603
29604 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
29605
29606 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
29607 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
29608
29609 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
29610
29611 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
29612 into consideration.
29613
29614 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
29615
29616 * config.gcc (with_nds32_lib, glibc):
29617 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
29618 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
29619 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
29620
29621 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
29622
29623 PR target/89071
29624 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
29625 Do not prefer (v,v) alternative for non-AVX targets and (m,v)
29626 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
29627 (*rcpsf2_sse): Ditto.
29628 (*rsqrtsf2_sse): Ditto.
29629 (sse4_1_round<mode<2): Ditto.
29630
29631 2019-02-03 Richard Biener <rguenther@suse.de>
29632
29633 PR debug/87295
29634 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
29635 orig.
29636
29637 2019-02-02 Jakub Jelinek <jakub@redhat.com>
29638
29639 PR middle-end/87887
29640 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
29641 Punt with warning on aggregate return or argument types. Ignore
29642 type/mode checking for uniform arguments.
29643
29644 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
29645
29646 * combine.c (try_combine): Do not print "Can't combine" messages unless
29647 printing failed combination attempts.
29648
29649 2019-02-01 Martin Jambor <mjambor@suse.cz>
29650
29651 PR hsa/87863
29652 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
29653 segment and global segment variables before making them static.
29654
29655 2019-02-01 Martin Jambor <mjambor@suse.cz>
29656
29657 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
29658 missed optimization dump with dump_enabled_p.
29659
29660 2019-02-01 Richard Biener <rguenther@suse.de>
29661
29662 PR middle-end/88597
29663 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
29664 the instantiate cache.
29665 (instantiate_scev_binary): Elide second operand procesing
29666 if equal to the first.
29667 * tree-chrec.c (chrec_contains_symbols): Add visited set.
29668 (chrec_contains_undetermined): Likewise.
29669 (tree_contains_chrecs): Likewise.
29670
29671 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
29672
29673 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
29674
29675 2019-02-01 Jakub Jelinek <jakub@redhat.com>
29676
29677 PR tree-optimization/89143
29678 * wide-int-range.h (wide_int_range_absu): Declare.
29679 * wide-int-range.cc (wide_int_range_absu): New function.
29680 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
29681
29682 PR tree-optimization/88107
29683 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
29684 instead of assertion that eh_region_outermost is non-NULL, if it
29685 is NULL, set *ALL to true and return NULL.
29686 (move_sese_region_to_fn): Adjust caller, if all is set, call
29687 duplicate_eh_regions with NULL region.
29688
29689 2019-02-01 Richard Biener <rguenth@suse.de>
29690
29691 PR rtl-optimization/88593
29692 * mode-switching.c (optimize_mode_switching): Free dominators before
29693 calling cleanup_cfg.
29694
29695 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
29696
29697 PR tree-optimization/88932
29698 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
29699
29700 2019-01-31 Jakub Jelinek <jakub@redhat.com>
29701
29702 PR middle-end/89137
29703 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
29704 bogus clang warning.
29705
29706 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
29707
29708 PR target/89071
29709 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
29710 alternative to avoid partial SSE register stall for TARGET_AVX.
29711 (truncdfsf2): Ditto.
29712 (sse4_1_round<mode>2): Ditto.
29713
29714 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
29715
29716 PR tree-optimization/89008
29717 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
29718 process anything of the form X * 0.
29719
29720 2019-01-31 Richard Biener <rguenther@suse.de>
29721
29722 PR tree-optimization/89135
29723 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
29724 with abnormal preds.
29725
29726 2019-01-31 Jakub Jelinek <jakub@redhat.com>
29727
29728 PR sanitizer/89124
29729 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
29730 always_inline callees into no_sanitize_address callers.
29731
29732 2019-01-31 Richard Biener <rguenther@suse.de>
29733
29734 PR rtl-optimization/89115
29735 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
29736
29737 2019-01-30 Martin Sebor <msebor@redhat.com>
29738
29739 PR other/89106
29740 * doc/extend.texi (cast to a union): Correct and expand.
29741
29742 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
29743
29744 PR rtl-optimization/87246
29745 * lra-constraints.c (simplify_operand_subreg): Reload memory
29746 in subreg if the address became invalid.
29747
29748 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
29749
29750 PR target/87064
29751 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
29752 Disable for little-endian.
29753
29754 2019-01-30 Richard Biener <rguenther@suse.de>
29755
29756 PR rtl-optimization/89115
29757 * opts.c (default_options_optimization): Reduce
29758 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
29759 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
29760 to the default.
29761
29762 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
29763
29764 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
29765 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
29766 type of vector element when vec_extract is implemented by direct
29767 move.
29768
29769 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
29770
29771 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
29772
29773 2019-01-30 Richard Biener <rguenther@suse.de>
29774
29775 PR tree-optimization/89111
29776 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
29777 canonicalization to appropriately sized access types.
29778
29779 2019-01-30 Jakub Jelinek <jakub@redhat.com>
29780
29781 PR c++/89105
29782 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
29783 for arguments to functions that are TU-local and shouldn't be
29784 referenced by assembly.
29785
29786 2019-01-30 Ulrich Drepper <drepper@redhat.com>
29787
29788 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
29789 after '='.
29790
29791 2019-01-29 Martin Sebor <msebor@redhat.com>
29792
29793 PR c/88956
29794 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
29795
29796 2019-01-29 Jakub Jelinek <jakub@redhat.com>
29797
29798 PR c++/66676
29799 PR ipa/89104
29800 * omp-simd-clone.c (simd_clone_clauses_extract)
29801 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
29802 OMP_CLAUSE_ALIGNED_ALIGNMENT.
29803
29804 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
29805
29806 * config.gcc: Force .init_array for ARC.
29807
29808 2019-01-29 Richard Biener <rguenther@suse.de>
29809
29810 PR debug/87295
29811 * dwarf2out.c (collect_skeleton_dies): New helper.
29812 (copy_decls_for_unworthy_types): Call it.
29813 (build_abbrev_table): Assert we do not try to replace
29814 DW_AT_signature refs with local refs.
29815
29816 2019-01-28 Jakub Jelinek <jakub@redhat.com>
29817
29818 PR middle-end/89002
29819 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
29820 for lastprivate/linear IV, push gimplify context around gimplify_assign
29821 and, if it needed any temporaries, pop it into a gimple bind around the
29822 sequence.
29823
29824 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
29825
29826 * common.opt (-Wattribute-alias): Remove "no-" from name.
29827 Make -Wattribute-alias command line option and
29828 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
29829
29830 2019-01-28 Jakub Jelinek <jakub@redhat.com>
29831
29832 PR target/89073
29833 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
29834 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
29835 x86 ISA options.
29836 (bmi2): Add missing @opindex.
29837 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
29838 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
29839 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
29840 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
29841 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
29842 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
29843 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
29844 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
29845 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
29846 xsavec, xsaveopt and xsaves options.
29847
29848 2019-01-28 Richard Biener <rguenther@suse.de>
29849
29850 PR debug/89076
29851 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
29852 support removal.
29853
29854 2019-01-28 Richard Biener <rguenther@suse.de>
29855
29856 PR tree-optimization/88739
29857 * tree-cfg.c (verify_types_in_gimple_reference): Verify
29858 BIT_FIELD_REFs only are applied to mode-precision operands
29859 when they are integral.
29860 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
29861 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
29862 BIT_FIELD_REFs of non-mode-precision integral operands.
29863
29864 2019-01-27 Jakub Jelinek <jakub@redhat.com>
29865
29866 PR target/87214
29867 * config/i386/sse.md
29868 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
29869 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
29870 first constants in pairs are multiples of 2. Formatting fixes.
29871 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
29872 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
29873 first constants in each quadruple are multiples of 4. Formatting fixes.
29874
29875 2019-01-26 Martin Jambor <mjambor@suse.cz>
29876
29877 PR ipa/88933
29878 * tree-inline.c: Include tree-cfgcleanup.h.
29879 (delete_unreachable_blocks_update_callgraph): Move...
29880 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
29881 ...here, make externally visible, make second argument bool, adjust
29882 all callers.
29883 * tree-cfgcleanup.c: Include cgraph.h.
29884 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
29885 Declare.
29886 * ipa-prop.c: Include tree-cfgcleanup.h.
29887 (ipcp_transform_function): Call
29888 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
29889
29890 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
29891
29892 PR rtl-optimization/88846
29893 * ira.c (process_set_for_memref_referenced_p): New.
29894 (memref_referenced_p): Add new param. Use
29895 process_set_for_memref_referenced_p. Add new switch cases.
29896 (memref_used_between_p): Pass new arg to memref_referenced_p.
29897
29898 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
29899
29900 PR target/88469
29901 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
29902 argument ABI_BREAK. Set to true if the calculated alignment has
29903 changed in gcc-9. Check bit-fields for their base type alignment.
29904 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
29905 (aarch64_function_arg_boundary): Likewise.
29906 (aarch64_gimplify_va_arg_expr): Likewise.
29907
29908 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
29909
29910 PR middle-end/89037
29911 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
29912 instead of accessing TREE_INT_CST_ELT directly.
29913
29914 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
29915
29916 * doc/sourcebuild.texi (Environment attributes): Add fenv and
29917 fenv_exceptions description.
29918
29919 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
29920
29921 PR rtl-optimization/87763
29922 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
29923 Allow SUBREG when matching CC_NZmode compare.
29924
29925 2019-01-25 Richard Biener <rguenther@suse.de>
29926
29927 PR tree-optimization/89049
29928 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
29929 Look at the pattern stmt to determine if the stmt is vectorized.
29930
29931 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
29932
29933 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
29934 (pred_mov<mode>): Handle all-register forms using both a new
29935 alternative and a split.
29936
29937 2019-01-25 Richard Biener <rguenther@suse.de>
29938
29939 PR tree-optimization/86865
29940 * graphite-scop-detection.c (scop_detection::can_represent_loop):
29941 Reject non-do-while loops.
29942
29943 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
29944
29945 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
29946 * config/rs6000/constraints.md (Q constraint): Use REG_P.
29947 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
29948 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
29949 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
29950 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
29951 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
29952 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
29953 vlogical_operand, gpc_reg_operand, int_reg_operand,
29954 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
29955 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
29956 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
29957 (save_world_operation, restore_world_operation, lmw_operation,
29958 stmw_operation): Use MEM_P and REG_P.
29959 (tie_operand): Use MEM_P.
29960 (vrsave_operation, crsave_operation): Use REG_P.
29961 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
29962 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
29963 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
29964 (call_operand): Use HARD_REGISTER_P.
29965 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
29966 Use CONST_INT_P.
29967 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
29968 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
29969 quad_aligned_load_p, replace_swapped_aligned_store,
29970 recombine_lvx_pattern, replace_swapped_aligned_load,
29971 recombine_stvx_pattern): Use MEM_P.
29972 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
29973 Use MEM_P and SYMBOL_REF_P.
29974 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
29975 (insn_is_swappable_p): Use REG_P and MEM_P.
29976 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
29977 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
29978 Use CONST_INT_P.
29979 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
29980 Use CONST_DOUBLE_P.
29981 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
29982 CONST_WIDE_INT_P.
29983 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
29984 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
29985 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
29986 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
29987 reg_or_subregno:
29988 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
29989 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
29990 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
29991 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
29992 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
29993 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
29994 rs6000_split_logical_di): Use CONST_INT_P.
29995 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
29996 REG_P and SYMBOL_REF_P.
29997 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
29998 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
29999 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
30000 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
30001 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
30002 (small_data_operand, print_operand_address): Use CONST_INT_P and
30003 SYMBOL_REF_P.
30004 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
30005 (rs6000_init_hard_regno_mode_ok, direct_move_p):
30006 Use HARD_REGISTER_NUM_P.
30007 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
30008 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
30009 SUBREG_P and SYMBOL_REF_P.
30010 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
30011 and HARD_REGISTER_NUM_P.
30012 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
30013 reg_or_subregno.
30014 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
30015 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
30016 MEM_P and REG_P.
30017 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
30018 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
30019 find_addr_reg): Use REG_P.
30020 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
30021 (rs6000_emit_le_vsx_move): Use SUBREG_P.
30022 (offsettable_ok_by_alignment, constant_pool_expr_p,
30023 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
30024 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
30025 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
30026 rs6000_assemble_integer, create_TOC_reference,
30027 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
30028 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
30029 (rs6000_split_vec_extract_var): Use reg_or_subregno.
30030 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
30031 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
30032 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
30033 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
30034 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
30035 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
30036 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
30037 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
30038 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
30039 and cbranch<mode>4): Use CONST_INT_P.
30040 (multiple define_splits): Use REG_P and SUBREG_P.
30041 (define_expands call, call_value): Use MEM_P.
30042 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
30043 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
30044 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
30045 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
30046 and HARD_REGISTER_NUM_P.
30047 (multiple define_splits): Use HARD_REGISTER_NUM_P.
30048
30049 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
30050
30051 PR rtl-optimization/88948
30052 * rtl.h (prepare_copy_insn): New prototype.
30053 * gcse.c (prepare_copy_insn): New function, split out from
30054 process_insert_insn.
30055 (process_insert_insn): Use prepare_copy_insn.
30056 * store-motion.c (replace_store_insn): Use prepare_copy_insn
30057 instead of gen_move_insn.
30058
30059 2019-01-24 Jakub Jelinek <jakub@redhat.com>
30060
30061 PR debug/89006
30062 * config/i386/i386.c (ix86_pic_register_p): Return true for
30063 UNSPEC_SET_GOT too.
30064
30065 PR tree-optimization/88964
30066 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
30067 punt if HONOR_SNANS (chrec).
30068
30069 PR middle-end/89015
30070 * tree-nested.c (convert_nonlocal_reference_stmt,
30071 convert_local_reference_stmt, convert_tramp_reference_stmt,
30072 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
30073 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
30074 or GIMPLE_OMP_TASK.
30075
30076 PR tree-optimization/89027
30077 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
30078 for "omp simd array" variables.
30079
30080 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
30081
30082 PR target/88469
30083 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
30084 force the alignment of m_val.
30085
30086 2019-01-24 Richard Biener <rguenther@suse.de>
30087
30088 PR lto/87187
30089 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
30090 When in "legacy" debug mode make sure to reset self-origins.
30091
30092 2019-01-24 Martin Liska <mliska@suse.cz>
30093
30094 PR gcov-profile/88994
30095 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
30096 result will be always smaller or equal to the original.
30097 * gcov.c (mangle_name): Fix else branch where we should
30098 also copy to PTR and shift the pointer.
30099
30100 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
30101
30102 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
30103 * vr-values.c (find_case_label_ranges): Fix a comment typo.
30104
30105 2019-01-23 Xuepeng Guo <xuepeng.guo@intel.com>
30106
30107 * common/config/i386/i386-common.c
30108 (OPTION_MASK_ISA_ENQCMD_SET,
30109 OPTION_MASK_ISA_ENQCMD_UNSET): New macros.
30110 (ix86_handle_option): Handle -menqcmd.
30111 * config.gcc (enqcmdintrin.h): New header file.
30112 * config/i386/cpuid.h (bit_ENQCMD): New bit.
30113 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
30114 -menqcmd.
30115 * config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New
30116 function type.
30117 * config/i386/i386-builtin.def (__builtin_ia32_enqcmd,
30118 __builtin_ia32_enqcmds): New builtins.
30119 * config/i386/i386-c.c (__ENQCMD__): New macro.
30120 * config/i386/i386-option.c (ix86_target_string): Add
30121 -menqcmd.
30122 (ix86_valid_target_attribute_inner_p): Likewise.
30123 * config/i386/i386-expand.c
30124 (ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and
30125 IX86_BUILTIN_ENQCMDS.
30126 * config/i386/i386.h (TARGET_ENQCMD): New.
30127 * config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New.
30128 (@enqcmd<enqcmd_sfx>_<mode>): New insn pattern.
30129 (movdir64b_<mode>): Parameterize to enable share expansion code
30130 with ENQCMD in function ix86_expand_builtin.
30131 * config/i386/i386.opt: Add -menqcmd.
30132 * config/i386/immintrin.h: Include enqcmdintrin.h.
30133 * config/i386/enqcmdintrin.h: New intrinsic file.
30134 * doc/invoke.texi: Add -menqcmd.
30135
30136 2019-01-23 Bin Cheng <bin.cheng@arm.com>
30137 Steve Ellcey <sellcey@marvell.com>
30138
30139 PR target/85711
30140 * recog.c (address_operand): Return false on wrong mode for address.
30141 (constrain_operands): Check for mode with 'p' constraint.
30142
30143 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
30144
30145 PR target/88998
30146 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
30147 Disparage MMX alternative.
30148 (sse2_cvtpd2pi): Ditto.
30149 (sse2_cvttpd2pi): Ditto.
30150
30151 2019-01-23 David Malcolm <dmalcolm@redhat.com>
30152
30153 PR driver/89014
30154 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
30155 use-after-free of the result of
30156 aarch64_get_extension_string_for_isa_flags.
30157
30158 2019-01-23 Jakub Jelinek <jakub@redhat.com>
30159
30160 PR c/44715
30161 * doc/extend.texi: Document break and continue behavior in
30162 statement expressions.
30163
30164 2019-01-23 Richard Biener <rguenther@suse.de>
30165
30166 PR tree-optimization/89008
30167 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
30168 not leave another stray operand.
30169
30170 2019-01-23 Jakub Jelinek <jakub@redhat.com>
30171
30172 * BASE-VER: Bump to 9.0.1.
30173
30174 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
30175
30176 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
30177 thunk that returns by reference, use the type of the return object
30178 of the thunk instead of that of the alias to build the dereference.
30179
30180 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
30181
30182 * config/arc/atomic.md: Add operand to DMB instruction.
30183
30184 2019-01-23 Jakub Jelinek <jakub@redhat.com>
30185
30186 PR tree-optimization/88964
30187 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
30188 build_zero_cst instead of build_int_cst. Return false for loop
30189 invariants which honor signed zeros.
30190
30191 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
30192
30193 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
30194
30195 2019-01-22 Jakub Jelinek <jakub@redhat.com>
30196
30197 PR target/88965
30198 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
30199 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
30200 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
30201
30202 PR middle-end/88968
30203 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
30204 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
30205
30206 PR target/87064
30207 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
30208 Disable for little endian.
30209
30210 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
30211
30212 PR target/88469
30213 * config/arm/arm.c (arm_needs_double_word_align): Check
30214 DECL_BIT_FIELD_TYPE.
30215
30216 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
30217 H.J. Lu <hongjiu.lu@intel.com>
30218
30219 PR target/88909
30220 * config/i386/i386-builtin.def: Add mask2 to all builtin
30221 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
30222 SPECIAL_ARGS.
30223 * config/i386/i386.c (BDESC): Add mask2 to the definition.
30224 (BDESC_FIRST): Likewise.
30225 (define_builtin): Add an argument for mask2. Updated to handle
30226 both ix86_isa_flags and ix86_isa_flags2.
30227 (define_builtin_const): Likewise.
30228 (define_builtin_pure): Likewise.
30229 (define_builtin2): Deleted.
30230 (define_builtin_const2): Likewise.
30231 (builtin_description): Add a member, mask2.
30232 (bdesc_*): Add mask2 to builtin initializations.
30233 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
30234 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
30235 support.
30236 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
30237
30238 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
30239
30240 PR target/88954
30241 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
30242 noplt attribute.
30243
30244 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
30245
30246 PR target/88469
30247 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
30248 alignment is dominated by a bitfield with 64-bit aligned base type.
30249 (arm_function_arg): Emit a warning if the alignment has changed since
30250 earlier GCC releases.
30251 (arm_function_arg_boundary): Likewise.
30252 (arm_setup_incoming_varargs): Likewise.
30253
30254 2019-01-22 Richard Biener <rguenther@suse.de>
30255
30256 PR tree-optimization/88862
30257 * graphite-scop-detection.c
30258 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
30259
30260 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
30261
30262 * doc/extend.tex (AMD GCN Function Attributes): New section.
30263 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
30264 * doc/invoke.texi (AMD GCN Options): New section.
30265 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
30266
30267 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
30268
30269 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
30270 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
30271
30272 2019-01-22 Jakub Jelinek <jakub@redhat.com>
30273
30274 PR tree-optimization/88044
30275 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
30276 is false in the first iteration, but !every_iteration, return false
30277 instead of true with niter->niter zero.
30278
30279 PR rtl-optimization/88904
30280 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
30281 any nonequal registers before processing BB_END (b).
30282
30283 PR target/88905
30284 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
30285 GET_MODE (op0).
30286 (expand_binop_directly, expand_doubleword_clz,
30287 expand_doubleword_popcount, expand_ctz, expand_ffs,
30288 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
30289
30290 PR rtl-optimization/49429
30291 PR target/49454
30292 PR rtl-optimization/86334
30293 PR target/88906
30294 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
30295 addressable from here...
30296 (emit_block_op_via_libcall): ... to here.
30297
30298 2019-01-22 Richard Biener <rguenther@suse.de>
30299
30300 * tree-vect-loop.c (vect_analyze_loop_operations): Use
30301 auto_vec for cost vector to fix memleak.
30302 (vectorize_fold_left_reduction): Properly gather SLP defs.
30303 (vectorizable_comparison): Do not swap operands to properly
30304 gather SLP defs.
30305
30306 2019-01-22 Alan Modra <amodra@gmail.com>
30307
30308 PR target/88614
30309 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
30310 stays a reg. Allow a const_int.
30311 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
30312 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
30313 (IS_NOMARK_TLSGETADDR): Define.
30314 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
30315 (rs6000_output_tlsargs): New function.
30316 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
30317 __tls_get_addr call takes an arg.
30318 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
30319 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
30320 delete split..
30321 (call_value_nonlocal_sysv): ..or here, delete split.
30322 (tls_gdld_nomark): Delete.
30323 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
30324 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
30325 (call_value_nonlocal_sysv): Likewise.
30326 (call_value_nonlocal_sysv_secure): Likewise.
30327 (call_value_nonlocal_aix): Likewise.
30328 (call_value_indirect_aix): Likewise.
30329 (call_value_indirect_elfv2): Likewise.
30330 (call_value_local32, call_value_local64): Disable for no-mark tls.
30331 (call_value_local_aix): Likewise.
30332
30333 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
30334
30335 PR target/88938
30336 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
30337 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
30338
30339 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
30340
30341 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
30342 string contents as hash_map keys.
30343
30344 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
30345
30346 PR c/88928
30347 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
30348 for rvalue context. Handle rvalues correctly. Use min_align_of_type
30349 instead of TYPE_ALIGN.
30350 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
30351 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
30352 pointer from TYPE_STUB_DECL.
30353
30354 2019-01-21 Richard Biener <rguenther@suse.de>
30355
30356 PR tree-optimization/88934
30357 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
30358 at the possibly non-constant operand.
30359 (vect_get_constant_vectors): Adjust.
30360
30361 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
30362
30363 PR target/71659
30364 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
30365 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
30366 instead of _X86INTRIN_H_INCLUDED.
30367 * onfig/i386/clwbintrin.h: Likewise.
30368 * config/i386/pkuintrin.h: Likewise.
30369 * config/i386/prfchwintrin.h: Likewise.
30370 * config/i386/rdseedintrin.h: Likewise.
30371 * config/i386/wbnoinvdintrin.h: Likewise.
30372 * config/i386/xsavecintrin.h: Likewise.
30373 * config/i386/xsavesintrin.h: Likewise.
30374 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
30375 * config/i386/xsaveintrin.h: Likewise.
30376 * config/i386/xsaveoptintrin.h: Likewise.
30377 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
30378 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
30379 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
30380 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
30381 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
30382 * config/i386/immintrin.h: Here.
30383
30384 2019-01-20 Martin Jambor <mjambor@suse.cz>
30385
30386 PR ipa/87615
30387 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
30388 with aa_walk_budget.
30389 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
30390 aa_walk_budget_p parameter.
30391 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
30392 walk. Updated all callers.
30393 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
30394 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
30395 unmodified_parm.
30396 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
30397 parameter info. Extract info from fbi. Pass fbi to recursive calls
30398 and to unmodified_parm.
30399 (phi_result_unknown_predicate): New parameter fbi, removed parameter
30400 info, updated call to will_be_nonconstant_expr_predicate.
30401 (param_change_prob): New parameter fbi, limit AA walking.
30402 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
30403 calls to various above functions.
30404 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
30405 parameter. Use it to limit AA walking.
30406 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
30407 fbi, limit AA walk.
30408 (detect_type_change): New parameter fbi, pass it on to
30409 detect_type_change_from_memory_writes.
30410 (detect_type_change_ssa): Likewise.
30411 (aa_overwalked): Removed.
30412 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
30413 accordingly, adjust to the neew AA limiting scheme.
30414 (parm_ref_data_preserved_p): Likewise.
30415 (ipa_compute_jump_functions_for_edge): Adjust call to
30416 get_dynamic_type.
30417 (ipa_analyze_call_uses): Likewise.
30418 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
30419 (ipa_analyze_node): Initialize aa_walk_budget.
30420 (ipcp_transform_function): Likewise.
30421 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
30422 to get_dynamic_type.
30423
30424 2019-01-19 Jakub Jelinek <jakub@redhat.com>
30425
30426 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
30427 outside of #if CHECKING_P code.
30428
30429 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
30430
30431 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
30432 New function, split out from...
30433 (loop_versioning::analyze_stride): ...here.
30434 (loop_versioning::find_per_loop_multiplication): Use gassign.
30435 (loop_versioning::analyze_term_using_scevs): Return a success code.
30436 (loop_versioning::analyze_arbitrary_term): New function.
30437 (loop_versioning::analyze_address_fragment): Use
30438 analyze_arbitrary_term if all else fails.
30439
30440 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
30441
30442 PR target/88892
30443 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
30444 operands.
30445
30446 2019-01-18 Richard Biener <rguenther@suse.de>
30447
30448 PR tree-optimization/88903
30449 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
30450 scalar stmts a SLP shift amount is composed of when detecting
30451 shifts by scalars.
30452
30453 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
30454
30455 PR target/88799
30456 * config/arm/arm-cpus.in (mp): New feature.
30457 (sec): New feature.
30458 (fgroup ARMv7ve): Add mp and sec features.
30459 (arch armv7-a): Add options to allow mp and sec extensions.
30460 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
30461 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
30462 extenstions to the base architecture.
30463 (cpu cortex-a8): Add sec extension to the base architecture.
30464 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
30465 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
30466 variants down to the base v7-a varaint.
30467 * config/arm/t-multilib (v7_a_arch_variants): New variable.
30468 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
30469 of permitted extensions for -march=armv7-a and for
30470 -mcpu=generic-armv7-a.
30471
30472 2019-01-18 Martin Liska <mliska@suse.cz>
30473
30474 * params.def: Fix comment.
30475 * tree-profile.c (gimple_init_gcov_profiler): Bump function
30476 name.
30477 (gimple_gen_ic_func_profiler): Likewise.
30478
30479 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30480
30481 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
30482 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
30483 and put in error checks for stack protector guard options.
30484 (aarch64_stack_protect_guard): New.
30485 (TARGET_STACK_PROTECT_GUARD): Define.
30486 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
30487 (reg_stack_protect_address<mode>): New.
30488 (stack_protect_set): Adjust for SSP_GLOBAL.
30489 (stack_protect_test): Likewise.
30490 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
30491 (-mstack-protector-guard): Likewise.
30492 (-mstack-protector-guard-offset): Likewise.
30493
30494 2019-01-18 Jakub Jelinek <jakub@redhat.com>
30495
30496 PR tree-optimization/86214
30497 * tree-inline.h (struct copy_body_data): Add
30498 add_clobbers_to_eh_landing_pads member.
30499 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
30500 (copy_edges_for_bb): Call it if EH edge destination is <
30501 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
30502 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
30503 if flag_stack_reuse != SR_NONE and clear it afterwards.
30504
30505 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
30506
30507 PR target/85596
30508 * doc/install.texi (with-multilib-list): Document for aarch64.
30509
30510 2019-01-18 Jakub Jelinek <jakub@redhat.com>
30511
30512 PR target/88734
30513 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
30514 (("..."))) with ("...").
30515
30516 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
30517
30518 * doc/extend.texi (Built-in Functions for Memory Model Aware
30519 Atomic Operations): Document atomic fetch and nand.
30520
30521 2019-01-18 Martin Liska <mliska@suse.cz>
30522 Richard Biener <rguenther@suse.de>
30523
30524 PR middle-end/88587
30525 * cgraph.h (create_version_clone_with_body): Add new argument
30526 with attributes.
30527 * cgraphclones.c (cgraph_node::create_version_clone): Add
30528 DECL_ATTRIBUTES to a newly created decl. And call
30529 valid_attribute_p so that proper cl_target_optimization_node
30530 is set for the newly created declaration.
30531 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
30532 for declaration.
30533 (expand_target_clones): Do not call valid_attribute_p, it must
30534 be already done.
30535 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
30536 vector types.
30537
30538 2019-01-17 Jakub Jelinek <jakub@redhat.com>
30539
30540 PR target/88734
30541 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
30542 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
30543 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
30544
30545 2019-01-17 Martin Sebor <msebor@redhat.com>
30546
30547 PR middle-end/88273
30548 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
30549 Handle anti-ranges the same as no range at all.
30550
30551 2018-01-17 Steve Ellcey <sellcey@cavium.com>
30552
30553 * config/aarch64/aarch64.c (cgraph.h): New include.
30554 (intl.h): New include.
30555 (supported_simd_type): New function.
30556 (currently_supported_simd_type): Ditto.
30557 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
30558 (aarch64_simd_clone_adjust): Ditto.
30559 (aarch64_simd_clone_usable): Ditto.
30560 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
30561 (TARGET_SIMD_CLONE_ADJUST): Ditto.
30562 (TARGET_SIMD_CLONE_USABLE): Ditto.
30563 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
30564 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
30565 call.
30566
30567 2019-01-17 Martin Sebor <msebor@redhat.com>
30568
30569 PR tree-optimization/88800
30570 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
30571 NO_WARNING bit here. Avoid folding out-of-bounds calls.
30572 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
30573 redundant argument. Add new argument and issue diagnostics under
30574 its control. Detect out-of-bounds access even with warnings
30575 disabled.
30576 (check_bounds_or_overlap): Change return type. Add argument.
30577 (wrestrict_dom_walker::check_call): Adjust.
30578 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
30579 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
30580 check_bounds_or_overlap's return value.
30581 (handle_builtin_stxncpy): Same.
30582 (handle_builtin_strcat): Same.
30583
30584 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
30585 Kwok Cheung Yeung <kcy@codesourcery.com>
30586 Julian Brown <julian@codesourcery.com>
30587 Tom de Vries <tom@codesourcery.com>
30588
30589 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
30590
30591 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
30592
30593 * doc/sourcebuild.texi: Document dg-require-effective-target
30594 llvm_binutils and offload_gcn.
30595
30596 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
30597 Kwok Cheung Yeung <kcy@codesourcery.com>
30598 Julian Brown <julian@codesourcery.com>
30599 Tom de Vries <tom@codesourcery.com>
30600
30601 * doc/sourcebuild.texi: Document dg-required-effective-target
30602 exceptions.
30603
30604 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
30605 Kwok Cheung Yeung <kcy@codesourcery.com>
30606 Julian Brown <julian@codesourcery.com>
30607 Tom de Vries <tom@codesourcery.com>
30608 Jan Hubicka <hubicka@ucw.cz>
30609 Martin Jambor <mjambor@suse.cz>
30610
30611 * config.gcc: Add amdgcn*-*-amdhsa configuration.
30612 * configure.ac: Check for dlopen.
30613 * configure: Regenerate.
30614
30615 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
30616 Kwok Cheung Yeung <kcy@codesourcery.com>
30617 Julian Brown <julian@codesourcery.com>
30618 Tom de Vries <tom@codesourcery.com>
30619 Jan Hubicka <hubicka@ucw.cz>
30620 Martin Jambor <mjambor@suse.cz>
30621
30622 * common/config/gcn/gcn-common.c: New file.
30623 * config/gcn/driver-gcn.c: New file.
30624 * config/gcn/gcn-builtins.def: New file.
30625 * config/gcn/gcn-hsa.h: New file.
30626 * config/gcn/gcn-modes.def: New file.
30627 * config/gcn/gcn-opts.h: New file.
30628 * config/gcn/gcn-passes.def: New file.
30629 * config/gcn/gcn-protos.h: New file.
30630 * config/gcn/gcn-run.c: New file.
30631 * config/gcn/gcn-tree.c: New file.
30632 * config/gcn/gcn.c: New file.
30633 * config/gcn/gcn.h: New file.
30634 * config/gcn/gcn.opt: New file.
30635 * config/gcn/t-gcn-hsa: New file.
30636
30637 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
30638 Kwok Cheung Yeung <kcy@codesourcery.com>
30639 Julian Brown <julian@codesourcery.com>
30640 Tom de Vries <tom@codesourcery.com>
30641 Jan Hubicka <hubicka@ucw.cz>
30642 Martin Jambor <mjambor@suse.cz>
30643
30644 * config/gcn/constraints.md: New file.
30645 * config/gcn/gcn-valu.md: New file.
30646 * config/gcn/gcn.md: New file.
30647 * config/gcn/predicates.md: New file.
30648
30649 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
30650
30651 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
30652 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
30653 (stmt_uses_0_or_null_in_undefined_way): Likewise.
30654 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
30655
30656 2019-01-17 Tamar Christina <tamar.christina@arm.com>
30657
30658 PR target/88851
30659 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
30660 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
30661 it and document registers.
30662
30663 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30664
30665 * config/aarch64/aarch64.c (ares_tunings): Define.
30666 * config/aarch64/aarch64-cores.def (ares): Use the above.
30667
30668 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
30669
30670 PR target/88794
30671 Revert:
30672 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
30673
30674 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
30675 (_mm512_fixupimm_round_pd): Update parameters and builtin.
30676 (_mm512_maskz_fixupimm_round_pd): Ditto.
30677 (_mm512_fixupimm_round_ps): Ditto.
30678 (_mm512_maskz_fixupimm_round_ps): Ditto.
30679 (_mm_fixupimm_round_sd): Ditto.
30680 (_mm_maskz_fixupimm_round_sd): Ditto.
30681 (_mm_fixupimm_round_ss): Ditto.
30682 (_mm_maskz_fixupimm_round_ss): Ditto.
30683 (_mm512_fixupimm_pd): Ditto.
30684 (_mm512_maskz_fixupimm_pd): Ditto.
30685 (_mm512_fixupimm_ps): Ditto.
30686 (_mm512_maskz_fixupimm_ps): Ditto.
30687 (_mm_fixupimm_sd): Ditto.
30688 (_mm_maskz_fixupimm_sd): Ditto.
30689 (_mm_fixupimm_ss): Ditto.
30690 (_mm_maskz_fixupimm_ss): Ditto.
30691 (_mm512_mask_fixupimm_round_pd): Update builtin.
30692 (_mm512_mask_fixupimm_round_ps): Ditto.
30693 (_mm_mask_fixupimm_round_sd): Ditto.
30694 (_mm_mask_fixupimm_round_ss): Ditto.
30695 (_mm512_mask_fixupimm_pd): Ditto.
30696 (_mm512_mask_fixupimm_ps): Ditto.
30697 (_mm_mask_fixupimm_sd): Ditto.
30698 (_mm_mask_fixupimm_ss): Ditto.
30699 * config/i386/avx512vlintrin.h:
30700 (_mm256_fixupimm_pd): Update parameters and builtin.
30701 (_mm256_maskz_fixupimm_pd): Ditto.
30702 (_mm256_fixupimm_ps): Ditto.
30703 (_mm256_maskz_fixupimm_ps): Ditto.
30704 (_mm_fixupimm_pd): Ditto.
30705 (_mm_maskz_fixupimm_pd): Ditto.
30706 (_mm_fixupimm_ps): Ditto.
30707 (_mm_maskz_fixupimm_ps): Ditto.
30708 (_mm256_mask_fixupimm_pd): Update builtin.
30709 (_mm256_mask_fixupimm_ps): Ditto.
30710 (_mm_mask_fixupimm_pd): Ditto.
30711 (_mm_mask_fixupimm_ps): Ditto.
30712 * config/i386/i386-builtin-types.def: Add new types and remove
30713 useless ones.
30714 * config/i386/i386-builtin.def: Update builtin definitions.
30715 * config/i386/i386.c: Handle new builtin types and remove useless ones.
30716 * config/i386/sse.md: Update VFIXUPIMM* patterns.
30717 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
30718 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
30719 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
30720 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
30721 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
30722 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
30723 * config/i386/subst.md:
30724 (round_saeonly_sd_mask_operand4): Add new subst_attr.
30725 (round_saeonly_sd_mask_op4): Ditto.
30726 (round_saeonly_expand_operand5): Ditto.
30727 (round_saeonly_expand): Update.
30728
30729 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
30730
30731 PR target/88794
30732 Revert:
30733 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
30734
30735 * config/i386/sse.md: Combine VFIXUPIMM* patterns
30736 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
30737 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
30738 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
30739 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
30740 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
30741 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
30742
30743 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
30744
30745 PR target/88794
30746 Revert:
30747 2018-12-15 Jakub Jelinek <jakub@redhat.com>
30748
30749 PR target/88489
30750 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
30751 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
30752 instead of UNSPEC_FIXUPIMM.
30753
30754 2019-01-17 Richard Biener <rguenther@suse.de>
30755
30756 PR lto/86736
30757 * dwarf2out.c (want_pubnames): Never generate pubnames sections
30758 and friends for the LTO part of debug info.
30759
30760 2019-01-17 Jakub Jelinek <jakub@redhat.com>
30761
30762 PR tree-optimization/86214
30763 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
30764 if x == y.
30765
30766 PR rtl-optimization/88870
30767 * dce.c (deletable_insn_p): Never delete const/pure calls that can
30768 throw if we can't alter the cfg or delete dead exceptions.
30769 (mark_insn): Don't call find_call_stack_args for such calls.
30770
30771 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
30772
30773 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
30774 prototypes for vec_st.
30775 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
30776 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
30777 mainly on signed/unsigned long long and double.
30778
30779 2019-01-16 David Malcolm <dmalcolm@redhat.com>
30780
30781 PR target/88861
30782 * combine.c (delete_noop_moves): Convert to "bool" return,
30783 returning true if any edges are eliminated.
30784 (combine_instructions): Also return true if delete_noop_moves
30785 returns true.
30786
30787 2019-01-16 Tamar Christina <tamar.christina@arm.com>
30788
30789 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
30790 correct max nunits for endian swap.
30791 (aarch64_expand_fcmla_builtin): Correct subreg code.
30792 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
30793 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
30794 lane endianness.
30795
30796 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
30797
30798 * config/alpha/alpha.c (alpha_gimplify_va_arg):
30799 Handle split indirect COMPLEX_TYPE arguments.
30800
30801 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
30802
30803 PR target/86891
30804 * config/aarch64/aarch64-modes.def: Add comment about how the carry
30805 bit is set by add and compare.
30806 (CC_ADC): New CC_MODE.
30807 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
30808 to cache the code and mode of X. Adjust the shape of a CC_Cmode
30809 comparison. Add detection for CC_ADCmode.
30810 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
30811 CC_ADCmode.
30812 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
30813 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
30814 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
30815 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
30816 to eliminate the need for zero-extending the operands.
30817 (add<mode>3_compareC_imm): Delete. Merge into ...
30818 (add<mode>3_compareC): ... this. Restructure the comparison to
30819 eliminate the need for zero-extending the operands.
30820 (add<mode>3_carryin): Use LTU for the overflow detection.
30821 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
30822 Reexpress comparison for overflow.
30823 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
30824 (add<mode>3_carryinC): Likewise.
30825 (add<mode>3_carryinV): Use LTU for carry between partials.
30826 * config/aarch64/predicates.md (aarch64_carry_operation): Update
30827 handling of CC_Cmode and add CC_ADCmode.
30828 (aarch64_borrow_operation): Likewise.
30829
30830 2019-01-16 Tamar Christina <tamar.christina@arm.com>
30831
30832 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands):
30833 Remove patternmode.
30834 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
30835 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
30836 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>):
30837 Remove endianness conversion.
30838
30839 2019-01-16 Martin Liska <mliska@suse.cz>
30840
30841 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
30842 for GCC driver.
30843 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
30844 a new argument.
30845 * gcc.c (add_sysrooted_hdrs_prefix): New function.
30846 (path_prefix_reset): Move up in the source file.
30847 (find_fortran_preinclude_file): Make complex search for the
30848 fortran header files.
30849
30850 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
30851
30852 * godump.c (go_output_typedef): When outputting a typedef, refer
30853 to the underlying type by its name and not its structure.
30854
30855 2019-01-15 David Malcolm <dmalcolm@redhat.com>
30856
30857 PR c++/88795
30858 * tree.c (build_function_type): Assert that arg_types is not
30859 error_mark_node.
30860
30861 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
30862
30863 PR inline-asm/52813
30864 * doc/extend.texi: Document that listing the stack pointer in the
30865 clobber list of an asm is a deprecated feature.
30866 * common.opt (Wdeprecated): Moved from c-family/c.opt.
30867 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
30868 warning instead of an error for clobbers of the stack pointer.
30869 Add a note explaining why.
30870
30871 2019-01-15 Richard Biener <rguenther@suse.de>
30872
30873 PR debug/88046
30874 * dwarf2out.c (gen_member_die): Do not generate inheritance
30875 DIEs late.
30876
30877 2019-01-15 Richard Biener <rguenther@suse.de>
30878
30879 PR tree-optimization/88855
30880 * tree-if-conv.c (combine_blocks): Collect
30881 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
30882
30883 2019-01-15 Tom de Vries <tdevries@suse.de>
30884
30885 PR target/80547
30886 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
30887 lhs == NULL_TREE for gang-level reduction.
30888
30889 2019-01-15 Richard Biener <rguenther@suse.de>
30890 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
30891
30892 PR ipa/88788
30893 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
30894 return true if SSA_NAME is already marked in visited bitmap.
30895 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
30896
30897 2019-01-15 Jakub Jelinek <jakub@redhat.com>
30898
30899 PR tree-optimization/88775
30900 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
30901 equal == 0 equality pointer comparisons some more if compared in
30902 integral types and either one points to an automatic var and the
30903 other to a global, or we can prove at least one points to the middle
30904 or both point to start or both point to end.
30905
30906 2019-01-14 Andi Kleen <ak@linux.intel.com>
30907
30908 * Makefile.in: Lower autofdo sampling rate by 10x.
30909 * Makefile.tpl: Dito.
30910
30911 2019-01-14 Tom Honermann <tom@honermann.net>
30912
30913 * defaults.h: Define CHAR8_TYPE.
30914
30915 2019-01-14 Martin Sebor <msebor@redhat.com>
30916
30917 PR target/88638
30918 * doc/extend.texi (Darwin Format Checks): Clarify.
30919
30920 2019-01-14 Richard Biener <rguenther@suse.de>
30921
30922 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
30923 whether we are in (simplify ...) or (match ...) context.
30924
30925 2019-01-14 Jakub Jelinek <jakub@redhat.com>
30926
30927 PR rtl-optimization/88796
30928 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
30929 * cfgexpand.c (stack_protect_prologue): Initialize
30930 crtl->stack_protect_guard_decl.
30931 * function.c (stack_protect_epilogue): Use it instead of calling
30932 targetm.stack_protect_guard again.
30933 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
30934 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
30935 crtl->stack_protect_guard_decl.
30936 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
30937 on the returned MEM_EXPR.
30938
30939 2019-01-12 Tom de Vries <tdevries@suse.de>
30940
30941 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
30942 vector length using -fopenacc-dim.
30943
30944 2019-01-12 Tom de Vries <tdevries@suse.de>
30945
30946 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
30947 lengths into account.
30948
30949 2019-01-12 Svante Signell <svante.signell@gmail.com>
30950
30951 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
30952 (TARGET_CAN_SPLIT_STACK): Define.
30953 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
30954
30955 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
30956
30957 * params.def (inline-unit-growth): Set to 40.
30958
30959 2019-01-12 Jakub Jelinek <jakub@redhat.com>
30960
30961 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
30962
30963 2019-01-12 Tom de Vries <tdevries@suse.de>
30964
30965 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
30966 region calling vector-partitionable routine, set default_vector_length
30967 to WARP_SIZE.
30968
30969 2019-01-12 Tom de Vries <tdevries@suse.de>
30970
30971 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
30972 variable default_vector_length.
30973
30974 2019-01-12 Tom de Vries <tdevries@suse.de>
30975
30976 PR middle-end/88703
30977 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
30978 from oacc_default_dims, as oacc_validate_dims would do it, and apply
30979 dimensions limits.
30980
30981 2019-01-12 Tom de Vries <tdevries@suse.de>
30982
30983 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
30984 (nvptx_goacc_validate_dims): Add used parameter.
30985 * doc/tm.texi: Regenerate.
30986 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
30987 argument to call to targetm.goacc.validate_dims.
30988 (default_goacc_validate_dims): Add used
30989 parameter.
30990 * target.def (validate_dims): Add used parameter in DEFHOOK.
30991 * targhooks.h (default_goacc_validate_dims): Add used parameter.
30992
30993 2019-01-11 Jakub Jelinek <jakub@redhat.com>
30994
30995 PR middle-end/85956
30996 PR lto/88733
30997 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
30998 field.
30999 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
31000 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
31001 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
31002 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
31003
31004 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
31005
31006 PR rtl-optimization/87305
31007 * lra-assigns.c
31008 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
31009 for little endian pseudos used as paradoxical subreg.
31010
31011 2019-01-11 Jakub Jelinek <jakub@redhat.com>
31012
31013 PR tree-optimization/88693
31014 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
31015 for STRING_CSTs that don't contain any NUL characters in the first
31016 TREE_STRING_LENGTH bytes.
31017
31018 2019-01-11 Alan Modra <amodra@gmail.com>
31019
31020 PR 88777
31021 PR 88614
31022 * genattrtab.c (min_fn): Don't translate values.
31023 (min_attr_value): Return INT_MAX when the value can't be calculated.
31024 Return minimum among any values that can be calculated.
31025 (max_attr_value): Adjust.
31026
31027 2019-01-11 Jakub Jelinek <jakub@redhat.com>
31028
31029 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
31030
31031 2019-01-11 Steve Ellcey <sellcey@marvell.com>
31032
31033 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
31034 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
31035 (aarch64_return_call_with_max_clobbers): New function.
31036 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
31037 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
31038 argument.
31039 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
31040 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
31041 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
31042 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
31043 * cselib.c (cselib_process_insn): Add argument to
31044 targetm.hard_regno_call_part_clobbered call.
31045 * ira-conflicts.c (ira_build_conflicts): Ditto.
31046 * ira-costs.c (ira_tune_allocno_costs): Ditto.
31047 * lra-constraints.c (inherit_reload_reg): Ditto.
31048 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
31049 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
31050 argument. Call targetm.return_call_with_max_clobbers.
31051 Add argument to targetm.hard_regno_call_part_clobbered call.
31052 (calls_have_same_clobbers_p): New function.
31053 (process_bb_lives): Add call_insn and last_call_insn variables.
31054 Pass call_insn to check_pseudos_live_through_calls.
31055 Modify if stmt to check targetm.return_call_with_max_clobbers.
31056 Update setting of flush variable.
31057 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
31058 to false.
31059 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
31060 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
31061 targetm.hard_regno_call_part_clobbered call.
31062 * reginfo.c (choose_hard_reg_mode): Ditto.
31063 * regrename.c (check_new_reg_p): Ditto.
31064 * reload.c (find_equiv_reg): Ditto.
31065 * reload1.c (emit_reload_insns): Ditto.
31066 * sched-deps.c (deps_analyze_insn): Ditto.
31067 * sel-sched.c (init_regs_for_mode): Ditto.
31068 (mark_unavailable_hard_regs): Ditto.
31069 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
31070 * target.def (hard_regno_call_part_clobbered): Add insn argument.
31071 (return_call_with_max_clobbers): New target function.
31072 * doc/tm.texi: Regenerate.
31073 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
31074 * hooks.c (hook_bool_uint_mode_false): Change to
31075 hook_bool_insn_uint_mode_false.
31076 * hooks.h (hook_bool_uint_mode_false): Ditto.
31077
31078 2019-01-11 Steve Ellcey <sellcey@marvell.com>
31079
31080 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
31081 (aarch64_remove_extra_call_preserved_regs): New function.
31082 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
31083 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
31084 * doc/tm.texi: Regenerate.
31085 * final.c (get_call_reg_set_usage): Call new hook.
31086 * target.def (remove_extra_call_preserved_regs): New hook.
31087 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
31088 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
31089
31090 2019-01-11 Jakub Jelinek <jakub@redhat.com>
31091
31092 PR bootstrap/88714
31093 * passes.c (finish_optimization_passes): Call print_combine_total_stats
31094 inside of pass_combine_1 dump rather than pass_profile_1.
31095
31096 2019-01-11 Tom de Vries <tdevries@suse.de>
31097
31098 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
31099 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
31100 (PTX_NUM_PER_WORKER_BARRIERS): Define.
31101 (nvptx_apply_dim_limits): Prevent vector_length 64 and
31102 num_workers 16.
31103
31104 2019-01-11 Tom de Vries <tdevries@suse.de>
31105
31106 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
31107
31108 2019-01-11 Jan Beulich <jbeulich@suse.com>
31109
31110 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
31111 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
31112 sse2_cvtsi2sd): Add {l}.
31113 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
31114 syntax.
31115
31116 2019-01-10 Jakub Jelinek <jakub@redhat.com>
31117
31118 PR target/88785
31119 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
31120 define_expand.
31121 (*float<floatunssuffix>v2div2sf2): New define_insn.
31122 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
31123 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
31124 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
31125 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
31126 match_operands with "const0_operand" "C".
31127
31128 2019-01-10 Tamar Christina <tamar.christina@arm.com>
31129
31130 * config/aarch64/aarch64-builtins.c
31131 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
31132 (aarch64_init_simd_builtins): ...Here
31133
31134 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
31135
31136 PR rtl-optimization/87305
31137 * lra-assigns.c
31138 (setup_live_pseudos_and_spill_after_risky_transforms): Check
31139 allocation for big endian pseudos used as paradoxical subregs and
31140 spill them if it is wrong.
31141 * lra-constraints.c (lra_constraints): Add a comment.
31142
31143 2019-01-10 Richard Biener <rguenther@suse.de>
31144
31145 PR tree-optimization/88792
31146 * tree-ssa-pre.c (get_representative_for): Do not return a
31147 value-number here.
31148
31149 2019-01-10 Jakub Jelinek <jakub@redhat.com>
31150
31151 PR middle-end/84877
31152 PR bootstrap/88450
31153 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
31154 (assign_parm_setup_block): Do the argument slot realignment here
31155 instead.
31156
31157 2019-01-10 Stefan Agner <stefan@agner.ch>
31158
31159 PR target/88648
31160 * config/arm/arm.c (arm_option_override_internal): Force
31161 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
31162
31163 2019-01-10 Jakub Jelinek <jakub@redhat.com>
31164
31165 PR c/88568
31166 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
31167 DECL_EXTERNAL.
31168
31169 2019-01-10 Tamar Christina <tamar.christina@arm.com>
31170
31171 * config/arm/arm-builtins.c
31172 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
31173 (MAC_LANE_PAIR_QUALIFIERS): New.
31174 (arm_expand_builtin_args): Use it.
31175 (arm_expand_builtin_1): Likewise.
31176 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
31177 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
31178 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
31179 * config/arm/arm_neon.h:
31180 (vcadd_rot90_f16): New.
31181 (vcaddq_rot90_f16): New.
31182 (vcadd_rot270_f16): New.
31183 (vcaddq_rot270_f16): New.
31184 (vcmla_f16): New.
31185 (vcmlaq_f16): New.
31186 (vcmla_lane_f16): New.
31187 (vcmla_laneq_f16): New.
31188 (vcmlaq_lane_f16): New.
31189 (vcmlaq_laneq_f16): New.
31190 (vcmla_rot90_f16): New.
31191 (vcmlaq_rot90_f16): New.
31192 (vcmla_rot90_lane_f16): New.
31193 (vcmla_rot90_laneq_f16): New.
31194 (vcmlaq_rot90_lane_f16): New.
31195 (vcmlaq_rot90_laneq_f16): New.
31196 (vcmla_rot180_f16): New.
31197 (vcmlaq_rot180_f16): New.
31198 (vcmla_rot180_lane_f16): New.
31199 (vcmla_rot180_laneq_f16): New.
31200 (vcmlaq_rot180_lane_f16): New.
31201 (vcmlaq_rot180_laneq_f16): New.
31202 (vcmla_rot270_f16): New.
31203 (vcmlaq_rot270_f16): New.
31204 (vcmla_rot270_lane_f16): New.
31205 (vcmla_rot270_laneq_f16): New.
31206 (vcmlaq_rot270_lane_f16): New.
31207 (vcmlaq_rot270_laneq_f16): New.
31208 (vcadd_rot90_f32): New.
31209 (vcaddq_rot90_f32): New.
31210 (vcadd_rot270_f32): New.
31211 (vcaddq_rot270_f32): New.
31212 (vcmla_f32): New.
31213 (vcmlaq_f32): New.
31214 (vcmla_lane_f32): New.
31215 (vcmla_laneq_f32): New.
31216 (vcmlaq_lane_f32): New.
31217 (vcmlaq_laneq_f32): New.
31218 (vcmla_rot90_f32): New.
31219 (vcmlaq_rot90_f32): New.
31220 (vcmla_rot90_lane_f32): New.
31221 (vcmla_rot90_laneq_f32): New.
31222 (vcmlaq_rot90_lane_f32): New.
31223 (vcmlaq_rot90_laneq_f32): New.
31224 (vcmla_rot180_f32): New.
31225 (vcmlaq_rot180_f32): New.
31226 (vcmla_rot180_lane_f32): New.
31227 (vcmla_rot180_laneq_f32): New.
31228 (vcmlaq_rot180_lane_f32): New.
31229 (vcmlaq_rot180_laneq_f32): New.
31230 (vcmla_rot270_f32): New.
31231 (vcmlaq_rot270_f32): New.
31232 (vcmla_rot270_lane_f32): New.
31233 (vcmla_rot270_laneq_f32): New.
31234 (vcmlaq_rot270_lane_f32): New.
31235 (vcmlaq_rot270_laneq_f32): New.
31236 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
31237 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180,
31238 vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180,
31239 vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180,
31240 vcmlaq_lane270): New.
31241 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
31242 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
31243 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
31244 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
31245 (arm_option_reconfigure_globals): Use them.
31246 * config/arm/iterators.md (VDF, VQ_HSF): New.
31247 (VCADD, VCMLA): New.
31248 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
31249 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>):
31250 New.
31251 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
31252 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
31253
31254 2019-01-10 Tamar Christina <tamar.christina@arm.com>
31255
31256 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
31257 Add qualifier_lane_pair_index.
31258 (emit-rtl.h): Include.
31259 (TYPES_QUADOP_LANE_PAIR): New.
31260 (aarch64_simd_expand_args): Use it.
31261 (aarch64_simd_expand_builtin): Likewise.
31262 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum):
31263 New.
31264 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
31265 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
31266 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
31267 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
31268 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
31269 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF,
31270 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
31271 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF,
31272 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
31273 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF,
31274 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
31275 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
31276 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
31277 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
31278 Add __ARM_FEATURE_COMPLEX.
31279 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0,
31280 fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180,
31281 fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180,
31282 fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
31283 fcmlaq_lane270): New.
31284 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
31285 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,
31286 aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New.
31287 * config/aarch64/arm_neon.h:
31288 (vcadd_rot90_f16): New.
31289 (vcaddq_rot90_f16): New.
31290 (vcadd_rot270_f16): New.
31291 (vcaddq_rot270_f16): New.
31292 (vcmla_f16): New.
31293 (vcmlaq_f16): New.
31294 (vcmla_lane_f16): New.
31295 (vcmla_laneq_f16): New.
31296 (vcmlaq_lane_f16): New.
31297 (vcmlaq_rot90_lane_f16): New.
31298 (vcmla_rot90_laneq_f16): New.
31299 (vcmla_rot90_lane_f16): New.
31300 (vcmlaq_rot90_f16): New.
31301 (vcmla_rot90_f16): New.
31302 (vcmlaq_laneq_f16): New.
31303 (vcmla_rot180_laneq_f16): New.
31304 (vcmla_rot180_lane_f16): New.
31305 (vcmlaq_rot180_f16): New.
31306 (vcmla_rot180_f16): New.
31307 (vcmlaq_rot90_laneq_f16): New.
31308 (vcmlaq_rot270_laneq_f16): New.
31309 (vcmlaq_rot270_lane_f16): New.
31310 (vcmla_rot270_laneq_f16): New.
31311 (vcmlaq_rot270_f16): New.
31312 (vcmla_rot270_f16): New.
31313 (vcmlaq_rot180_laneq_f16): New.
31314 (vcmlaq_rot180_lane_f16): New.
31315 (vcmla_rot270_lane_f16): New.
31316 (vcadd_rot90_f32): New.
31317 (vcaddq_rot90_f32): New.
31318 (vcaddq_rot90_f64): New.
31319 (vcadd_rot270_f32): New.
31320 (vcaddq_rot270_f32): New.
31321 (vcaddq_rot270_f64): New.
31322 (vcmla_f32): New.
31323 (vcmlaq_f32): New.
31324 (vcmlaq_f64): New.
31325 (vcmla_lane_f32): New.
31326 (vcmla_laneq_f32): New.
31327 (vcmlaq_lane_f32): New.
31328 (vcmlaq_laneq_f32): New.
31329 (vcmla_rot90_f32): New.
31330 (vcmlaq_rot90_f32): New.
31331 (vcmlaq_rot90_f64): New.
31332 (vcmla_rot90_lane_f32): New.
31333 (vcmla_rot90_laneq_f32): New.
31334 (vcmlaq_rot90_lane_f32): New.
31335 (vcmlaq_rot90_laneq_f32): New.
31336 (vcmla_rot180_f32): New.
31337 (vcmlaq_rot180_f32): New.
31338 (vcmlaq_rot180_f64): New.
31339 (vcmla_rot180_lane_f32): New.
31340 (vcmla_rot180_laneq_f32): New.
31341 (vcmlaq_rot180_lane_f32): New.
31342 (vcmlaq_rot180_laneq_f32): New.
31343 (vcmla_rot270_f32): New.
31344 (vcmlaq_rot270_f32): New.
31345 (vcmlaq_rot270_f64): New.
31346 (vcmla_rot270_lane_f32): New.
31347 (vcmla_rot270_laneq_f32): New.
31348 (vcmlaq_rot270_lane_f32): New.
31349 (vcmlaq_rot270_laneq_f32): New.
31350 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
31351 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
31352 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
31353 (FCADD, FCMLA): New.
31354 (rot): New.
31355 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
31356
31357 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
31358
31359 PR other/16615
31360
31361 * config/pa/pa.c: Change "can not" to "cannot".
31362 * gimple-ssa-evrp-analyze.c: Likewise.
31363 * ipa-icf.c: Likewise.
31364 * ipa-polymorphic-call.c: Likewise.
31365 * ipa-pure-const.c: Likewise.
31366 * lra-constraints.c: Likewise.
31367 * lra-remat.c: Likewise.
31368 * reload1.c: Likewise.
31369 * reorg.c: Likewise.
31370 * tree-ssa-uninit.c: Likewise.
31371
31372 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
31373
31374 PR other/16615
31375
31376 * Makefile.in: Mechanically replace "can not" with "cannot".
31377 * alias.c: Likewise.
31378 * builtins.c: Likewise.
31379 * calls.c: Likewise.
31380 * cgraph.c: Likewise.
31381 * cgraph.h: Likewise.
31382 * cgraphclones.c: Likewise.
31383 * cgraphunit.c: Likewise.
31384 * combine-stack-adj.c: Likewise.
31385 * combine.c: Likewise.
31386 * common/config/i386/i386-common.c: Likewise.
31387 * config/aarch64/aarch64.c: Likewise.
31388 * config/alpha/sync.md: Likewise.
31389 * config/arc/arc.c: Likewise.
31390 * config/arc/predicates.md: Likewise.
31391 * config/arm/arm-c.c: Likewise.
31392 * config/arm/arm.c: Likewise.
31393 * config/arm/arm.h: Likewise.
31394 * config/arm/arm.md: Likewise.
31395 * config/arm/cortex-r4f.md: Likewise.
31396 * config/csky/csky.c: Likewise.
31397 * config/csky/csky.h: Likewise.
31398 * config/darwin-f.c: Likewise.
31399 * config/epiphany/epiphany.md: Likewise.
31400 * config/i386/i386.c: Likewise.
31401 * config/i386/sol2.h: Likewise.
31402 * config/m68k/m68k.c: Likewise.
31403 * config/mcore/mcore.h: Likewise.
31404 * config/microblaze/microblaze.md: Likewise.
31405 * config/mips/20kc.md: Likewise.
31406 * config/mips/sb1.md: Likewise.
31407 * config/nds32/nds32.c: Likewise.
31408 * config/nds32/predicates.md: Likewise.
31409 * config/pa/pa.c: Likewise.
31410 * config/rs6000/e300c2c3.md: Likewise.
31411 * config/rs6000/rs6000.c: Likewise.
31412 * config/s390/s390.h: Likewise.
31413 * config/sh/sh.c: Likewise.
31414 * config/sh/sh.md: Likewise.
31415 * config/spu/vmx2spu.h: Likewise.
31416 * cprop.c: Likewise.
31417 * dbxout.c: Likewise.
31418 * df-scan.c: Likewise.
31419 * doc/cfg.texi: Likewise.
31420 * doc/extend.texi: Likewise.
31421 * doc/fragments.texi: Likewise.
31422 * doc/gty.texi: Likewise.
31423 * doc/invoke.texi: Likewise.
31424 * doc/lto.texi: Likewise.
31425 * doc/md.texi: Likewise.
31426 * doc/objc.texi: Likewise.
31427 * doc/rtl.texi: Likewise.
31428 * doc/tm.texi: Likewise.
31429 * dse.c: Likewise.
31430 * emit-rtl.c: Likewise.
31431 * emit-rtl.h: Likewise.
31432 * except.c: Likewise.
31433 * expmed.c: Likewise.
31434 * expr.c: Likewise.
31435 * fold-const.c: Likewise.
31436 * genautomata.c: Likewise.
31437 * gimple-fold.c: Likewise.
31438 * hard-reg-set.h: Likewise.
31439 * ifcvt.c: Likewise.
31440 * ipa-comdats.c: Likewise.
31441 * ipa-cp.c: Likewise.
31442 * ipa-devirt.c: Likewise.
31443 * ipa-fnsummary.c: Likewise.
31444 * ipa-icf.c: Likewise.
31445 * ipa-inline-transform.c: Likewise.
31446 * ipa-inline.c: Likewise.
31447 * ipa-polymorphic-call.c: Likewise.
31448 * ipa-profile.c: Likewise.
31449 * ipa-prop.c: Likewise.
31450 * ipa-pure-const.c: Likewise.
31451 * ipa-reference.c: Likewise.
31452 * ipa-split.c: Likewise.
31453 * ipa-visibility.c: Likewise.
31454 * ipa.c: Likewise.
31455 * ira-build.c: Likewise.
31456 * ira-color.c: Likewise.
31457 * ira-conflicts.c: Likewise.
31458 * ira-costs.c: Likewise.
31459 * ira-int.h: Likewise.
31460 * ira-lives.c: Likewise.
31461 * ira.c: Likewise.
31462 * ira.h: Likewise.
31463 * loop-invariant.c: Likewise.
31464 * loop-unroll.c: Likewise.
31465 * lower-subreg.c: Likewise.
31466 * lra-assigns.c: Likewise.
31467 * lra-constraints.c: Likewise.
31468 * lra-eliminations.c: Likewise.
31469 * lra-lives.c: Likewise.
31470 * lra-remat.c: Likewise.
31471 * lra-spills.c: Likewise.
31472 * lra.c: Likewise.
31473 * lto-cgraph.c: Likewise.
31474 * lto-streamer-out.c: Likewise.
31475 * postreload-gcse.c: Likewise.
31476 * predict.c: Likewise.
31477 * profile-count.h: Likewise.
31478 * profile.c: Likewise.
31479 * recog.c: Likewise.
31480 * ree.c: Likewise.
31481 * reload.c: Likewise.
31482 * reload1.c: Likewise.
31483 * reorg.c: Likewise.
31484 * resource.c: Likewise.
31485 * rtl.def: Likewise.
31486 * rtl.h: Likewise.
31487 * rtlanal.c: Likewise.
31488 * sched-deps.c: Likewise.
31489 * sched-ebb.c: Likewise.
31490 * sched-rgn.c: Likewise.
31491 * sel-sched-ir.c: Likewise.
31492 * sel-sched.c: Likewise.
31493 * shrink-wrap.c: Likewise.
31494 * simplify-rtx.c: Likewise.
31495 * symtab.c: Likewise.
31496 * target.def: Likewise.
31497 * toplev.c: Likewise.
31498 * tree-call-cdce.c: Likewise.
31499 * tree-cfg.c: Likewise.
31500 * tree-complex.c: Likewise.
31501 * tree-core.h: Likewise.
31502 * tree-eh.c: Likewise.
31503 * tree-inline.c: Likewise.
31504 * tree-loop-distribution.c: Likewise.
31505 * tree-nrv.c: Likewise.
31506 * tree-profile.c: Likewise.
31507 * tree-sra.c: Likewise.
31508 * tree-ssa-alias.c: Likewise.
31509 * tree-ssa-dce.c: Likewise.
31510 * tree-ssa-dom.c: Likewise.
31511 * tree-ssa-forwprop.c: Likewise.
31512 * tree-ssa-loop-im.c: Likewise.
31513 * tree-ssa-loop-ivcanon.c: Likewise.
31514 * tree-ssa-loop-ivopts.c: Likewise.
31515 * tree-ssa-loop-niter.c: Likewise.
31516 * tree-ssa-phionlycprop.c: Likewise.
31517 * tree-ssa-phiopt.c: Likewise.
31518 * tree-ssa-propagate.c: Likewise.
31519 * tree-ssa-threadedge.c: Likewise.
31520 * tree-ssa-threadupdate.c: Likewise.
31521 * tree-ssa-uninit.c: Likewise.
31522 * tree-ssanames.c: Likewise.
31523 * tree-streamer-out.c: Likewise.
31524 * tree.c: Likewise.
31525 * tree.h: Likewise.
31526 * vr-values.c: Likewise.
31527
31528 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
31529
31530 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
31531 (ix86_split_xorsign): Ditto.
31532 * config/i386/i386.c (ix86_expand_xorsign): New function.
31533 (ix86_split_xorsign): Ditto.
31534 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
31535 (xorsign<mode>3): New expander.
31536 (xorsign<mode>3_1): New insn_and_split pattern.
31537 * config/i386/sse.md (xorsign<mode>3): New expander.
31538
31539 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
31540
31541 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
31542 (*tablejump_sp64): Likewise.
31543 (*tablejump<P:mode>): ...this.
31544 (*call_address_sp32): Merge into...
31545 (*call_address_sp64): Likewise.
31546 (*call_address<P:mode>): ...this.
31547 (*call_symbolic_sp32): Merge into...
31548 (*call_symbolic_sp64): Likewise.
31549 (*call_symbolic<P:mode>): ...this.
31550 (call_value): Remove constraint and add predicate.
31551 (*call_value_address_sp32): Merge into...
31552 (*call_value_address_sp64): Likewise.
31553 (*call_value_address<P:mode>): ...this.
31554 (*call_value_symbolic_sp32): Merge into...
31555 (*call_value_symbolic_sp64): Likewise.
31556 (*call_value_symbolic<P:mode>): ...this.
31557 (*sibcall_symbolic_sp32): Merge into...
31558 (*sibcall_symbolic_sp64): Likewise.
31559 (*sibcall_symbolic<P:mode>): ...this.
31560 (sibcall_value): Remove constraint and add predicate.
31561 (*sibcall_value_symbolic_sp32): Merge into...
31562 (*sibcall_value_symbolic_sp64): Likewise.
31563 (*sibcall_value_symbolic<P:mode>): ...this.
31564 (window_save): Minor tweak.
31565 (*branch_sp32): Merge into...
31566 (*branch_sp64): Likewise.
31567 (*branch<P:mode>): ...this.
31568
31569 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
31570 James Clarke <jrtc27@jrtc27.com>
31571
31572 PR target/84010
31573 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
31574 consistently in TLS address generation and adjust code to the renaming
31575 of patterns. Mark calls to __tls_get_addr as const.
31576 * config/sparc/sparc.md (tgd_hi22): Turn into...
31577 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
31578 (tgd_lo10): Turn into...
31579 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
31580 (tgd_add32): Merge into...
31581 (tgd_add64): Likewise.
31582 (tgd_add<P:mode>): ...this and use Pmode throughout.
31583 (tldm_hi22): Turn into...
31584 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
31585 (tldm_lo10): Turn into...
31586 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
31587 (tldm_add32): Merge into...
31588 (tldm_add64): Likewise.
31589 (tldm_add<P:mode>): ...this and use Pmode throughout.
31590 (tldm_call32): Merge into...
31591 (tldm_call64): Likewise.
31592 (tldm_call<P:mode>): ...this and use Pmode throughout.
31593 (tldo_hix22): Turn into...
31594 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
31595 (tldo_lox10): Turn into...
31596 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
31597 (tldo_add32): Merge into...
31598 (tldo_add64): Likewise.
31599 (tldo_add<P:mode>): ...this and use Pmode throughout.
31600 (tie_hi22): Turn into...
31601 (tie_hi22<P:mode>): ...this and use Pmode throughout.
31602 (tie_lo10): Turn into...
31603 (tie_lo10<P:mode>): ...this and use Pmode throughout.
31604 (tie_ld64): Use DImode throughout.
31605 (tie_add32): Merge into...
31606 (tie_add64): Likewise.
31607 (tie_add<P:mode>): ...this and use Pmode throughout.
31608 (tle_hix22_sp32): Merge into...
31609 (tle_hix22_sp64): Likewise.
31610 (tle_hix22<P:mode>): ...this and use Pmode throughout.
31611 (tle_lox22_sp32): Merge into...
31612 (tle_lox22_sp64): Likewise.
31613 (tle_lox22<P:mode>): ...this and use Pmode throughout.
31614 (*tldo_ldub_sp32): Merge into...
31615 (*tldo_ldub_sp64): Likewise.
31616 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
31617 (*tldo_ldub1_sp32): Merge into...
31618 (*tldo_ldub1_sp64): Likewise.
31619 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
31620 (*tldo_ldub2_sp32): Merge into...
31621 (*tldo_ldub2_sp64): Likewise.
31622 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
31623 (*tldo_ldsb1_sp32): Merge into...
31624 (*tldo_ldsb1_sp64): Likewise.
31625 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
31626 (*tldo_ldsb2_sp32): Merge into...
31627 (*tldo_ldsb2_sp64): Likewise.
31628 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
31629 (*tldo_ldub3_sp64): Use DImode throughout.
31630 (*tldo_ldsb3_sp64): Likewise.
31631 (*tldo_lduh_sp32): Merge into...
31632 (*tldo_lduh_sp64): Likewise.
31633 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
31634 (*tldo_lduh1_sp32): Merge into...
31635 (*tldo_lduh1_sp64): Likewise.
31636 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
31637 (*tldo_ldsh1_sp32): Merge into...
31638 (*tldo_ldsh1_sp64): Likewise.
31639 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
31640 (*tldo_lduh2_sp64): Use DImode throughout.
31641 (*tldo_ldsh2_sp64): Likewise.
31642 (*tldo_lduw_sp32): Merge into...
31643 (*tldo_lduw_sp64): Likewise.
31644 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
31645 (*tldo_lduw1_sp64): Use DImode throughout.
31646 (*tldo_ldsw1_sp64): Likewise.
31647 (*tldo_ldx_sp64): Likewise.
31648 (*tldo_stb_sp32): Merge into...
31649 (*tldo_stb_sp64): Likewise.
31650 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
31651 (*tldo_sth_sp32): Merge into...
31652 (*tldo_sth_sp64): Likewise.
31653 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
31654 (*tldo_stw_sp32): Merge into...
31655 (*tldo_stw_sp64): Likewise.
31656 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
31657 (*tldo_stx_sp64): Use DImode throughout.
31658
31659 2018-01-09 Sudakshina Das <sudi.das@arm.com>
31660
31661 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
31662 check configure option to set BTI and Return Address Signing.
31663 * configure.ac: Add --enable-standard-branch-protection and
31664 --disable-standard-branch-protection.
31665 * configure: Regenerated.
31666 * doc/install.texi: Document the same.
31667
31668 2018-01-09 Sudakshina Das <sudi.das@arm.com>
31669 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
31670
31671 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
31672 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
31673 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
31674 if bti is enabled.
31675 * config/aarch64/aarch64-bti-insert.c: New file.
31676 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
31677 pass.
31678 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
31679 new bti pass.
31680 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
31681 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
31682 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
31683 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
31684
31685 2018-01-09 Sudakshina Das <sudi.das@arm.com>
31686
31687 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
31688 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
31689 Disable bti for -mbranch-protection=none.
31690 (aarch64_handle_standard_branch_protection): Enable bti for
31691 -mbranch-protection=standard.
31692 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
31693 -mbranch-protection.
31694 (aarch64_bti_enabled): Check if bti is enabled.
31695 * config/aarch64/aarch64.opt: Declare target variable.
31696 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
31697
31698 2018-01-09 Sudakshina Das <sudi.das@arm.com>
31699
31700 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
31701 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
31702 (aarch64_expand_epilogue): Likewise.
31703 (aarch64_output_mi_thunk): Likewise.
31704 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
31705 TAILCALL_ADDR_REGS to x16 and x17.
31706 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
31707
31708 2018-01-09 Sudakshina Das <sudi.das@arm.com>
31709
31710 * config/aarch64/aarch64-option-extensions.def: Define
31711 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
31712 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
31713 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
31714 (AARCH64_FL_PREDRES): New.
31715 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
31716 AARCH64_FL_PREDRES by default.
31717 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
31718
31719 2018-01-09 Sudakshina Das <sudi.das@arm.com>
31720
31721 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
31722 ARMv8.5-A.
31723 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
31724 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
31725 * doc/invoke.texi: Document ARMv8.5-A.
31726
31727 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
31728
31729 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
31730 (xorsign<mode>3): Likewise.
31731
31732 2019-01-09 Jelinek <jakub@redhat.com>
31733
31734 PR middle-end/88758
31735 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
31736 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
31737
31738 PR rtl-optimization/88331
31739 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
31740 not currently_expanding_to_rtl.
31741
31742 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
31743
31744 * doc/invoke.texi (-Os): Remove trailing spaces.
31745 (-finline-functions): Remove reference to -O2.
31746
31747 2019-01-08 Jakub Jelinek <jakub@redhat.com>
31748
31749 PR rtl-optimization/79593
31750 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
31751
31752 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
31753 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
31754
31755 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
31756
31757 PR bootstrap/88721
31758 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
31759 to -1 on entry.
31760
31761 PR debug/88723
31762 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
31763 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
31764
31765 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
31766
31767 PR target/88717
31768 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
31769 ix86_avx_u128_mode_entry.
31770
31771 2019-01-08 Martin Liska <mliska@suse.cz>
31772
31773 PR tree-optimization/88753
31774 * tree-switch-conversion.c (switch_conversion::build_one_array):
31775 Come up with local variable constructor. Convert first to
31776 type of constructor values.
31777
31778 2019-01-08 Richard Biener <rguenther@suse.de>
31779
31780 PR tree-optimization/86554
31781 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
31782 rpo_avail): Move earlier.
31783 (visit_nary_op): When value-numbering to expressions
31784 with different overflow behavior make sure there's an
31785 available expression on the path.
31786
31787 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
31788
31789 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
31790 aarch64_parse_branch_protection,
31791 struct aarch64_branch_protect_type,
31792 aarch64_handle_no_branch_protection,
31793 aarch64_handle_standard_branch_protection,
31794 aarch64_validate_mbranch_protection,
31795 aarch64_handle_pac_ret_protection,
31796 aarch64_handle_attr_branch_protection,
31797 accepted_branch_protection_string,
31798 aarch64_pac_ret_subtypes,
31799 aarch64_branch_protect_types,
31800 aarch64_handle_pac_ret_leaf): Define.
31801 (aarch64_override_options_after_change_1, aarch64_override_options):
31802 Add check for accepted_branch_protection_string.
31803 (aarch64_option_save): Save accepted_branch_protection_string.
31804 (aarch64_option_restore): Save accepted_branch_protection_string.
31805 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
31806 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
31807 msign-return-address.
31808 * doc/invoke.texi: Add mbranch-protection.
31809
31810 2019-01-08 Alan Modra <amodra@gmail.com>
31811
31812 PR target/88614
31813 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
31814 Delete "unknownp" parameter. Adjust callers. Handle
31815 CONST_INT, PLUS, MINUS, and MULT.
31816 (attr_value_aligned): Renamed from or_attr_value.
31817 (min_attr_value): Return INT_MIN for unhandled rtl case..
31818 (min_fn): ..and translate to INT_MAX here.
31819 (write_length_unit_log): Modify to cope without "unknown".
31820 (write_attr_value): Handle IF_THEN_ELSE.
31821
31822 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
31823
31824 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
31825 optimization for masked stores.
31826
31827 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
31828
31829 PR middle-end/88567
31830 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
31831 output vector directly to duplicate_and_interleave instead of
31832 going through a temporary. Postpone insertion of ctor_seq to
31833 the end of the loop.
31834
31835 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
31836
31837 PR target/86891
31838 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
31839 unsigned_p. Handle signed and unsigned overflow correction as
31840 required.
31841 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
31842 prototype.
31843 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
31844 for operand 2.
31845 (add<mode>3_compareV_imm): Make this callable for expanding.
31846 (subv<GPI:mode>4): Use register_operand for operand 1. Use
31847 aarch64_plus_operand for operand 2.
31848 (subv<GPI:mode>_insn): New insn pattern.
31849 (subv<GPI:mode>_imm): Likewise.
31850 (negv<GPI:mode>3): New expand pattern.
31851 (negv<GPI:mode>_insn): New insn pattern.
31852 (negv<GPI:mode>_cmp_only): Likewise.
31853 (cmpv<GPI:mode>_insn): Likewise.
31854 (subvti4): Use register_operand for operand 1. Update call to
31855 aarch64_expand_subvti.
31856 (usubvti4): Likewise.
31857 (negvti3): New expand pattern.
31858 (negdi_carryout): New insn pattern.
31859 (negvdi_carryinV): New insn pattern.
31860 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
31861 version the named version.
31862 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
31863 operands.
31864 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
31865 patterns.
31866 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
31867 patterns.
31868 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
31869 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
31870 (sub<mode>3_carryinCV): Delete.
31871 (sub<GPI:mode>3_carryinV): New expand pattern.
31872 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
31873
31874 2019-01-07 Richard Biener <rguenther@suse.de>
31875
31876 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
31877 of tree_operand_hash.
31878
31879 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
31880
31881 PR tree-optimization/88598
31882 * tree.h (single_nonzero_element): Declare.
31883 * tree.c (single_nonzero_element): New function.
31884 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
31885 if I is the only nonzero element of CST.
31886
31887 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
31888
31889 PR tree-optimization/88598
31890 * tree.h (initializer_each_zero_or_onep): Declare.
31891 * tree.c (initializer_each_zero_or_onep): New function.
31892 (signed_or_unsigned_type_for): Handle float types too.
31893 (unsigned_type_for, signed_type_for): Update comments accordingly.
31894 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
31895 x & { 0 or -1, 0 or -1, ... }.
31896
31897 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
31898
31899 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
31900 with x86_64-pc-linux-gnu.
31901
31902 2019-01-07 Tom de Vries <tdevries@suse.de>
31903
31904 PR target/85486
31905 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
31906 function.
31907 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
31908 routines.
31909
31910 2019-01-07 Jakub Jelinek <jakub@redhat.com>
31911
31912 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
31913 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
31914 TARGET_AVX512F as condition.
31915
31916 PR debug/88723
31917 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
31918 const_not_ok_for_debug_p target hook.
31919 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
31920 on UNSPEC and subexpressions thereof if all subexpressions of the
31921 UNSPEC are CONSTANT_P.
31922
31923 PR tree-optimization/88676
31924 * tree-ssa-phiopt.c (two_value_replacement): New function.
31925 (tree_ssa_phiopt_worker): Call it.
31926
31927 PR sanitizer/88619
31928 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
31929 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
31930
31931 PR c++/85052
31932 * tree-vect-generic.c: Include insn-config.h and recog.h.
31933 (expand_vector_piecewise): Add defaulted ret_type argument,
31934 if non-NULL, use that in preference to type for the result type.
31935 (expand_vector_parallel): Formatting fix.
31936 (do_vec_conversion, do_vec_narrowing_conversion,
31937 expand_vector_conversion): New functions.
31938 (expand_vector_operations_1): Call expand_vector_conversion
31939 for VEC_CONVERT ifn calls.
31940 * internal-fn.def (VEC_CONVERT): New internal function.
31941 * internal-fn.c (expand_VEC_CONVERT): New function.
31942 * fold-const-call.c (fold_const_vec_convert): New function.
31943 (fold_const_call): Use it for CFN_VEC_CONVERT.
31944 * doc/extend.texi (__builtin_convertvector): Document.
31945
31946 2019-01-07 Tom de Vries <tdevries@suse.de>
31947
31948 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
31949 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
31950 vector_red_partition, vector_red_sym): New global variables.
31951 (nvptx_option_override): Initialize vector_red_sym.
31952 (nvptx_declare_function_name): Restore red_partition register.
31953 (nvptx_file_end): Emit code to declare the vector reduction variables.
31954 (nvptx_output_red_partition): New function.
31955 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
31956 large vector reductions.
31957 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
31958 (nvptx_init_builtins): Add VECTOR_ADDR.
31959 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
31960 Handle nvptx_expand_shared_addr.
31961 (nvptx_get_shared_red_addr): Add vector argument and handle large
31962 vectors.
31963 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
31964 large vectors.
31965 (nvptx_goacc_reduction_init): Likewise.
31966 (nvptx_goacc_reduction_fini): Likewise.
31967 (nvptx_goacc_reduction_teardown): Likewise.
31968 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
31969 init,fini,teardown}.
31970 (nvptx_init_axis_predicate): Initialize vector_red_partition.
31971 (nvptx_set_current_function): Init vector_red_partition.
31972 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
31973 (nvptx_red_partition): New insn.
31974 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
31975
31976 2019-01-07 Tom de Vries <tdevries@suse.de>
31977
31978 PR target/85381
31979 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
31980 empty loops.
31981
31982 2019-01-07 Tom de Vries <tdevries@suse.de>
31983
31984 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
31985 (nvptx_option_override): Init oacc_bcast_partition.
31986 (nvptx_init_oacc_workers): New function.
31987 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
31988 (nvptx_needs_shared_bcast): New function.
31989 (nvptx_find_par): Generalize to enable vectors to use shared-memory
31990 to propagate state.
31991 (nvptx_shared_propagate): Initialize vector bcast partition and
31992 synchronization state.
31993 (nvptx_single): Generalize to enable vectors to use shared-memory
31994 to propagate state.
31995 (nvptx_process_pars): Likewise.
31996 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
31997 * config/nvptx/nvptx.h (struct machine_function): Add
31998 bcast_partition and sync_bar members.
31999
32000 2019-01-07 Tom de Vries <tdevries@suse.de>
32001
32002 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
32003 (nvptx_apply_dim_limits): New function.
32004 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
32005 PTX_WARP_SIZE.
32006
32007 2019-01-07 Tom de Vries <tdevries@suse.de>
32008
32009 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
32010 as late as possible.
32011
32012 2019-01-07 Tom de Vries <tdevries@suse.de>
32013
32014 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
32015 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
32016 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
32017 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
32018 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
32019
32020 2019-01-07 Tom de Vries <tdevries@suse.de>
32021
32022 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
32023
32024 2019-01-07 Tom de Vries <tdevries@suse.de>
32025
32026 * omp-offload.c (oacc_get_min_dim): New function.
32027 * omp-offload.h (oacc_get_min_dim): Declare.
32028
32029 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
32030
32031 PR target/88521
32032 * config/i386/i386.c (function_value_ms_64): Return small sturct in
32033 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
32034
32035 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
32036
32037 PR tree-opt/86020
32038 Revert:
32039 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
32040
32041 * ipa-inline.c (edge_badness): Use inlined_time instead of
32042 inline_summaries->get.
32043
32044 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
32045
32046 * opts.c (enable_fdo_optimizations): Enable
32047 version-loops-for-strides, loop-interchange, unrol-and-jam
32048 and tree-loop-distribution.
32049 * invoke.texi: Document newly enabled options.
32050
32051 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
32052
32053 * doc/invoke.texi (max-inline-insns-small): New parameters.
32054 * ipa-inline.c (want_early_inline_function_p): simplify.
32055 (want_inline_small_function_p): Fix pasto from previous patch;
32056 use max-inline-insns-small bound.
32057 * params.def (max-inline-insns-small): New param.
32058 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
32059 variables correctly.
32060
32061 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
32062
32063 * doc/invoke.texi: Document max-inline-insns-size,
32064 uninlined-function-insns, uninlined-function-time,
32065 uninlined-thunk-insns and uninlined-thunk-time.
32066 * params.def: Add max-inline-insns-size,
32067 uninlined-function-insns, uninlined-function-time,
32068 uninlined-thunk-insns and uninlined-thunk-time.
32069 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
32070 new parameters.
32071 * ipa-inline.c (can_inline_edge_by_limits_p,
32072 want_inline_small_function_p): Use new parameters.
32073
32074 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
32075
32076 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
32077
32078 2019-01-05 Jakub Jelinek <jakub@redhat.com>
32079
32080 PR middle-end/82564
32081 PR target/88620
32082 * expr.c (expand_assignment): For calls returning VLA structures
32083 if to_rtx is not a MEM, force it into a stack temporary.
32084
32085 PR debug/88635
32086 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
32087 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
32088 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
32089 subexpressions of both operands.
32090 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
32091 subrtxes are CONSTANT_P.
32092 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
32093 2018-11-09 changes.
32094
32095 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
32096
32097 * params.def (hot-bb-count-ws-permille): Set to 990.
32098
32099 2019-01-04 Martin Sebor <msebor@redhat.com>
32100
32101 PR c/88546
32102 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
32103 leaf.
32104
32105 2019-01-04 Martin Sebor <msebor@redhat.com>
32106
32107 PR c/88363
32108 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
32109
32110 2019-01-04 Jakub Jelinek <jakub@redhat.com>
32111
32112 * gdbinit.in: Turn off pagination for the skip commands, restore
32113 it to previous state afterwards.
32114
32115 2019-01-04 Jakub Jelinek <jakub@redhat.com>
32116
32117 PR target/88594
32118 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
32119 of GET_MODE (opN) as modes of the libcall arguments.
32120
32121 2019-01-04 Jan Beulich <jbeulich@suse.com>
32122
32123 * config/i386/sse.md
32124 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
32125 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
32126 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
32127 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
32128 avx512f_vmcmp<mode>3<round_saeonly_name>,
32129 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
32130 avx512f_maskcmp<mode>3,
32131 <avx512>_cvt<ssemodesuffix>2mask<mode>,
32132 <avx512>_cvt<ssemodesuffix>2mask<mode>,
32133 *<avx512>_cvtmask2<ssemodesuffix><mode>,
32134 *<avx512>_cvtmask2<ssemodesuffix><mode>,
32135 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
32136 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
32137 <avx512>_gt<mode>3<mask_scalar_merge_name>,
32138 <avx512>_gt<mode>3<mask_scalar_merge_name>,
32139 <avx512>_testm<mode>3<mask_scalar_merge_name>,
32140 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
32141 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
32142 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
32143 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
32144 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
32145 avx512cd_maskb_vec_dup<mode>,
32146 avx512cd_maskw_vec_dup<mode>,
32147 avx512dq_fpclass<mode><mask_scalar_merge_name>,
32148 avx512dq_vmfpclass<mode>,
32149 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
32150 instead of =Yk.
32151
32152 2019-01-03 Martin Sebor <msebor@redhat.com>
32153
32154 PR tree-optimization/88659
32155 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
32156
32157 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
32158
32159 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
32160 unaligned vsx and avoid lxvd2x/stxvd2x.
32161 (gen_lvx_v4si_move): New function.
32162
32163 2019-01-03 Tom de Vries <tdevries@suse.de>
32164
32165 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
32166 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
32167 function.
32168 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
32169
32170 2019-01-03 Tom de Vries <tdevries@suse.de>
32171
32172 * config/nvptx/nvptx.c (struct offload_attrs): New.
32173 (populate_offload_attrs): New function. Factor mask extraction out of
32174 nvptx_reorg. Add extraction of dimensions.
32175 (nvptx_reorg): Use populate_offload_attrs.
32176
32177 2019-01-03 Tom de Vries <tdevries@suse.de>
32178
32179 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
32180 cases for oacc_min_dims_p and routine_p. Add asserts for
32181 oacc_default_dims_p and offload_region_p.
32182
32183 2019-01-03 Tom de Vries <tdevries@suse.de>
32184
32185 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
32186 factored out of ...
32187 (nvptx_goacc_validate_dims): ... here.
32188
32189 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
32190
32191 PR tree-optimization/85574
32192 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
32193 structure.
32194 (struct ssa_equip_hash_traits): Declare.
32195 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
32196
32197 2019-01-03 Jakub Jelinek <jakub@redhat.com>
32198
32199 PR debug/88644
32200 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
32201 change it to qualified_type.
32202
32203 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
32204
32205 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
32206 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
32207
32208 2019-01-02 Martin Sebor <msebor@redhat.com>
32209 Jeff Law <law@redhat.com>
32210
32211 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
32212 (get_range_strlen_tree): Update appropriately.
32213 (get_range_strlen)
32214 * gimple-fold.h (get_range_strlen): Drop unused last argument.
32215
32216 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
32217 rather than set_range_info.
32218 * tree-ssa-strlen.c (set_strlen_range): Extracted from
32219 maybe_set_strlen_range. Handle potentially boundary crossing
32220 cases more conservatively.
32221 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
32222 Call set_strlen_range.
32223 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
32224
32225 PR middle-end/88663
32226 * gimple-fold.c (get_range_strlen): Update prototype to no longer
32227 need the flexp argument.
32228 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
32229 from calls to get_range_strlen. Update comments. Just update
32230 VAL for an unterminated const char array and let the reset of the
32231 code handle it normally. No longer try to set *flexp. Adjust
32232 return value.
32233 (get_range_strlen): Update for the new get_range_strlen API.
32234 (get_maxval_strlen): Similarly.
32235 (gimple_fold_builtin_strlen): Handle update meaning of return value
32236 from get_range_strlen.
32237 * gimple-ssa-sprintf.c (get_string_length): Update for the new
32238 get_range_strlen API.
32239
32240 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
32241
32242 PR lto/88130
32243 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
32244 false at WPA time when body was removed.
32245
32246 2019-01-02 Martin Liska <mliska@suse.cz>
32247
32248 PR tree-optimization/88650
32249 * predict.c (set_even_probabilities): Calculate probability
32250 remainer only when really used.
32251
32252 2019-01-02 Richard Biener <rguenther@suse.de>
32253
32254 PR middle-end/88651
32255 * tree-data-ref.c (analyze_subscript_affine_affine): Use
32256 widest_ints when mangling max_stmt_execution results.
32257
32258 2019-01-02 Richard Biener <rguenther@suse.de>
32259
32260 PR tree-optimization/88621
32261 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
32262 bitfields when canoncalizing.
32263
32264 2019-01-02 Richard Biener <rguenther@suse.de>
32265
32266 PR target/87545
32267 * config/i386/x86-tune-costs.h (intel_cost): Adjust
32268 cost of cheap SSE instruction.
32269
32270 2019-01-02 Richard Biener <rguenther@suse.de>
32271
32272 PR ipa/85574
32273 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
32274 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
32275 function.
32276 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
32277 set after UIDs before splitting them.
32278
32279 2019-01-01 Martin Sebor <msebor@redhat.com>
32280 Jeff Law <law@redhat.com>
32281
32282 * gimple-fold.c (get_range_strlen_tree): Record if the computed
32283 length is optimistic. If it is, then arrange to compute the
32284 conservative length as well.
32285
32286 * gimple-fold.h (get_range_strlen): Update prototype.
32287 * builtins.c (check_access): Update call to get_range_strlen to use
32288 c_strlen_data pointer. Change various variable accesses to instead
32289 pull data from the c_strlen_data structure.
32290 (check_strncat_sizes, expand_builtin_strncat): Likewise.
32291 * calls.c (maybe_warn_nonstring_arg): Likewise.
32292 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
32293 minimum length if maximum lengh is unknown.
32294 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
32295 that used c_strlen, it's no longer needed. Restructure slightly.
32296 (format_string): Set unlikely range appropriately.
32297 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
32298 formatting issues.
32299 (get_range_strlen): Accept c_strlen_data pointer for external
32300 call sites as well. Pass through to call to internal get_range_strlen.
32301 Adjust minlen, maxlen and maxbound as needed.
32302 (get_maxval_strlen): Update comments.
32303 (gimple_fold_builtin_strlen): Update call to get_range_strlen
32304 to use c_strlen_data pointer. Change variable accesses to instead
32305 use c_strlen_data data members.
32306
32307 * gimple-fold.c (get_range_strlen): Update prototype.
32308 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
32309 local variables. Use pdata to return information to caller.
32310 Update calls to get_range_strlen. Update pdata->maxbound.
32311 (get_range_strlen -- static version): Similarly.
32312 (get_range_strlen -- extern version): Update for internal
32313 get_range_strlen API change. Convert to external data format.
32314 (get_maxval_strlen): Similarly.
32315
32316 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
32317
32318 * coverage.c (get_coverage_counts): Use current_function_decl.
32319 * profile.c (read_thunk_profile): New function.
32320 (branch_prob): Add THUNK parameter.
32321 * tree-profile.c (tree_profiling): Handle thunks.
32322 * value-prof.c (init_node_map): Handle thunks.
32323 * value-prof.h (branch_prob): Upate prototype.
32324 (read_thunk_profile): Declare.
32325
32326 2019-01-01 Jakub Jelinek <jakub@redhat.com>
32327
32328 Update copyright years.
32329
32330 * gcc.c (process_command): Update copyright notice dates.
32331 * gcov-dump.c (print_version): Ditto.
32332 * gcov.c (print_version): Ditto.
32333 * gcov-tool.c (print_version): Ditto.
32334 * gengtype.c (create_file): Ditto.
32335 * doc/cpp.texi: Bump @copying's copyright year.
32336 * doc/cppinternals.texi: Ditto.
32337 * doc/gcc.texi: Ditto.
32338 * doc/gccint.texi: Ditto.
32339 * doc/gcov.texi: Ditto.
32340 * doc/install.texi: Ditto.
32341 * doc/invoke.texi: Ditto.
32342 \f
32343 Copyright (C) 2019 Free Software Foundation, Inc.
32344
32345 Copying and distribution of this file, with or without modification,
32346 are permitted in any medium without royalty provided the copyright
32347 notice and this notice are preserved.