a6b039677a478d7071fdee1673e0ac3081102b92
[gcc.git] / gcc / ChangeLog
1 2019-11-13 Martin Liska <mliska@suse.cz>
2
3 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers):
4 Remove call to finalize_options_struct.
5
6 2019-11-13 Georg-Johann Lay <avr@gjlay.de>
7
8 PR target/92055
9 * config/avr/t-avr (avr-mcus): Do not depend on
10 $(srcdir)/config/avr/t-multilib.
11
12 2019-11-13 Richard Biener <rguenther@suse.de>
13
14 PR tree-optimization/92473
15 * tree-vect-loop.c (vect_create_epilog_for_reduction): Perform
16 direct optab reduction in the correct type.
17
18 2019-11-12 Segher Boessenkool <segher@kernel.crashing.org>
19
20 * config/rs6000/rs6000.md (rs6000_set_fpscr_drn): Use ULL on big
21 hexadecimal literal.
22
23 2019-11-12 Segher Boessenkool <segher@kernel.crashing.org>
24
25 * config/rs6000/vsx.md (xscmpexpdp_<code> for CMP_TEST): Handle
26 UNORDERED if !HONOR_NANS (DFmode).
27 (xscmpexpqp_<code>_<mode> for CMP_TEST and IEEE128): Handle UNORDERED
28 if !HONOR_NANS (<MODE>mode).
29
30 2019-11-12 Jan Hubicka <hubicka@ucw.cz>
31
32 * ipa-cp.c (ignore_edge_p): Also look for optimize flag.
33 (ipcp_verify_propagated_values): Likewise.
34 (propagate_constants_across_call): Likewise.
35 (propagate_constants_topo): Likewise.
36 (ipcp_propagate_stage): Likewise.
37
38 2019-11-12 Jan Hubicka <hubicka@ucw.cz>
39
40 PR ipa/92471
41 * ipa-profile.c (check_argument_count): Break out from ...;
42 watch for missing summaries.
43 (ipa_profile): Here.
44
45 2019-11-12 Martin Sebor <msebor@redhat.com>
46
47 PR tree-optimization/92412
48 * targhooks.c (default_ref_may_alias_errno): Errono can only alias
49 extern variables.
50
51 2019-11-12 Martin Sebor <msebor@redhat.com>
52
53 PR middle-end/83688
54 * gimple-ssa-sprintf.c (format_result::alias_info): New struct.
55 (directive::argno): New member.
56 (format_result::aliases, format_result::alias_count): New data members.
57 (format_result::append_alias): New member function.
58 (fmtresult::dst_offset): New data member.
59 (pass_sprintf_length::call_info::dst_origin): New data member.
60 (pass_sprintf_length::call_info::dst_field, dst_offset): Same.
61 (char_type_p, array_elt_at_offset, field_at_offset): New functions.
62 (get_origin_and_offset): Same.
63 (format_string): Call it.
64 (format_directive): Call append_alias and set directive argument
65 number.
66 (maybe_warn_overlap): New function.
67 (pass_sprintf_length::compute_format_length): Call it.
68 (pass_sprintf_length::handle_gimple_call): Initialize new members.
69 * gcc/tree-ssa-strlen.c (): Also enable when -Wrestrict is on.
70
71 2019-11-12 Ilya Leoshkevich <iii@linux.ibm.com>
72
73 PR rtl-optimization/92430
74 * cfgcleanup.c (pass_jump_after_combine::execute): Free
75 dominance info at the beginning.
76
77 2019-11-12 Richard Biener <rguenther@suse.de>
78
79 PR tree-optimization/92460
80 * tree-vect-stmts.c (vectorizable_simd_clone_call): Unshare
81 expression before gimplifying.
82
83 2019-11-12 Richard Biener <rguenther@suse.de>
84
85 PR tree-optimization/92461
86 * tree-vect-loop.c (vect_create_epilog_for_reduction): Update
87 stmt after propagation.
88
89 2019-11-12 Martin Liska <mliska@suse.cz>
90
91 * config/i386/i386-options.c (ix86_recompute_optlev_based_flags):
92 Use SET_OPTION_IF_UNSET.
93 (ix86_option_override_internal): Likewise.
94 * opts.c (default_options_optimization): Likewise.
95 (finish_options): Likewise.
96 (enable_fdo_optimizations): Likewise.
97 (common_handle_option): Likewise.
98
99 2019-11-12 Martin Liska <mliska@suse.cz>
100
101 * common/common-target.def: Remove option_validate_param and
102 option_default_params.
103 * common/common-targhooks.c (default_option_validate_param):
104 Remove.
105 * common/common-targhooks.h (default_option_validate_param):
106 Remove.
107 * common/config/aarch64/aarch64-common.c (TARGET_OPTION_DEFAULT_PARAMS):
108 Remove usage of this.
109 (TARGET_OPTION_VALIDATE_PARAM): Likewise.
110 (aarch64_option_validate_param): Likewise.
111 (aarch64_option_default_params): Likewise
112 * common/config/bpf/bpf-common.c (bpf_option_default_params): Likewise.
113 (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
114 * common/config/ia64/ia64-common.c (ia64_option_default_params): Likewise.
115 (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
116 * common/config/powerpcspe/powerpcspe-common.c (rs6000_option_default_params): Likewise.
117 (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
118 * common/config/rs6000/rs6000-common.c (rs6000_option_default_params): Likewise.
119 (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
120 * common/config/sh/sh-common.c (sh_option_default_params): Likewise.
121 (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
122 * config/aarch64/aarch64.c (aarch64_override_options_internal): Validate
123 guard_size here.
124 * doc/tm.texi: Remove option_default_params and option_validate_param.
125 * doc/tm.texi.in: Likewise.
126
127 2019-11-12 Martin Liska <mliska@suse.cz>
128
129 * common/common-target.def:
130 Do not mention set_default_param_value
131 and set_param_value.
132 * doc/tm.texi: Likewise.
133
134 2019-11-12 Martin Liska <mliska@suse.cz>
135
136 * common.opt: Remove param_values.
137 * config/i386/i386-options.c (ix86_valid_target_attribute_p):
138 Remove finalize_options_struct.
139 * gcc.c (driver::decode_argv): Do not call global_init_params
140 and finish_params.
141 (driver::finalize): Do not call params_c_finalize
142 and finalize_options_struct.
143 * opt-suggestions.c (option_proposer::get_completions): Remove
144 special casing of params.
145 (option_proposer::find_param_completions): Remove.
146 (test_completion_partial_match): Update expected output.
147 * opt-suggestions.h: Remove find_param_completions.
148 * opts-common.c (add_misspelling_candidates): Add
149 --param with a space.
150 * opts.c (handle_param): Remove.
151 (init_options_struct):. Remove init_options_struct and
152 similar calls.
153 (finalize_options_struct): Remove.
154 (common_handle_option): Use SET_OPTION_IF_UNSET.
155 * opts.h (finalize_options_struct): Remove.
156 * toplev.c (general_init): Do not call global_init_params.
157 (toplev::finalize): Do not call params_c_finalize and
158 finalize_options_struct.
159
160 2019-11-12 Martin Liska <mliska@suse.cz>
161
162 * Makefile.in: Remove PARAMS_H and params.list
163 and params.options.
164 * params-enum.h: Remove.
165 * params-list.h: Remove.
166 * params-options.h: Remove.
167 * params.c: Remove.
168 * params.def: Remove.
169 * params.h: Remove.
170 * asan.c: Do not include params.h.
171 * auto-profile.c: Likewise.
172 * bb-reorder.c: Likewise.
173 * builtins.c: Likewise.
174 * cfgcleanup.c: Likewise.
175 * cfgexpand.c: Likewise.
176 * cfgloopanal.c: Likewise.
177 * cgraph.c: Likewise.
178 * combine.c: Likewise.
179 * common/config/aarch64/aarch64-common.c: Likewise.
180 * common/config/gcn/gcn-common.c: Likewise.
181 * common/config/ia64/ia64-common.c: Likewise.
182 * common/config/powerpcspe/powerpcspe-common.c: Likewise.
183 * common/config/rs6000/rs6000-common.c: Likewise.
184 * common/config/sh/sh-common.c: Likewise.
185 * config/aarch64/aarch64.c: Likewise.
186 * config/alpha/alpha.c: Likewise.
187 * config/arm/arm.c: Likewise.
188 * config/avr/avr.c: Likewise.
189 * config/csky/csky.c: Likewise.
190 * config/i386/i386-builtins.c: Likewise.
191 * config/i386/i386-expand.c: Likewise.
192 * config/i386/i386-features.c: Likewise.
193 * config/i386/i386-options.c: Likewise.
194 * config/i386/i386.c: Likewise.
195 * config/ia64/ia64.c: Likewise.
196 * config/rs6000/rs6000-logue.c: Likewise.
197 * config/rs6000/rs6000.c: Likewise.
198 * config/s390/s390.c: Likewise.
199 * config/sparc/sparc.c: Likewise.
200 * config/visium/visium.c: Likewise.
201 * coverage.c: Likewise.
202 * cprop.c: Likewise.
203 * cse.c: Likewise.
204 * cselib.c: Likewise.
205 * dse.c: Likewise.
206 * emit-rtl.c: Likewise.
207 * explow.c: Likewise.
208 * final.c: Likewise.
209 * fold-const.c: Likewise.
210 * gcc.c: Likewise.
211 * gcse.c: Likewise.
212 * ggc-common.c: Likewise.
213 * ggc-page.c: Likewise.
214 * gimple-loop-interchange.cc: Likewise.
215 * gimple-loop-jam.c: Likewise.
216 * gimple-loop-versioning.cc: Likewise.
217 * gimple-ssa-split-paths.c: Likewise.
218 * gimple-ssa-sprintf.c: Likewise.
219 * gimple-ssa-store-merging.c: Likewise.
220 * gimple-ssa-strength-reduction.c: Likewise.
221 * gimple-ssa-warn-alloca.c: Likewise.
222 * gimple-ssa-warn-restrict.c: Likewise.
223 * graphite-isl-ast-to-gimple.c: Likewise.
224 * graphite-optimize-isl.c: Likewise.
225 * graphite-scop-detection.c: Likewise.
226 * graphite-sese-to-poly.c: Likewise.
227 * graphite.c: Likewise.
228 * haifa-sched.c: Likewise.
229 * hsa-gen.c: Likewise.
230 * ifcvt.c: Likewise.
231 * ipa-cp.c: Likewise.
232 * ipa-fnsummary.c: Likewise.
233 * ipa-inline-analysis.c: Likewise.
234 * ipa-inline.c: Likewise.
235 * ipa-polymorphic-call.c: Likewise.
236 * ipa-profile.c: Likewise.
237 * ipa-prop.c: Likewise.
238 * ipa-split.c: Likewise.
239 * ipa-sra.c: Likewise.
240 * ira-build.c: Likewise.
241 * ira-conflicts.c: Likewise.
242 * loop-doloop.c: Likewise.
243 * loop-invariant.c: Likewise.
244 * loop-unroll.c: Likewise.
245 * lra-assigns.c: Likewise.
246 * lra-constraints.c: Likewise.
247 * modulo-sched.c: Likewise.
248 * opt-suggestions.c: Likewise.
249 * opts.c: Likewise.
250 * postreload-gcse.c: Likewise.
251 * predict.c: Likewise.
252 * reload.c: Likewise.
253 * reorg.c: Likewise.
254 * resource.c: Likewise.
255 * sanopt.c: Likewise.
256 * sched-deps.c: Likewise.
257 * sched-ebb.c: Likewise.
258 * sched-rgn.c: Likewise.
259 * sel-sched-ir.c: Likewise.
260 * sel-sched.c: Likewise.
261 * shrink-wrap.c: Likewise.
262 * stmt.c: Likewise.
263 * targhooks.c: Likewise.
264 * toplev.c: Likewise.
265 * tracer.c: Likewise.
266 * trans-mem.c: Likewise.
267 * tree-chrec.c: Likewise.
268 * tree-data-ref.c: Likewise.
269 * tree-if-conv.c: Likewise.
270 * tree-inline.c: Likewise.
271 * tree-loop-distribution.c: Likewise.
272 * tree-parloops.c: Likewise.
273 * tree-predcom.c: Likewise.
274 * tree-profile.c: Likewise.
275 * tree-scalar-evolution.c: Likewise.
276 * tree-sra.c: Likewise.
277 * tree-ssa-ccp.c: Likewise.
278 * tree-ssa-dom.c: Likewise.
279 * tree-ssa-dse.c: Likewise.
280 * tree-ssa-ifcombine.c: Likewise.
281 * tree-ssa-loop-ch.c: Likewise.
282 * tree-ssa-loop-im.c: Likewise.
283 * tree-ssa-loop-ivcanon.c: Likewise.
284 * tree-ssa-loop-ivopts.c: Likewise.
285 * tree-ssa-loop-manip.c: Likewise.
286 * tree-ssa-loop-niter.c: Likewise.
287 * tree-ssa-loop-prefetch.c: Likewise.
288 * tree-ssa-loop-unswitch.c: Likewise.
289 * tree-ssa-math-opts.c: Likewise.
290 * tree-ssa-phiopt.c: Likewise.
291 * tree-ssa-pre.c: Likewise.
292 * tree-ssa-reassoc.c: Likewise.
293 * tree-ssa-sccvn.c: Likewise.
294 * tree-ssa-scopedtables.c: Likewise.
295 * tree-ssa-sink.c: Likewise.
296 * tree-ssa-strlen.c: Likewise.
297 * tree-ssa-structalias.c: Likewise.
298 * tree-ssa-tail-merge.c: Likewise.
299 * tree-ssa-threadbackward.c: Likewise.
300 * tree-ssa-threadedge.c: Likewise.
301 * tree-ssa-uninit.c: Likewise.
302 * tree-switch-conversion.c: Likewise.
303 * tree-vect-data-refs.c: Likewise.
304 * tree-vect-loop.c: Likewise.
305 * tree-vect-slp.c: Likewise.
306 * tree-vrp.c: Likewise.
307 * tree.c: Likewise.
308 * value-prof.c: Likewise.
309 * var-tracking.c: Likewise.
310
311 2019-11-12 Martin Liska <mliska@suse.cz>
312
313 * asan.c (asan_sanitize_stack_p): Replace old parameter syntax
314 with the new one, include opts.h if needed. Use SET_OPTION_IF_UNSET
315 macro.
316 (asan_sanitize_allocas_p): Likewise.
317 (asan_emit_stack_protection): Likewise.
318 (asan_protect_global): Likewise.
319 (instrument_derefs): Likewise.
320 (instrument_builtin_call): Likewise.
321 (asan_expand_mark_ifn): Likewise.
322 * auto-profile.c (auto_profile): Likewise.
323 * bb-reorder.c (copy_bb_p): Likewise.
324 (duplicate_computed_gotos): Likewise.
325 * builtins.c (inline_expand_builtin_string_cmp): Likewise.
326 * cfgcleanup.c (try_crossjump_to_edge): Likewise.
327 (try_crossjump_bb): Likewise.
328 * cfgexpand.c (defer_stack_allocation): Likewise.
329 (stack_protect_classify_type): Likewise.
330 (pass_expand::execute): Likewise.
331 * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
332 (estimate_reg_pressure_cost): Likewise.
333 * cgraph.c (cgraph_edge::maybe_hot_p): Likewise.
334 * combine.c (combine_instructions): Likewise.
335 (record_value_for_reg): Likewise.
336 * common/config/aarch64/aarch64-common.c (aarch64_option_validate_param): Likewise.
337 (aarch64_option_default_params): Likewise.
338 * common/config/ia64/ia64-common.c (ia64_option_default_params): Likewise.
339 * common/config/powerpcspe/powerpcspe-common.c (rs6000_option_default_params): Likewise.
340 * common/config/rs6000/rs6000-common.c (rs6000_option_default_params): Likewise.
341 * common/config/sh/sh-common.c (sh_option_default_params): Likewise.
342 * config/aarch64/aarch64.c (aarch64_output_probe_stack_range): Likewise.
343 (aarch64_allocate_and_probe_stack_space): Likewise.
344 (aarch64_expand_epilogue): Likewise.
345 (aarch64_override_options_internal): Likewise.
346 * config/alpha/alpha.c (alpha_option_override): Likewise.
347 * config/arm/arm.c (arm_option_override): Likewise.
348 (arm_valid_target_attribute_p): Likewise.
349 * config/i386/i386-options.c (ix86_option_override_internal): Likewise.
350 * config/i386/i386.c (get_probe_interval): Likewise.
351 (ix86_adjust_stack_and_probe_stack_clash): Likewise.
352 (ix86_max_noce_ifcvt_seq_cost): Likewise.
353 * config/ia64/ia64.c (ia64_adjust_cost): Likewise.
354 * config/rs6000/rs6000-logue.c (get_stack_clash_protection_probe_interval): Likewise.
355 (get_stack_clash_protection_guard_size): Likewise.
356 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
357 * config/s390/s390.c (allocate_stack_space): Likewise.
358 (s390_emit_prologue): Likewise.
359 (s390_option_override_internal): Likewise.
360 * config/sparc/sparc.c (sparc_option_override): Likewise.
361 * config/visium/visium.c (visium_option_override): Likewise.
362 * coverage.c (get_coverage_counts): Likewise.
363 (coverage_compute_profile_id): Likewise.
364 (coverage_begin_function): Likewise.
365 (coverage_end_function): Likewise.
366 * cse.c (cse_find_path): Likewise.
367 (cse_extended_basic_block): Likewise.
368 (cse_main): Likewise.
369 * cselib.c (cselib_invalidate_mem): Likewise.
370 * dse.c (dse_step1): Likewise.
371 * emit-rtl.c (set_new_first_and_last_insn): Likewise.
372 (get_max_insn_count): Likewise.
373 (make_debug_insn_raw): Likewise.
374 (init_emit): Likewise.
375 * explow.c (compute_stack_clash_protection_loop_data): Likewise.
376 * final.c (compute_alignments): Likewise.
377 * fold-const.c (fold_range_test): Likewise.
378 (fold_truth_andor): Likewise.
379 (tree_single_nonnegative_warnv_p): Likewise.
380 (integer_valued_real_single_p): Likewise.
381 * gcse.c (want_to_gcse_p): Likewise.
382 (prune_insertions_deletions): Likewise.
383 (hoist_code): Likewise.
384 (gcse_or_cprop_is_too_expensive): Likewise.
385 * ggc-common.c: Likewise.
386 * ggc-page.c (ggc_collect): Likewise.
387 * gimple-loop-interchange.cc (MAX_NUM_STMT): Likewise.
388 (MAX_DATAREFS): Likewise.
389 (OUTER_STRIDE_RATIO): Likewise.
390 * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
391 * gimple-loop-versioning.cc (loop_versioning::max_insns_for_loop): Likewise.
392 * gimple-ssa-split-paths.c (is_feasible_trace): Likewise.
393 * gimple-ssa-store-merging.c (imm_store_chain_info::try_coalesce_bswap): Likewise.
394 (imm_store_chain_info::coalesce_immediate_stores): Likewise.
395 (imm_store_chain_info::output_merged_store): Likewise.
396 (pass_store_merging::process_store): Likewise.
397 * gimple-ssa-strength-reduction.c (find_basis_for_base_expr): Likewise.
398 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple): Likewise.
399 (scop_to_isl_ast): Likewise.
400 * graphite-optimize-isl.c (get_schedule_for_node_st): Likewise.
401 (optimize_isl): Likewise.
402 * graphite-scop-detection.c (build_scops): Likewise.
403 * haifa-sched.c (set_modulo_params): Likewise.
404 (rank_for_schedule): Likewise.
405 (model_add_to_worklist): Likewise.
406 (model_promote_insn): Likewise.
407 (model_choose_insn): Likewise.
408 (queue_to_ready): Likewise.
409 (autopref_multipass_dfa_lookahead_guard): Likewise.
410 (schedule_block): Likewise.
411 (sched_init): Likewise.
412 * hsa-gen.c (init_prologue): Likewise.
413 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Likewise.
414 (cond_move_process_if_block): Likewise.
415 * ipa-cp.c (ipcp_lattice::add_value): Likewise.
416 (merge_agg_lats_step): Likewise.
417 (devirtualization_time_bonus): Likewise.
418 (hint_time_bonus): Likewise.
419 (incorporate_penalties): Likewise.
420 (good_cloning_opportunity_p): Likewise.
421 (ipcp_propagate_stage): Likewise.
422 * ipa-fnsummary.c (decompose_param_expr): Likewise.
423 (set_switch_stmt_execution_predicate): Likewise.
424 (analyze_function_body): Likewise.
425 (compute_fn_summary): Likewise.
426 * ipa-inline-analysis.c (estimate_growth): Likewise.
427 * ipa-inline.c (caller_growth_limits): Likewise.
428 (inline_insns_single): Likewise.
429 (inline_insns_auto): Likewise.
430 (can_inline_edge_by_limits_p): Likewise.
431 (want_early_inline_function_p): Likewise.
432 (big_speedup_p): Likewise.
433 (want_inline_small_function_p): Likewise.
434 (want_inline_self_recursive_call_p): Likewise.
435 (edge_badness): Likewise.
436 (recursive_inlining): Likewise.
437 (compute_max_insns): Likewise.
438 (early_inliner): Likewise.
439 * ipa-polymorphic-call.c (csftc_abort_walking_p): Likewise.
440 * ipa-profile.c (ipa_profile): Likewise.
441 * ipa-prop.c (determine_known_aggregate_parts): Likewise.
442 (ipa_analyze_node): Likewise.
443 (ipcp_transform_function): Likewise.
444 * ipa-split.c (consider_split): Likewise.
445 * ipa-sra.c (allocate_access): Likewise.
446 (process_scan_results): Likewise.
447 (ipa_sra_summarize_function): Likewise.
448 (pull_accesses_from_callee): Likewise.
449 * ira-build.c (loop_compare_func): Likewise.
450 (mark_loops_for_removal): Likewise.
451 * ira-conflicts.c (build_conflict_bit_table): Likewise.
452 * loop-doloop.c (doloop_optimize): Likewise.
453 * loop-invariant.c (gain_for_invariant): Likewise.
454 (move_loop_invariants): Likewise.
455 * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
456 (decide_unroll_runtime_iterations): Likewise.
457 (decide_unroll_stupid): Likewise.
458 (expand_var_during_unrolling): Likewise.
459 * lra-assigns.c (spill_for): Likewise.
460 * lra-constraints.c (EBB_PROBABILITY_CUTOFF): Likewise.
461 * modulo-sched.c (sms_schedule): Likewise.
462 (DFA_HISTORY): Likewise.
463 * opts.c (default_options_optimization): Likewise.
464 (finish_options): Likewise.
465 (common_handle_option): Likewise.
466 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
467 (if): Likewise.
468 * predict.c (get_hot_bb_threshold): Likewise.
469 (maybe_hot_count_p): Likewise.
470 (probably_never_executed): Likewise.
471 (predictable_edge_p): Likewise.
472 (predict_loops): Likewise.
473 (expr_expected_value_1): Likewise.
474 (tree_predict_by_opcode): Likewise.
475 (handle_missing_profiles): Likewise.
476 * reload.c (find_equiv_reg): Likewise.
477 * reorg.c (redundant_insn): Likewise.
478 * resource.c (mark_target_live_regs): Likewise.
479 (incr_ticks_for_insn): Likewise.
480 * sanopt.c (pass_sanopt::execute): Likewise.
481 * sched-deps.c (sched_analyze_1): Likewise.
482 (sched_analyze_2): Likewise.
483 (sched_analyze_insn): Likewise.
484 (deps_analyze_insn): Likewise.
485 * sched-ebb.c (schedule_ebbs): Likewise.
486 * sched-rgn.c (find_single_block_region): Likewise.
487 (too_large): Likewise.
488 (haifa_find_rgns): Likewise.
489 (extend_rgns): Likewise.
490 (new_ready): Likewise.
491 (schedule_region): Likewise.
492 (sched_rgn_init): Likewise.
493 * sel-sched-ir.c (make_region_from_loop): Likewise.
494 * sel-sched-ir.h (MAX_WS): Likewise.
495 * sel-sched.c (process_pipelined_exprs): Likewise.
496 (sel_setup_region_sched_flags): Likewise.
497 * shrink-wrap.c (try_shrink_wrapping): Likewise.
498 * targhooks.c (default_max_noce_ifcvt_seq_cost): Likewise.
499 * toplev.c (print_version): Likewise.
500 (process_options): Likewise.
501 * tracer.c (tail_duplicate): Likewise.
502 * trans-mem.c (tm_log_add): Likewise.
503 * tree-chrec.c (chrec_fold_plus_1): Likewise.
504 * tree-data-ref.c (split_constant_offset): Likewise.
505 (compute_all_dependences): Likewise.
506 * tree-if-conv.c (MAX_PHI_ARG_NUM): Likewise.
507 * tree-inline.c (remap_gimple_stmt): Likewise.
508 * tree-loop-distribution.c (MAX_DATAREFS_NUM): Likewise.
509 * tree-parloops.c (MIN_PER_THREAD): Likewise.
510 (create_parallel_loop): Likewise.
511 * tree-predcom.c (determine_unroll_factor): Likewise.
512 * tree-scalar-evolution.c (instantiate_scev_r): Likewise.
513 * tree-sra.c (analyze_all_variable_accesses): Likewise.
514 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
515 * tree-ssa-dse.c (setup_live_bytes_from_ref): Likewise.
516 (dse_optimize_redundant_stores): Likewise.
517 (dse_classify_store): Likewise.
518 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
519 * tree-ssa-loop-ch.c (ch_base::copy_headers): Likewise.
520 * tree-ssa-loop-im.c (LIM_EXPENSIVE): Likewise.
521 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
522 (try_peel_loop): Likewise.
523 (tree_unroll_loops_completely): Likewise.
524 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
525 (CONSIDER_ALL_CANDIDATES_BOUND): Likewise.
526 (MAX_CONSIDERED_GROUPS): Likewise.
527 (ALWAYS_PRUNE_CAND_SET_BOUND): Likewise.
528 * tree-ssa-loop-manip.c (can_unroll_loop_p): Likewise.
529 * tree-ssa-loop-niter.c (MAX_ITERATIONS_TO_TRACK): Likewise.
530 * tree-ssa-loop-prefetch.c (PREFETCH_BLOCK): Likewise.
531 (L1_CACHE_SIZE_BYTES): Likewise.
532 (L2_CACHE_SIZE_BYTES): Likewise.
533 (should_issue_prefetch_p): Likewise.
534 (schedule_prefetches): Likewise.
535 (determine_unroll_factor): Likewise.
536 (volume_of_references): Likewise.
537 (add_subscript_strides): Likewise.
538 (self_reuse_distance): Likewise.
539 (mem_ref_count_reasonable_p): Likewise.
540 (insn_to_prefetch_ratio_too_small_p): Likewise.
541 (loop_prefetch_arrays): Likewise.
542 (tree_ssa_prefetch_arrays): Likewise.
543 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise.
544 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
545 (convert_mult_to_fma): Likewise.
546 (math_opts_dom_walker::after_dom_children): Likewise.
547 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Likewise.
548 (hoist_adjacent_loads): Likewise.
549 (gate_hoist_loads): Likewise.
550 * tree-ssa-pre.c (translate_vuse_through_block): Likewise.
551 (compute_partial_antic_aux): Likewise.
552 * tree-ssa-reassoc.c (get_reassociation_width): Likewise.
553 * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Likewise.
554 (vn_reference_lookup): Likewise.
555 (do_rpo_vn): Likewise.
556 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Likewise.
557 * tree-ssa-sink.c (select_best_block): Likewise.
558 * tree-ssa-strlen.c (new_stridx): Likewise.
559 (new_addr_stridx): Likewise.
560 (get_range_strlen_dynamic): Likewise.
561 (class ssa_name_limit_t): Likewise.
562 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise.
563 (create_variable_info_for_1): Likewise.
564 (init_alias_vars): Likewise.
565 * tree-ssa-tail-merge.c (find_clusters_1): Likewise.
566 (tail_merge_optimize): Likewise.
567 * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path): Likewise.
568 (thread_jumps::fsm_find_control_statement_thread_paths): Likewise.
569 (thread_jumps::find_jump_threads_backwards): Likewise.
570 * tree-ssa-threadedge.c (record_temporary_equivalences_from_stmts_at_dest): Likewise.
571 * tree-ssa-uninit.c (compute_control_dep_chain): Likewise.
572 * tree-switch-conversion.c (switch_conversion::check_range): Likewise.
573 (jump_table_cluster::can_be_handled): Likewise.
574 * tree-switch-conversion.h (jump_table_cluster::case_values_threshold): Likewise.
575 (SWITCH_CONVERSION_BRANCH_RATIO): Likewise.
576 (param_switch_conversion_branch_ratio): Likewise.
577 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Likewise.
578 (vect_enhance_data_refs_alignment): Likewise.
579 (vect_prune_runtime_alias_test_list): Likewise.
580 * tree-vect-loop.c (vect_analyze_loop_costing): Likewise.
581 (vect_get_datarefs_in_loop): Likewise.
582 (vect_analyze_loop): Likewise.
583 * tree-vect-slp.c (vect_slp_bb): Likewise.
584 * tree-vectorizer.h: Likewise.
585 * tree-vrp.c (find_switch_asserts): Likewise.
586 (vrp_prop::check_mem_ref): Likewise.
587 * tree.c (wide_int_to_tree_1): Likewise.
588 (cache_integer_cst): Likewise.
589 * var-tracking.c (EXPR_USE_DEPTH): Likewise.
590 (reverse_op): Likewise.
591 (vt_find_locations): Likewise.
592
593 2019-11-12 Martin Liska <mliska@suse.cz>
594
595 * Makefile.in: Include params.opt.
596 * flag-types.h (enum parloops_schedule_type): Add
597 parloops_schedule_type used in params.opt.
598 * params.opt: New file.
599
600 2019-11-12 Martin Liska <mliska@suse.cz>
601
602 * common.opt: Remove --param and --param= options.
603 * opt-functions.awk: Mark CL_PARAMS for options
604 that have Param keyword.
605 * opts-common.c (decode_cmdline_options_to_array):
606 Replace --param key=value with --param=key=value.
607 * opts.c (print_filtered_help): Remove special
608 printing of params.
609 (print_specific_help): Update title for params.
610 (common_handle_option): Do not handle OPT__param.
611 opts.h (SET_OPTION_IF_UNSET): New macro.
612 * doc/options.texi: Document Param keyword.
613
614 2019-11-12 Maciej W. Rozycki <macro@codesourcery.com>
615 Frederik Harwath <frederik@codesourcery.com>
616 Thomas Schwinge <thomas@codesourcery.com>
617
618 gcc/
619 * gimple.h (gf_mask): Add GF_OMP_TARGET_KIND_OACC_SERIAL
620 enumeration constant.
621 (is_gimple_omp_oacc): Handle GF_OMP_TARGET_KIND_OACC_SERIAL.
622 (is_gimple_omp_offloaded): Likewise.
623 * gimplify.c (omp_region_type): Add ORT_ACC_SERIAL enumeration
624 constant. Adjust the value of ORT_NONE accordingly.
625 (is_gimple_stmt): Handle OACC_SERIAL.
626 (oacc_default_clause): Handle ORT_ACC_SERIAL.
627 (gomp_needs_data_present): Likewise.
628 (gimplify_adjust_omp_clauses): Likewise.
629 (gimplify_omp_workshare): Handle OACC_SERIAL.
630 (gimplify_expr): Likewise.
631 * omp-expand.c (expand_omp_target):
632 Handle GF_OMP_TARGET_KIND_OACC_SERIAL.
633 (build_omp_regions_1, omp_make_gimple_edges): Likewise.
634 * omp-low.c (is_oacc_parallel): Rename function to...
635 (is_oacc_parallel_or_serial): ... this.
636 Handle GF_OMP_TARGET_KIND_OACC_SERIAL.
637 (scan_sharing_clauses): Adjust accordingly.
638 (scan_omp_for): Likewise.
639 (lower_oacc_head_mark): Likewise.
640 (convert_from_firstprivate_int): Likewise.
641 (lower_omp_target): Likewise.
642 (check_omp_nesting_restrictions): Handle
643 GF_OMP_TARGET_KIND_OACC_SERIAL.
644 (lower_oacc_reductions): Likewise.
645 (lower_omp_target): Likewise.
646 * tree.def (OACC_SERIAL): New tree code.
647 * tree-pretty-print.c (dump_generic_node): Handle OACC_SERIAL.
648
649 * doc/generic.texi (OpenACC): Document OACC_SERIAL.
650
651 2019-11-12 Jakub Jelinek <jakub@redhat.com>
652
653 PR target/92449
654 * tree-complex.c (expand_complex_multiplication): If !HONOR_NANS,
655 don't emit UNORDERED_EXPR guarded libcall. Formatting fixes.
656
657 PR tree-optimization/92452
658 * tree-vrp.c (vrp_prop::check_array_ref): If TRUNC_DIV_EXPR folds
659 into NULL_TREE, set up_bound to NULL_TREE instead of computing
660 MINUS_EXPR on it.
661
662 2019-11-12 Andre Vieira <andre.simoesdiasvieira@arm.com>
663
664 * tree-vect-loop.c (vect_transform_loop): Don't overwrite epilogues
665 safelen with 0.
666
667 2019-11-12 Alan Modra <amodra@gmail.com>
668
669 * config/rs6000/predicates.md (unspec_tls): Allow const0_rtx for got
670 element of unspec vec.
671 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Support
672 PC-relative TLS.
673 * config/rs6000/rs6000.md (UNSPEC_TLSTLS_PCREL): New unspec.
674 (tls_gd_pcrel, tls_ld_pcrel): New insns.
675 (tls_dtprel, tls_tprel): Set attr prefixed when tls_size is not 16.
676 (tls_got_tprel_pcrel, tls_tls_pcrel): New insns.
677
678 2019-11-12 Alan Modra <amodra@gmail.com>
679
680 * config/rs6000/rs6000.opt (mtls-markers): Delete.
681 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Don't define.
682 (IS_NOMARK_TLSGETADDR): Likewise.
683 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Delete.
684 * config/rs6000/rs6000.c (rs6000_output_tlsargs): Delete.
685 (rs6000_legitimize_tls_address): Remove !TARGET_TLS_MARKERS code.
686 (rs6000_call_template_1): Delete TARGET_TLS_MARKERS test and
687 allow other UNSPECs besides UNSPEC_TLSGD and UNSPEC_TLSLD.
688 (rs6000_indirect_call_template_1): Likewise.
689 (rs6000_pltseq_template): Likewise.
690 (rs6000_opt_vars): Remove "tls-markers" entry.
691 * config/rs6000/rs6000.md (tls_gd<bits>): Replace TARGET_TLS_MARKERS
692 with TARGET_ELF.
693 (tls_gd_high<bits>, tls_gd_low<bits>): Likewise.
694 (tls_ld<bits>, tls_ld_high<bits>, tls_ld_low<bits>): Likewise.
695 (pltseq_plt_pcrel<mode>): Likewise.
696 (call_value_local32): Remove IS_NOMARK_TLSGETADDR predicate test.
697 (call_value_local64): Likewise.
698 (call_value_indirect_nonlocal_sysv<mode>): Remove IS_NOMARK_TLSGETADDR
699 output and length attribute sub-expression.
700 (call_value_nonlocal_sysv<mode>),
701 (call_value_nonlocal_sysv_secure<mode>),
702 (call_value_local_aix<mode>, call_value_nonlocal_aix<mode>),
703 (call_value_indirect_aix<mode>, call_value_indirect_elfv2<mode>),
704 (call_value_indirect_pcrel<mode>): Likewise.
705 * doc/install.texi (powerpc-*-*): Require binutils-2.20.
706 * configure.ac (HAVE_AS_TLS_MARKERS): Delete test.
707 * configure: Regenerate.
708 * config.in: Regenerate.
709
710 2019-11-11 Michael Meissner <meissner@linux.ibm.com>
711
712 * config/rs6000/predicates.md (prefixed_memory): New predicate.
713 * config/rs6000/rs6000.md (stack_protect_setdi): Deal with either
714 address being a prefixed load/store.
715 (stack_protect_testdi): Deal with either address being a prefixed
716 load.
717
718 2019-11-11 Jakub Jelinek <jakub@redhat.com>
719
720 PR bootstrap/92433
721 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Guard
722 ALTIVEC_BUILTIN_VEC_VCMPGE_P argument swapping with n == 3 check. Use
723 std::swap.
724
725 2019-11-11 Richard Sandiford <richard.sandiford@arm.com>
726
727 PR tree-optimization/92420
728 * tree-vect-stmts.c (get_negative_load_store_type): Move further
729 up file.
730 (get_group_load_store_type): Use it for reversed SLP accesses.
731
732 2019-11-11 Jan Hubicka <hubcika@ucw.cz>
733
734 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove ipcp
735 summary.
736 (ipcp_transformation_t::duplicate): Break out from ...
737 (ipa_node_params_t::duplicate): ... here; add copying of agg
738 replacements.
739 * ipa-prop.h (ipcp_transformation): Add constructor and destructor.
740 (ipcp_transformation_t): Add duplicate.
741
742 2019-11-11 Janne Blomqvist <jb@gcc.gnu.org>
743
744 PR fortran/91828
745 * doc/install.texi: Document that the minimum MPFR version is
746 3.1.0.
747
748 2019-11-11 Claudiu Zissulescu <claziss@gmail.com>
749
750 * config/arc/arc.md (movsi_ne): Reorder instruction variants and
751 use new register constraint letters.
752
753 2019-11-11 Claudiu Zissulescu <claziss@gmail.com>
754
755 * config/arc/arc.c (arc_legitimize_pic_address): Consider UNSPECs
756 as well, if interesting recover the symbol and re-legitimize the
757 pic address.
758
759 2019-11-11 Martin Liska <mliska@suse.cz>
760
761 * dbgcnt.def (DEBUG_COUNTER): Sort counters
762 alphabetically.
763
764 2019-11-11 Andre Vieira <andre.simoesdiasvieira@arm.com>
765
766 * tree-vect-loop-manip.c (vect_do_peeling): Take epilogue gaps into
767 account when checking if there are enough iterations to vectorize
768 epilogue.
769
770 2019-11-11 Tobias Burnus <tobias@codesourcery.com>
771 Kwok Cheung Yeung <kcy@codesourcery.com>
772
773 * langhooks-def.h (LANG_HOOKS_OMP_CHECK_OPTIONAL_ARGUMENT):
774 Renamed from LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT; update define.
775 (LANG_HOOKS_DECLS): Rename also here.
776 * langhooks.h (lang_hooks_for_decls): Rename
777 omp_is_optional_argument to omp_check_optional_argument; take
778 additional bool argument.
779 * omp-general.h (omp_check_optional_argument): Likewise.
780 * omp-general.h (omp_check_optional_argument): Likewise.
781 * omp-low.c (lower_omp_target): Update calls; handle absent
782 Fortran optional arguments with USE_DEVICE_ADDR/USE_DEVICE_PTR.
783
784 2019-11-11 H.J. Lu <hjl.tools@gmail.com>
785
786 PR target/87833
787 * config/i386/intelmic-mkoffload.c (prepare_target_image): Put
788 -fPIC and -shared the last to create offload image.
789
790 2019-11-11 Thomas Schwinge <thomas@codesourcery.com>
791
792 * gimplify.c (gimplify_scan_omp_clauses): Assert 'offset2' instead
793 of 'offset'.
794
795 * Makefile.in (LANG_CONFIGUREFRAGS): Define.
796 (config.status): Use/depend on it.
797 * configure.ac (all_lang_configurefrags): Track, 'AC_SUBST'.
798 * configure: Regenerate.
799
800 2019-11-11 Jiufu Guo <guojiufu@linux.ibm.com>
801
802 PR tree-optimization/88760
803 * gcc/config/rs6000/rs6000.opt (-munroll-only-small-loops): New option.
804 * gcc/common/config/rs6000/rs6000-common.c
805 (rs6000_option_optimization_table) [OPT_LEVELS_2_PLUS_SPEED_ONLY]:
806 Turn on -funroll-loops and -munroll-only-small-loops.
807 [OPT_LEVELS_ALL]: Turn off -fweb and -frename-registers.
808 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
809 set of PARAM_MAX_UNROLL_TIMES and PARAM_MAX_UNROLLED_INSNS.
810 Turn off -munroll-only-small-loops for explicit -funroll-loops.
811 (TARGET_LOOP_UNROLL_ADJUST): Add loop unroll adjust hook.
812 (rs6000_loop_unroll_adjust): Define it. Use -munroll-only-small-loops.
813
814 2019-11-11 Kewen Lin <linkw@gcc.gnu.org>
815
816 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
817 Make scalar_load, vector_load, unaligned_load and
818 vector_gather_load cost more to conform hardware latency and
819 insn cost settings.
820
821 2019-11-10 Iain Sandoe <iain@sandoe.co.uk>
822
823 * config/darwin.h (MACHO_SYMBOL_FLAG_LINKER_VIS): New.
824 (MACHO_SYMBOL_LINKER_VIS_P): New.
825
826 2019-11-10 Kwok Cheung Yeung <kcy@codesourcery.com>
827
828 * lra-spills.c (assign_spill_hard_regs): Do not spill into
829 registers in eliminable_regset.
830
831 2019-11-10 Jan Hubicka <hubicka@ucw.cz>
832
833 * ipa-inline.c (compute_uninlined_call_time,
834 compute_inlined_call_time): Take edge frequency as
835 parameter rather than computing it by itself.
836 (big_speedup_p, edge_badness): Manually CSE sreal
837 frequency calculations.
838
839 2019-11-10 Jan Hubicka <hubicka@ucw.cz>
840
841 * profile-count.c (profile_count::to_sreal_scale): Short circuit
842 case where profiles are same.
843
844 2019-11-10 Jan Hubicka <hubicka@ucw.cz>
845
846 * cgraph.c (cgraph_edge::maybe_hot_p): Do not use sreal_frequency.
847
848 2019-11-10 Jan Hubicka <hubicka@ucw.cz>
849
850 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove ipa edge
851 args summaries of inlined edge unless it holds info about
852 described reference.
853
854 2019-11-10 Segher Boessenkool <segher@kernel.crashing.org>
855
856 * config/rs6000/rs6000.md (CC_any): New mode iterator.
857 (*movcc_internal1): Rename to...
858 (*movcc_<mode> for CC_any): ... this. Support moves of all CC modes.
859
860 2019-11-09 Jan Hubicka <hubicka@ucw.cz>
861
862 * cgraph.h (struct cgraph_node): Add ipcp_clone flag.
863 (cgraph_node::create_virtual_clone): Copy it.
864 * ipa-cp.c (ipcp_versionable_function_p): Watch for missing
865 summaries.
866 (ignore_edge_p): If caller has ipa-cp disabled, skip the edge, too.
867 (ipcp_verify_propagated_values): Do not verify nodes where ipcp
868 is disabled.
869 (propagate_constants_across_call): If callee is not analyzed, give up.
870 (propagate_constants_topo): Lower to bottom latties of all callees of
871 functions with ipa-cp disabled.
872 (ipcp_propagate_stage): Skip functions with ipa-cp disabled.
873 (cgraph_edge_brings_value_p): Check for availability first.
874 (create_specialized_node): Set ipcp_clone.
875 (ipcp_store_bits_results): Check that info is present.
876 * ipa-fnsummary.c (evaluate_properties_for_edge): Do not analyze
877 thunks.
878 (ipa_call_context::duplicate_from, ipa_call_context::equal_to): Be
879 conservative when callee summary is missing.
880 (remap_edge_summaries): Lookup call summary only when needed.
881 * ipa-icf.c (sem_function::param_used_p): Be ready for missing summary.
882 * ipa-prpo.c (ipa_alloc_node_params, ipa_initialize_node_params):
883 Use get_create.
884 (ipa_analyze_node): Use get_create.
885 (propagate_controlled_uses): Do not propagate when function is not
886 analyzed.
887 (ipa_propagate_indirect_call_infos): Remove summary of inline clone.
888 (ipa_read_node_info): Use get_create.
889 * ipa-prop.h (IPA_NODE_REF): Use get.
890 (IPA_NODE_REF_GET_CREATE): New.
891
892 2019-11-09 Jan Hubicka <hubicka@ucw.cz>
893
894 * ipa-fnsummary.c (evaluate_properties_for_edge): Call IPA_NODE_REF
895 on function symbol.
896
897 2019-11-09 Jan Hubicka <hubicka@ucw.cz>
898
899 * tree.c (fld_incomplete_type_of): Clear TYPE_FINAL_P, TYPE_EMPTY_P,
900 ENUM_IS_OPAQUE and ENUM_IS_SCOPED.
901 (free_lang_data_in_binfo): Clear TREE_PUBLIC in BINFO
902 (free_lang_data_in_type): Clear ENUM_IS_OPAQUE and ENUM_IS_SCOPED.
903
904 2019-11-09 Jan Hubicka <hubicka@ucw.cz>
905
906 * ipa-inline-analysis.c (do_estimate_growth_1): Add support for
907 capping the growth cumulated.
908 (offline_size): Break out from ...
909 (estimate_growth): ... here.
910 (check_callers): Add N, OFFLINE and MIN_SIZE and KNOWN_EDGE
911 parameters.
912 (growth_likely_positive): Turn to ...
913 (growth_positive_p): Re-implement.
914 * ipa-inline.h (growth_likely_positive): Remove.
915 (growth_positive_p): Declare.
916 * ipa-inline.c (want_inline_small_function_p): Use
917 growth_positive_p.
918 (want_inline_function_to_all_callers_p): Likewise.
919
920 2019-11-09 Jan Hubicka <hubicka@ucw.cz>
921
922 * ipa-fnsummary.c (ipa_call_context::estimate_size_and_time): Fix
923 calculation of min_size.
924 (ipa_update_overall_fn_summary): Likewise.
925
926 2019-11-09 Jan Hubicka <hubicka@ucw.cz>
927
928 * ipa-fnsummary.c (estimate_edge_size_and_time): Do not call
929 estimate_edge_devirt_benefit when not computing hints;
930 do not compute time when not asked for.
931 (estimate_calls_size_and_time): Pass NULL hints and time when
932 these are not computed; do not evaluate hint predicates when these are
933 not computed.
934 (ipa_merge_fn_summary_after_inlining): Do not re-evaluate edge
935 frequency.
936
937 2019-11-09 Jakub Jelinek <jakub@redhat.com>
938
939 PR tree-optimization/92401
940 * gimple-match-head.c (gimple_resimplify1): Call const_unop only
941 if res_op->code is an expression with code length 1.
942 * gimple-match-head.c (gimple_resimplify2): Call const_binop only
943 if res_op->code is an expression with code length 2.
944 * gimple-match-head.c (gimple_resimplify3): Call fold_ternary only
945 if res_op->code is an expression with code length 3.
946
947 2019-11-09 Iain Sandoe <iain@sandoe.co.uk>
948
949 * config/darwin.c (machopic_mcount_stub_name): Validate the
950 symbol stub name when it is created.
951 * config/i386/darwin.h (FUNCTION_PROFILER): Remove the symbol
952 stub validation.
953
954 2019-11-09 Jakub Jelinek <jakub@redhat.com>
955
956 * symtab.c: Fix comment typos.
957 * cgraphunit.c: Likewise.
958 * cgraph.h: Likewise.
959 * cgraphclones.c: Likewise.
960 * cgraph.c: Likewise.
961 * varpool.c: Likewise.
962 * tree-ssa-strlen.c: Likewise.
963 * ipa-sra.c: Likewise.
964 (scan_expr_access, check_all_callers_for_issues): Fix typo
965 in a dump message.
966
967 2019-11-08 Iain Sandoe <iain@sandoe.co.uk>
968
969 * config/darwin-protos.h: Add include quard.
970
971 2019-11-08 Andrew MacLeod <amacleod@redhat.com>
972
973 * range-op.h (range_operator::fold_range): Return result in a
974 reference parameter instead of by value.
975 (range_operator::wi_fold): Same.
976 * range-op.cc (range_operator::wi_fold): Return result in a reference
977 parameter instead of by value.
978 (range_operator::fold_range): Same.
979 (value_range_from_overflowed_bounds): Same.
980 (value_range_with_overflow): Same
981 (create_possibly_reversed_range): Same.
982 (operator_equal::fold_range): Same.
983 (operator_not_equal::fold_range): Same.
984 (operator_lt::fold_range): Same.
985 (operator_le::fold_range): Same.
986 (operator_gt::fold_range): Same.
987 (operator_ge::fold_range): Same.
988 (operator_plus::wi_fold): Same.
989 (operator_plus::op1_range): Change call to fold_range.
990 (operator_plus::op2_range): Change call to fold_range.
991 (operator_minus::wi_fold): Return result via reference parameter.
992 (operator_minus::op1_range): Change call to fold_range.
993 (operator_minus::op2_range): Change call to fold_range.
994 (operator_min::wi_fold): Return result via reference parameter.
995 (operator_max::wi_fold): Same.
996 (cross_product_operator::wi_cross_product): Same.
997 (operator_mult::wi_fold): Same.
998 (operator_div::wi_fold): Same.
999 (operator_div op_floor_div): Fix whitespace.
1000 (operator_exact_divide::op1_range): Change call to fold_range.
1001 (operator_lshift::fold_range): Return result via reference parameter.
1002 (operator_lshift::wi_fold): Same.
1003 (operator_rshift::fold_range): Same.
1004 (operator_rshift::wi_fold): Same.
1005 (operator_cast::fold_range): Same.
1006 (operator_cast::op1_range): Change calls to fold_range.
1007 (operator_logical_and::fold_range): Return result via reference.
1008 (wi_optimize_and_or): Adjust call to value_range_with_overflow.
1009 (operator_bitwise_and::wi_fold): Return result via reference.
1010 (operator_logical_or::fold_range): Same.
1011 (operator_bitwise_or::wi_fold): Same.
1012 (operator_bitwise_xor::wi_fold): Same.
1013 (operator_trunc_mod::wi_fold): Same.
1014 (operator_logical_not::fold_range): Same.
1015 (operator_bitwise_not::fold_range): Same.
1016 (operator_bitwise_not::op1_range): Change call to fold_range.
1017 (operator_cst::fold_range): Return result via reference.
1018 (operator_identity::fold_range): Same.
1019 (operator_abs::wi_fold): Same.
1020 (operator_absu::wi_fold): Same.
1021 (operator_negate::fold_range): Same.
1022 (operator_negate::op1_range): Change call to fold_range.
1023 (operator_addr_expr::fold_range): Return result via reference.
1024 (operator_addr_expr::op1_range): Change call to fold_range.
1025 (operator_pointer_plus::wi_fold): Return result via reference.
1026 (operator_pointer_min_max::wi_fold): Same.
1027 (operator_pointer_and::wi_fold): Same.
1028 (operator_pointer_or::wi_fold): Same.
1029 (range_op_handler): Change call to fold_range.
1030 (range_cast): Same.
1031 * tree-vrp.c (range_fold_binary_symbolics_p): Change call to
1032 fold_range.
1033 (range_fold_unary_symbolics_p): Same.
1034 (range_fold_binary_expr): Same.
1035 (range_fold_unary_expr): Same.
1036
1037 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
1038
1039 * tree-vect-loop.c (neutral_op_for_slp_reduction): Take the
1040 vector type as an argument rather than reading it from the
1041 stmt_vec_info.
1042 (vect_create_epilog_for_reduction): Update accordingly.
1043 (vectorizable_reduction): Likewise.
1044 (vect_transform_cycle_phi): Likewise.
1045
1046 2019-11-08 Segher Boessenkool <segher@kernel.crashing.org>
1047
1048 * config/rs6000/predicates.md (branch_comparison_operator): Allow only
1049 the comparison codes that make sense for the mode used, and only the
1050 codes that can be done with a single branch instruction.
1051
1052 2019-11-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
1053
1054 PR tree-optimization/92351
1055 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): When we are
1056 peeling the main loop for alignment, make sure to set the misalignment
1057 of the epilogue's data references to DR_MISALIGNMENT_UNKNOWN.
1058
1059 2019-11-08 Richard Biener <rguenther@suse.de>
1060
1061 * dbgcnt.def (ivopts_loop): Add.
1062 * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Check
1063 ivopts_loop before optimizing a loop.
1064
1065 2019-11-08 Richard Biener <rguenther@suse.de>
1066
1067 PR ipa/92409
1068 * tree-inline.c (declare_return_variable): Properly handle
1069 type mismatches for the return slot.
1070
1071 2019-11-08 Eric Botcazou <ebotcazou@adacore.com>
1072
1073 PR target/92095
1074 * config/sparc/sparc-protos.h (output_load_pcrel_sym): Declare.
1075 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Revert latest
1076 change.
1077 (got_helper_needed): New static variable.
1078 (output_load_pcrel_sym): New function.
1079 (get_pc_thunk_name): Remove after inlining...
1080 (load_got_register): ...here. Rework the initialization of the GOT
1081 register and of the GOT helper.
1082 (save_local_or_in_reg_p): Test the REGNO of the GOT register.
1083 (sparc_file_end): Test got_helper_needed to decide whether the GOT
1084 helper must be emitted. Use output_asm_insn instead of fprintf.
1085 (sparc_init_pic_reg): In PIC mode, always initialize the PIC register
1086 if optimization is enabled.
1087 * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Emit the assembly
1088 by calling output_load_pcrel_sym.
1089
1090 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
1091
1092 * tree-sra.c (create_access): Delay disqualifying the base
1093 for poly_int values until we know we have a base.
1094
1095 2019-11-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
1096
1097 * tree-vect-loop.c (vect_analyze_loop): Disable epilogue vectorization
1098 for loops with SIMDUID set. Enable epilogue vectorization for loops
1099 with SIMDLEN set after finding a main loop with a VF that matches it.
1100
1101 2019-11-08 Jakub Jelinek <jakub@redhat.com>
1102
1103 PR target/92038
1104 * gimple-ssa-store-merging.c (find_constituent_stores): For return
1105 value only, return non-NULL if there is a single non-clobber
1106 constituent store even if there are constituent clobbers and return
1107 one of clobber constituent stores if all constituent stores are
1108 clobbers.
1109 (split_group): Handle clobbers.
1110 (imm_store_chain_info::output_merged_store): When computing
1111 bzero_first, look after all clobbers at the start. Don't count
1112 clobber stmts in orig_num_stmts, except if the first orig store is
1113 a clobber covering the whole area and split_stores cover the whole
1114 area, consider equal number of stmts ok. Punt if split_stores
1115 contains only ->orig stores and their number plus number of original
1116 clobbers is equal to original number of stmts. For ->orig, look past
1117 clobbers in the constituent stores.
1118 (imm_store_chain_info::output_merged_stores): Don't remove clobber
1119 stmts.
1120 (rhs_valid_for_store_merging_p): Don't return false for clobber stmt
1121 rhs.
1122 (store_valid_for_store_merging_p): Allow clobber stmts.
1123 (verify_clear_bit_region_be): Fix up a thinko in function comment.
1124
1125 PR c++/92384
1126 * function.c (assign_parm_setup_block, assign_parm_setup_stack): Don't
1127 copy TYPE_EMPTY_P arguments from data->entry_parm to data->stack_parm
1128 slot.
1129 (assign_parms): For TREE_ADDRESSABLE parms with TYPE_EMPTY_P type
1130 force creation of a unique data.stack_parm slot.
1131
1132 2019-11-08 Richard Biener <rguenther@suse.de>
1133
1134 * genmatch.c (expr::gen_transform): Use the resimplify
1135 member function instead of hard-coding the gimple_resimplifyN variant.
1136 (dt_simplify::gen_1): Likewise.
1137
1138 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
1139
1140 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1141 POLY_INT_CST.
1142
1143 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
1144
1145 * tree-inline.c (declare_return_variable): Check for poly_int_tree_p
1146 instead of INTEGER_CST.
1147
1148 2019-11-08 Richard Biener <rguenther@suse.de>
1149
1150 PR tree-optimization/92324
1151 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
1152 STMT_VINFO_REDUC_VECTYPE for all computations, inserting
1153 sign-conversions as necessary.
1154 (vectorizable_reduction): Reject conversions in the chain
1155 that are not sign-conversions, base analysis on a non-converting
1156 stmt and its operation sign. Set STMT_VINFO_REDUC_VECTYPE.
1157 * tree-vect-stmts.c (vect_stmt_relevant_p): Don't dump anything
1158 for debug stmts.
1159 * tree-vectorizer.h (_stmt_vec_info::reduc_vectype): New.
1160 (STMT_VINFO_REDUC_VECTYPE): Likewise.
1161
1162 2019-11-08 Georg-Johann Lay <avr@gjlay.de>
1163
1164 PR target/92055
1165 * config/avr/avr.opt (-mdouble=, -mlong-double=):
1166 Fix a missing '-' when displaying these options in the
1167 help screen.
1168
1169 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
1170
1171 * config/aarch64/iterators.md (SVE_BH, SVE_BHS): Delete.
1172
1173 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
1174
1175 * config/aarch64/aarch64-builtins.c
1176 (aarch64_builtin_vectorized_function): Remove bswap handling.
1177
1178 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
1179
1180 * tree-core.h (tree_type_common::indivisible_p): New member variable.
1181 * tree.h (TYPE_INDIVISIBLE_P): New macro.
1182 * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types):
1183 Treat the vector types as indivisible.
1184
1185 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
1186
1187 * optabs.def (gather_load_optab, mask_gather_load_optab)
1188 (scatter_store_optab, mask_scatter_store_optab): Turn into
1189 conversion optabs, with the offset mode given explicitly.
1190 * doc/md.texi: Update accordingly.
1191 * config/aarch64/aarch64-sve-builtins-base.cc
1192 (svld1_gather_impl::expand): Likewise.
1193 (svst1_scatter_impl::expand): Likewise.
1194 * internal-fn.c (gather_load_direct, scatter_store_direct): Likewise.
1195 (expand_scatter_store_optab_fn): Likewise.
1196 (direct_gather_load_optab_supported_p): Likewise.
1197 (direct_scatter_store_optab_supported_p): Likewise.
1198 (expand_gather_load_optab_fn): Likewise. Expect the mask argument
1199 to be argument 4.
1200 (internal_fn_mask_index): Return 4 for IFN_MASK_GATHER_LOAD.
1201 (internal_gather_scatter_fn_supported_p): Replace the offset sign
1202 argument with the offset vector type. Require the two vector
1203 types to have the same number of elements but allow their element
1204 sizes to be different. Treat the optabs as conversion optabs.
1205 * internal-fn.h (internal_gather_scatter_fn_supported_p): Update
1206 prototype accordingly.
1207 * optabs-query.c (supports_at_least_one_mode_p): Replace with...
1208 (supports_vec_convert_optab_p): ...this new function.
1209 (supports_vec_gather_load_p): Update accordingly.
1210 (supports_vec_scatter_store_p): Likewise.
1211 * tree-vectorizer.h (vect_gather_scatter_fn_p): Take a vec_info.
1212 Replace the offset sign and bits parameters with a scalar type tree.
1213 * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Likewise.
1214 Pass back the offset vector type instead of the scalar element type.
1215 Allow the offset to be wider than the memory elements. Search for
1216 an offset type that the target supports, stopping once we've
1217 reached the maximum of the element size and pointer size.
1218 Update call to internal_gather_scatter_fn_supported_p.
1219 (vect_check_gather_scatter): Update calls accordingly.
1220 When testing a new scale before knowing the final offset type,
1221 check whether the scale is supported for any signed or unsigned
1222 offset type. Check whether the target supports the source and
1223 target types of a conversion before deciding whether to look
1224 through the conversion. Record the chosen offset_vectype.
1225 * tree-vect-patterns.c (vect_get_gather_scatter_offset_type): Delete.
1226 (vect_recog_gather_scatter_pattern): Get the scalar offset type
1227 directly from the gs_info's offset_vectype instead. Pass a zero
1228 of the result type to IFN_GATHER_LOAD and IFN_MASK_GATHER_LOAD.
1229 * tree-vect-stmts.c (check_load_store_masking): Update call to
1230 internal_gather_scatter_fn_supported_p, passing the offset vector
1231 type recorded in the gs_info.
1232 (vect_truncate_gather_scatter_offset): Update call to
1233 vect_check_gather_scatter, leaving it to search for a valid
1234 offset vector type.
1235 (vect_use_strided_gather_scatters_p): Convert the offset to the
1236 element type of the gs_info's offset_vectype.
1237 (vect_get_gather_scatter_ops): Get the offset vector type directly
1238 from the gs_info.
1239 (vect_get_strided_load_store_ops): Likewise.
1240 (vectorizable_load): Pass a zero of the result type to IFN_GATHER_LOAD
1241 and IFN_MASK_GATHER_LOAD.
1242 * config/aarch64/aarch64-sve.md (gather_load<mode>): Rename to...
1243 (gather_load<mode><v_int_equiv>): ...this.
1244 (mask_gather_load<mode>): Rename to...
1245 (mask_gather_load<mode><v_int_equiv>): ...this.
1246 (scatter_store<mode>): Rename to...
1247 (scatter_store<mode><v_int_equiv>): ...this.
1248 (mask_scatter_store<mode>): Rename to...
1249 (mask_scatter_store<mode><v_int_equiv>): ...this.
1250
1251 2019-11-08 Kewen Lin <linkw@gcc.gnu.org>
1252
1253 PR target/92132
1254 * config/rs6000/predicates.md
1255 (signed_or_equality_comparison_operator): New predicate.
1256 (unsigned_or_equality_comparison_operator): Likewise.
1257 * config/rs6000/rs6000.md (one_cmpl<mode>2): Remove expand.
1258 (one_cmpl<mode>3_internal): Rename to one_cmpl<mode>2.
1259 * config/rs6000/vector.md
1260 (vcond_mask_<mode><mode> for VEC_I and VEC_I): New expand.
1261 (vec_cmp<mode><mode> for VEC_I and VEC_I): Likewise.
1262 (vec_cmpu<mode><mode> for VEC_I and VEC_I): Likewise.
1263 (vcond_mask_<mode><VEC_int> for VEC_F): New expand for float
1264 vector modes and same-size integer vector modes.
1265 (vec_cmp<mode><VEC_int> for VEC_F): Likewise.
1266 (vector_lt<mode> for VEC_F): New expand.
1267 (vector_le<mode> for VEC_F): Likewise.
1268 (vector_ne<mode> for VEC_F): Likewise.
1269 (vector_unge<mode> for VEC_F): Likewise.
1270 (vector_ungt<mode> for VEC_F): Likewise.
1271 (vector_unle<mode> for VEC_F): Likewise.
1272 (vector_unlt<mode> for VEC_F): Likewise.
1273 (vector_uneq<mode>): Expose name.
1274 (vector_ltgt<mode>): Likewise.
1275 (vector_unordered<mode>): Likewise.
1276 (vector_ordered<mode>): Likewise.
1277
1278 2019-11-08 Hongtao Liu <Hongtao.liu@intel.com>
1279
1280 PR target/92295
1281 * config/i386/i386-expand.c (ix86_expand_vector_init_concat)
1282 Enhance ix86_expand_vector_init_concat.
1283
1284 2019-11-08 Joseph Myers <joseph@codesourcery.com>
1285
1286 * doc/invoke.texi (-Wold-style-definition): Document () not being
1287 considered an old-style definition for C2x.
1288
1289 2019-11-07 John David Anglin <danglin@gcc.gnu.org>
1290
1291 * config/pa/pa.md (memory_barrier): Revise to use ldcw barriers.
1292 Enhance comment.
1293 (memory_barrier_coherent, memory_barrier_64, memory_barrier_32): New
1294 insn patterns using ldcw instruction.
1295 (memory_barrier): Remove insn pattern using sync instruction.
1296 * config/pa/pa.opt (coherent-ldcw): New option.
1297 (ordered): New option.
1298
1299 2019-11-07 Segher Boessenkool <segher@kernel.crashing.org>
1300
1301 * config/rs6000/rs6000.c (validate_condition_mode): Don't assert for
1302 valid conditions.
1303
1304 2019-11-07 Jakub Jelinek <jakub@redhat.com>
1305
1306 * ipa-utils.c (ipa_merge_profiles): Fix fprintf format string
1307 typo - mistmatch -> mismatch.
1308 * ipa-profile.c (ipa_profile): Likewise.
1309 * ipa-devirt.c (compare_virtual_tables): Fix a comment typo
1310 - mistmatch -> mismatch.
1311
1312 2018-11-07 Segher Boessenkool <segher@kernel.crashing.org>
1313
1314 * simplify-rtx.c (comparison_to_mask): New function.
1315 (mask_to_comparison): New function.
1316 (simplify_logical_relational_operation): New function.
1317 (simplify_binary_operation_1): Call
1318 simplify_logical_relational_operation.
1319
1320 2019-11-07 Peter Bergner <bergner@linux.ibm.com>
1321
1322 PR other/92090
1323 * config/rs6000/predicates.md (input_operand): Allow MODE_PARTIAL_INT
1324 modes for integer constants.
1325
1326 2019-11-07 Jan Hubicka <jh@suse.cz>
1327
1328 PR ipa/92406
1329 * ipa-fnsummary.c (analyze_function_body): Use get_create to copy
1330 summary.
1331
1332 2019-11-07 Jan Hubicka <jh@suse.cz>
1333
1334 * optc-save-gen.awk: Generate cl_target_option_free
1335 and cl_optimization_option_free.
1336 * opth-en.awk: Declare cl_target_option_free
1337 and cl_optimization_option_free.
1338 * tree.c (free_node): Use it.
1339
1340 2019-11-06 Jan Hubicka <jh@suse.cz>
1341
1342 * lto-streamer-in.c: Include alloc-pool.h.
1343 (freeing_string_slot_hasher): Remove.
1344 (string_slot_allocator): New object allocator.
1345 (file_name_hash_table): Turn to hash_table<string_slot_hasher>.
1346 (file_name_obstack): New obstack.
1347 (canon_file_name): Allocate in obstack and allocator.
1348 (lto_reader_init): Initialize obstack and allocator.
1349 (lto_free_file_name_hash): New function.
1350 * lto-streamer.h (lto_free_file_name_hash): New.
1351
1352 2019-11-07 Feng Xue <fxue@os.amperecomputing.com>
1353
1354 PR tree-optimization/89134
1355 * doc/invoke.texi (min-loop-cond-split-prob): Document new --params.
1356 * params.def: Add min-loop-cond-split-prob.
1357 * tree-ssa-loop-split.c (split_loop): Remove niter parameter, move some
1358 outside checks on loop into the function.
1359 (split_info): New class.
1360 (find_vdef_in_loop, get_control_equiv_head_block): New functions.
1361 (find_control_dep_blocks, vuse_semi_invariant_p): Likewise.
1362 (ssa_semi_invariant_p, loop_iter_phi_semi_invariant_p): Likewise.
1363 (control_dep_semi_invariant_p, stmt_semi_invariant_p_1): Likewise.
1364 (stmt_semi_invariant_p, branch_removable_p): Likewise.
1365 (get_cond_invariant_branch, compute_added_num_insns): Likewise.
1366 (get_cond_branch_to_split_loop, do_split_loop_on_cond): Likewise.
1367 (split_loop_on_cond): Likewise.
1368 (tree_ssa_split_loops): Add loop split on conditional statement.
1369
1370 2019-11-07 Andreas Krebbel <krebbel@linux.ibm.com>
1371
1372 * config/s390/s390.md ("*cstorecc<mode>_z13"): New insn_and_split
1373 pattern.
1374
1375 2019-11-07 Richard Biener <rguenther@suse.de>
1376
1377 PR tree-optimization/92405
1378 * tree-vect-loop.c (vectorizable_reduction): Appropriately
1379 restrict lane-reducing ops to single stmt chains.
1380
1381 2019-11-07 Martin Jambor <mjambor@suse.cz>
1382
1383 PR lto/70929
1384 * cif-code.def (MISMATCHED_ARGUMENTS): Removed.
1385 * cgraph.h (gimple_check_call_matching_types): Remove
1386 * cgraph.c (gimple_check_call_args): Likewise.
1387 (gimple_check_call_matching_types): Likewise.
1388 (symbol_table::create_edge): Do not call
1389 gimple_check_call_matching_types.
1390 (cgraph_edge::make_direct): Likewise.
1391 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
1392 * value-prof.h (check_ic_target): Remove.
1393 * value-prof.c (check_ic_target): Remove.
1394 (gimple_ic_transform): Do nat call check_ic_target.
1395 * auto-profile.c (function_instance::find_icall_target_map): Likewise.
1396 (afdo_indirect_call): Likewise.
1397 * ipa-prop.c (update_indirect_edges_after_inlining): Do not call
1398 gimple_check_call_matching_types.
1399 * ipa-inline.c (early_inliner): Likewise.
1400
1401 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1402
1403 * config/arm/arm.md (arm_<simd32_op>): New define_expand.
1404 (arm_<simd32_op><add_clobber_q_name>_insn): New define_insn.
1405 * config/arm/arm_acle.h (__ssat16, __usat16): Define.
1406 * config/arm/arm_acle_builtins.def: Define builtins for the above.
1407 * config/arm/iterators.md (USSAT16): New int_iterator.
1408 (simd32_op): Handle UNSPEC_SSAT16, UNSPEC_USAT16.
1409 (sup): Likewise.
1410 * config/arm/predicates.md (ssat16_imm): New predicate.
1411 (usat16_imm): Likewise.
1412 * config/arm/unspecs.md (UNSPEC_SSAT16, UNSPEC_USAT16): Define.
1413
1414 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1415
1416 * config/arm/arm.md (arm_<simd32_op><add_clobber_q_name>_insn):
1417 New define_insns.
1418 (arm_<simd32_op>): New define_expands.
1419 * config/arm/arm_acle.h (__smlad, __smladx, __smlsd, __smlsdx,
1420 __smuad, __smuadx): Define.
1421 * config/arm/arm_acle_builtins.def: Define builtins for the above.
1422 * config/arm/iterators.md (SIMD32_TERNOP_Q): New int_iterator.
1423 (SIMD32_BINOP_Q): Likewise.
1424 (simd32_op): Handle the above.
1425 * config/arm/unspecs.md: Define unspecs for the above.
1426
1427 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1428
1429 * config/arm/aout.h (REGISTER_NAMES): Add apsrge.
1430 * config/arm/arm.md (APSRGE_REGNUM): Define.
1431 (arm_<simd32_op>): New define_insn.
1432 (arm_sel): Likewise.
1433 * config/arm/arm.h (FIXED_REGISTERS): Add entry for apsrge.
1434 (CALL_USED_REGISTERS): Likewise.
1435 (REG_ALLOC_ORDER): Likewise.
1436 (FIRST_PSEUDO_REGISTER): Update value.
1437 (ARM_GE_BITS_READ): Define.
1438 * config/arm/arm.c (arm_conditional_register_usage): Clear
1439 APSRGE_REGNUM from operand_reg_set.
1440 (arm_ge_bits_access): Define.
1441 * config/arm/arm-builtins.c (arm_check_builtin_call): Handle
1442 ARM_BUIILTIN_sel.
1443 * config/arm/arm-protos.h (arm_ge_bits_access): Declare prototype.
1444 * config/arm/arm-fixed.md (add<mode>3): Convert to define_expand.
1445 FAIL if ARM_GE_BITS_READ.
1446 (*arm_add<mode>3): New define_insn.
1447 (sub<mode>3): Convert to define_expand. FAIL if ARM_GE_BITS_READ.
1448 (*arm_sub<mode>3): New define_insn.
1449 * config/arm/arm_acle.h (__sel, __sadd8, __ssub8, __uadd8, __usub8,
1450 __sadd16, __sasx, __ssax, __ssub16, __uadd16, __uasx, __usax,
1451 __usub16): Define.
1452 * config/arm/arm_acle_builtins.def: Define builtins for the above.
1453 * config/arm/iterators.md (SIMD32_GE): New int_iterator.
1454 (simd32_op): Handle the above.
1455 * config/arm/unspecs.md (UNSPEC_GE_SET): Define.
1456 (UNSPEC_SEL, UNSPEC_SADD8, UNSPEC_SSUB8, UNSPEC_UADD8, UNSPEC_USUB8,
1457 UNSPEC_SADD16, UNSPEC_SASX, UNSPEC_SSAX, UNSPEC_SSUB16, UNSPEC_UADD16,
1458 UNSPEC_UASX, UNSPEC_USAX, UNSPEC_USUB16): Define.
1459
1460 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1461
1462 * config/arm/arm.md (arm_smlabb_setq): New define_insn.
1463 (arm_smlabb): New define_expand.
1464 (*maddhisi4tb): Rename to...
1465 (maddhisi4tb): ... This.
1466 (*maddhisi4tt): Rename to...
1467 (maddhisi4tt): ... This.
1468 (arm_smlatb_setq): New define_insn.
1469 (arm_smlatb): New define_expand.
1470 (arm_smlatt_setq): New define_insn.
1471 (arm_smlatt): New define_expand.
1472 (arm_<smlaw_op><add_clobber_name>_insn): New define_insn.
1473 (arm_<smlaw_op>): New define_expand.
1474 * config/arm/arm_acle.h (__smlabb, __smlatb, __smlabt, __smlatt,
1475 __smlawb, __smlawt): Define.
1476 * config/arm_acle_builtins.def: Define builtins for the above.
1477 * config/arm/iterators.md (SMLAWBT): New int_iterator.
1478 (slaw_op): New int_attribute.
1479 * config/arm/unspecs.md (UNSPEC_SMLAWB, UNSPEC_SMLAWT): Define.
1480
1481 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1482
1483 * config/arm/arm.md (arm_<ss_op>): New define_expand.
1484 (arm_<ss_op><add_clobber_q_name>_insn): New define_insn.
1485 * config/arm/arm_acle.h (__qadd, __qsub, __qdbl): Define.
1486 * config/arm/arm_acle_builtins.def: Add builtins for qadd, qsub.
1487 * config/arm/iterators.md (SSPLUSMINUS): New code iterator.
1488 (ss_op): New code_attr.
1489
1490 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1491
1492 * config/arm/aout.h (REGISTER_NAMES): Add apsrq.
1493 * config/arm/arm.md (APSRQ_REGNUM): Define.
1494 (add_setq): New define_subst.
1495 (add_clobber_q_name): New define_subst_attr.
1496 (add_clobber_q_pred): Likewise.
1497 (maddhisi4): Change to define_expand. Split into mult and add if
1498 ARM_Q_BIT_READ.
1499 (arm_maddhisi4): New define_insn.
1500 (*maddhisi4tb): Disable for ARM_Q_BIT_READ.
1501 (*maddhisi4tt): Likewise.
1502 (arm_ssat): New define_expand.
1503 (arm_usat): Likewise.
1504 (arm_get_apsr): New define_insn.
1505 (arm_set_apsr): Likewise.
1506 (arm_saturation_occurred): New define_expand.
1507 (arm_set_saturation): Likewise.
1508 (*satsi_<SAT:code>): Rename to...
1509 (satsi_<SAT:code><add_clobber_q_name>): ... This.
1510 (*satsi_<SAT:code>_shift): Disable for ARM_Q_BIT_READ.
1511 * config/arm/arm.h (FIXED_REGISTERS): Mark apsrq as fixed.
1512 (CALL_USED_REGISTERS): Mark apsrq.
1513 (FIRST_PSEUDO_REGISTER): Update value.
1514 (REG_ALLOC_ORDER): Add APSRQ_REGNUM.
1515 (machine_function): Add q_bit_access.
1516 (ARM_Q_BIT_READ): Define.
1517 * config/arm/arm.c (TARGET_CHECK_BUILTIN_CALL): Define.
1518 (arm_conditional_register_usage): Clear APSRQ_REGNUM from
1519 operand_reg_set.
1520 (arm_q_bit_access): Define.
1521 * config/arm/arm-builtins.c: Include stringpool.h.
1522 (arm_sat_binop_imm_qualifiers,
1523 arm_unsigned_sat_binop_unsigned_imm_qualifiers,
1524 arm_sat_occurred_qualifiers, arm_set_sat_qualifiers): Define.
1525 (SAT_BINOP_UNSIGNED_IMM_QUALIFIERS,
1526 UNSIGNED_SAT_BINOP_UNSIGNED_IMM_QUALIFIERS, SAT_OCCURRED_QUALIFIERS,
1527 SET_SAT_QUALIFIERS): Likewise.
1528 (arm_builtins): Define ARM_BUILTIN_SAT_IMM_CHECK.
1529 (arm_init_acle_builtins): Initialize __builtin_sat_imm_check.
1530 Handle 0 argument expander.
1531 (arm_expand_acle_builtin): Handle ARM_BUILTIN_SAT_IMM_CHECK.
1532 (arm_check_builtin_call): Define.
1533 * config/arm/arm.md (ssmulsa3, usmulusa3, usmuluha3,
1534 arm_ssatsihi_shift, arm_usatsihi): Disable when ARM_Q_BIT_READ.
1535 * config/arm/arm-protos.h (arm_check_builtin_call): Declare prototype.
1536 (arm_q_bit_access): Likewise.
1537 * config/arm/arm_acle.h (__ssat, __usat, __ignore_saturation,
1538 __saturation_occurred, __set_saturation_occurred): Define.
1539 * config/arm/arm_acle_builtins.def: Define builtins for ssat, usat,
1540 saturation_occurred, set_saturation_occurred.
1541 * config/arm/unspecs.md (UNSPEC_Q_SET): Define.
1542 (UNSPEC_APSR_READ): Likewise.
1543 (VUNSPEC_APSR_WRITE): Likewise.
1544 * config/arm/arm-fixed.md (ssadd<mode>3): Convert to define_expand.
1545 (*arm_ssadd<mode>3): New define_insn.
1546 (sssub<mode>3): Convert to define_expand.
1547 (*arm_sssub<mode>3): New define_insn.
1548 (ssmulsa3): Convert to define_expand.
1549 (*arm_ssmulsa3): New define_insn.
1550 (usmulusa3): Convert to define_expand.
1551 (*arm_usmulusa3): New define_insn.
1552 (ssmulha3): FAIL if ARM_Q_BIT_READ.
1553 (arm_ssatsihi_shift, arm_usatsihi): Disable for ARM_Q_BIT_READ.
1554 * config/arm/iterators.md (qaddsub_clob_q): New mode attribute.
1555
1556 2019-11-07 Martin Liska <mliska@suse.cz>
1557
1558 PR c++/92354
1559 * cgraph.c (delete_function_version): Clear global
1560 variable version_info_node if equal to deleted
1561 function.
1562
1563 2019-11-07 Martin Liska <mliska@suse.cz>
1564
1565 * fold-const.c (operand_compare::operand_equal_p): Add comparison
1566 of CONSTRUCTOR_NO_CLEARING.
1567 (operand_compare::hash_operand): Likewise.
1568
1569 2019-11-07 Georg-Johann Lay <avr@gjlay.de>
1570
1571 Support 64-bit double and 64-bit long double configurations.
1572
1573 PR target/92055
1574 * config.gcc (tm_defines) [avr]: Set from --with-double=,
1575 --with-long-double=.
1576 * config/avr/t-multilib: Remove.
1577 * config/avr/t-avr: Output of genmultilib.awk is now fully
1578 dynamically generated and no more part of the repo.
1579 (HAVE_DOUBLE_MULTILIB, HAVE_LONG_DOUBLE_MULTILIB): New variables.
1580 Pass them down to...
1581 * config/avr/genmultilib.awk: ...here and handle them.
1582 * config/avr/avr.opt (-mdouble=, avr_double). New option and var.
1583 (-mlong-double=, avr_long_double). New option and var.
1584 * common/config/avr/avr-common.c (opts.h, diagnostic.h): Include.
1585 (TARGET_OPTION_OPTIMIZATION_TABLE) <-mdouble=, -mlong-double=>:
1586 Set default as requested by --with-double=
1587 (TARGET_HANDLE_OPTION): Define to this...
1588 (avr_handle_option): ...new hook worker.
1589 * config/avr/avr.h (DOUBLE_TYPE_SIZE): Define to avr_double.
1590 (LONG_DOUBLE_TYPE_SIZE): Define to avr_long_double.
1591 (avr_double_lib): New proto for spec function.
1592 (EXTRA_SPEC_FUNCTIONS) <double-lib>: Add.
1593 (DRIVER_SELF_SPECS): Call %:double-lib.
1594 * config/avr/avr.c (avr_option_override): Assert
1595 sizeof(long double) >= sizeof(double) for the target.
1596 * config/avr/avr-c.c (avr_cpu_cpp_builtins)
1597 [__HAVE_DOUBLE_MULTILIB__, __HAVE_LONG_DOUBLE_MULTILIB__]
1598 [__HAVE_DOUBLE64__, __HAVE_DOUBLE32__, __DEFAULT_DOUBLE__=]
1599 [__HAVE_LONG_DOUBLE64__, __HAVE_LONG_DOUBLE32__]
1600 [__HAVE_LONG_DOUBLE_IS_DOUBLE__, __DEFAULT_LONG_DOUBLE__=]:
1601 New built-in define depending on --with-double=, --with-long-double=.
1602 * config/avr/driver-avr.c (avr_double_lib): New spec function.
1603 * doc/invoke.tex (AVR Options) <-mdouble=,-mlong-double=>: Doc.
1604 * doc/install.texi (Cross-Compiler-Specific Options)
1605 <--with-double=, --with-long-double=>: Doc.
1606
1607 2019-11-07 Richard Biener <rguenther@suse.de>
1608
1609 * dbgcnt.def (gimple_unroll): New.
1610 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Check
1611 gimple_unroll debug counter before applying transform.
1612 (try_peel_loop): Likewise.
1613
1614 2019-11-07 Kwok Cheung Yeung <kcy@codesourcery.com>
1615
1616 * ira.c (setup_alloc_regs): Setup no_unit_alloc_regs for
1617 frame pointer in multiple registers.
1618 (ira_setup_eliminable_regset): Setup eliminable_regset,
1619 ira_no_alloc_regs and regs_ever_live for frame pointer in
1620 multiple registers.
1621
1622 2019-11-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
1623
1624 * config/rs6000/vsx.md (xxswapd_<mode>): Add support for V2DF and
1625 V2DI modes.
1626
1627 2019-11-06 Jan Hubicka <jh@suse.cz>
1628
1629 * ggc-common.c (ggc_prune_overhead_list): Do not delete surviving
1630 allocations.
1631 * mem-stats.h (mem_alloc_description<T>::release_object_overhead):
1632 Do not silently ignore summary corruptions.
1633
1634 2019-11-06 Richard Sandiford <richard.sandiford@arm.com>
1635
1636 * tree-vect-loop.c (vect_analyze_loop): Only try to vectorize
1637 the epilogue if there are peeled iterations for it to handle.
1638
1639 2019-11-06 Claudiu Zissulescu <claziss@synopsys.com>
1640
1641 * config/arc/arc.c (arc_split_ior): Add asserts.
1642 (arc_split_mov_const): Likewise.
1643 (arc_check_ior_const): Do not match known short immediate values.
1644 * config/arc/arc.md (movsi): Don't split predicated instructions
1645 (iorsi): Likewise.
1646
1647 2019-11-06 Claudiu Zissulescu <claziss@synopsys.com>
1648
1649 * config/arc/arc.opt (mea): Update help string.
1650 * doc/invoke.texi(ARC): Update mea option info.
1651
1652 2019-11-06 Claudiu Zissulescu <claziss@synopsys.com>
1653
1654 * config/arc/arc.md (zero_extendqihi2_i): Cleanup pattern.
1655 (zero_extendqisi2_ac): Likewise.
1656 (zero_extendhisi2_i): Likewise.
1657 (extendqihi2_i): Likewise.
1658 (extendqisi2_ac): Likewise.
1659 (extendhisi2_i): Likewise.
1660
1661 2019-11-06 Richard Biener <rguenther@suse.de>
1662
1663 * tree-vect-loop.c (vectorizable_reduction): Remember reduction
1664 PHI. Use STMT_VINFO_REDUC_IDX to skip the reduction operand.
1665 Simplify single_defuse_cycle condition.
1666
1667 2019-11-06 Richard Sandiford <richard.sandiford@arm.com>
1668
1669 * tree-vect-loop.c (vect_analyze_loop_2): When vectorizing an
1670 epilogue loop, make sure that the VF is small enough or that
1671 the epilogue loop can be fully-masked.
1672
1673 2019-11-06 Richard Sandiford <richard.sandiford@arm.com>
1674
1675 * tree-vect-loop.c (vect_analyze_loop): Break out of the main
1676 loop when we've finished, rather than returning directly from
1677 the loop. Use a local variable to track whether we're still
1678 searching for the preferred simdlen. Make vect_epilogues
1679 record whether the next iteration should try to treat the
1680 loop as an epilogue.
1681
1682 2019-11-06 Vineet Gupta <vgupta@synopsys.com>
1683
1684 * config/arc/arc-c.c (arc_cpu_cpp_builtins) : Add
1685 __arc_hard_float__, __ARC_HARD_FLOAT__,
1686 __arc_soft_float__, __ARC_SOFT_FLOAT__
1687
1688 2019-11-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
1689
1690 PR tree-optimization/92317
1691 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard2): Also
1692 update phi's with constant phi arguments.
1693
1694 2019-11-06 Eric Botcazou <ebotcazou@adacore.com>
1695 Alexandre Oliva <oliva@adacore.com>
1696
1697 * common.opt (-fcallgraph-info[=]): New option.
1698 * doc/invoke.texi (Developer options): Document it.
1699 * opts.c (common_handle_option): Handle it.
1700 * builtins.c (expand_builtin_alloca): Record allocation if
1701 -fcallgraph-info=da.
1702 * calls.c (expand_call): If -fcallgraph-info, record the call.
1703 (emit_library_call_value_1): Likewise.
1704 * flag-types.h (enum callgraph_info_type): New type.
1705 * explow.c: Include stringpool.h.
1706 (set_stack_check_libfunc): Set SET_SYMBOL_REF_DECL on the symbol.
1707 * function.c (allocate_stack_usage_info): New.
1708 (allocate_struct_function): Call it for -fcallgraph-info.
1709 (prepare_function_start): Call it otherwise.
1710 (record_final_call, record_dynamic_alloc): New.
1711 * function.h (struct callinfo_callee): New.
1712 (CALLEE_FROM_CGRAPH_P): New.
1713 (struct callinfo_dalloc): New.
1714 (struct stack_usage): Add callees and dallocs.
1715 (record_final_call, record_dynamic_alloc): Declare.
1716 * gimplify.c (gimplify_decl_expr): Record dynamically-allocated
1717 object if -fcallgraph-info=da.
1718 * optabs-libfuncs.c (build_libfunc_function): Keep SYMBOL_REF_DECL.
1719 * print-tree.h (print_decl_identifier): Declare.
1720 (PRINT_DECL_ORIGIN, PRINT_DECL_NAME, PRINT_DECL_UNIQUE_NAME): New.
1721 * print-tree.c: Include print-tree.h.
1722 (print_decl_identifier): New function.
1723 * toplev.c: Include print-tree.h.
1724 (callgraph_info_file): New global variable.
1725 (callgraph_info_external_printed): Likewise.
1726 (output_stack_usage): Rename to...
1727 (output_stack_usage_1): ... this. Make it static, add cf
1728 parameter. If -fcallgraph-info=su, print stack usage to cf.
1729 If -fstack-usage, use print_decl_identifier for
1730 pretty-printing.
1731 (INDIRECT_CALL_NAME): New.
1732 (dump_final_node_vcg_start): New.
1733 (dump_final_callee_vcg, dump_final_node_vcg): New.
1734 (output_stack_usage): New.
1735 (lang_dependent_init): Open and start file if
1736 -fcallgraph-info. Allocated callgraph_info_external_printed.
1737 (finalize): If callgraph_info_file is not null, finish it,
1738 close it, and release callgraph_info_external_printed.
1739
1740 2019-11-06 Gergö Barany <gergo@codesourcery.com>
1741 Frederik Harwath <frederik@codesourcery.com>
1742 Thomas Schwinge <thomas@codesourcery.com>
1743
1744 * omp-low.c (struct omp_context): New fields
1745 local_reduction_clauses, outer_reduction_clauses.
1746 (new_omp_context): Initialize these.
1747 (scan_sharing_clauses): Record reduction clauses on OpenACC constructs.
1748 (scan_omp_for): Check reduction clauses for incorrect nesting.
1749
1750 2019-11-06 Jakub Jelinek <jakub@redhat.com>
1751
1752 PR inline-asm/92352
1753 * gimplify.c (gimplify_asm_expr): Reject VLA in output or input
1754 operands with non-memory constraints.
1755
1756 2019-11-05 Martin Sebor <msebor@redhat.com>
1757
1758 PR tree-optimization/92373
1759 * tree.c (component_ref_size): Only consider initializers of objects
1760 of matching struct types.
1761 Return null for instances of interior zero-length arrays.
1762
1763 2019-11-05 Segher Boessenkool <segher@kernel.crashing.org>
1764
1765 * doc/md.texi (Insn Splitting): Fix combiner documentation.
1766
1767 2019-11-05 Jason Merrill <jason@redhat.com>
1768
1769 PR tree-optimization/91825
1770 * expmed.c: Reduce -Wmaybe-uninitialized to warning.
1771
1772 2019-11-05 Jim Wilson <jimw@sifive.com>
1773
1774 PR middle-end/92263
1775 * expr.c (emit_move_complex): Only use BLOCK_OP_NO_LIBCALL when
1776 optimize_insn_for_speed_p is true.
1777
1778 2019-11-05 Martin Sebor <msebor@redhat.com>
1779
1780 PR middle-end/92333
1781 PR middle-end/82608
1782 * tree-vrp.c (vrp_prop::check_array_ref): Handle VLAs with constant
1783 size.
1784 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Use a meaninful
1785 name and location for a temporary variable.
1786
1787 2019-11-05 Aldy Hernandez <aldyh@redhat.com>
1788
1789 * tree-vrp.c (value_range::value_range): Fix whitespace.
1790 (defined_ranges_p): Same.
1791 (range_fold_binary_symbolics_p): Same.
1792 (value_range::intersect_helper): Same.
1793 (value_range::union_helper): Same.
1794 * tree-vrp.h (range_fold_binary_expr): Same.
1795
1796 2019-11-04 Martin Sebor <msebor@redhat.com>
1797
1798 PR middle-end/92341
1799 PR middle-end/82612
1800 * tree-sra.c (get_access_for_expr): Fail for out-of-bounds offsets.
1801 * tree-vrp.c (vrp_prop::check_array_ref): Correct index and text
1802 of message printed in a warning for empty arrays.
1803 (vrp_prop::check_mem_ref): Also handle function parameters and
1804 empty arrays.
1805
1806 2019-11-05 Richard Biener <rguenther@suse.de>
1807
1808 PR tree-optimization/92371
1809 * tree-vect-loop.c (vectorizable_reduction): Set STMT_VINFO_REDUC_DEF
1810 on the original stmt of live stmts in the chain.
1811 (vectorizable_live_operation): Look at the original stmt when
1812 checking STMT_VINFO_REDUC_DEF.
1813
1814 2019-11-05 Aldy Hernandez <aldyh@redhat.com>
1815
1816 * gimple-fold.c, gimple-loop-versioning.cc,
1817 gimple-ssa-evrp-analyze.[ch], gimple-ssa-evrp.c,
1818 gimple-ssa-sprintf.c, ipa-cp.c, ipa-prop.c, ipa-prop.h,
1819 range-op.[hc]*, range.[hc]*, selftest.h, tree-ssa-dom.c,
1820 tree-ssa-strlen.c, tree-ssa-threadedge.c, tree-ssanames.[hc],
1821 tree-vrp.[hc], vr-values.[hc]: Global rename of value_range to
1822 value_range_equiv, and value_range_base to value_range.
1823
1824 2019-11-05 Matthew Malcomson <matthew.malcomson@arm.com>
1825
1826 * expr.c (build_personality_function): Fix generated type to
1827 match actual personality functions.
1828
1829 2019-11-05 Matthew Malcomson <matthew.malcomson@arm.com>
1830
1831 * config/aarch64/aarch64.c (aarch64_handle_attr_cpu): Allocate
1832 enough bytes for the NULL character.
1833
1834 2019-11-05 Richard Biener <rguenther@suse.de>
1835
1836 PR tree-optimization/92280
1837 * match.pd (BIT_FIELD_REF of CTOR): Unless the original CTOR
1838 had a single use do not create a new CTOR.
1839 * tree-ssa-forwprop.c (simplify_bitfield_ref): Do not re-fold
1840 BIT_FIELD_REF of a CTOR via GENERIC.
1841
1842 2019-11-05 Andreas Krebbel <krebbel@linux.ibm.com>
1843
1844 * config/s390/s390.c (s390_vector_alignment): Check if the value
1845 fits into uhwi before using it.
1846
1847 2019-11-05 Martin Liska <mliska@suse.cz>
1848
1849 * symbol-summary.h: Use ggc_delete.
1850
1851 2019-11-05 Anton Youdkevitch <anton.youdkevitch@bell-sw.com>
1852
1853 * config/aarch64/aarch64.c (thunderx2t99_vector_cost):
1854 Change vec_perm field to 10.
1855
1856 2019-11-05 Arnaud Charlet <charlet@adacore.com>
1857
1858 * doc/install.texi: Further fix syntax for html generation.
1859
1860 2019-11-05 Martin Liska <mliska@suse.cz>
1861
1862 * symbol-summary.h: Rename allocator to m_allocator and
1863 add comment.
1864
1865 2019-11-05 Richard Biener <rguenther@suse.de>
1866
1867 PR tree-optimization/92324
1868 * tree-vect-loop.c (check_reduction_path): For MIN/MAX require
1869 all signed or unsigned operations.
1870
1871 2019-11-05 Jan Hubicka <jh@suse.cz>
1872
1873 * hsa-brig.c: Include alloc-pool.h
1874 * hsa-dump.c: Likewise.
1875 * hsa-gen.c: Likewise.
1876 * hse-regalloc.c: Likewise.
1877 * ipa-hsa.c: Likewise.
1878 * ipa-predicate.c: Likewise.
1879 * ipa-reference.c: Likewise.
1880 * ipa-sra.c: Likewise.
1881 * omp-expand.c: Likewise.
1882 * omp-general.c: Likewise.
1883 * omp-low.c: Likewise.
1884 * sumbol-summary.h (function_summary_base): Add allocator.
1885 (function_summary<T *>::function_summary): Update construction.
1886 (fast_function_summary<T *, V>::fast_function_summary): Likewise.
1887 (call_summary_base): Add allcator.
1888 (call_summary<T *>::call_summary): Update construction.
1889 (fast_call_summary<T *, V>::fast_call_summary): Likewise.
1890
1891 2019-11-05 Jakub Jelinek <jakub@redhat.com>
1892
1893 PR tree-optimization/91945
1894 * builtins.c (compute_objsize): For ARRAY_REF, only multiply off
1895 by tpsize if it is both non-NULL and INTEGER_CST, otherwise punt.
1896 Formatting fix.
1897
1898 2019-11-05 Aldy Hernandez <aldyh@redhat.com>
1899
1900 * range-op.cc (wi_set_zero_nonzero_bits): Remove static qualifier.
1901 * range-op.h (wi_set_zero_nonzero_bits): New prototype.
1902 * tree-vrp.h (vrp_set_zero_nonzero_bits): Remove.
1903 * tree-vrp.c (wide_int_range_set_zero_nonzero_bits): Remove.
1904 (vrp_set_zero_nonzero_bits): Move to...
1905 * vr-values.c (vr_set_zero_nonzero_bits): ...here.
1906 (vr_values::simplify_bit_ops_using_ranges): Rename
1907 vrp_set_zero_nonzero_bits to vr_set_zero_nonzero_bits.
1908
1909 2019-11-05 Martin Liska <mliska@suse.cz>
1910
1911 PR c++/92339
1912 * fold-const.c (operand_compare::hash_operand): Remove
1913 FIELD_DECL handling.
1914
1915 2019-11-05 Aldy Hernandez <aldyh@redhat.com>
1916
1917 * tree-vrp.h (vrp_bitmap_equal_p): Remove.
1918 * tree-vrp.c (vrp_bitmap_equal_p): Move before use and make
1919 static.
1920
1921 2019-11-05 Aldy Hernandez <aldyh@redhat.com>
1922
1923 * tree-vrp.c (value_range_base::operator==): Use equal_p to
1924 properly handle symbolics.
1925 (range_compatible_p): Remove.
1926
1927 2019-11-04 Kamlesh Kumar <kamleshbhalui@gmail.com>
1928
1929 * common.opt (-fabi-version): Document =14.
1930 * doc/invoke.texi (C++ Dialect Options): Likewise.
1931
1932 2019-11-04 Aldy Hernandez <aldyh@redhat.com>
1933
1934 * tree-vrp.c (value_range_base::set): Do not special case pointers.
1935
1936 2019-11-04 Tobias Burnus <tobias@codesourcery.com>
1937
1938 * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): New function.
1939 (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to
1940 gcn_omp_device_kind_arch_isa.
1941 * config/gcn/t-omp-device: New file.
1942 * configure.ac: Support gcn for omp_device_property.
1943 * configure: Regenerate.
1944
1945 2019-11-04 Aldy Hernandez <aldyh@redhat.com>
1946
1947 * tree-vrp.h (vrp_val_min): Remove handle_pointers argument.
1948 (vrp_val_max): Same.
1949 (vrp_val_is_min): Same.
1950 (vrp_val_is_max): Same.
1951 (value_range_base::nonzero_p): Remove last argument to
1952 vrp_val_is_max.
1953 * tree-vrp.c (vrp_val_min): Remove handle_pointers argument.
1954 (vrp_val_max): Same.
1955 (vrp_val_is_min): Same.
1956 (vrp_val_is_max): Same.
1957 (value_range_base::set_varying): Remove last argument to vrp_val*.
1958 (value_range_base::dump): Same.
1959 (value_range_base::set): Same.
1960 (value_range_base::normalize_symbolics): Same.
1961 (value_range_base::num_pairs): Same.
1962 (value_range_base::lower_bound): Same.
1963 (value_range_base::upper_bound): Same.
1964 (ranges_from_anti_range): Remove handle_pointers argument.
1965 (value_range_base::singleton_p): Remove last argument to
1966 ranges_from_anti_range.
1967
1968 2019-11-04 Jan Hubicka <jh@suse.cz>
1969
1970 * ipa-reference.c (init_function_info): Initialize
1971 info->global.statics_read.
1972
1973 2019-11-04 Aldy Hernandez <aldyh@redhat.com>
1974
1975 * tree-vrp.c (value_range_base::invert): Use constructors to build
1976 range.
1977
1978 2019-11-04 Aldy Hernandez <aldyh@redhat.com>
1979
1980 * tree-vrp.c (range_int_cst_singleton_p): Remove.
1981 * tree-vrp.h (range_int_cst_singleton_p): Remove.
1982
1983 2019-11-04 Aldy Hernandez <aldyh@redhat.com>
1984
1985 * tree-vrp.c (value_range_base::normalize_addresses): Handle
1986 VR_UNDEFINED.
1987
1988 2019-11-04 Aldy Hernandez <aldyh@redhat.com>
1989
1990 * tree-vrp.c (dump_assert_info): New.
1991 (dump_asserts_info): New.
1992
1993 2019-11-04 Jan Hubicka <jh@suse.cz>
1994
1995 * ipa-inline-transform.c: Include ipa-utils.h
1996 (inline_call): Set thunk_expansion flag.
1997 * ipa-utils.h (thunk_expansion): Declare.
1998 * ipa-devirt.c (thunk_expansion): New global var.
1999 (devirt_node_removal_hook): Do not invalidate cache while
2000 doing thunk expansion.
2001
2002 2019-11-04 Tamar Christina <tamar.christina@arm.com>
2003
2004 * tree-vect-slp.c (vectorize_slp_instance_root_stmt): Initialize rstmt.
2005
2006 2019-11-04 Martin Sebor <msebor@redhat.com>
2007
2008 PR tree-optimization/92349
2009 * tree-vrp.c (vrp_prop::check_array_ref): Avoid assuming struct
2010 memebers have constant sizes.
2011
2012 2019-11-04 Andre Vieira <andre.simoesdiasvieira@arm.com>
2013
2014 * tree-vect-loop.c (vect_analyze_loop): Remove orig_loop_vinfo
2015 parameter.
2016 * tree-vectorizer.h (vect_analyze_loop): Update declaration.
2017 * tree-vectorizer.c (try_vectorize_loop_1): Update calls to
2018 vect_analyze_loop.
2019
2020 2019-11-04 Joel Hutton <Joel.Hutton@arm.com>
2021
2022 * expr.c (store_constructor): Modify to handle single element vectors.
2023 * tree-vect-slp.c (vect_analyze_slp_instance): Add case for vector
2024 constructors.
2025 (vect_slp_check_for_constructors): New function.
2026 (vect_slp_analyze_bb_1): Call new function to check for vector
2027 constructors.
2028 (vectorize_slp_instance_root_stmt): New function.
2029 (vect_schedule_slp): Call new function to vectorize root stmt of vector
2030 constructors.
2031 * tree-vectorizer.h (SLP_INSTANCE_ROOT_STMT): New field.
2032
2033 2019-11-04 Richard Biener <rguenther@suse.de>
2034
2035 PR tree-optimization/92345
2036 * tree-vect-loop.c (vect_is_simple_reduction): Return whether
2037 we produced a reduction chain.
2038 (vect_analyze_scalar_cycles_1): Do not add reduction chains to
2039 LOOP_VINFO_REDUCTIONS.
2040
2041 2019-11-04 Jan Hubicka <jh@suse.cz>
2042
2043 * cgraphclones.c (cgraph_node::create_version_clone): Do not
2044 duplicate summaries.
2045 * ipa-fnsummary.c (ipa_fn_summary_alloc): Allocate size summary
2046 first.
2047 (ipa_fn_summary_t::duplicate): Use get instead of get_create to
2048 access call summaries.
2049 (dump_ipa_call_summary): Be ready for missing edge summaries.
2050 (analyze_function_body): Use get instead of get_create to access
2051 edge summary.
2052 (estimate_calls_size_and_time): Do not access summaries of
2053 inlined edges; sanity check they are missing.
2054 (ipa_call_context::estimate_size_and_time): Use get instead
2055 of get_create to access node summary.
2056 (inline_update_callee_summaries): Do not update depth of
2057 inlined edge.
2058 (ipa_merge_fn_summary_after_inlining): Remove inline edge from
2059 growth caches.
2060 (ipa_merge_fn_summary_after_inlining): Use get instead
2061 of get_create.
2062 * ipa-fnsummary.h (ipa_remove_from_growth_caches): Declare.
2063 * ipa-inline-analyssi.c (edge_growth_cache): Turn to
2064 fast summary.
2065 (initialize_growth_caches): Update.
2066 (do_estimate_edge_time): Remove redundant copy of context.
2067 (ipa_remove_from_growth_caches): New function.
2068 * ipa-inline.c (flatten_function): Update overall summary
2069 only when optimizing.
2070 (inline_to_all_callers): Update overall summary of function
2071 inlined to.
2072 * ipa-inline.h (edge_growth_cache): Turn to fast summary.
2073 * symbol-summary.h (call_summary_base): Set m_initialize_when_cloning
2074 to false.
2075
2076 2019-11-04 Richard Biener <rguenther@suse.de>
2077
2078 * system.h: Include malloc.h if INCLUDE_MALLOC_H and HAVE_MALLINFO.
2079 * ggc-common.c: Remove inclusion of malloc.h, define INCLUDE_MALLOC_H.
2080
2081 2019-11-04 David Edelsohn <dje.gcc@gmail.com>
2082
2083 * ggc-common.c: Include system.h before malloc.h.
2084
2085 2019-11-04 Alexandre Oliva <oliva@adacore.com>
2086
2087 * configure.ac: Pass --enable-obsolete=* and
2088 --enable-option-checking=* down to build configure, and fail
2089 if it fails. AC_SUBST HAVE_AUTO_BUILD.
2090 * configure: Rebuild.
2091 * Makefile.in [HAVE_AUTO_BUILD] (auto-build.h): New rule.
2092 [HAVE_AUTO_BUILD] (config.status): Depend on auto-build.h.
2093
2094 2019-11-04 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2095
2096 * config.in: Regenerate.
2097 * config/msp430/msp430.c (msp430_option_override): Emit an error if
2098 -mtiny-printf is used without GCC being configured with
2099 --enable-newlib-nano-formatted-io.
2100 * config/msp430/msp430.h (LINK_SPEC): Pass
2101 "--wrap puts --wrap printf" when -mtiny-printf is used.
2102 * config/msp430/msp430.opt: Document -mtiny-printf.
2103 * configure: Regenerate.
2104 * configure.ac: Enable --enable-newlib-nano-formatted-io flag.
2105 Define HAVE_NEWLIB_NANO_FORMATTED_IO if
2106 --enable-newlib-nano-formatted-io is passed.
2107 * doc/invoke.texi: Document -mtiny-printf.
2108
2109 2019-11-04 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2110
2111 * configure: Regenerate.
2112
2113 2019-11-04 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2114
2115 * config/msp430/driver-msp430.c
2116 (msp430_get_linker_devices_include_path): New spec function.
2117 * config/msp430/msp430-devices.c (msp430_dirname): New function.
2118 (extract_devices_dir_from_exec_prefix): New function.
2119 (extract_devices_dir_from_collect_gcc): New function.
2120 (msp430_check_env_var_for_devices): New function.
2121 (msp430_check_path_for_devices): Use xstrdup instead of ASTRDUP.
2122 (parse_devices_csv): Call msp430_check_env_var_for_devices if
2123 devices.csv was not found using other methods.
2124 * config/msp430/msp430-devices.h (msp430_check_env_var_for_devices):
2125 New prototype.
2126 (msp430_dirname): Likewise.
2127 * config/msp430/msp430.c (msp430_register_pre_includes): New function.
2128 * config/msp430/msp430.h (EXTRA_SPEC_FUNCTIONS): Add
2129 msp430_get_linker_devices_include_path.
2130 (TARGET_EXTRA_PRE_INCLUDES): Define.
2131 * doc/invoke.texi: Document new ways of searching for support files.
2132
2133 2019-11-04 Richard Biener <rguenther@suse.de>
2134
2135 PR tree-optimization/92301
2136 * tree-vect-stmts.c (process_use): Force reduction PHI defs live
2137 as required by epilogue generation
2138
2139 2019-11-04 Martin Liska <mliska@suse.cz>
2140
2141 PR ipa/92304
2142 * fold-const.c (operand_compare::hash_operand): Fix field
2143 hashing of CONSTRUCTOR.
2144
2145 2019-11-04 Martin Liska <mliska@suse.cz>
2146
2147 * ggc.h (ggc_delete): New function.
2148 * ipa-fnsummary.c (ipa_free_fn_summary): Use it.
2149 * ipa-prop.c (ipa_free_all_edge_args): Likewise.
2150 (ipa_free_all_node_params): Likewise.
2151 * ipa-sra.c (ipa_sra_analysis): Likewise.
2152
2153 2019-11-02 Jan Hubicka <hubicka@ucw.cz>
2154
2155 * ipa-fnsummary.c (set_cond_stmt_execution_predicate,
2156 set_switch_stmt_execution_predicate, compute_bb_predicates,
2157 will_be_nonconstant_expr_predicate,
2158 phi_result_unknown_predicate,
2159 analyze_function_body): Pass arround params summary.
2160 (ipa_call_context::duplicate_from): New comment;
2161 only duplicate useful values.
2162 (ipa_call_context::equal_to): Only compare useful values.
2163 (remap_edge_summaries): Pass params_summary.
2164 (remap_hint_predicate): Likewise.
2165 (ipa_merge_fn_summary_after_inlining): Likewise.
2166 (inline_read_section): Initialize params summary used flags.
2167 * ipa-predicate.c (predicate::remap_after_inlining): Pass
2168 around param_summary.
2169 (add_condition): Initialized used params summary flags.
2170 * ipa-predicate.h (inline_param_summary::equals_to): Make const.
2171 (inline_param_summary::useless_p): New predicate.
2172 (remap_after_inlining, add_condition): Update prototype
2173 * ipa-prop.c (ipa_populate_param_decls): Watch overflow in
2174 move_cost.
2175 (ipa_note_param_call): Add parameter POLYMORPHIC; update params
2176 summaries.
2177 (ipa_analyze_indirect_call_uses): Update use of ipa_note_param_call.
2178 (ipa_analyze_virtual_call_uses): Likewise.
2179 (update_indirect_edges_after_inlining): Update param summaries.
2180 (ipa_print_node_params): Print used flags.
2181 (ipa_read_indirect_edge_info): Update param summareis.
2182 * ipa-prop.h (ipa_param_descriptor): Add
2183 used_by_ipa_predicates, used_by_indirect_call
2184 and used_by_polymorphic_call.
2185 (ipa_set_param_used_by_ipa_predicates,
2186 ipa_set_param_used_by_indirect_call,
2187 ipa_set_param_used_by_polymorphic_call,
2188 ipa_is_param_used_by_ipa_predicates,
2189 ipa_is_param_used_by_indirect_call,
2190 ipa_is_param_used_by_polymorphic_call): New inline functions.
2191
2192 2019-11-02 Jan Hubicka <hubicka@ucw.cz>
2193
2194 * ipa-fnsummary.c (ipa_call_context::duplicate_from): New
2195 member function.
2196 (ipa_call_context::release): Add ALL parameter.
2197 (ipa_call_context::equal_to): New member function.
2198 * ipa-fnsummary.h (ipa_call_context): Add empty constructor;
2199 duplicate_form, release, equal_to and exists_p member functoins.
2200 * ipa-inline-analysis.c (node_context_cache_entry): New
2201 class.
2202 (node_context_summary): Likewise.
2203 (node_context_cache, node_context_cache_hit, node_context_cache_miss,
2204 node_context_clear): New static vars.
2205 (initialize_growth_caches): New function.
2206 (free_growth_caches): Also delete node_context_cache; output stats.
2207 (do_estimate_edge_time): Cache contexts.
2208 (reset_node_cache): New function.
2209 * ipa-inline.c (reset_edge_caches): Reset also node cache.
2210 (inline_small_functions): Initialize growth caches.
2211 * ipa-inline.h (reset_node_cache, initialize_growth_caches):
2212 Declare.
2213 * ipa-predicate.h (inline_param_summary::equal_to): New.
2214 * ipa-prop.c (ipa_agg_jf_item::equal_to): New.
2215 * ipa-prop.h (ipa_agg_jf_item): Declare equal_to member function.
2216 (ipa_agg_jump_function): Implement equal_to member function.
2217
2218 2019-11-02 Jan Hubicka <hubicka@ucw.cz>
2219
2220 * ipa-fnsummary.c (inline_read_section): Set vector size
2221 ahead of time.
2222
2223 2019-11-02 Jan Hubicka <hubicka@ucw.cz>
2224
2225 * ipa-fnsummary.c (ipa_call_context): New constructor.
2226 (estimate_node_size_and_time): Turn to ...
2227 (ipa_call_context::estimate_size_and_time): ... this one.
2228 (ipa_call_context::release): New.
2229 * ipa-fnsummary.h (ipa_call_context): New class.
2230 (estimate_node_size_and_time): Remove.
2231 * ipa-inline-analysis.c (do_estimate_edge_time, do_estimate_edge_size,
2232 do_estimate_edge_hints): Update.
2233
2234 2019-11-02 Jan Hubicka <hubicka@ucw.cz>
2235
2236 * config.in: Regenerate.
2237 * configure: Regenerate.
2238 * configure.ac: Check for mallinfo.
2239 * ggc-common.c: Include malloc.h if available;
2240 include options.h
2241 (report_heap_memory_use): New functoin.
2242 * ggc-page.c (ggc_grow): Do not print "start".
2243 * ggc.h (report_heap_memory_use): Declare.
2244 * pases.c (execute_one_pass): Report memory after IPA passes.
2245 (ipa_read_summaries_1): Likewise.
2246 (ipa_read_optimization_summaries_1): Likewise.
2247
2248 2019-11-02 Jakub Jelinek <jakub@redhat.com>
2249
2250 * gimplify.h (omp_construct_selector_matches): Change return
2251 type to int, add a new SCORES argument.
2252 * gimplify.c (omp_construct_selector_matches): Likewise. If
2253 SCORES is non-NULL, compute scores of each construct.
2254 * omp-general.h (omp_get_context_selector): Declare.
2255 * omp-general.c (omp_maybe_offloaded, omp_context_selector_matches):
2256 Adjust omp_construct_selector_matches callers.
2257 (omp_get_context_selector): New function, moved from c-family/c-omp.c.
2258 (omp_context_compute_score): New function.
2259 (omp_resolve_declare_variant): Compute scores and decide based on
2260 that.
2261
2262 PR bootstrap/92314
2263 * configure.ac: Don't look for omp-device-properties files from
2264 installed offloading compilers. Instead add tmake_file snippets
2265 for configured offloading targets and use files they generate.
2266 * Makefile.in (install): Don't depend on
2267 install-omp-device-properties.
2268 (install-omp-device-properties): Remove goal.
2269 * config/i386/t-omp-device: New file.
2270 * config/i386/t-intelmic (omp-device-properties): Remove goal.
2271 * config/nvptx/t-omp-device: New file.
2272 * config/nvptx/t-nvptx (omp-device-properties): Remove goal.
2273 * configure: Regenerated.
2274
2275 * omp-general.h (omp_context_selector_set_compare): Declare.
2276 * omp-general.c (omp_construct_simd_compare,
2277 omp_context_selector_props_compare, omp_context_selector_set_compare,
2278 omp_context_selector_compare): New functions.
2279 (omp_resolve_declare_variant): Prune variants that are strict subset
2280 of another variant.
2281
2282 2019-11-01 Martin Sebor <msebor@redhat.com>
2283
2284 PR middle-end/91679
2285 PR middle-end/91647
2286 PR middle-end/91463
2287 PR middle-end/92312
2288 * doc/invoke.texi (-Wzero-length-bounds): Document.
2289 * gimple-match-head.c (try_conditional_simplification): Use memcpy
2290 instead of a hand-rolled loop to avoid PR 92323.
2291 * tree-vrp.c (vrp_prop::check_array_ref): Handle trailing arrays
2292 with initializers.
2293 (vrp_prop::check_mem_ref): Handle declared struct objects.
2294 * tree.c (last_field): New function.
2295 (array_at_struct_end_p): Handle MEM_REF.
2296 (get_initializer_for): New helper.
2297 (component_ref_size): Add argument. Rename locals. Call
2298 get_initializer_for instead of fold_ctor_reference. Correct handling
2299 of flexible array members.
2300 * wide-int.h (generic_wide_int <storage>::sign_mask): Assert invariant.
2301
2302 2019-11-01 Kewen Lin <linkw@gcc.gnu.org>
2303
2304 * config/rs6000/rs6000-modes.def (V2SF, V2SI): New modes.
2305 * config/rs6000/vsx.md (UNSPEC_VSX_CVSPSXDS,
2306 UNSPEC_VSX_CVSPUXDS): Remove.
2307 (vsx_xvcvspdp): New define_expand, old define_insn split to...
2308 (vsx_xvcvspdp_be): ... this. New. And...
2309 (vsx_xvcvspdp_le): ... this. New.
2310 (vsx_xvcv<su>xwdp): New define_expand, old define_insn split to...
2311 (vsx_xvcv<su>xwdp_be): ... this. New. And...
2312 (vsx_xvcv<su>xwdp_le): ... this. New.
2313 (vsx_xvcvsp<su>xds): New define_expand, old define_insn split to...
2314 (vsx_xvcvsp<su>xds_be): ... this. New. And...
2315 (vsx_xvcvsp<su>xds_le): ... this. New.
2316
2317 2019-11-01 Kewen Lin <linkw@gcc.gnu.org>
2318
2319 * config/rs6000/vsx.md (UNSPEC_VSX_CVSXWSP, UNSPEC_VSX_CVUXWSP,
2320 UNSPEC_VSX_XVCVSXDDP, UNSPEC_VSX_XVCVUXDDP,
2321 UNSPEC_VSX_XVCVDPSXDS, UNSPEC_VSX_XVCVDPUXDS,
2322 UNSPEC_VSX_XVCVSPSXWS): Remove.
2323 (vsx_xvcv<su>xddp, vsx_xvcvdp<su>xds, vsx_xvcvsp<su>xws,
2324 vsx_xvcv<su>xwsp): Update define_insn RTL patterns.
2325
2326 2019-11-01 Kewen Lin <linkw@gcc.gnu.org>
2327
2328 * config/rs6000/vsx.md (vsx_xvcdpsp): Remove define_insn.
2329 (UNSPEC_VSX_XVCDPSP): Remove.
2330 * config/rs6000/rs6000.c (rs6000_generate_float2_double_code):
2331 Replace gen_vsx_xvcdpsp by gen_vsx_xvcvdpsp.
2332
2333 2019-11-01 Tobias Burnus <tobias@codesourcery.com>
2334
2335 * hooks.c (hook_tree_tree_bool_null): New.
2336 * hooks.h (hook_tree_tree_bool_null): Declare.
2337 * langhooks-def.h (LANG_HOOKS_OMP_ARRAY_DATA): Define.
2338 (LANG_HOOKS_DECLS): Add it.
2339 * langhooks.h (lang_hooks_for_decls): Add omp_array_data.
2340 * omp-low.c (install_var_field): New mode for Fortran descriptor arrays.
2341 (lower_omp_target): Handle Fortran array with descriptor in
2342 OMP_CLAUSE_USE_DEVICE_ADDR/OMP_CLAUSE_USE_DEVICE_PTR.
2343
2344 2019-10-31 Richard Sandiford <richard.sandiford@arm.com>
2345
2346 * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types):
2347 Assert that the type we store in abi_vector_types is its own
2348 main variant.
2349 (svbool_type_p): Don't apply TYPE_MAIN_VARIANT here.
2350
2351 2019-10-31 Richard Earnshaw <rearnsha@arm.com>
2352
2353 * config/arm/arm.c (arm_legitimize_address): Don't form negative offsets
2354 from a CONST_INT address when TARGET_THUMB2.
2355
2356 2019-10-31 Richard Earnshaw <rearnsha@arm.com>
2357
2358 * config/arm/arm.md (add_not_cin): New insn.
2359 (add_not_shift_cin): Likewise.
2360
2361 2019-10-31 Martin Liska <mliska@suse.cz>
2362
2363 * ipa-icf-gimple.c (func_checker::compare_tree_ssa_label): Remove.
2364 * ipa-icf-gimple.h: Remove declaration from compare_tree_ssa_label
2365 and compare_memory_operand.
2366
2367 2019-10-31 Jakub Jelinek <jakub@redhat.com>
2368
2369 * configure.ac: Compute and substitute omp_device_properties and
2370 omp_device_property_deps.
2371 * Makefile.in (generated_files): Add omp-device-properties.h.
2372 (omp-general.o): Depend on omp-device-properties.h.
2373 (omp_device_properties): New make variable.
2374 (omp-device-properties.h, s-omp-device-properties-h,
2375 install-omp-device-properties): New goals.
2376 (install): Depend on install-omp-device-properties for accelerators.
2377 * target.def (TARGET_OMP_DEVICE_KIND_ARCH_ISA): New target hook.
2378 * target.h (enum omp_device_kind_arch_isa): New enum.
2379 * doc/tm.texi.in: Add placeholder for TARGET_OMP_DEVICE_KIND_ARCH_ISA
2380 documentation.
2381 * omp-general.c: Include omp-device-properties.h.
2382 (omp_max_simt_vf): Expect OFFLOAD_TARGET_NAMES to be separated by
2383 colon instead of comma.
2384 (omp_offload_device_kind_arch_isa, omp_maybe_offloaded): New
2385 functions.
2386 (omp_context_selector_matches): Implement device set arch/isa
2387 selectors, improve device set kind selector handling.
2388 * config/i386/i386-options.h (ix86_omp_device_kind_arch_isa): Declare.
2389 * config/i386/i386.c (TARGET_SIMD_CLONE_ADJUST,
2390 TARGET_SIMD_CLONE_USABLE): Formatting fix.
2391 (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to
2392 ix86_omp_device_kind_arch_isa.
2393 * config/i386/i386-options.c (struct ix86_target_opts): Move type
2394 definition from ix86_target_string to file scope.
2395 (isa2_opts, isa_opts): Moved arrays from ix86_target_string function
2396 to file scope.
2397 (ix86_omp_device_kind_arch_isa): New function.
2398 (ix86_target_string): Moved struct ix86_target_opts, isa2_opts and
2399 isa_opts definitions to file scope.
2400 * config/i386/t-intelmic (omp-device-properties): New goal.
2401 * config/nvptx/t-nvptx (omp-device-properties): Likewise.
2402 * config/nvptx/nvptx.c (nvptx_omp_device_kind_arch_isa): New function.
2403 (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to
2404 nvptx_omp_device_kind_arch_isa.
2405 * configure: Regenerate.
2406 * doc/tm.texi: Regenerate.
2407
2408 PR middle-end/92231
2409 * tree.h (fndecl_built_in_p): Use fndecl_built_in_p instead of
2410 DECL_BUILT_IN in comment. Remove redundant ()s around return
2411 argument.
2412 * tree.c (free_lang_data_in_decl): Check if var is FUNCTION_DECL
2413 before calling fndecl_built_in_p.
2414 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Check if
2415 TREE_OPERAND (fn, 0) is a FUNCTION_DECL before calling
2416 fndecl_built_in_p on it.
2417
2418 2019-10-31 Andre Vieira <andre.simoesdiasvieira@arm.com>
2419
2420 * params.def (PARAM_VECT_EPILOGUES_NOMASK): Enable by default.
2421
2422 2019-10-31 Martin Liska <mliska@suse.cz>
2423
2424 * config/arm/arm.c (arm_get_pcs_model): Remove usage
2425 of cgraph_local_info and use local_info_node instead.
2426 * config/bfin/bfin.c (bfin_load_pic_reg): Likewise.
2427 (bfin_function_ok_for_sibcall): Likewise.
2428 * config/c6x/c6x.c (c6x_function_ok_for_sibcall): Likewise.
2429 (must_reload_pic_reg_p): Likewise.
2430
2431 2019-10-31 Jakub Jelinek <jakub@redhat.com>
2432
2433 PR c++/90947
2434 * tree.h (type_initializer_zero_p): Remove.
2435 * tree.c (type_initializer_zero_p): Remove.
2436
2437 2019-10-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
2438
2439 * doc/invoke.texi (-Wshadow, -Wshadow=global
2440 -Wshadow=local, -Wshadow=compatible-local): Update documentation.
2441
2442 2019-10-30 Tobias Burnus <tobias@codesourcery.com>
2443
2444 * gimplify.c (gimplify_scan_omp_clauses): Remove FE-generated
2445 GOMP_MAP_TO_PSET and GOMP_MAP_POINTER mapping for 'target update'
2446 and 'target exit data'.
2447
2448 2019-10-30 Martin Jambor <mjambor@suse.cz>
2449
2450 ipa/92278
2451 * cgraph.c (cgraph_edge::possibly_call_in_translation_unit_p): Fix
2452 availability comparison.
2453
2454 2019-10-30 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2455
2456 * config/msp430/msp430.c (msp430_expand_helper): Support expansion of
2457 calls to __mspabi_mpy* functions.
2458 * config/msp430/msp430.md (mulhisi3): New define_expand.
2459 (umulhisi3): New define_expand.
2460 (*mulhisi3_inline): Use old mulhisi3 define_insn.
2461 (*umulhisi3_inline): Use old umulhisi3 define_insn.
2462
2463 2019-10-30 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2464
2465 * config/msp430/msp430.c (msp430_check_index_not_high_mem): New.
2466 (msp430_check_plus_not_high_mem): New.
2467 (msp430_op_not_in_high_mem): Use new functions to check if the operand
2468 might be in low memory.
2469 Indicate that a 16-bit absolute address is in lower memory.
2470
2471 2019-10-30 Martin Jambor <mjambor@suse.cz>
2472
2473 * ipa-prop.c (ipa_compute_jump_functions_for_bb): Fix the call to
2474 ultimate_alias_target.
2475
2476 2019-10-30 Richard Biener <rguenther@suse.de>
2477
2478 PR tree-optimization/92275
2479 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_loops):
2480 Copy all loop-closed PHIs.
2481
2482 2019-10-30 Martin Liska <mliska@suse.cz>
2483
2484 * ipa-icf-gimple.c (func_checker::compare_ssa_name): Use
2485 const_tree as function argument.
2486 (func_checker::compare_decl): Likewise.
2487 (func_checker::operand_equal_p): Likewise.
2488 (func_checker::compare_variable_decl): Likewise.
2489 (func_checker::parse_labels): Likewise.
2490 * ipa-icf-gimple.h: Likewise.
2491
2492 2019-10-30 Martin Liska <mliska@suse.cz>
2493
2494 * ipa-icf-gimple.c (func_checker::compatible_types_p):
2495 Do not compare alias sets. It's handled by operand_equal_p.
2496
2497 2019-10-30 Martin Liska <mliska@suse.cz>
2498
2499 * ipa-icf-gimple.c (func_checker::func_checker): Do not
2500 initialize m_compare_polymorphic.
2501 (func_checker::compare_decl): Do not compare polymorphic types.
2502 * ipa-icf-gimple.h (m_compare_polymorphic): Remove.
2503 * ipa-icf.c (sem_function::equals_private): Do not call
2504 compare_polymorphic_p.
2505
2506 2019-10-30 Martin Liska <mliska@suse.cz>
2507
2508 * ipa-icf-gimple.c (func_checker::compare_ssa_name): Call
2509 compare_operand.
2510 (func_checker::compare_memory_operand): Remove.
2511 (func_checker::compare_cst_or_decl): Remove.
2512 (func_checker::operand_equal_valueize): Do not handle
2513 FIELD_DECL.
2514 (func_checker::compare_gimple_call): Call compare_operand.
2515 (func_checker::compare_gimple_assign): Likewise.
2516 * ipa-icf-gimple.h: Remove compare_cst_or_decl.
2517 * ipa-icf.c (sem_function::icf_handled_component_p): Remove.
2518 * ipa-icf.h (icf_handled_component_p): Remove.
2519
2520 2019-10-30 Martin Liska <mliska@suse.cz>
2521
2522 * ipa-icf-gimple.c (func_checker::hash_operand): New.
2523 (func_checker::compare_cst_or_decl): Remove handling
2524 of FIELD_DECL.
2525 (func_checker::compare_operand): Transform to ...
2526 (func_checker::operand_equal_p): ... this.
2527 * ipa-icf-gimple.h (class func_checker): Add
2528 operand_equal_p and hash_operand.
2529 * ipa-icf.c (sem_function::equals_private): Fix
2530 pushing and popping of cfun.
2531
2532 2019-10-30 Martin Liska <mliska@suse.cz>
2533
2534 * fold-const.c (operand_equal_p): Move to ...
2535 (operand_compare::operand_equal_p): ... here.
2536 (operand_compare::verify_hash_value): New.
2537 (add_expr): Move to ...
2538 (operand_compare::hash_operand): ... here.
2539 * fold-const.h (operand_equal_p): Move to the class.
2540 (class operand_compare): New.
2541 * tree.c (add_expr): Remove.
2542
2543 2019-10-30 Martin Liska <mliska@suse.cz>
2544
2545 * fold-const.c (operand_equal_p): Support OBJ_TYPE_REF.
2546 * tree.c (add_expr): Hash parts of OBJ_TYPE_REF.
2547
2548 2019-10-30 Martin Liska <mliska@suse.cz>
2549
2550 PR lto/91393
2551 PR lto/88220
2552 * cgraph.c (cgraph_node::get_create): Overwrite node->order
2553 from a first_clone in order to get proper LTO section
2554 in LTO stream.
2555 (cgraph_node::get_untransformed_body):
2556 Use lto_get_section_data where symtab_node::order
2557 must be provided.
2558 * cgraphclones.c (cgraph_node::find_replacement):
2559 Update also symbol order.
2560 * ipa-fnsummary.c (ipa_fn_summary_read):
2561 Use new function lto_get_summary_section_data.
2562 * ipa-hsa.c (ipa_hsa_read_summary): Likewise.
2563 * ipa-icf.c (sem_item_optimizer::read_summary):
2564 Likewise.
2565 * ipa-prop.c (ipa_prop_read_jump_functions):
2566 Likewise.
2567 (ipcp_read_transformation_summaries): Likewise.
2568 * ipa-sra.c (ipa_sra_read_summary): Likewise.
2569 * lto-cgraph.c (input_node): Add also order_base.
2570 (input_varpool_node): Likewise.
2571 (input_cgraph_1): Assign the order_base.
2572 (input_cgraph_opt_summary): Use new lto_get_summary_section_data.
2573 * lto-opts.c (lto_write_options): Pass new argument.
2574 * lto-section-in.c (lto_get_section_data): Add new argumente order.
2575 (lto_get_summary_section_data): New.
2576 (lto_get_raw_section_data): Add order argument.
2577 (lto_create_simple_input_block): Likewise.
2578 * lto-section-out.c (lto_destroy_simple_output_block):
2579 Likewise.
2580 * lto-streamer-in.c (lto_input_toplevel_asms):
2581 Use lto_get_summary_section_data.
2582 (lto_input_mode_table): Likewise.
2583 * lto-streamer-out.c (produce_asm): Pass symtab_node::order.
2584 (lto_output_toplevel_asms): Pass new argument.
2585 (copy_function_or_variable): Likewise.
2586 (produce_lto_section):Likewise.
2587 (produce_symtab): Likewise.
2588 (lto_write_mode_table): Likewise.
2589 (produce_asm_for_decls): Likewise.
2590 * lto-streamer.c (lto_get_section_name): Concat symbol name
2591 and symbol order.
2592 * lto-streamer.h (lto_get_section_data): Add order argument.
2593 (lto_get_summary_section_data): New.
2594 (lto_get_raw_section_data): Add order argument.
2595 (lto_get_section_name): Likewise.
2596 * varpool.c (varpool_node::get_constructor): Pass order argument.
2597
2598 2019-10-30 Jakub Jelinek <jakub@redhat.com>
2599
2600 PR tree-optimization/92262
2601 * tree-ssa-loop-ivopts.c (get_debug_computation_at): Don't unshare
2602 ubase or cbase here.
2603 (remove_unused_ivs): Unshare comp before using it.
2604
2605 2019-10-30 Jan Hubicka <hubicka@ucw.cz>
2606
2607 * ipa-prop.c (update_jump_functions_after_inlining):
2608 Watch for missing summaries.
2609
2610 2019-10-30 Richard Biener <rguenther@suse.de>
2611
2612 PR tree-optimization/65930
2613 * tree-vect-loop.c (vect_is_simple_reduction): For reduction
2614 chains also allow a leading and trailing conversion.
2615 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
2616 intermediate reduction chains.
2617 (vect_analyze_slp_instance): Likewise. Build a SLP
2618 node for a trailing conversion manually.
2619
2620 2019-10-30 Martin Liska <mliska@suse.cz>
2621
2622 * cgraph.c (cgraph_node::local_info): Transform to ...
2623 (cgraph_node::local_info_node): ... this.
2624 (cgraph_node::dump): Remove cgraph_local_info and
2625 put its fields directly into cgraph_node.
2626 (cgraph_node::get_availability): Likewise.
2627 (cgraph_node::make_local): Likewise.
2628 (cgraph_node::verify_node): Likewise.
2629 * cgraph.h (struct GTY): Likewise.
2630 * cgraphclones.c (set_new_clone_decl_and_node_flags): Likewise.
2631 (duplicate_thunk_for_node): Likewise.
2632 (cgraph_node::create_clone): Likewise.
2633 (cgraph_node::create_virtual_clone): Likewise.
2634 (cgraph_node::create_version_clone): Likewise.
2635 * cgraphunit.c (cgraph_node::reset): Likewise.
2636 (cgraph_node::finalize_function): Likewise.
2637 (cgraph_node::add_new_function): Likewise.
2638 (analyze_functions): Likewise.
2639 * combine.c (setup_incoming_promotions): Likewise.
2640 * config/i386/i386.c (ix86_function_regparm): Likewise.
2641 (ix86_function_sseregparm): Likewise.
2642 (init_cumulative_args): Likewise.
2643 * ipa-cp.c (determine_versionability): Likewise.
2644 (count_callers): Likewise.
2645 (set_single_call_flag): Likewise.
2646 (initialize_node_lattices): Likewise.
2647 (estimate_local_effects): Likewise.
2648 (create_specialized_node): Likewise.
2649 (identify_dead_nodes): Likewise.
2650 * ipa-fnsummary.c (compute_fn_summary): Likewise.
2651 (ipa_fn_summary_generate): Likewise.
2652 * ipa-hsa.c (check_warn_node_versionable): Likewise.
2653 (process_hsa_functions): Likewise.
2654 * ipa-icf.c (set_local): Likewise.
2655 * ipa-inline-analysis.c (initialize_inline_failed): Likewise.
2656 * ipa-inline.c (speculation_useful_p): Likewise.
2657 * ipa-profile.c (ipa_propagate_frequency): Likewise.
2658 (ipa_profile): Likewise.
2659 * ipa-split.c (split_function): Likewise.
2660 (execute_split_functions): Likewise.
2661 * ipa-sra.c (ipa_sra_preliminary_function_checks): Likewise.
2662 (ipa_sra_ipa_function_checks): Likewise.
2663 * ipa-visibility.c (function_and_variable_visibility): Likewise.
2664 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
2665 * lto-cgraph.c (lto_output_node): Likewise.
2666 (input_overwrite_node): Likewise.
2667 * multiple_target.c (expand_target_clones): Likewise.
2668 * omp-simd-clone.c (simd_clone_create): Likewise.
2669 * trans-mem.c (expand_call_tm): Likewise.
2670 (ipa_tm_mayenterirr_function): Likewise.
2671 (ipa_tm_diagnose_tm_safe): Likewise.
2672 (ipa_tm_diagnose_transaction): Likewise.
2673 (ipa_tm_create_version): Likewise.
2674 (ipa_tm_transform_calls_redirect): Likewise.
2675 (ipa_tm_execute): Likewise.
2676 * tree-inline.c (expand_call_inline): Likewise.
2677
2678 2019-10-29 Martin Liska <mliska@suse.cz>
2679
2680 * symbol-summary.h (function_summary): Pass memory location
2681 to underlaying hash_map (or vec).
2682 (V>::fast_function_summary): Likewise.
2683
2684 2019-10-29 Martin Liska <mliska@suse.cz>
2685
2686 * ggc.h (ggc_alloc_no_dtor): New function.
2687 * ipa-fnsummary.c (ipa_free_fn_summary): Call
2688 destructor and ggc_free.
2689 (ipa_free_size_summary): Call delete instead
2690 of release.
2691 * ipa-fnsummary.h: Use new function ggc_alloc_no_dtor.
2692 * ipa-prop.c (ipa_check_create_edge_args): Likewise.
2693 (ipa_free_all_edge_args): Call destructor and ggc_free.
2694 (ipa_free_all_node_params): Likewise.
2695 (ipcp_free_transformation_sum): Likewise.
2696 * ipa-prop.h (ipa_check_create_node_params):
2697 Call new ggc_alloc_no_dtor.
2698 * ipa-sra.c (ipa_sra_generate_summary): Likewise.
2699 (ipa_sra_analysis): Call destructor and ggc_free.
2700 Replace release with delete operator.
2701 * symbol-summary.h (release): Remove ..
2702 (V>::~fast_function_summary): and move logic here.
2703 Likewise for other classes.
2704
2705 2019-10-29 Richard Biener <rguenther@suse.de>
2706
2707 PR tree-optimization/92260
2708 * tree-vect-slp.c (vect_get_constant_vectors): Special-case
2709 lane-reducing ops.
2710
2711 2019-10-29 Andre Vieira <andre.simoesdiasvieira@arm.com>
2712
2713 PR tree-optimization/88915
2714 * tree-ssa-loop-niter.h (simplify_replace_tree): Change declaration.
2715 * tree-ssa-loop-niter.c (simplify_replace_tree): Add context parameter
2716 and make the valueize function pointer also take a void pointer.
2717 * tree-ssa-sccvn.c (vn_valueize_wrapper): New function to wrap
2718 around vn_valueize, to call it without a context.
2719 (process_bb): Use vn_valueize_wrapper instead of vn_valueize.
2720 * tree-vect-loop.c (_loop_vec_info): Initialize epilogue_vinfos.
2721 (~_loop_vec_info): Release epilogue_vinfos.
2722 (vect_analyze_loop_costing): Use knowledge of main VF to estimate
2723 number of iterations of epilogue.
2724 (vect_analyze_loop_2): Adapt to analyse main loop for all supported
2725 vector sizes when vect-epilogues-nomask=1. Also keep track of lowest
2726 versioning threshold needed for main loop.
2727 (vect_analyze_loop): Likewise.
2728 (find_in_mapping): New helper function.
2729 (update_epilogue_loop_vinfo): New function.
2730 (vect_transform_loop): When vectorizing epilogues re-use analysis done
2731 on main loop and call update_epilogue_loop_vinfo to update it.
2732 * tree-vect-loop-manip.c (vect_update_inits_of_drs): No longer insert
2733 stmts on loop preheader edge.
2734 (vect_do_peeling): Enable skip-vectors when doing loop versioning if
2735 we decided to vectorize epilogues. Update epilogues NITERS and
2736 construct ADVANCE to update epilogues data references where needed.
2737 * tree-vectorizer.h (_loop_vec_info): Add epilogue_vinfos.
2738 (vect_do_peeling, vect_update_inits_of_drs,
2739 determine_peel_for_niter, vect_analyze_loop): Add or update
2740 declarations.
2741 * tree-vectorizer.c (try_vectorize_loop_1): Make sure to use already
2742 created loop_vec_info's for epilogues when available. Otherwise analyse
2743 epilogue separately.
2744
2745 2019-10-29 Richard Biener <rguenther@suse.de>
2746
2747 * doc/tree-ssa.texi (Immediate Uses): Fix FOR_EACH_IMM_USE_STMT
2748 example.
2749
2750 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
2751
2752 * tree-vect-stmts.c (vectorizable_condition): Get the reduction
2753 index for the COND_EXPR from stmt_info rather than reduc_info.
2754
2755 2019-10-29 Richard Biener <rguenther@suse.de>
2756
2757 PR tree-optimization/65930
2758 * tree-vect-loop.c (check_reduction_path): Relax single-use
2759 check allowing out-of-loop uses.
2760 (vect_is_simple_reduction): SLP reduction chains cannot have
2761 intermediate stmts used outside of the loop.
2762 (vect_create_epilog_for_reduction): The adjustment might need
2763 to be converted.
2764 (vectorizable_reduction): Annotate live stmts of the reduction
2765 chain with STMT_VINFO_REDUC_DEF.
2766 * tree-vect-stms.c (process_use): Remove no longer true asserts.
2767
2768 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
2769
2770 * calls.c (pass_by_reference): Leave the target to decide whether
2771 POLY_INT_CST-sized arguments should be passed by value or reference,
2772 rather than forcing them to be passed by reference.
2773 (must_pass_in_stack_var_size): Likewise.
2774 * config/aarch64/aarch64.md (LAST_SAVED_REGNUM): Redefine from
2775 V31_REGNUM to P15_REGNUM.
2776 * config/aarch64/aarch64-protos.h (aarch64_init_cumulative_args):
2777 Take an extra "silent_p" parameter, defaulting to false.
2778 (aarch64_sve::svbool_type_p): Declare.
2779 (aarch64_sve::nvectors_if_data_type): Likewise.
2780 * config/aarch64/aarch64.h (NUM_PR_ARG_REGS): New macro.
2781 (aarch64_frame::reg_offset): Turn into poly_int64s.
2782 (aarch64_frame::save_regs_size): Likewise.
2783 (aarch64_frame::below_hard_fp_saved_regs_size): New field.
2784 (aarch64_frame::sve_callee_adjust): Likewise.
2785 (aarch64_frame::spare_reg_reg): Likewise.
2786 (ARM_PCS_SVE): New arm_pcs value.
2787 (CUMULATIVE_ARGS::aapcs_nprn): New field.
2788 (CUMULATIVE_ARGS::aapcs_nextnprn): Likewise.
2789 (CUMULATIVE_ARGS::silent_p): Likewise.
2790 (BITS_PER_SVE_PRED): New macro.
2791 * config/aarch64/aarch64.c (handle_aarch64_vector_pcs_attribute): New
2792 function. Reject aarch64_vector_pcs attributes on SVE functions.
2793 (aarch64_attribute_table): Use the above handler.
2794 (aarch64_sve_abi): New function.
2795 (aarch64_sve_argument_p): Likewise.
2796 (aarch64_returns_value_in_sve_regs_p): Likewise.
2797 (aarch64_takes_arguments_in_sve_regs_p): Likewise.
2798 (aarch64_fntype_abi): Check for SVE functions and return the SVE PCS
2799 descriptor for them.
2800 (aarch64_simd_decl_p): Delete.
2801 (aarch64_emit_cfi_for_reg_p): New function.
2802 (aarch64_reg_save_mode): Remove the fndecl argument and instead use
2803 crtl->abi to choose the mode for FP registers. Handle the SVE PCS.
2804 (aarch64_hard_regno_call_part_clobbered): Do not treat FP registers
2805 as partly clobbered for the SVE PCS.
2806 (aarch64_function_ok_for_sibcall): Check whether the two functions
2807 use the same ABI, rather than checking specifically for whether
2808 they're aarch64_vector_pcs functions.
2809 (aarch64_pass_by_reference): Raise an error for attempts to pass
2810 SVE arguments when SVE is disabled. Pass SVE arguments by reference
2811 if there are not enough free registers left, or if the argument is
2812 variadic.
2813 (aarch64_function_value): Handle SVE predicates, vectors and tuples.
2814 (aarch64_return_in_memory): Do not return SVE predicates, vectors and
2815 tuples in memory.
2816 (aarch64_layout_arg): Take a function_arg_info rather than
2817 individual properties. Handle SVE predicates, vectors and tuples.
2818 Raise an error if they are passed to unprototyped functions.
2819 (aarch64_function_arg): If the silent_p flag is set, suppress the
2820 usual error about using float registers without TARGET_FLOAT.
2821 (aarch64_init_cumulative_args): Take a silent_p parameter and store
2822 it in the cumulative_args structure. Initialize aapcs_nprn and
2823 aapcs_nextnprn. If the silent_p flag is set, suppress the usual
2824 error about using float registers without TARGET_FLOAT.
2825 If the silent_p flag is not set, also raise an error about
2826 using SVE functions when SVE is disabled.
2827 (aarch64_function_arg_advance): Update the call to aarch64_layout_arg,
2828 and call it for SVE functions too. Update aapcs_nprn similarly
2829 to the other register counts.
2830 (aarch64_layout_frame): If a big-endian function needs to save
2831 and restore Z8-Z15, search for a spare predicate that it can use.
2832 Store SVE predicates at the bottom of the register save area,
2833 followed by SVE vectors, then followed by the normal slots.
2834 Keep pointing the hard frame pointer at the base of the normal slots,
2835 above the SVE vectors. Update the various frame creation and
2836 tear-down strategies for the new layout, initializing the new
2837 sve_callee_adjust field. Add an additional layout for frames
2838 whose saved registers are all SVE registers.
2839 (aarch64_register_saved_on_entry): Cope with poly_int64 reg_offsets.
2840 (aarch64_return_address_signing_enabled): Likewise.
2841 (aarch64_push_regs, aarch64_pop_regs): Update calls to
2842 aarch64_reg_save_mode.
2843 (aarch64_adjust_sve_callee_save_base): New function.
2844 (aarch64_add_cfa_expression): Move earlier in file. Take the
2845 saved register as an rtx rather than a register number and use
2846 its mode for the MEM slot.
2847 (aarch64_save_callee_saves): Remove the mode argument and instead
2848 use aarch64_reg_save_mode to get the mode of each save slot.
2849 Add a hard_fp_valid_p parameter. Cope with poly_int64 register
2850 offsets. Allow GP offsets to be saved at a VL-based offset from
2851 the stack, handling this case using the frame pointer if available
2852 or a temporary register otherwise. Use ST1D to save Z8-Z15 for
2853 big-endian SVE functions; use normal moves for other SVE saves.
2854 Only mark the save as frame-related if aarch64_emit_cfi_for_reg_p
2855 returns true. Add explicit CFA notes when not storing via the
2856 stack pointer. Do not try to pair SVE saves.
2857 (aarch64_restore_callee_saves): Cope with poly_int64 register
2858 offsets. Use LD1D to restore Z8-Z15 for big-endian SVE functions;
2859 use normal moves for other SVE restores. Only add CFA restore notes
2860 if aarch64_emit_cfi_for_reg_p returns true. Do not try to pair
2861 SVE restores.
2862 (aarch64_get_separate_components): Always keep the first SVE save
2863 in the prologue if we need to use it as a stack probe. Don't allow
2864 Z8-Z15 saves and loads to be shrink-wrapped for big-endian targets.
2865 Likewise the spare predicate register that they need. Update the
2866 offset calculation to account for the SVE save area. Use the
2867 appropriate range check for SVE LDR and STR instructions.
2868 (aarch64_components_for_bb): Cope with poly_int64 reg_offsets.
2869 (aarch64_process_components): Likewise. Update the offset
2870 calculation to account for the SVE save area. Only mark the
2871 save as frame-related if aarch64_emit_cfi_for_reg_p returns true.
2872 Do not try to pair SVE saves.
2873 (aarch64_allocate_and_probe_stack_space): Cope with poly_int64
2874 reg_offsets. When handling the final allocation, expect the
2875 first SVE register save to be part of the initial allocation
2876 and for it to act as a probe at SP. Account for the SVE callee
2877 save area in the dump information.
2878 (aarch64_expand_prologue): Update the frame diagram. Fold the
2879 SVE callee allocation into the initial allocation if stack clash
2880 protection is enabled. Use new variables to track the offset
2881 of the frame chain (and hard frame pointer) from the current
2882 stack pointer, and likewise the offset of the bottom of the
2883 register save area. Update calls to aarch64_save_callee_saves
2884 and aarch64_add_cfa_expression. Apply sve_callee_adjust before
2885 saving the FP&SIMD registers. Save the predicate registers.
2886 (aarch64_expand_epilogue): Take below_hard_fp_saved_regs_size
2887 into account when setting the stack pointer from the frame pointer,
2888 and when deciding whether we can inherit the initial adjustment
2889 amount from the prologue. Restore the predicate registers after
2890 the vector registers, then apply sve_callee_adjust, then restore
2891 the general registers.
2892 (aarch64_secondary_reload): Don't use secondary SVE reloads
2893 for VNx16BImode.
2894 (aapcs_vfp_sub_candidate): Assert that the type is not an SVE type.
2895 (aarch64_short_vector_p): Return false for SVE types.
2896 (aarch64_vfp_is_call_or_return_candidate): Initialize *is_ha
2897 at the start of the function. Return false for SVE types.
2898 (aarch64_asm_output_variant_pcs): Output .variant_pcs for SVE
2899 functions too.
2900 (TARGET_STRICT_ARGUMENT_NAMING): Redefine to request strict naming.
2901 * config/aarch64/aarch64-sve.md (*aarch64_sve_mov<mode>_le): Extend
2902 to big-endian targets for bytewise moves.
2903 (*aarch64_sve_mov<mode>_be): Exclude the bytewise case.
2904
2905 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
2906 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
2907 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2908
2909 * config.gcc (aarch64*-*-*): Add arm_sve.h to extra_headers.
2910 Add aarch64-sve-builtins.o, aarch64-sve-builtins-shapes.o and
2911 aarch64-sve-builtins-base.o to extra_objs. Add
2912 aarch64-sve-builtins.h and aarch64-sve-builtins.cc to target_gtfiles.
2913 * config/aarch64/t-aarch64 (aarch64-sve-builtins.o): New rule.
2914 (aarch64-sve-builtins-shapes.o): Likewise.
2915 (aarch64-sve-builtins-base.o): New rules.
2916 * config/aarch64/aarch64-c.c (aarch64_pragma_aarch64): New function.
2917 (aarch64_resolve_overloaded_builtin): Likewise.
2918 (aarch64_check_builtin_call): Likewise.
2919 (aarch64_register_pragmas): Install aarch64_resolve_overloaded_builtin
2920 and aarch64_check_builtin_call in targetm. Register the GCC aarch64
2921 pragma.
2922 * config/aarch64/aarch64-protos.h (AARCH64_FOR_SVPRFOP): New macro.
2923 (aarch64_svprfop): New enum.
2924 (AARCH64_BUILTIN_SVE): New aarch64_builtin_class enum value.
2925 (aarch64_sve_int_mode, aarch64_sve_data_mode): Declare.
2926 (aarch64_fold_sve_cnt_pat, aarch64_output_sve_prefetch): Likewise.
2927 (aarch64_output_sve_cnt_pat_immediate): Likewise.
2928 (aarch64_output_sve_ptrues, aarch64_sve_ptrue_svpattern_p): Likewise.
2929 (aarch64_sve_sqadd_sqsub_immediate_p, aarch64_sve_ldff1_operand_p)
2930 (aarch64_sve_ldnf1_operand_p, aarch64_sve_prefetch_operand_p)
2931 (aarch64_ptrue_all_mode, aarch64_convert_sve_data_to_pred): Likewise.
2932 (aarch64_expand_sve_dupq, aarch64_replace_reg_mode): Likewise.
2933 (aarch64_sve::init_builtins, aarch64_sve::handle_arm_sve_h): Likewise.
2934 (aarch64_sve::builtin_decl, aarch64_sve::builtin_type_p): Likewise.
2935 (aarch64_sve::mangle_builtin_type): Likewise.
2936 (aarch64_sve::resolve_overloaded_builtin): Likewise.
2937 (aarch64_sve::check_builtin_call, aarch64_sve::gimple_fold_builtin)
2938 (aarch64_sve::expand_builtin): Likewise.
2939 * config/aarch64/aarch64.c (aarch64_sve_data_mode): Make public.
2940 (aarch64_sve_int_mode): Likewise.
2941 (aarch64_ptrue_all_mode): New function.
2942 (aarch64_convert_sve_data_to_pred): Make public.
2943 (svprfop_token): New function.
2944 (aarch64_output_sve_prefetch): Likewise.
2945 (aarch64_fold_sve_cnt_pat): Likewise.
2946 (aarch64_output_sve_cnt_pat_immediate): Likewise.
2947 (aarch64_sve_move_pred_via_while): Use gen_while with UNSPEC_WHILE_LO
2948 instead of gen_while_ult.
2949 (aarch64_replace_reg_mode): Make public.
2950 (aarch64_init_builtins): Call aarch64_sve::init_builtins.
2951 (aarch64_fold_builtin): Handle AARCH64_BUILTIN_SVE.
2952 (aarch64_gimple_fold_builtin, aarch64_expand_builtin): Likewise.
2953 (aarch64_builtin_decl, aarch64_builtin_reciprocal): Likewise.
2954 (aarch64_mangle_type): Call aarch64_sve::mangle_type.
2955 (aarch64_sve_sqadd_sqsub_immediate_p): New function.
2956 (aarch64_sve_ptrue_svpattern_p): Likewise.
2957 (aarch64_sve_pred_valid_immediate): Check
2958 aarch64_sve_ptrue_svpattern_p.
2959 (aarch64_sve_ldff1_operand_p, aarch64_sve_ldnf1_operand_p)
2960 (aarch64_sve_prefetch_operand_p, aarch64_output_sve_ptrues): New
2961 functions.
2962 * config/aarch64/aarch64.md (UNSPEC_LDNT1_SVE, UNSPEC_STNT1_SVE)
2963 (UNSPEC_LDFF1_GATHER, UNSPEC_PTRUE, UNSPEC_WHILE_LE, UNSPEC_WHILE_LS)
2964 (UNSPEC_WHILE_LT, UNSPEC_CLASTA, UNSPEC_UPDATE_FFR)
2965 (UNSPEC_UPDATE_FFRT, UNSPEC_RDFFR, UNSPEC_WRFFR)
2966 (UNSPEC_SVE_LANE_SELECT, UNSPEC_SVE_CNT_PAT, UNSPEC_SVE_PREFETCH)
2967 (UNSPEC_SVE_PREFETCH_GATHER, UNSPEC_SVE_COMPACT, UNSPEC_SVE_SPLICE):
2968 New unspecs.
2969 * config/aarch64/iterators.md (SI_ONLY, DI_ONLY, VNx8HI_ONLY)
2970 (VNx2DI_ONLY, SVE_PARTIAL, VNx8_NARROW, VNx8_WIDE, VNx4_NARROW)
2971 (VNx4_WIDE, VNx2_NARROW, VNx2_WIDE, PRED_HSD): New mode iterators.
2972 (UNSPEC_ADR, UNSPEC_BRKA, UNSPEC_BRKB, UNSPEC_BRKN, UNSPEC_BRKPA)
2973 (UNSPEC_BRKPB, UNSPEC_PFIRST, UNSPEC_PNEXT, UNSPEC_CNTP, UNSPEC_SADDV)
2974 (UNSPEC_UADDV, UNSPEC_FMLA, UNSPEC_FMLS, UNSPEC_FEXPA, UNSPEC_FTMAD)
2975 (UNSPEC_FTSMUL, UNSPEC_FTSSEL, UNSPEC_COND_CMPEQ_WIDE): New unspecs.
2976 (UNSPEC_COND_CMPGE_WIDE, UNSPEC_COND_CMPGT_WIDE): Likewise.
2977 (UNSPEC_COND_CMPHI_WIDE, UNSPEC_COND_CMPHS_WIDE): Likewise.
2978 (UNSPEC_COND_CMPLE_WIDE, UNSPEC_COND_CMPLO_WIDE): Likewise.
2979 (UNSPEC_COND_CMPLS_WIDE, UNSPEC_COND_CMPLT_WIDE): Likewise.
2980 (UNSPEC_COND_CMPNE_WIDE, UNSPEC_COND_FCADD90, UNSPEC_COND_FCADD270)
2981 (UNSPEC_COND_FCMLA, UNSPEC_COND_FCMLA90, UNSPEC_COND_FCMLA180)
2982 (UNSPEC_COND_FCMLA270, UNSPEC_COND_FMAX, UNSPEC_COND_FMIN): Likewise.
2983 (UNSPEC_COND_FMULX, UNSPEC_COND_FRECPX, UNSPEC_COND_FSCALE): Likewise.
2984 (UNSPEC_LASTA, UNSPEC_ASHIFT_WIDE, UNSPEC_ASHIFTRT_WIDE): Likewise.
2985 (UNSPEC_LSHIFTRT_WIDE, UNSPEC_LDFF1, UNSPEC_LDNF1): Likewise.
2986 (Vesize): Handle partial vector modes.
2987 (self_mask, narrower_mask, sve_lane_con, sve_lane_pair_con): New
2988 mode attributes.
2989 (UBINQOPS, ANY_PLUS, SAT_PLUS, ANY_MINUS, SAT_MINUS): New code
2990 iterators.
2991 (s, paired_extend, inc_dec): New code attributes.
2992 (SVE_INT_ADDV, CLAST, LAST): New int iterators.
2993 (SVE_INT_UNARY): Add UNSPEC_RBIT.
2994 (SVE_FP_UNARY, SVE_FP_UNARY_INT): New int iterators.
2995 (SVE_FP_BINARY, SVE_FP_BINARY_INT): Likewise.
2996 (SVE_COND_FP_UNARY): Add UNSPEC_COND_FRECPX.
2997 (SVE_COND_FP_BINARY): Add UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and
2998 UNSPEC_COND_FMULX.
2999 (SVE_COND_FP_BINARY_INT, SVE_COND_FP_ADD): New int iterators.
3000 (SVE_COND_FP_SUB, SVE_COND_FP_MUL): Likewise.
3001 (SVE_COND_FP_BINARY_I1): Add UNSPEC_COND_FMAX and UNSPEC_COND_FMIN.
3002 (SVE_COND_FP_BINARY_REG): Add UNSPEC_COND_FMULX.
3003 (SVE_COND_FCADD, SVE_COND_FP_MAXMIN, SVE_COND_FCMLA)
3004 (SVE_COND_INT_CMP_WIDE, SVE_FP_TERNARY_LANE, SVE_CFP_TERNARY_LANE)
3005 (SVE_WHILE, SVE_SHIFT_WIDE, SVE_LDFF1_LDNF1, SVE_BRK_UNARY)
3006 (SVE_BRK_BINARY, SVE_PITER): New int iterators.
3007 (optab): Handle UNSPEC_SADDV, UNSPEC_UADDV, UNSPEC_FRECPE,
3008 UNSPEC_FRECPS, UNSPEC_RSQRTE, UNSPEC_RSQRTS, UNSPEC_RBIT,
3009 UNSPEC_SMUL_HIGHPART, UNSPEC_UMUL_HIGHPART, UNSPEC_FMLA, UNSPEC_FMLS,
3010 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270,
3011 UNSPEC_FEXPA, UNSPEC_FTSMUL, UNSPEC_FTSSEL, UNSPEC_COND_FCADD90,
3012 UNSPEC_COND_FCADD270, UNSPEC_COND_FCMLA, UNSPEC_COND_FCMLA90,
3013 UNSPEC_COND_FCMLA180, UNSPEC_COND_FCMLA270, UNSPEC_COND_FMAX,
3014 UNSPEC_COND_FMIN, UNSPEC_COND_FMULX, UNSPEC_COND_FRECPX and
3015 UNSPEC_COND_FSCALE.
3016 (maxmin_uns): Handle UNSPEC_COND_FMAX and UNSPEC_COND_FMIN.
3017 (binqops_op, binqops_op_rev, last_op): New int attributes.
3018 (su): Handle UNSPEC_SADDV and UNSPEC_UADDV.
3019 (fn, ab): New int attributes.
3020 (cmp_op): Handle UNSPEC_COND_CMP*_WIDE and UNSPEC_WHILE_*.
3021 (while_optab_cmp, brk_op, sve_pred_op): New int attributes.
3022 (sve_int_op): Handle UNSPEC_SMUL_HIGHPART, UNSPEC_UMUL_HIGHPART,
3023 UNSPEC_ASHIFT_WIDE, UNSPEC_ASHIFTRT_WIDE, UNSPEC_LSHIFTRT_WIDE and
3024 UNSPEC_RBIT.
3025 (sve_fp_op): Handle UNSPEC_FRECPE, UNSPEC_FRECPS, UNSPEC_RSQRTE,
3026 UNSPEC_RSQRTS, UNSPEC_FMLA, UNSPEC_FMLS, UNSPEC_FEXPA, UNSPEC_FTSMUL,
3027 UNSPEC_FTSSEL, UNSPEC_COND_FMAX, UNSPEC_COND_FMIN, UNSPEC_COND_FMULX,
3028 UNSPEC_COND_FRECPX and UNSPEC_COND_FSCALE.
3029 (sve_fp_op_rev): Handle UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and
3030 UNSPEC_COND_FMULX.
3031 (rot): Handle UNSPEC_COND_FCADD* and UNSPEC_COND_FCMLA*.
3032 (brk_reg_con, brk_reg_opno): New int attributes.
3033 (sve_pred_fp_rhs1_operand, sve_pred_fp_rhs2_operand): Handle
3034 UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and UNSPEC_COND_FMULX.
3035 (sve_pred_fp_rhs2_immediate): Handle UNSPEC_COND_FMAX and
3036 UNSPEC_COND_FMIN.
3037 (max_elem_bits): New int attribute.
3038 (min_elem_bits): Handle UNSPEC_RBIT.
3039 * config/aarch64/predicates.md (subreg_lowpart_operator): Handle
3040 TRUNCATE as well as SUBREG.
3041 (ascending_int_parallel, aarch64_simd_reg_or_minus_one)
3042 (aarch64_sve_ldff1_operand, aarch64_sve_ldnf1_operand)
3043 (aarch64_sve_prefetch_operand, aarch64_sve_ptrue_svpattern_immediate)
3044 (aarch64_sve_qadd_immediate, aarch64_sve_qsub_immediate)
3045 (aarch64_sve_gather_immediate_b, aarch64_sve_gather_immediate_h)
3046 (aarch64_sve_gather_immediate_w, aarch64_sve_gather_immediate_d)
3047 (aarch64_sve_sqadd_operand, aarch64_sve_gather_offset_b)
3048 (aarch64_sve_gather_offset_h, aarch64_sve_gather_offset_w)
3049 (aarch64_sve_gather_offset_d, aarch64_gather_scale_operand_b)
3050 (aarch64_gather_scale_operand_h): New predicates.
3051 * config/aarch64/constraints.md (UPb, UPd, UPh, UPw, Utf, Utn, vgb)
3052 (vgd, vgh, vgw, vsQ, vsS): New constraints.
3053 * config/aarch64/aarch64-sve.md: Add a note on the FFR handling.
3054 (*aarch64_sve_reinterpret<mode>): Allow any source register
3055 instead of requiring an exact match.
3056 (*aarch64_sve_ptruevnx16bi_cc, *aarch64_sve_ptrue<mode>_cc)
3057 (*aarch64_sve_ptruevnx16bi_ptest, *aarch64_sve_ptrue<mode>_ptest)
3058 (aarch64_wrffr, aarch64_update_ffr_for_load, aarch64_copy_ffr_to_ffrt)
3059 (aarch64_rdffr, aarch64_rdffr_z, *aarch64_rdffr_z_ptest)
3060 (*aarch64_rdffr_ptest, *aarch64_rdffr_z_cc, *aarch64_rdffr_cc)
3061 (aarch64_update_ffrt): New patterns.
3062 (@aarch64_load_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>)
3063 (@aarch64_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
3064 (@aarch64_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
3065 (@aarch64_ld<fn>f1<mode>): New patterns.
3066 (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>)
3067 (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
3068 (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
3069 (@aarch64_ldnt1<mode>): New patterns.
3070 (gather_load<mode>): Use aarch64_sve_gather_offset_<Vesize> for
3071 the scalar part of the address.
3072 (mask_gather_load<SVE_S:mode>): Use aarch64_sve_gather_offset_w for the
3073 scalar part of the addresse and add an alternative for handling
3074 nonzero offsets.
3075 (mask_gather_load<SVE_D:mode>): Likewise aarch64_sve_gather_offset_d.
3076 (*mask_gather_load<mode>_sxtw, *mask_gather_load<mode>_uxtw)
3077 (@aarch64_gather_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
3078 (@aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
3079 (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw)
3080 (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw)
3081 (@aarch64_ldff1_gather<SVE_S:mode>, @aarch64_ldff1_gather<SVE_D:mode>)
3082 (*aarch64_ldff1_gather<mode>_sxtw, *aarch64_ldff1_gather<mode>_uxtw)
3083 (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
3084 (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
3085 (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw)
3086 (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw)
3087 (@aarch64_sve_prefetch<mode>): New patterns.
3088 (@aarch64_sve_gather_prefetch<SVE_I:mode><VNx4SI_ONLY:mode>)
3089 (@aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>)
3090 (*aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>_sxtw)
3091 (*aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>_uxtw)
3092 (@aarch64_store_trunc<VNx8_NARROW:mode><VNx8_WIDE:mode>)
3093 (@aarch64_store_trunc<VNx4_NARROW:mode><VNx4_WIDE:mode>)
3094 (@aarch64_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>)
3095 (@aarch64_stnt1<mode>): New patterns.
3096 (scatter_store<mode>): Use aarch64_sve_gather_offset_<Vesize> for
3097 the scalar part of the address.
3098 (mask_scatter_store<SVE_S:mode>): Use aarch64_sve_gather_offset_w for
3099 the scalar part of the addresse and add an alternative for handling
3100 nonzero offsets.
3101 (mask_scatter_store<SVE_D:mode>): Likewise aarch64_sve_gather_offset_d.
3102 (*mask_scatter_store<mode>_sxtw, *mask_scatter_store<mode>_uxtw)
3103 (@aarch64_scatter_store_trunc<VNx4_NARROW:mode><VNx4_WIDE:mode>)
3104 (@aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>)
3105 (*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_sxtw)
3106 (*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_uxtw):
3107 New patterns.
3108 (vec_duplicate<mode>): Use QI as the mode of the input operand.
3109 (extract_last_<mode>): Generalize to...
3110 (@extract_<LAST:last_op>_<mode>): ...this.
3111 (*<SVE_INT_UNARY:optab><mode>2): Rename to...
3112 (@aarch64_pred_<SVE_INT_UNARY:optab><mode>): ...this.
3113 (@cond_<SVE_INT_UNARY:optab><mode>): New expander.
3114 (@aarch64_pred_sxt<SVE_HSDI:mode><SVE_PARTIAL:mode>): New pattern.
3115 (@aarch64_cond_sxt<SVE_HSDI:mode><SVE_PARTIAL:mode>): Likewise.
3116 (@aarch64_pred_cnot<mode>, @cond_cnot<mode>): New expanders.
3117 (@aarch64_sve_<SVE_FP_UNARY_INT:optab><mode>): New pattern.
3118 (@aarch64_sve_<SVE_FP_UNARY:optab><mode>): Likewise.
3119 (*<SVE_COND_FP_UNARY:optab><mode>2): Rename to...
3120 (@aarch64_pred_<SVE_COND_FP_UNARY:optab><mode>): ...this.
3121 (@cond_<SVE_COND_FP_UNARY:optab><mode>): New expander.
3122 (*<SVE_INT_BINARY_IMM:optab><mode>3): Rename to...
3123 (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>): ...this.
3124 (@aarch64_adr<mode>, *aarch64_adr_sxtw): New patterns.
3125 (*aarch64_adr_uxtw_unspec): Likewise.
3126 (*aarch64_adr_uxtw): Rename to...
3127 (*aarch64_adr_uxtw_and): ...this.
3128 (@aarch64_adr<mode>_shift): New expander.
3129 (*aarch64_adr_shift_sxtw): New pattern.
3130 (aarch64_<su>abd<mode>_3): Rename to...
3131 (@aarch64_pred_<su>abd<mode>): ...this.
3132 (<su>abd<mode>_3): Update accordingly.
3133 (@aarch64_cond_<su>abd<mode>): New expander.
3134 (@aarch64_<SBINQOPS:su_optab><optab><mode>): New pattern.
3135 (@aarch64_<UBINQOPS:su_optab><optab><mode>): Likewise.
3136 (*<su>mul<mode>3_highpart): Rename to...
3137 (@aarch64_pred_<optab><mode>): ...this.
3138 (@cond_<MUL_HIGHPART:optab><mode>): New expander.
3139 (*cond_<MUL_HIGHPART:optab><mode>_2): New pattern.
3140 (*cond_<MUL_HIGHPART:optab><mode>_z): Likewise.
3141 (*<SVE_INT_BINARY_SD:optab><mode>3): Rename to...
3142 (@aarch64_pred_<SVE_INT_BINARY_SD:optab><mode>): ...this.
3143 (cond_<SVE_INT_BINARY_SD:optab><mode>): Add a "@" marker.
3144 (@aarch64_bic<mode>, @cond_bic<mode>): New expanders.
3145 (*v<ASHIFT:optab><mode>3): Rename to...
3146 (@aarch64_pred_<ASHIFT:optab><mode>): ...this.
3147 (@aarch64_sve_<SVE_SHIFT_WIDE:sve_int_op><mode>): New pattern.
3148 (@cond_<SVE_SHIFT_WIDE:sve_int_op><mode>): New expander.
3149 (*cond_<SVE_SHIFT_WIDE:sve_int_op><mode>_m): New pattern.
3150 (*cond_<SVE_SHIFT_WIDE:sve_int_op><mode>_z): Likewise.
3151 (@cond_asrd<mode>): New expander.
3152 (*cond_asrd<mode>_2, *cond_asrd<mode>_z): New patterns.
3153 (sdiv_pow2<mode>3): Expand to *cond_asrd<mode>_2.
3154 (*sdiv_pow2<mode>3): Delete.
3155 (@cond_<SVE_COND_FP_BINARY_INT:optab><mode>): New expander.
3156 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2): New pattern.
3157 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any): Likewise.
3158 (@aarch64_sve_<SVE_FP_BINARY:optab><mode>): New pattern.
3159 (@aarch64_sve_<SVE_FP_BINARY_INT:optab><mode>): Likewise.
3160 (*<SVE_COND_FP_BINARY_REG:optab><mode>3): Rename to...
3161 (@aarch64_pred_<SVE_COND_FP_BINARY_REG:optab><mode>): ...this.
3162 (@aarch64_pred_<SVE_COND_FP_BINARY_INT:optab><mode>): New pattern.
3163 (cond_<SVE_COND_FP_BINARY:optab><mode>): Add a "@" marker.
3164 (*add<SVE_F:mode>3): Rename to...
3165 (@aarch64_pred_add<SVE_F:mode>): ...this and add alternatives
3166 for SVE_STRICT_GP.
3167 (@aarch64_pred_<SVE_COND_FCADD:optab><mode>): New pattern.
3168 (@cond_<SVE_COND_FCADD:optab><mode>): New expander.
3169 (*cond_<SVE_COND_FCADD:optab><mode>_2): New pattern.
3170 (*cond_<SVE_COND_FCADD:optab><mode>_any): Likewise.
3171 (*sub<SVE_F:mode>3): Rename to...
3172 (@aarch64_pred_sub<SVE_F:mode>): ...this and add alternatives
3173 for SVE_STRICT_GP.
3174 (@aarch64_pred_abd<SVE_F:mode>): New expander.
3175 (*fabd<SVE_F:mode>3): Rename to...
3176 (*aarch64_pred_abd<SVE_F:mode>): ...this.
3177 (@aarch64_cond_abd<SVE_F:mode>): New expander.
3178 (*mul<SVE_F:mode>3): Rename to...
3179 (@aarch64_pred_<SVE_F:optab><mode>): ...this and add alternatives
3180 for SVE_STRICT_GP.
3181 (@aarch64_mul_lane_<SVE_F:mode>): New pattern.
3182 (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><mode>3): Rename and generalize
3183 to...
3184 (@aarch64_pred_<SVE_COND_FP_MAXMIN:optab><mode>): ...this.
3185 (*<LOGICAL:optab><PRED_ALL:mode>3_ptest): New pattern.
3186 (*<nlogical><PRED_ALL:mode>3): Rename to...
3187 (aarch64_pred_<nlogical><PRED_ALL:mode>_z): ...this.
3188 (*<nlogical><PRED_ALL:mode>3_cc): New pattern.
3189 (*<nlogical><PRED_ALL:mode>3_ptest): Likewise.
3190 (*<logical_nn><PRED_ALL:mode>3): Rename to...
3191 (aarch64_pred_<logical_nn><mode>_z): ...this.
3192 (*<logical_nn><PRED_ALL:mode>3_cc): New pattern.
3193 (*<logical_nn><PRED_ALL:mode>3_ptest): Likewise.
3194 (*fma<SVE_I:mode>4): Rename to...
3195 (@aarch64_pred_fma<SVE_I:mode>): ...this.
3196 (*fnma<SVE_I:mode>4): Rename to...
3197 (@aarch64_pred_fnma<SVE_I:mode>): ...this.
3198 (@aarch64_<sur>dot_prod_lane<vsi2qi>): New pattern.
3199 (*<SVE_FP_TERNARY:optab><mode>4): Rename to...
3200 (@aarch64_pred_<SVE_FP_TERNARY:optab><mode>): ...this.
3201 (cond_<SVE_FP_TERNARY:optab><mode>): Add a "@" marker.
3202 (@aarch64_<SVE_FP_TERNARY_LANE:optab>_lane_<mode>): New pattern.
3203 (@aarch64_pred_<SVE_COND_FCMLA:optab><mode>): Likewise.
3204 (@cond_<SVE_COND_FCMLA:optab><mode>): New expander.
3205 (*cond_<SVE_COND_FCMLA:optab><mode>_4): New pattern.
3206 (*cond_<SVE_COND_FCMLA:optab><mode>_any): Likewise.
3207 (@aarch64_<FCMLA:optab>_lane_<mode>): Likewise.
3208 (@aarch64_sve_tmad<mode>): Likewise.
3209 (vcond_mask_<SVE_ALL:mode><vpred>): Add a "@" marker.
3210 (*aarch64_sel_dup<mode>): Rename to...
3211 (@aarch64_sel_dup<mode>): ...this.
3212 (@aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide): New pattern.
3213 (*aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide_cc): Likewise.
3214 (*aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide_ptest): Likewise.
3215 (@while_ult<GPI:mode><PRED_ALL:mode>): Generalize to...
3216 (@while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>): ...this.
3217 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): Generalize to.
3218 (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_cc): ...this.
3219 (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_ptest): New pattern.
3220 (*fcm<cmp_op><mode>): Rename to...
3221 (@aarch64_pred_fcm<cmp_op><mode>): ...this. Make operand order
3222 match @aarch64_pred_cmp<cmp_op><SVE_I:mode>.
3223 (*fcmuo<mode>): Rename to...
3224 (@aarch64_pred_fcmuo<mode>): ...this. Make operand order
3225 match @aarch64_pred_cmp<cmp_op><SVE_I:mode>.
3226 (@aarch64_pred_fac<cmp_op><mode>): New expander.
3227 (@vcond_mask_<PRED_ALL:mode><mode>): New pattern.
3228 (fold_extract_last_<mode>): Generalize to...
3229 (@fold_extract_<last_op>_<mode>): ...this.
3230 (@aarch64_fold_extract_vector_<last_op>_<mode>): New pattern.
3231 (*reduc_plus_scal_<SVE_I:mode>): Replace with...
3232 (@aarch64_pred_reduc_<optab>_<mode>): ...this pattern, making the
3233 DImode result explicit.
3234 (reduc_plus_scal_<mode>): Update accordingly.
3235 (*reduc_<optab>_scal_<SVE_I:mode>): Rename to...
3236 (@aarch64_pred_reduc_<optab>_<SVE_I:mode>): ...this.
3237 (*reduc_<optab>_scal_<SVE_F:mode>): Rename to...
3238 (@aarch64_pred_reduc_<optab>_<SVE_F:mode>): ...this.
3239 (*aarch64_sve_tbl<mode>): Rename to...
3240 (@aarch64_sve_tbl<mode>): ...this.
3241 (@aarch64_sve_compact<mode>): New pattern.
3242 (*aarch64_sve_dup_lane<mode>): Rename to...
3243 (@aarch64_sve_dup_lane<mode>): ...this.
3244 (@aarch64_sve_dupq_lane<mode>): New pattern.
3245 (@aarch64_sve_splice<mode>): Likewise.
3246 (aarch64_sve_<perm_insn><mode>): Rename to...
3247 (@aarch64_sve_<perm_insn><mode>): ...this.
3248 (*aarch64_sve_ext<mode>): Rename to...
3249 (@aarch64_sve_ext<mode>): ...this.
3250 (aarch64_sve_<su>unpk<perm_hilo>_<SVE_BHSI:mode>): Add a "@" marker.
3251 (*aarch64_sve_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): Rename
3252 to...
3253 (@aarch64_sve_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): ...this.
3254 (*aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
3255 Rename to...
3256 (@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
3257 ...this.
3258 (@cond_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): New expander.
3259 (@cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): Likewise.
3260 (*cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): New pattern.
3261 (*aarch64_sve_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): Rename
3262 to...
3263 (@aarch64_sve_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): ...this.
3264 (aarch64_sve_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): Add
3265 a "@" marker.
3266 (@cond_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): New expander.
3267 (@cond_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): Likewise.
3268 (*cond_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): New
3269 pattern.
3270 (*aarch64_sve_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): Rename to...
3271 (@aarch64_sve_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): ...this.
3272 (@cond_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): New expander.
3273 (*cond_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): New pattern.
3274 (aarch64_sve_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): Add a
3275 "@" marker.
3276 (@cond_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): New expander.
3277 (*cond_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): New pattern.
3278 (aarch64_sve_punpk<perm_hilo>_<mode>): Add a "@" marker.
3279 (@aarch64_brk<SVE_BRK_UNARY:brk_op>): New pattern.
3280 (*aarch64_brk<SVE_BRK_UNARY:brk_op>_cc): Likewise.
3281 (*aarch64_brk<SVE_BRK_UNARY:brk_op>_ptest): Likewise.
3282 (@aarch64_brk<SVE_BRK_BINARY:brk_op>): Likewise.
3283 (*aarch64_brk<SVE_BRK_BINARY:brk_op>_cc): Likewise.
3284 (*aarch64_brk<SVE_BRK_BINARY:brk_op>_ptest): Likewise.
3285 (@aarch64_sve_<SVE_PITER:sve_pred_op><mode>): Likewise.
3286 (*aarch64_sve_<SVE_PITER:sve_pred_op><mode>_cc): Likewise.
3287 (*aarch64_sve_<SVE_PITER:sve_pred_op><mode>_ptest): Likewise.
3288 (aarch64_sve_cnt_pat): Likewise.
3289 (@aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode>_pat): Likewise.
3290 (*aarch64_sve_incsi_pat): Likewise.
3291 (@aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode>_pat): Likewise.
3292 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_pat): Likewise.
3293 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_pat): Likewise.
3294 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_pat): New expander.
3295 (*aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_pat): New pattern.
3296 (@aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode>_pat): Likewise.
3297 (*aarch64_sve_decsi_pat): Likewise.
3298 (@aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode>_pat): Likewise.
3299 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_pat): Likewise.
3300 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_pat): Likewise.
3301 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_pat): New expander.
3302 (*aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_pat): New pattern.
3303 (@aarch64_pred_cntp<mode>): Likewise.
3304 (@aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp):
3305 New expander.
3306 (*aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp)
3307 (*aarch64_incsi<PRED_ALL:mode>_cntp): New patterns.
3308 (@aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
3309 New expander.
3310 (*aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
3311 New pattern.
3312 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New expander.
3313 (*aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New pattern.
3314 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New expander.
3315 (*aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New pattern.
3316 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New expander.
3317 (*aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New pattern.
3318 (@aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp):
3319 New expander.
3320 (*aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp)
3321 (*aarch64_incsi<PRED_ALL:mode>_cntp): New patterns.
3322 (@aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
3323 New expander.
3324 (*aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
3325 New pattern.
3326 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New
3327 expander.
3328 (*aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New pattern.
3329 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New
3330 expander.
3331 (*aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New pattern.
3332 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New
3333 expander.
3334 (*aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New pattern.
3335 * config/aarch64/arm_sve.h: New file.
3336 * config/aarch64/aarch64-sve-builtins.h: Likewise.
3337 * config/aarch64/aarch64-sve-builtins.cc: Likewise.
3338 * config/aarch64/aarch64-sve-builtins.def: Likewise.
3339 * config/aarch64/aarch64-sve-builtins-base.h: Likewise.
3340 * config/aarch64/aarch64-sve-builtins-base.cc: Likewise.
3341 * config/aarch64/aarch64-sve-builtins-base.def: Likewise.
3342 * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
3343 * config/aarch64/aarch64-sve-builtins-shapes.h: Likewise.
3344 * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
3345
3346 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
3347
3348 * config/aarch64/aarch64-sve.md (@aarch64_sve_rev<PRED_ALL:mode>):
3349 New pattern.
3350 * config/aarch64/aarch64.c (aarch64_evpc_rev_global): Handle all
3351 SVE modes.
3352
3353 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
3354
3355 * config/aarch64/aarch64.md (FFR_REGNUM, FFRT_REGNUM): New constants.
3356 * config/aarch64/aarch64.h (FIRST_PSEUDO_REGISTER): Bump to
3357 FFRT_REGNUM + 1.
3358 (FFR_REGS, PR_AND_FFR_REGS): New register classes.
3359 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add entries for them.
3360 * config/aarch64/aarch64.c (pr_or_ffr_regnum_p): New function.
3361 (aarch64_hard_regno_nregs): Handle the new register classes.
3362 (aarch64_hard_regno_mode_ok): Likewise.
3363 (aarch64_regno_regclass): Likewise.
3364 (aarch64_class_max_nregs): Likewise.
3365 (aarch64_register_move_cost): Likewise.
3366 (aarch64_conditional_register_usage): Don't treat FFR and FFRT
3367 as general register_operands.
3368
3369 2019-10-29 Martin Liska <mliska@suse.cz>
3370
3371 * ggc-common.c: One can't subtract unsigned types
3372 in compare function.
3373
3374 2019-10-29 Martin Liska <mliska@suse.cz>
3375
3376 * cgraphunit.c (symbol_table::compile): Pass
3377 title as dump_memory_report argument.
3378 * toplev.c (dump_memory_report): New argument.
3379 (finalize): Pass new argument.
3380 * toplev.h (dump_memory_report): Add argument.
3381
3382 2019-10-29 Martin Liska <mliska@suse.cz>
3383
3384 * ggc-common.c: Move Leak to the first column.
3385
3386 2019-10-29 Martin Liska <mliska@suse.cz>
3387
3388 * cgraphunit.c (symbol_table::compile): Remove argument
3389 for dump_memory_report.
3390 * ggc-common.c (dump_ggc_loc_statistics): Likewise.
3391 (compare_final): Remove in order to make report
3392 better readable.
3393 * ggc.h (dump_ggc_loc_statistics): Remove argument.
3394 * mem-stats.h (mem_alloc_description::get_list):
3395 Do not pass cmp.
3396 (mem_alloc_description::dump): Likewise here.
3397 * toplev.c (dump_memory_report): Remove final
3398 argument.
3399 (finalize): Likewise.
3400 * toplev.h (dump_memory_report): Remove argument.
3401
3402 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
3403
3404 * config/aarch64/aarch64.c (aarch64_sve_cmp_immediate_p)
3405 (aarch64_simd_shift_imm_p): Accept scalars as well as vectors.
3406 * config/aarch64/predicates.md (aarch64_sve_cmp_vsc_immediate)
3407 (aarch64_sve_cmp_vsd_immediate): Accept "const_int", but don't
3408 accept "const".
3409
3410 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
3411
3412 * coretypes.h (string_int_pair): New typedef.
3413 * langhooks-def.h (LANG_HOOKS_SIMULATE_ENUM_DECL): Define.
3414 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Include it.
3415 * langhooks.h (lang_hooks_for_types::simulate_enum_decl): New hook.
3416
3417 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
3418
3419 * langhooks.h (lang_hooks::simulate_builtin_function_decl): New hook.
3420 (simulate_builtin_function_decl): Declare.
3421 * langhooks-def.h (LANG_HOOKS_SIMULATE_BUILTIN_FUNCTION_DECL): Define.
3422 (LANG_HOOKS_INITIALIZER): Include it.
3423 * langhooks.c (add_builtin_function_common): Rename to...
3424 (build_builtin_function): ...this. Add a location parameter and use
3425 it instead of BUILTINS_LOCATION. Remove the hook parameter and return
3426 the decl instead.
3427 (add_builtin_function): Update accordingly, passing the returned
3428 decl to the lang hook.
3429 (add_builtin_function_ext_scope): Likewise
3430 (simulate_builtin_function_decl): New function.
3431
3432 2019-10-29 Jakub Jelinek <jakub@redhat.com>
3433
3434 * doc/install.texi (--enable-offload-targets): Fix up a typo in the
3435 example, use actual names of supported offload targets.
3436
3437 PR target/92258
3438 * config/i386/sse.md (iptr): Revert 2019-10-27 change.
3439
3440 2019-10-28 Martin Sebor <msebor@redhat.com>
3441
3442 * tree-ssa-strlen.c (get_addr_stridx): Add argument and use it.
3443 (handle_store): Pass argument to get_addr_stridx.
3444
3445 2019-10-28 Martin Sebor <msebor@redhat.com>
3446
3447 PR tree-optimization/92226
3448 * tree-ssa-strlen.c (compare_nonzero_chars): Return -1 also when
3449 the offset is in the open range outlined by SI's length.
3450
3451 2019-10-28 Martin Sebor <msebor@redhat.com>
3452
3453 PR c/66970
3454 * doc/cpp.texi (__has_builtin): Document.
3455 * doc/extend.texi (__builtin_frob_return_addr): Correct spelling.
3456
3457 2019-10-28 Mihailo Stojanovic <mistojanovic@wavecomp.com>
3458
3459 PR target/82981
3460 * config/mips/mips.md (<u>mulditi3): Generate patterns for high
3461 doubleword and low doubleword result of multiplication on
3462 MIPS64R6.
3463
3464 * config/mips/mips.c (DIRECT_BUILTIN_PURE): New macro. Add a
3465 pure qualifier to the built-in.
3466 (MSA_BUILTIN_PURE): New macro. Add a pure qualifier to the MSA
3467 built-ins.
3468 (struct mips_builtin_description): Add is_pure flag.
3469 (mips_init_builtins): Mark built-in as pure if the flag in the
3470 corresponding mips_builtin_description struct is set.
3471
3472 * config/mips/mips-msa.md (msa_insert_<msaftm_f>): Add an
3473 alternative which covers the floating-point input value. Also
3474 forbid the split of insert.d pattern for floating-point values.
3475
3476 2019-10-28 Andrew Burgess <andrew.burgess@embecosm.com>
3477
3478 * config.gcc: Add riscv-sr.o to extra_objs for riscv.
3479 * config/riscv/riscv-sr.c: New file.
3480 * config/riscv/riscv.c (riscv_reorg): New function.
3481 (TARGET_MACHINE_DEPENDENT_REORG): Define.
3482 * config/riscv/riscv.h (SIBCALL_REG_P): Define.
3483 (riscv_remove_unneeded_save_restore_calls): Declare.
3484 * config/riscv/t-riscv (riscv-sr.o): New build rule.
3485
3486 2019-10-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3487
3488 PR tree-optimization/92163
3489 * tree-ssa-dse.c (delete_dead_or_redundant_assignment): New param
3490 need_eh_cleanup with default value NULL. Gate on need_eh_cleanup
3491 before calling bitmap_set_bit.
3492 (dse_optimize_redundant_stores): Pass global need_eh_cleanup to
3493 delete_dead_or_redundant_assignment.
3494 (dse_dom_walker::dse_optimize_stmt): Likewise.
3495 * tree-ssa-dse.h (delete_dead_or_redundant_assignment): Adjust prototype.
3496
3497 2019-10-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3498
3499 PR middle-end/91272
3500 * tree-vect-stmts.c (vectorizable_condition): Support
3501 EXTRACT_LAST_REDUCTION with fully-masked loops.
3502
3503 2019-10-28 Richard Biener <rguenther@suse.de>
3504
3505 PR tree-optimization/92252
3506 * tree-vect-slp.c (vect_get_and_check_slp_defs): Adjust
3507 STMT_VINFO_REDUC_IDX when swapping operands.
3508
3509 2019-10-28 Richard Biener <rguenther@suse.de>
3510
3511 PR tree-optimization/92241
3512 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): When
3513 we failed to update the reduction index do not use the pattern
3514 stmts for the reduction chain.
3515 (vectorizable_reduction): When the reduction chain is corrupt,
3516 fail.
3517 * tree-vect-patterns.c (vect_mark_pattern_stmts): Stop when we
3518 fail to update the reduction chain.
3519
3520 2019-10-28 Richard Biener <rguenther@suse.de>
3521
3522 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
3523 STMT_VINFO_REDUC_IDX from the actual stmt.
3524 (vect_transform_reduction): Likewise.
3525 (vectorizable_reduction): Compute the reduction chain length,
3526 do not recompute the reduction operand index. Remove no longer
3527 necessary restriction for condition reduction chains.
3528
3529 2019-10-28 Uroš Bizjak <ubizjak@gmail.com>
3530
3531 PR target/92225
3532 * config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE4_2
3533 condition for V2DImode.
3534
3535 2019-10-28 Uroš Bizjak <ubizjak@gmail.com>
3536
3537 * config/i386/sse.md (sse_cvtss2si<rex64namesuffix>_2):
3538 Remove %k operand modifier.
3539 (*vec_extractv2df_1_sse): Remove %q operand modifier.
3540
3541 2019-10-28 Ilya Leoshkevich <iii@linux.ibm.com>
3542
3543 PR rtl-optimization/92007
3544 * cfgcleanup.c (thread_jump): Add an assertion that we don't
3545 call it after reload if hot/cold partitioning has been done.
3546 (class pass_postreload_jump): Rename to
3547 pass_jump_after_combine.
3548 (make_pass_postreload_jump): Rename to
3549 make_pass_jump_after_combine.
3550 * passes.def(pass_postreload_jump): Move before reload, rename
3551 to pass_jump_after_combine.
3552 * tree-pass.h (make_pass_postreload_jump): Rename to
3553 make_pass_jump_after_combine.
3554
3555 2019-10-25 Jan Hubicka <hubicka@ucw.cz>
3556
3557 PR ipa/92242
3558 * ipa-fnsummary.c (ipa_merge_fn_summary_after_inlining): Check
3559 for missing EDGE_REF
3560 * ipa-prop.c (update_jump_functions_after_inlining): Likewise.
3561
3562 2019-10-25 Jiufu Guo <guojiufu@linux.ibm.com>
3563
3564 PR tree-optimization/88760
3565 * config/rs6000/rs6000-common.c (rs6000_option_optimization_table):
3566 Enable -funroll-loops for -O2 and above.
3567 * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
3568 PARAM_MAX_UNROLL_TIMES to 2 and PARAM_MAX_UNROLLED_INSNS to 20, and
3569 do not turn on web and rngreg implicitly, if the unroller is not
3570 explicitly enabled.
3571
3572 2019-10-27 Jan Hubicka <hubicka@ucw.cz>
3573
3574 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not remove
3575 jump functions.
3576
3577 2019-10-27 Eric Botcazou <ebotcazou@adacore.com>
3578
3579 * cgraph.c (cgraph_node::rtl_info): Fix cut&pasto in comment.
3580 * cgraph.h (cgraph_node::rtl_info): Likewise.
3581
3582 2019-10-27 Jan Hubicka <hubicka@ucw.cz>
3583
3584 * ipa-cp.c (propagate_constants_across_call): If args are not available
3585 just drop everything to varying.
3586 (find_aggregate_values_for_callers_subset): Watch for missing
3587 edge summary.
3588 (find_more_scalar_values_for_callers_subs): Likewise.
3589 * ipa-prop.c (ipa_compute_jump_functions_for_edge,
3590 update_jump_functions_after_inlining, propagate_controlled_uses):
3591 Watch for missing summaries.
3592 (ipa_propagate_indirect_call_infos): Remove summary after propagation
3593 is finished.
3594 (ipa_write_node_info): Watch for missing summaries.
3595 (ipa_read_edge_info): Create new ref.
3596 (ipa_edge_args_sum_t): Add remove.
3597 (IPA_EDGE_REF_GET_CREATE): New macro.
3598 * ipa-fnsummary.c (evaluate_properties_for_edge): Watch for missing
3599 edge summary.
3600 (remap_edge_change_prob): Likewise.
3601
3602 2019-10-27 Jan Hubicka <hubicka@ucw.cz>
3603
3604 * ipa-inline-transform.c (inline_call): update function summaries
3605 after expanidng thunk.
3606
3607 2019-10-27 Jan Hubicka <hubicka@ucw.cz>
3608
3609 * ipa-icf.c (sem_function::merge): Update function summaries.
3610 * ipa-prop.h (ipa_get_param): Do not sanity check for WPA.
3611
3612 2019-10-27 Hongtao Liu <hongtao.liu@intel.com>
3613
3614 * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3,
3615 <sse>_vm<multdiv_mnemonic><mode>3): Remove <iptr> since
3616 operand already has scalar mode.
3617 (iptr): Remove SF/DF.
3618
3619 2019-10-26 Segher Boessenkool <segher@kernel.crashing.org>
3620
3621 PR target/91289
3622 * config/rs6000/rs6000-logue.c (rs6000_emit_allocate_stack): Don't add
3623 an immediate to r0; use r11 instead. Save and restore r11 to r0 around
3624 this.
3625
3626 2019-10-26 Hongtao Liu <hongtao.liu@intel.com>
3627
3628 * config/i386/sse.md
3629 (<sse>_vm<plusminus_insn><mode>3<mask_scalar_name><round_scalar_name>,
3630 <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name><round_scalar_name>,
3631 <sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>,
3632 <sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>,
3633 <sse>_vmmaskcmp<mode>3):
3634 Change predicates from vector_operand to nonimmediate_operand,
3635 constraints xBm to xm, since scalar operations don't need
3636 memory address alignment.
3637 (avx512f_vmcmp<mode>3<round_saeonly_name>,
3638 avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Replace
3639 round_saeonly_nimm_predicate with
3640 round_saeonly_nimm_scalar_predicate.
3641 (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
3642 fmai_vmfnmadd_<mode><round_name>,fmai_vmfnmsub_<mode><round_name>,
3643 *fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
3644 *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>,
3645 avx512f_vmfmadd_<mode>_mask3<round_name>,
3646 avx512f_vmfmadd_<mode>_maskz_1<round_name>,
3647 *avx512f_vmfmsub_<mode>_mask<round_name>,
3648 avx512f_vmfmsub_<mode>_mask3<round_name>,
3649 *avx512f_vmfmsub_<mode>_maskz_1<round_name>,
3650 *avx512f_vmfnmadd_<mode>_mask<round_name>,
3651 *avx512f_vmfnmadd_<mode>_mask3<round_name>,
3652 *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
3653 *avx512f_vmfnmsub_<mode>_mask<round_name>,
3654 *avx512f_vmfnmsub_<mode>_mask3<round_name>,
3655 *avx512f_vmfnmsub_<mode>_maskz_1<round_name>,
3656 cvtusi2<ssescalarmodesuffix>32<round_name>,
3657 cvtusi2<ssescalarmodesuffix>64<round_name>, ): Replace
3658 round_nimm_predicate with round_nimm_scalr_predicate.
3659 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>,
3660 avx512f_sfixupimm<mode>_mask<round_saeonly_name>,
3661 avx512er_vmrcp28<mode><round_saeonly_name>,
3662 avx512er_vmrsqrt28<mode><round_saeonly_name>,
3663 ): Replace round_saeonly_nimm_predicate with
3664 round_saeonly_nimm_scalar_predicate.
3665 (avx512dq_vmfpclass<mode><mask_scalar_merge_name>): Replace
3666 vector_operand with nonimmediate_operand.
3667 * config/i386/subst.md (round_scalar_nimm_predicate,
3668 round_saeonly_scalar_nimm_predicate): Replace
3669 vector_operand with nonimmediate_operand.
3670
3671 2019-10-26 Hongtao Liu <hongtao.liu@intel.com>
3672
3673 PR target/89071
3674 * config/i386/i386.md (*rcpsf2_sse): Add
3675 avx_partial_xmm_update, prefer m constraint for TARGET_AVX.
3676 (*rsqrtsf2_sse): Ditto.
3677 (*sqrt<mode>2_sse): Ditto.
3678 (sse4_1_round<mode>2): separate constraint vm, add
3679 avx_partail_xmm_update, prefer m constraint for TARGET_AVX.
3680 * config/i386/sse.md (*sse_vmrcpv4sf2"): New define_insn used
3681 by pass rpad.
3682 (*<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>*):
3683 Ditto.
3684 (*sse_vmrsqrtv4sf2): Ditto.
3685 (*avx512f_rndscale<mode><round_saeonly_name>): Ditto.
3686 (*sse4_1_round<ssescalarmodesuffix>): Ditto.
3687 (sse4_1_round<ssescalarmodesuffix>): Add m constraint and
3688 <iptr> pointer size modifier since vround support memory operand.
3689
3690 2019-10-18 Georg-Johann Lay <avr@gjlay.de>
3691
3692 PR target/85969
3693 * config/avr/gen-avr-mmcu-specs.c (str_prefix_p): Remove unused
3694 static function.
3695
3696 2019-10-25 Cesar Philippidis <cesar@codesourcery.com>
3697 Tobias Burnus <tobias@codesourcery.com>
3698
3699 * gimplify.c (oacc_default_clause): Privatize fortran common blocks.
3700 (omp_notice_variable): Defer the expansion of DECL_VALUE_EXPR for
3701 common block decls.
3702
3703 2019-10-25 Richard Biener <rguenther@suse.de>
3704
3705 PR tree-optimization/92222
3706 * tree-vect-slp.c (_slp_oprnd_info::first_pattern): Remove.
3707 (_slp_oprnd_info::second_pattern): Likewise.
3708 (_slp_oprnd_info::any_pattern): New.
3709 (vect_create_oprnd_info): Adjust.
3710 (vect_get_and_check_slp_defs): Compute whether any stmt is
3711 in a pattern.
3712 (vect_build_slp_tree_2): Avoid building up a node from scalars
3713 if any of the operand defs, not just the first, is in a pattern.
3714
3715 2019-10-25 Richard Biener <rguenther@suse.de>
3716
3717 * tree-vect-slp.c (vect_get_and_check_slp_defs): Only fail
3718 swapping if we actually have to modify the IL on a shared stmt.
3719 (vect_build_slp_tree_2): Never fail swapping on shared stmts
3720 because we no longer modify the IL.
3721
3722 2019-10-25 Martin Liska <mliska@suse.cz>
3723
3724 * tree.c (dump_tree_statistics): Use sorted index 'j' and not 'i'.
3725
3726 2019-10-25 Richard Sandiford <richard.sandiford@arm.com>
3727
3728 * tree-vect-loop.c (vectorizable_reduction): Restrict the
3729 LOOP_VINFO_CAN_FULLY_MASK_P handling to cases that will be
3730 handled by vect_transform_reduction. Allow fully-masked loops
3731 to be used with reduction chains.
3732 * tree-vect-stmts.c (vectorizable_operation): Handle reduction
3733 operations in fully-masked loops.
3734 (vectorizable_condition): Reject EXTRACT_LAST_REDUCTION
3735 operations in fully-masked loops.
3736
3737 2019-10-25 Richard Biener <rguenther@suse.de>
3738
3739 * tree-vect-loop.c (vectorizable_reduction): Verify
3740 STMT_VINFO_REDUC_IDX on the to be vectorized stmts is set up
3741 correctly.
3742 * tree-vect-patterns.c (vect_mark_pattern_stmts): Transfer
3743 STMT_VINFO_REDUC_IDX from the original stmts to the pattern
3744 stmts.
3745
3746 2019-10-24 Jakub Jelinek <jakub@redhat.com>
3747
3748 * gimplify.h (omp_construct_selector_matches): Declare.
3749 * gimplify.c (struct gimplify_omp_ctx): Add code member.
3750 (gimplify_call_expr): Call omp_resolve_declare_variant and remap
3751 called function if needed for flag_openmp.
3752 (gimplify_scan_omp_clauses): Set ctx->code.
3753 (omp_construct_selector_matches): New function.
3754 * omp-general.h (omp_constructor_traits_to_codes,
3755 omp_context_selector_matches, omp_resolve_declare_variant): Declare.
3756 * omp-general.c (omp_constructor_traits_to_codes,
3757 omp_context_selector_matches, omp_resolve_declare_variant): New
3758 functions.
3759
3760 * config/arc/arc.c (hwloop_optimize): Add missing space in string
3761 literal.
3762 * config/rx/rx.c (rx_print_operand): Likewise.
3763 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
3764 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
3765 * ipa-sra.c (create_parameter_descriptors, process_scan_results):
3766 Likewise.
3767 * genemit.c (emit_c_code): Likewise.
3768 * plugin.c (try_init_one_plugin): Likewise. Formatting fix.
3769
3770 2019-10-24 Jan Hubicka <hubicka@ucw.cz>
3771
3772 * symbols-summary.h (fast_function_summary<T *, V>::release,
3773 fast_call_summary<T *, V>::release): Free m_vector.
3774
3775 2019-10-24 Jan Hubicka <hubicka@ucw.cz>
3776
3777 * cgraphunit.c (symbol_table::process_new_functions): Call
3778 ipa_free_size_summary.
3779 * ipa-cp.c (ipcp_cloning_candidate_p): Update.
3780 (devirtualization_time_bonus): Update.
3781 (ipcp_propagate_stage): Update.
3782 * ipa-fnsummary.c (ipa_size_summaries): New.
3783 (ipa_fn_summary_alloc): Alloc size summary.
3784 (dump_ipa_call_summary): Update.
3785 (ipa_dump_fn_summary): Update.
3786 (analyze_function_body): Update.
3787 (compute_fn_summary): Likewise.
3788 (ipa_get_stack_frame_offset): New function.
3789 (inline_update_callee_summaries): Do not update frame offsets.
3790 (ipa_merge_fn_summary_after_inlining): Update frame offsets here;
3791 remove call and function summary.
3792 (ipa_update_overall_fn_summary): Update.
3793 (inline_read_section): Update.
3794 (ipa_fn_summary_write): Update.
3795 (ipa_free_fn_summary): Do not remove summaries.
3796 (ipa_free_size_summary): New.
3797 (release summary pass): Also run at WPA.
3798 * ipa-fnsummary.h (ipa_size_summary): Declare.
3799 (ipa_fn_summary): Remove size, self_size, stack_frame_offset,
3800 estimated_self_stack_size.
3801 (ipa_size_summary_t): New type.
3802 (ipa_size_summaries): Declare.
3803 (ipa_free_size_summary): Declare.
3804 (ipa_get_stack_frame_offset): Declare.
3805 * ipa-icf.c (sem_function::merge): Update.
3806 * ipa-inline-analysis.c (estimate_size_after_inlining): Update.
3807 (estimate_growth): Update.
3808 (growth_likely_positive): Update.
3809 (clone_inlined_nodes): Update.
3810 (inline_call): Update.
3811 * ipa-inline.c (caller_growth_limits): Update.
3812 (edge_badness): Update.
3813 (recursive_inlining): Update.
3814 (inline_small_functions): Update.
3815 (inline_to_all_callers_1): Update.
3816 * ipa-prop.h (ipa_edge_args_sum_t): Update comment.
3817
3818 2019-10-24 Segher Boessenkool <segher@kernel.crashing.org>
3819
3820 * config/rs6000/altivec.md (altivec_vavgu<VI_char>): Rename to...
3821 (uavg<mode>3_ceil): ... This.
3822 (altivec_vavgs<VI_char>): Rename to...
3823 (avg<mode>3_ceil): ... This.
3824 * config/rs6000/rs6000-builtin.def (VAVGUB, VAVGSB, VAVGUH, VAVGSH,
3825 VAVGUW, VAVGSW): Adjust.
3826
3827 2019-10-24 Nathan Sidwell <nathan@acm.org>
3828
3829 * dumpfile.c (dump_begin): Reorder decls to use RAII.
3830
3831 2019-10-24 Martin Liska <mliska@suse.cz>
3832
3833 * symbol-summary.h (gt_pch_nx): Mark all functions
3834 with gcc_unreachable as we do not expect to be called.
3835
3836 2019-10-24 Richard Biener <rguenther@suse.de>
3837
3838 * tree-vect-slp.c (vect_get_and_check_slp_defs): For reduction
3839 chains try harder with operand swapping and instead of
3840 putting a shifted chain into the reduction operands put
3841 a repetition of the final reduction op there as if we'd
3842 reassociate the expression.
3843
3844 2019-10-24 Jan Hubicka <hubicka@ucw.cz>
3845
3846 * ipa-reference.c (ipa_reference_optimization_summary_d): Rename
3847 statics_not_read and statics_not_written to statics_read and
3848 statics_written respectively.
3849 (no_module_statics): New static var.
3850 (ipa_reference_get_not_read_global): Rename to ...
3851 (ipa_reference_get_read_global): ... this.
3852 (ipa_reference_get_not_written_global): Rename to ...
3853 (ipa_reference_get_written_global): ... this.
3854 (dump_static_vars_set_to_file): Dump no_module_statics.
3855 (copy_static_var_set): Add for propagation parameter.
3856 (ipa_init): Initialize no_module_statics.
3857 (ipa_ref_opt_summary_t::duplicate): Update.
3858 (ipa_ref_opt_summary_t::remove): Update.
3859 (propagate): Update.
3860 (write_node_summary_p): Look correctly for bitmap differences.
3861 (ipa_reference_write_optimization_summary): Update.
3862 (ipa_reference_read_optimization_summary): Update.
3863 * ipa-reference.h
3864 (ipa_reference_get_not_read_global): Rename to ...
3865 (ipa_reference_get_read_global): ... this.
3866 (ipa_reference_get_not_written_global): Rename to ...
3867 (ipa_reference_get_written_global): ... this.
3868 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Update.
3869 (call_may_clobber_ref_p_1): Update.
3870
3871 2019-10-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3872
3873 * config/msp430/msp430.c (msp430_hard_regno_nregs_has_padding): Remove
3874 and add comment.
3875 (msp430_hard_regno_nregs_with_padding): Remove.
3876
3877 2019-10-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3878
3879 * config/msp430/constraints.md: Allow post_inc for "Ya" constraint.
3880 * config/msp430/msp430.md (430x_shift_left): Use RLAM when the constant
3881 shift amount is between 1 and 4.
3882 (430x_arithmetic_shift_right): Use RRAM when the constant shift amount
3883 is between 1 and 4.
3884
3885 2019-10-24 Richard Biener <rguenther@suse.de>
3886
3887 PR tree-optimization/92205
3888 * tree-vect-loop.c (vectorizable_reduction): Restrict
3889 search for alternate vectype_in to lane-reducing patterns
3890 we support.
3891
3892 2019-10-24 Richard Biener <rguenther@suse.de>
3893
3894 PR tree-optimization/92203
3895 * treee-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt):
3896 Skip eliminating conversion stmts inserted by insertion.
3897
3898 2019-10-24 Ilya Leoshkevich <iii@linux.ibm.com>
3899
3900 * config/s390/s390.c (s390_get_thread_pointer): Use
3901 gen_get_thread_pointer.
3902 (s390_expand_split_stack_prologue): Likewise.
3903 * config/s390/s390.md (UNSPEC_GET_TP): New UNSPEC.
3904 (*get_tp_31): New 31-bit splitter for UNSPEC_GET_TP.
3905 (*get_tp_64): New 64-bit splitter for UNSPEC_GET_TP.
3906 (get_thread_pointer<mode>): Use UNSPEC_GET_TP, use
3907 parameterized name.
3908
3909 2019-10-24 Richard Biener <rguenther@suse.de>
3910
3911 * tree-vect-slp.c (vect_analyze_slp): When reduction group
3912 SLP discovery fails try to handle the reduction as part
3913 of SLP reduction discovery.
3914
3915 2019-10-23 Michael Meissner <meissner@linux.ibm.com>
3916
3917 * config/rs6000/rs6000-protos.h (rs6000_adjust_insn_length): New
3918 declaration.
3919 * config/rs6000/rs6000.c (rs6000_insn_cost): Use num_insns insn
3920 attribute if it exists, rather than the insn size. If we use the
3921 insn size, adjust the size to remove the extra size that prefixed
3922 instructions take.
3923 (rs6000_adjust_insn_length): New function.
3924 * config/rs6000/rs6000.h (ADJUST_INSN_LENGTH): New target hook to
3925 update the instruction sized if prefixed instructions are used.
3926 * config/rs6000/rs6000.md (prefixed_length attribute): Delete.
3927 (non_prefixed_length attribute): Delete.
3928 (num_insns attribute): New insn attribute to return the number of
3929 instructions.
3930 (max_prefixed_insns attribute): New insn attribute to return the
3931 maximum number of prefixed instructions in an insn.
3932 (length attribute): Do not adjust for prefix instructions here,
3933 punt to ADJUST_INSN_LENGTH.
3934 (mov<mode>_64bit): Set max_prefixed_insns and num_insns.
3935 (movtd_64bit_nodm): Set max_prefixed_insns and num_insns.
3936 (mov<mode>_ppc64): Set max_prefixed_insns and num_insns.
3937 * config/rs6000/vsx.md: (vsx_mov<mode>_64bit): Set
3938 max_prefixed_insns and num_insns.
3939
3940 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Reformat.
3941 (movtd_64bit_nodm): Reformat.
3942 (mov<mode>_32bit): Reformat.
3943 (mov<mode>_softfloat): Reformat.
3944 (FMOVE128_GPR splitter): Reformat.
3945 (DIFD splitter): Reformat.
3946 (TI2 splitter): Reformat.
3947 * config/rs6000/predicates.md (lwa_operand): If the bottom two
3948 bits of the offset for the memory address are non-zero, use PLWA
3949 if prefixed instructions are available.
3950
3951 2019-10-23 Jan Hubicka <hubicka@ucw.cz>
3952
3953 * lto-streamer-out.c (cmp_symbol_files): Watch for overflow.
3954
3955 2019-10-23 Jan Hubicka <hubicka@ucw.cz>
3956
3957 * ipa-reference.c (varpool_removal_hook, ipa_reference_c_finalize): Fix
3958 previous patch.
3959
3960 2019-10-23 Jan Hubicka <hubicka@ucw.cz>
3961
3962 * lto-streamer-out.c (output_constructor): Push CTORS_OUT timevar.
3963 (cmp_symbol_files): New.
3964 (lto_output): Copy sections in file order.
3965 * lto-streamer.h (lto_file_decl_data): Add field order.
3966
3967 2019-10-23 Jan Hubicka <hubicka@ucw.cz>
3968
3969 * ipa-reference.h (ipa_reference_var_uid): Move offline.
3970 * ipa-reference.c (reference_vars_map_t): new type.
3971 (ipa_reference_vars_map, ipa_reference_vars_uids): New static vars.
3972 (ipa_reference_var_uid): Implement.
3973 (varpool_node_hooks): New static var.
3974 (varpool_removal_hook): New function.
3975 (is_improper): Do not check bitmap for id==-1
3976 (get_static_name): Update.
3977 (ipa_init): Initialize new datastructures.
3978 (analyze_function): Do not recompute ids.
3979 (propagate): Free reference_vars_to_consider.
3980 (stream_out_bitmap): Update.
3981 (ipa_reference_read_optimization_summary): Update.
3982
3983 2019-10-23 qing zhao <qing.zhao@oracle.com>
3984
3985 PR gcov-profile/91971
3986 * coverage.c (coverage_init): Mangle the full path of filename when
3987 filename is a absolute path.
3988
3989 2019-10-23 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3990
3991 * config/msp430/msp430-protos.h (msp430_has_hwmult): New.
3992 * config/msp430/msp430.c (msp430_no_hwmult): Remove.
3993 (msp430_has_hwmult): New.
3994 (msp430_output_labelref):
3995 s/msp430_hwmult_type != MSP430_HWMULT_NONE/msp430_has_hwmult ()/
3996 * config/msp430/msp430.md (mulhisi3): Likewise.
3997 (umulhisi3): Likewise.
3998 (mulsidi3): Likewise.
3999 (umulsidi3): Likewise.
4000
4001 2019-10-23 Jan Hubicka <hubicka@ucw.cz>
4002
4003 PR ipa/92074
4004 * params.def (inline-heuristics-hint-percent): Set to 600.
4005
4006 2019-10-23 Richard Biener <rguenther@suse.de>
4007
4008 PR tree-optimization/65930
4009 * tree-vect-loop.c (check_reduction_path): Allow conversions
4010 that only change the sign.
4011 (vectorizable_reduction): Relax latch def stmts we handle further.
4012
4013 2019-10-23 Jakub Jelinek <jakub@redhat.com>
4014
4015 PR debug/90231
4016 * tree-ssa-loop-ivopts.c (get_debug_computation_at): New function.
4017 (remove_unused_ivs): Use it instead of get_computation_at. When
4018 choosing best candidate, only consider candidates where
4019 get_debug_computation_at actually returns non-NULL.
4020
4021 2019-10-23 Eric Botcazou <ebotcazou@adacore.com>
4022
4023 PR tree-optimization/92131
4024 * tree-vrp.c (extract_range_from_plus_minus_expr): If the resulting
4025 range would be symbolic, drop to varying for any explicit overflow
4026 in the constant part or if neither range is a singleton.
4027
4028 2019-10-23 Martin Liska <mliska@suse.cz>
4029
4030 PR middle-end/81669
4031 * fibonacci_heap.h (fibonacci_node::fibonacci_node):
4032 Initialize m_data.
4033
4034 2019-10-23 Richard Sandiford <richard.sandiford@arm.com>
4035
4036 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use
4037 int_mode_for_mode rather than mode_for_int_vector for scalars.
4038
4039 2019-10-23 Richard Biener <rguenther@suse.de>
4040
4041 PR tree-optimization/92179
4042 * tree-vect-stmts.c (vectorizable_shift): For shift args
4043 that are all the same remove type restriction in the SLP case.
4044 Adjust SLP code to handle converting of the shift arg to
4045 only apply in case the modes are different.
4046
4047 2019-10-23 Martin Liska <mliska@suse.cz>
4048
4049 PR ipa/91969
4050 * ipa-inline.c (recursive_inlining): Do not print
4051 when curr->count is not initialized.
4052
4053 2019-10-23 Richard Biener <rguenther@suse.de>
4054
4055 * tree-vect-slp.c (vect_build_slp_tree_2): Do not build
4056 op from scalars in case there's a constant operand in its
4057 definition.
4058
4059 2019-10-23 Iain Sandoe <iain@sandoe.co.uk>
4060
4061 * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard
4062 against out of range max skip or log values.
4063
4064 2019-10-22 Giuliano Belinassi <giuliano.belinassi@usp.br>
4065
4066 * cgraph.c (dump_graphviz): Change name to dump_name
4067
4068 2019-10-22 Richard Earnshaw <rearnsha@arm.com>
4069
4070 * config/arm/arm.md (rsbsi_carryin_reg): New pattern.
4071 * config/arm/arm.c (arm_rtx_costs_internal, case MINUS): Handle
4072 subtraction from a carry operation.
4073
4074 2019-10-22 Richard Earnshaw <rearnsha@arm.com>
4075
4076 * config/arm/predicates.md (arm_borrow_operation): Handle CC_ADCmode.
4077
4078 2019-10-22 Richard Biener <rguenther@suse.de>
4079
4080 PR tree-optimization/92173
4081 * tree-vect-loop.c (vectorizable_reduction): If
4082 vect_transform_reduction cannot handle code-generation try without
4083 the single-def-use-cycle optimization. Pass optab_vector to
4084 optab_for_tree_code to get vector shifts as that's what we'd
4085 generate.
4086
4087 2019-10-22 Michael Matz <matz@suse.de>
4088
4089 PR middle-end/90796
4090 * gimple-loop-jam.c (any_access_function_variant_p): New function.
4091 (adjust_unroll_factor): Use it to constrain safety, new parameter.
4092 (tree_loop_unroll_and_jam): Adjust call and profitable unroll factor.
4093
4094 2019-10-22 Richard Biener <rguenther@suse.de>
4095
4096 PR tree-optimization/92173
4097 * tree-vect-loop.c (vectorizable_reduction): If
4098 vect_transform_reduction cannot handle code-generation try without
4099 the single-def-use-cycle optimization. Pass optab_vector to
4100 optab_for_tree_code to get vector shifts as that's what we'd
4101 generate.
4102
4103 2019-10-22 Martin Liska <mliska@suse.cz>
4104
4105 * diagnostic-format-json.cc (json_from_expanded_location):
4106 Use json::integer_number.
4107 * gcov.c (output_intermediate_json_line): Use new
4108 json::integer_number.
4109 (output_json_intermediate_file): Likewise.
4110 * json.cc (number::print): Move to ...
4111 (float_number::print): ... this.
4112 (integer_number::print): New.
4113 (test_writing_numbers): Move to ...
4114 (test_writing_float_numbers): ... this.
4115 (test_writing_integer_numbers): New.
4116 (json_cc_tests): Register test_writing_integer_numbers.
4117 * json.h (class value): Add forward declaration
4118 for float_number and integer_number.
4119 (enum kind): Add JSON_INTEGER and JSON_FLOAT.
4120 (class number): Move to ...
4121 (class float_number): ... this.
4122 (class integer_number): New.
4123 * optinfo-emit-json.cc (optrecord_json_writer::impl_location_to_json):
4124 Use json::integer_number.
4125 (optrecord_json_writer::location_to_json): Likewise.
4126 (optrecord_json_writer::profile_count_to_json): Likewise.
4127 (optrecord_json_writer::pass_to_json): Likewise.
4128
4129 2019-10-22 Richard Sandiford <richard.sandiford@arm.com>
4130
4131 * tree-vect-slp.c (vect_slp_bb_region): Check whether
4132 autodetected_vector_size rather than vector_size is zero.
4133 * tree-vect-loop.c (vect_analyze_loop): Likewise.
4134 Set autodetected_vector_size immediately after calling
4135 vect_analyze_loop_2. Check for a fatal error before advancing
4136 next_size.
4137
4138 2019-10-21 Jason Merrill <jason@redhat.com>
4139
4140 * lock-and-run.sh: Check for process existence rather than timeout.
4141
4142 2019-10-21 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4143
4144 * expr.c (expand_expr_real_2): Don't widen constant op1 when expanding
4145 widening multiplication.
4146
4147 2019-10-21 Richard Earnshaw <rearnsha@arm.com>
4148
4149 * config/arm/iterators.md (t2_binop0): Fix typo in comment.
4150 * config/arm/arm.md (addsi3_carryin_shift): Simplify selection of the
4151 type attribute.
4152 (subsi3_carryin_shift): Separate into register and constant controlled
4153 alternatives. Use shift_amount_operand for operand 4. Set shift
4154 attribute and simplify type attribute.
4155 (subsi3_carryin_shift_alt): Likewise.
4156 (rsbsi3_carryin_shift): Likewise.
4157 (rsbsi3_carryin_shift_alt): Likewise.
4158 (andsi_not_shiftsi_si): Enable for TARGET_32BIT. Separate constant
4159 and register controlled shifts into distinct alternatives.
4160 (andsi_not_shiftsi_si_scc_no_reuse): Likewise.
4161 (andsi_not_shiftsi_si_scc): Likewise.
4162 (arm_cmpsi_negshiftsi_si): Likewise.
4163 (not_shiftsi): Remove redundant M constraint from alternative 1.
4164 (not_shiftsi_compare0): Likewise.
4165 (arm_cmpsi_insn): Remove redundant alternative 2.
4166 (cmpsi_shift_swp): Likewise.
4167 (sub_shiftsi): Likewise.
4168 (sub_shiftsi_compare0_scratch): Likewise.
4169 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Delete pattern.
4170 (thumb2_cmpsi_neg_shiftsi): Likewise.
4171
4172 2019-10-21 Richard Biener <rguenther@suse.de>
4173
4174 PR tree-optimization/92162
4175 * tree-vect-loop.c (vect_create_epilog_for_reduction): Lookup
4176 STMT_VINFO_REDUC_IDX in reduc_info.
4177 * tree-vect-stmts.c (vectorizable_condition): Likewise.
4178
4179 2019-10-21 Richard Biener <rguenther@suse.de>
4180
4181 * tree-vectorizer.h (_slp_tree::ops): New member.
4182 (SLP_TREE_SCALAR_OPS): New.
4183 (vect_get_slp_defs): Adjust prototype.
4184 * tree-vect-slp.c (vect_free_slp_tree): Release
4185 SLP_TREE_SCALAR_OPS.
4186 (vect_create_new_slp_node): Initialize it. New overload for
4187 initializing by an operands array.
4188 (_slp_oprnd_info::ops): New member.
4189 (vect_create_oprnd_info): Initialize it.
4190 (vect_free_oprnd_info): Release it.
4191 (vect_get_and_check_slp_defs): Populate the operands array.
4192 Do not swap operands in the IL when not necessary.
4193 (vect_build_slp_tree_2): Build SLP nodes for invariant operands.
4194 Record SLP_TREE_SCALAR_OPS for all invariant nodes. Also
4195 swap operands in the operands array. Do not swap operands in
4196 the IL.
4197 (vect_slp_rearrange_stmts): Re-arrange SLP_TREE_SCALAR_OPS as well.
4198 (vect_gather_slp_loads): Fix.
4199 (vect_detect_hybrid_slp_stmts): Likewise.
4200 (vect_slp_analyze_node_operations_1): Search for a internal
4201 def child for computing reduction SLP_TREE_NUMBER_OF_VEC_STMTS.
4202 (vect_slp_analyze_node_operations): Skip ops-only stmts for
4203 the def-type push/pop dance.
4204 (vect_get_constant_vectors): Compute number_of_vectors here.
4205 Use SLP_TREE_SCALAR_OPS and simplify greatly.
4206 (vect_get_slp_vect_defs): Use gimple_get_lhs also for PHIs.
4207 (vect_get_slp_defs): Simplify greatly.
4208 * tree-vect-loop.c (vectorize_fold_left_reduction): Simplify.
4209 (vect_transform_reduction): Likewise.
4210 * tree-vect-stmts.c (vect_get_vec_defs): Simplify.
4211 (vectorizable_call): Likewise.
4212 (vectorizable_operation): Likewise.
4213 (vectorizable_load): Likewise.
4214 (vectorizable_condition): Likewise.
4215 (vectorizable_comparison): Likewise.
4216
4217 2019-10-21 Richard Biener <rguenther@suse.de>
4218
4219 PR tree-optimization/92161
4220 * tree-vect-loop.c (vect_analyze_loop_2): Reset stmts def-type
4221 for reductions.
4222
4223 2019-10-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4224
4225 * config/aarch64/aarch64.md (UNSPEC_RNDR, UNSPEC_RNDRRS): Define.
4226 (aarch64_rndr): New define_insn.
4227 (aarch64_rndrrs): Likewise.
4228 * config/aarch64/aarch64.h (AARCH64_ISA_RNG): Define.
4229 (TARGET_RNG): Likewise.
4230 * config/aarch64/aarch64.c (aarch64_expand_builtin): Use IGNORE
4231 argument.
4232 * config/aarch64/aarch64-protos.h (aarch64_general_expand_builtin):
4233 Add fourth argument in prototype.
4234 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins):
4235 Add AARCH64_BUILTIN_RNG_RNDR, AARCH64_BUILTIN_RNG_RNDRRS.
4236 (aarch64_init_rng_builtins): Define.
4237 (aarch64_general_init_builtins): Call aarch64_init_rng_builtins.
4238 (aarch64_expand_rng_builtin): Define.
4239 (aarch64_general_expand_builtin): Use IGNORE argument, handle
4240 RNG builtins.
4241 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
4242 __ARM_FEATURE_RNG when TARGET_RNG.
4243 * config/aarch64/arm_acle.h (__rndr, __rndrrs): Define.
4244
4245 2019-10-21 Andre Vieira <andre.simoesdiasvieira@arm.com>
4246
4247 * tree-vect-stmts (ensure_base_align): Only change alignment if new
4248 alignment is more restrictive.
4249
4250 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4251
4252 * tree-vectorizer.h (vec_info::vector_size): New member variable.
4253 (vect_update_max_nunits): Update comment.
4254 (current_vector_size): Delete.
4255 * tree-vect-stmts.c (current_vector_size): Likewise.
4256 (get_vectype_for_scalar_type): Use vec_info::vector_size instead
4257 of current_vector_size.
4258 (get_mask_type_for_scalar_type): Likewise.
4259 * tree-vectorizer.c (try_vectorize_loop_1): Likewise.
4260 * tree-vect-loop.c (vect_update_vf_for_slp): Likewise.
4261 (vect_analyze_loop, vect_halve_mask_nunits): Likewise.
4262 (vect_double_mask_nunits, vect_transform_loop): Likewise.
4263 * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise.
4264 (vect_make_slp_decision, vect_slp_bb_region): Likewise.
4265
4266 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4267
4268 * tree-vectorizer.h (vect_double_mask_nunits): Take a vec_info.
4269 * tree-vect-loop.c (vect_double_mask_nunits): Likewise.
4270 * tree-vect-stmts.c (supportable_narrowing_operation): Update call
4271 accordingly.
4272
4273 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4274
4275 * tree-vectorizer.h (vect_halve_mask_nunits): Take a vec_info.
4276 * tree-vect-loop.c (vect_halve_mask_nunits): Likewise.
4277 * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): Update
4278 call accordingly.
4279 * tree-vect-stmts.c (supportable_widening_operation): Likewise.
4280
4281 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4282
4283 * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): Take
4284 a loop_vec_info.
4285 (vect_set_loop_condition_masked): Update call accordingly.
4286
4287 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4288
4289 * tree-vectorizer.h (supportable_narrowing_operation): Take a vec_info.
4290 * tree-vect-stmts.c (supportable_narrowing_operation): Likewise.
4291 (simple_integer_narrowing): Update call accordingly.
4292 (vectorizable_conversion): Likewise.
4293
4294 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4295
4296 * tree-vect-stmts.c (simple_integer_narrowing): Take a vec_info.
4297 (vectorizable_call): Update call accordingly.
4298
4299 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4300
4301 * tree-vectorizer.h (can_duplicate_and_interleave_p): Take a vec_info.
4302 * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise.
4303 (duplicate_and_interleave): Update call accordingly.
4304 * tree-vect-loop.c (vectorizable_reduction): Likewise.
4305
4306 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4307
4308 * tree-vectorizer.h (duplicate_and_interleave): Take a vec_info.
4309 * tree-vect-slp.c (duplicate_and_interleave): Likewise.
4310 (vect_get_constant_vectors): Update call accordingly.
4311 * tree-vect-loop.c (get_initial_defs_for_reduction): Likewise.
4312
4313 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4314
4315 * tree-vectorizer.h (get_vectype_for_scalar_type): Take a vec_info.
4316 * tree-vect-stmts.c (get_vectype_for_scalar_type): Likewise.
4317 (vect_prologue_cost_for_slp_op): Update call accordingly.
4318 (vect_get_vec_def_for_operand, vect_get_gather_scatter_ops)
4319 (vect_get_strided_load_store_ops, vectorizable_simd_clone_call)
4320 (vect_supportable_shift, vect_is_simple_cond, vectorizable_comparison)
4321 (get_mask_type_for_scalar_type): Likewise.
4322 (vect_get_vector_types_for_stmt): Likewise.
4323 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
4324 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
4325 (get_initial_def_for_reduction, build_vect_cond_expr): Likewise.
4326 * tree-vect-patterns.c (vect_supportable_direct_optab_p): Likewise.
4327 (vect_split_statement, vect_convert_input): Likewise.
4328 (vect_recog_widen_op_pattern, vect_recog_pow_pattern): Likewise.
4329 (vect_recog_over_widening_pattern, vect_recog_mulhs_pattern): Likewise.
4330 (vect_recog_average_pattern, vect_recog_cast_forwprop_pattern)
4331 (vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern)
4332 (vect_synth_mult_by_constant, vect_recog_mult_pattern): Likewise.
4333 (vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern)
4334 (check_bool_pattern, adjust_bool_pattern_cast, adjust_bool_pattern)
4335 (search_type_for_mask_1, vect_recog_bool_pattern): Likewise.
4336 (vect_recog_mask_conversion_pattern): Likewise.
4337 (vect_add_conversion_to_pattern): Likewise.
4338 (vect_recog_gather_scatter_pattern): Likewise.
4339 * tree-vect-slp.c (vect_build_slp_tree_2): Likewise.
4340 (vect_analyze_slp_instance, vect_get_constant_vectors): Likewise.
4341
4342 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4343
4344 * tree-vectorizer.h (get_mask_type_for_scalar_type): Take a vec_info.
4345 * tree-vect-stmts.c (get_mask_type_for_scalar_type): Likewise.
4346 (vect_check_load_store_mask): Update call accordingly.
4347 (vect_get_mask_type_for_stmt): Likewise.
4348 * tree-vect-patterns.c (check_bool_pattern): Likewise.
4349 (search_type_for_mask_1, vect_recog_mask_conversion_pattern): Likewise.
4350 (vect_convert_mask_for_vectype): Likewise.
4351
4352 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4353
4354 * tree-vect-patterns.c (vect_supportable_direct_optab_p): Take
4355 a vec_info.
4356 (vect_recog_dot_prod_pattern): Update call accordingly.
4357 (vect_recog_sad_pattern, vect_recog_pow_pattern): Likewise.
4358 (vect_recog_widen_sum_pattern): Likewise.
4359
4360 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4361
4362 * tree-vectorizer.h (vect_supportable_shift): Take a vec_info.
4363 * tree-vect-stmts.c (vect_supportable_shift): Likewise.
4364 * tree-vect-patterns.c (vect_synth_mult_by_constant): Update call
4365 accordingly.
4366
4367 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
4368
4369 * tree-vectorizer.c (get_vec_alignment_for_array_type): Use
4370 get_vectype_for_scalar_type_and_size instead of
4371 get_vectype_for_scalar_type.
4372
4373 2019-10-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
4374
4375 * common.opt (-fcommon): Fix description.
4376
4377 2019-10-20 Jakub Jelinek <jakub@redhat.com>
4378
4379 * config/i386/i386-protos.h (ix86_pre_reload_split): Declare.
4380 * config/i386/i386.c (ix86_pre_reload_split): New function.
4381 * config/i386/i386.md (*fix_trunc<mode>_i387_1, *add<mode>3_eq,
4382 *add<mode>3_ne, *add<mode>3_eq_0, *add<mode>3_ne_0, *add<mode>3_eq,
4383 *add<mode>3_ne, *add<mode>3_eq_1, *add<mode>3_eq_0, *add<mode>3_ne_0,
4384 *anddi3_doubleword, *andndi3_doubleword, *<code>di3_doubleword,
4385 *one_cmpldi2_doubleword, *ashl<dwi>3_doubleword_mask,
4386 *ashl<dwi>3_doubleword_mask_1, *ashl<mode>3_mask, *ashl<mode>3_mask_1,
4387 *<shift_insn><mode>3_mask, *<shift_insn><mode>3_mask_1,
4388 *<shift_insn><dwi>3_doubleword_mask,
4389 *<shift_insn><dwi>3_doubleword_mask_1, *<rotate_insn><mode>3_mask,
4390 *<rotate_insn><mode>3_mask_1, *<btsc><mode>_mask, *<btsc><mode>_mask_1,
4391 *btr<mode>_mask, *btr<mode>_mask_1, *jcc_bt<mode>, *jcc_bt<mode>_1,
4392 *jcc_bt<mode>_mask, *popcounthi2_1, frndintxf2_<rounding>,
4393 *fist<mode>2_<rounding>_1, *<code><mode>3_1, *<code>di3_doubleword):
4394 Use ix86_pre_reload_split instead of can_create_pseudo_p in condition.
4395 * config/i386/sse.md (*sse4_1_<code>v8qiv8hi2<mask_name>_2,
4396 *avx2_<code>v8qiv8si2<mask_name>_2,
4397 *sse4_1_<code>v4qiv4si2<mask_name>_2,
4398 *sse4_1_<code>v4hiv4si2<mask_name>_2,
4399 *avx512f_<code>v8qiv8di2<mask_name>_2,
4400 *avx2_<code>v4qiv4di2<mask_name>_2, *avx2_<code>v4hiv4di2<mask_name>_2,
4401 *sse4_1_<code>v2hiv2di2<mask_name>_2,
4402 *sse4_1_<code>v2siv2di2<mask_name>_2, sse4_2_pcmpestr,
4403 sse4_2_pcmpistr): Likewise.
4404
4405 2019-10-20 Gerald Pfeifer <gerald@pfeifer.com>
4406
4407 * doc/install.texi (Configuration, --enable-objc-gc): hboehm.info
4408 now defaults to https.
4409
4410 2019-10-20 Jan Hubicka <hubicka@ucw.cz>
4411
4412 * tree-ssa-alias.c (nonoverlapping_refs_since_match_p): Do not
4413 skip non-zero array accesses.
4414
4415 2019-10-20 Richard Sandiford <richard.sandiford@arm.com>
4416
4417 * tree-vect-slp.c (vect_slp_analyze_bb_1): Take a bb_vec_info
4418 and return a boolean success value. Move the allocation and
4419 initialization of the bb_vec_info to...
4420 (vect_slp_bb_region): ...here. Update call accordingly.
4421 (vect_slp_bb): Apply PARAM_SLP_MAX_INSNS_IN_BB here rather
4422 than in vect_slp_analyze_bb_1.
4423
4424 2019-10-20 Richard Sandiford <richard.sandiford@arm.com>
4425
4426 * tree-vect-slp.c (vect_slp_analyze_bb_1): Call save_datarefs
4427 when processing the given datarefs for the first time and
4428 check_datarefs subsequently.
4429 (vect_slp_bb_region): New function, split out of...
4430 (vect_slp_bb): ...here. Don't recompute the region bounds and
4431 dataref sets when retrying with a different vector size.
4432
4433 2019-10-19 Jakub Jelinek <jakub@redhat.com>
4434 Uroš Bizjak <ubizjak@gmail.com>
4435
4436 PR target/92140
4437 * config/i386/predicates.md (int_nonimmediate_operand): New special
4438 predicate.
4439 * config/i386/i386.md (*add<mode>3_eq, *add<mode>3_ne,
4440 *add<mode>3_eq_0, *add<mode>3_ne_0, *sub<mode>3_eq, *sub<mode>3_ne,
4441 *sub<mode>3_eq_1, *sub<mode>3_eq_0, *sub<mode>3_ne_0): New
4442 define_insn_and_split patterns.
4443
4444 2019-10-19 Iain Sandoe <iain@sandoe.co.uk>
4445
4446 * config/rs6000/rs6000.md: Delete out--of-date comment about
4447 special-casing integer loads.
4448
4449 2019-10-19 JeanHeyd Meneide <phdofthehouse@gmail.com>
4450
4451 * escaped_string.h (escaped_string): New header.
4452 * tree.c (escaped_string): Remove escaped_string class.
4453
4454 2019-10-18 Martin Sebor <msebor@redhat.com>
4455
4456 PR tree-optimization/92157
4457 * tree-ssa-strlen.c (handle_builtin_string_cmp): Be prepared for
4458 compute_string_length to return a negative result.
4459
4460 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4461
4462 * config/arm/arm.md (negv<SIDI:mode>3): New expansion rule.
4463 (negvsi3, negvdi3): Delete.
4464 (negdi2_compare): Delete.
4465
4466 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4467
4468 * config/arm/arm.md (subvdi4): Decompose calculation into 32-bit
4469 operations.
4470 (subdi3_compare1): Delete pattern.
4471 (subvsi3_borrow): New insn pattern.
4472 (subvsi3_borrow_imm): Likewise.
4473
4474 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4475
4476 * config/arm/arm.md (subv<mode>4): Delete.
4477 (subvdi4): New expander pattern.
4478 (subvsi4): Likewise. Handle some immediate values.
4479 (subvsi3_intmin): New insn pattern.
4480 (subvsi3): Likewise.
4481 (subvsi3_imm1): Likewise.
4482 * config/arm/arm.c (select_cc_mode): Also allow minus for CC_V
4483 idioms.
4484
4485 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4486
4487 * config/arm/arm.md (usubvdi4): Allow registers or integers for
4488 incoming operands. Early split the calculation into SImode
4489 operations.
4490 (usubvsi3_borrow): New insn pattern.
4491 (usubvsi3_borrow_imm): Likewise.
4492
4493 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4494
4495 * config/arm/arm.md (usubv<mode>4): Delete expansion.
4496 (usubvsi4): New pattern. Allow some immediate values for inputs.
4497 (usubvdi4): New pattern.
4498
4499 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4500
4501 * config/arm/arm.c (arm_select_cc_mode): Allow either the first
4502 or second operand of the PLUS inside a DImode equality test to be
4503 sign-extend when selecting CC_Vmode.
4504 * config/arm/arm.md (addvdi4): Early-split the operation into SImode
4505 instructions.
4506 (addsi3_cin_vout_reg, addsi3_cin_vout_imm, addsi3_cin_vout_0): New
4507 expand patterns.
4508 (addsi3_cin_vout_reg_insn, addsi3_cin_vout_imm_insn): New patterns.
4509 (addsi3_cin_vout_0): Likewise.
4510 (adddi3_compareV): Delete.
4511
4512 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4513
4514 * config/arm/arm.md (addsi3_compareV_reg_nosum): New insn.
4515 (addsi3_compareV_imm_nosum): New insn. Also add peephole2 patterns
4516 to transform this back into the summation version when that leads
4517 to smaller code.
4518
4519 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4520
4521 * config/arm/arm.md (addv<mode>4): Delete.
4522 (addvsi4): New pattern. Handle immediate values that the architecture
4523 supports.
4524 (addvdi4): New pattern.
4525 (addsi3_compareV): Rename to ...
4526 (addsi3_compareV_reg): ... this. Add constraints for thumb2 variants
4527 and use COMPARE rather than NE.
4528 (addsi3_compareV_imm): New pattern.
4529 * config/arm/arm.c (arm_select_cc_mode): Return CC_Vmode for
4530 a signed-overflow check.
4531
4532 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4533
4534 * config/arm/arm-modes.def (CC_ADC): New CC mode.
4535 * config/arm/arm.c (arm_select_cc_mode): Detect selection of
4536 CC_ADCmode.
4537 (maybe_get_arm_condition_code): Handle CC_ADCmode.
4538 * config/arm/arm.md (uaddvdi4): Early expansion of unsigned addition
4539 with overflow.
4540 (addsi3_cin_cout_reg, addsi3_cin_cout_imm, addsi3_cin_cout_0): New
4541 expand patterns.
4542 (addsi3_cin_cout_reg_insn, addsi3_cin_cout_0_insn): New insn patterns
4543 (addsi3_cin_cout_imm_insn): Likewise.
4544 (adddi3_compareC): Delete insn.
4545 * config/arm/predicates.md (arm_carry_operation): Handle CC_ADCmode.
4546
4547 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4548
4549 * config/arm/arm.md (adddi3): Call gen_addsi3_compare_op1.
4550 * (uaddv<mode>4): Delete expansion pattern.
4551 (uaddvsi4): New pattern.
4552 (uaddvdi4): Likewise.
4553 (addsi3_compareC): Delete pattern, change callers to use
4554 addsi3_compare_op1.
4555 (addsi3_compare_op1): No-longer anonymous. Clean up constraints to
4556 reduce the number of alternatives and re-work type attribute handling.
4557 (addsi3_compare_op2): Clean up constraints to reduce the number of
4558 alternatives and re-work type attribute handling.
4559 (compare_addsi2_op0): Likewise.
4560 (compare_addsi2_op1): Likewise.
4561
4562 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4563
4564 * config/arm/arm-modes.def (CC_NCV, CC_CZ): Delete CC modes.
4565 * config/arm/arm.c (arm_select_cc_mode): Remove old selection code
4566 for DImode operands.
4567 (arm_gen_dicompare_reg): Remove unreachable expansion code.
4568 (maybe_get_arm_condition_code): Remove support for CC_CZmode and
4569 CC_NCVmode.
4570 * config/arm/arm.md (arm_cmpdi_insn): Delete.
4571 (arm_cmpdi_unsigned): Delete.
4572
4573 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4574
4575 * config/arm/arm.c (arm_const_double_prefer_rsbs_rsc): New function.
4576 (arm_canonicalize_comparison): For GT/LE/GTU/GEU, use the constant
4577 unchanged only if that will be cheaper.
4578 (arm_select_cc_mode): Recognize a swapped comparison that will
4579 be regenerated using RSBS or RSCS. Relax restriction on selecting
4580 CC_RSBmode.
4581 (arm_gen_dicompare_reg): Handle LE/GT/LEU/GEU comparisons against
4582 a constant.
4583 (arm_gen_compare_reg): Handle compare (CONST, X) when the mode
4584 is CC_RSBmode.
4585 (maybe_get_arm_condition_code): CC_RSBmode now returns the same codes
4586 as CCmode.
4587 * config/arm/arm.md (rsb_imm_compare_scratch): New pattern.
4588 (rscsi3_<CC_EXTEND>out_scratch): New pattern.
4589
4590 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4591
4592 * config/arm/arm-modes.def (CC_NV, CC_B): New CC modes.
4593 * config/arm/arm.c (arm_select_cc_mode): Recognize constructs that
4594 need these modes.
4595 (arm_gen_dicompare_reg): New code to early expand the sub-operations
4596 of EQ, NE, LT, GE, LTU and GEU.
4597 * config/arm/iterators.md (CC_EXTEND): New code attribute.
4598 * config/arm/predicates.md (arm_adcimm_operand): New predicate..
4599 * config/arm/arm.md (cmpsi3_carryin_<CC_EXTEND>out): New pattern.
4600 (cmpsi3_imm_carryin_<CC_EXTEND>out): Likewise.
4601 (cmpsi3_0_carryin_<CC_EXTEND>out): Likewise.
4602
4603 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4604
4605 * config/arm/arm.md (cbranchdi4): Accept reg_or_int_operand for
4606 operand 2.
4607 (cstoredi4): Similarly, but for operand 3.
4608 * config/arm/arm.c (arm_canoncialize_comparison): Allow
4609 canonicalization of unsigned compares with a constant on Arm.
4610 Prefer using const+1 and adjusting the comparison over swapping the
4611 operands whenever the original constant was not valid.
4612 (arm_gen_dicompare_reg): If Y is not a valid operand, force it to a
4613 register here.
4614 (arm_validize_comparison): Do not force invalid DImode operands to
4615 registers here.
4616
4617 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4618
4619 * config/arm/arm.c (arm_select_cc_mode): For DImode equality tests
4620 return CC_Zmode if comparing against a constant where one word is
4621 zero.
4622 (arm_gen_compare_reg): Split DImode handling to ...
4623 (arm_gen_dicompare_reg): ... here. Handle equality comparisons
4624 against simple constants.
4625 * config/arm/arm.md (arm_cmpdi_zero): Delete pattern.
4626
4627 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4628
4629 * config/arm/arm.md (subsi3_carryin_shift_alt): New pattern.
4630 (rsbsi3_carryin_shift_alt): Likewise.
4631
4632 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4633
4634 * config/arm/arm.md (negscc_borrow): New pattern.
4635 (mov_negscc): Don't split if the insn would match negscc_borrow.
4636 * config/arm/thumb2.md (thumb2_mov_negscc): Likewise.
4637 (thumb2_mov_negscc_strict_it): Likewise.
4638
4639 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4640
4641 * config/arm/arm.c (arm_insn_cost): New function.
4642 (TARGET_INSN_COST): Override default definition.
4643
4644 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4645
4646 * config/arm/arm.c (arm_rtx_costs_internal, case MINUS): Handle
4647 borrow operations.
4648
4649 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4650
4651 * config/arm/arm.c (strip_carry_operation): New function.
4652 (arm_rtx_costs_internal, case PLUS): Handle addtion with carry-in
4653 for SImode.
4654
4655 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4656
4657 * config/arm/predicates.md (arm_carry_operation): New special
4658 predicate.
4659 * config/arm/iterators.md (LTUGEU): Delete iterator.
4660 (cnb): Delete code attribute.
4661 (optab): Delete ltu and geu elements.
4662 * config/arm/arm.md (addsi3_carryin): Renamed from
4663 addsi3_carryin_<optab>. Remove iterator and use arm_carry_operand.
4664 (add0si3_carryin): Similarly, but from add0si3_carryin_<optab>.
4665 (addsi3_carryin_alt2): Similarly, but from addsi3_carryin_alt2_<optab>.
4666 (addsi3_carryin_clobercc): Similarly.
4667 (addsi3_carryin_shift): Similarly. Do not allow register shifts in
4668 Thumb2 state.
4669
4670 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4671
4672 * config/arm/arm.md (arm_subdi3): Delete insn.
4673 (zextendsidi_negsi, negdi_extendsidi): Delete insn_and_split.
4674
4675 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4676
4677 * config/arm/arm-modes.def (CC_RSB): New CC mode.
4678 * config/arm/predicates.md (arm_borrow_operation): Handle CC_RSBmode.
4679 * config/arm/arm.c (arm_select_cc_mode): Detect when we should
4680 return CC_RSBmode.
4681 (maybe_get_arm_condition_code): Handle CC_RSBmode.
4682 * config/arm/arm.md (subsi3_carryin): Make this pattern available to
4683 expand.
4684 (subdi3): Rewrite to early-expand the sub-operations.
4685 (rsb_im_compare): New pattern.
4686 (negdi2): Delete.
4687 (negdi2_insn): Delete.
4688 (arm_negsi2): Correct type attribute to alu_imm.
4689 (negsi2_0compare): New insn pattern.
4690 (negsi2_carryin): New insn pattern.
4691
4692 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4693
4694 * config/arm/arm.md (addsi3_carryin_alt2): Use arm_not_operand for
4695 operand 2.
4696
4697 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4698
4699 * config/arm/arm.md (addsi3_carryin_shift_<optab>): Reorder operands
4700 to match canonical form.
4701
4702 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4703
4704 * config/arm/arm.md (zero_extend<mode>di2): Convert to define_expand.
4705 (extend<mode>di2): Likewise.
4706
4707 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4708
4709 * config/arm/arm-protos.h (arm_decompose_di_binop): New prototype.
4710 * config/arm/arm.c (arm_decompose_di_binop): New function.
4711 * config/arm/arm.md (adddi3): Also accept any const_int for op2.
4712 If not generating Thumb-1 code, decompose the operation into 32-bit
4713 pieces.
4714 * add0si_carryin_<optab>: New pattern.
4715
4716 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
4717
4718 * arm.md (adddi3): Only accept register operands.
4719 (arm_adddi3): Convert to simple insn with no split. Do not accept
4720 constants.
4721 (adddi_sesidi_di): Delete patern.
4722 (adddi_zesidi_di): Likewise.
4723 (uaddv<mode>4): Use LTU as condition for branch.
4724 (adddi3_compareV): Convert to simple insn with no split.
4725 (addsi3_compareV_upper): Delete pattern.
4726 (adddi3_compareC): Convert to simple insn with no split. Correct
4727 flags setting expression.
4728 (addsi3_compareC_upper): Delete pattern.
4729 (addsi3_compareC): Correct flags setting expression.
4730 (subdi3_compare1): Convert to simple insn with no split.
4731 (subsi3_carryin_compare): Delete pattern.
4732 (arm_subdi3): Convert to simple insn with no split.
4733 (subdi_zesidi): Delete pattern.
4734 (subdi_di_sesidi): Delete pattern.
4735 (subdi_zesidi_di): Delete pattern.
4736 (subdi_sesidi_di): Delete pattern.
4737 (subdi_zesidi_zesidi): Delete pattern.
4738 (negvdi3): Use s_register_operand.
4739 (negdi2_compare): Convert to simple insn with no split.
4740 (negdi2_insn): Likewise.
4741 (negsi2_carryin_compare): Delete pattern.
4742 (negdi_zero_extendsidi): Delete pattern.
4743 (arm_cmpdi_insn): Convert to simple insn with no split.
4744 (negdi2): Don't call gen_negdi2_neon.
4745 * config/arm/neon.md (adddi3_neon): Delete pattern.
4746 (subdi3_neon): Delete pattern.
4747 (negdi2_neon): Delete pattern.
4748 (splits for negdi2_neon): Delete splits.
4749
4750 2019-10-18 Jakub Jelinek <jakub@redhat.com>
4751
4752 PR middle-end/92153
4753 * ggc-page.c (release_pages): Read g->alloc_size before free rather
4754 than after it.
4755
4756 2019-10-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
4757
4758 * config/arm/t-multilib: Add rule to regenerate mutlilib header file
4759 with any change to t-multilib, t-aprofile and t-rmprofile. Also add
4760 new multilib variants and new mappings.
4761
4762 2019-10-18 Georg-Johann Lay <avr@gjlay.de>
4763
4764 PR target/86040
4765 * config/avr/avr.c (avr_out_lpm): Do not shortcut-return.
4766
4767 2019-10-18 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4768 Richard Sandiford <richard.sandiford@arm.com>
4769
4770 PR target/86753
4771 * tree-vectorizer.h (scalar_cond_masked_key): New struct,
4772 and define hashmap traits for it.
4773 (loop_vec_info::scalar_cond_masked_set): New member.
4774 (vect_record_loop_mask): Adjust prototype.
4775 * tree-vectorizer.c (scalar_cond_masked_key::get_cond_ops_from_tree):
4776 Implement method.
4777 * tree-vect-loop.c (vectorizable_reduction): Pass NULL as last arg to
4778 vect_record_loop_mask.
4779 (vectorizable_live_operation): Likewise.
4780 (vect_record_loop_mask): New param scalar_mask. Add entry
4781 cond, loop_mask to scalar_cond_masked_set if scalar_mask is non NULL.
4782 * tree-vect-stmts.c (check_load_store_masking): New param scalar_mask.
4783 Pass it as last arg to vect_record_loop_mask.
4784 (vectorizable_call): Pass scalar_mask as last arg to
4785 vect_record_loop_mask.
4786 (vectorizable_store): Likewise.
4787 (vectorizable_load): Likewise.
4788 (vectorizable_condition): Check if another part of vectorized code
4789 applies loop_mask to condition or to it's inverse, and if yes,
4790 apply loop_mask to result of vector comparison.
4791
4792 2019-10-17 John David Anglin <danglin@gcc.gnu.org>
4793
4794 * config/pa/pa.c (pa_output_indirect_call): Fix typos in last change.
4795
4796 2019-10-18 Jakub Jelinek <jakub@redhat.com>
4797
4798 PR tree-optimization/92056
4799 * tree-ssa-strlen.c (determine_min_objsize): Call init_object_sizes
4800 before calling compute_builtin_object_size.
4801
4802 2019-10-17 Iain Sandoe <iain@sandoe.co.uk>
4803
4804 PR target/65342
4805 * config/rs6000/darwin.md (movdi_low, movsi_low_st): Delete.
4806 (movdi_low_st): Delete.
4807 * config/rs6000/rs6000.c
4808 (darwin_rs6000_legitimate_lo_sum_const_p): New.
4809 (mem_operand_gpr): Validate Mach-O LO_SUM cases separately.
4810 * config/rs6000/rs6000.md (movsi_low): Delete.
4811
4812 2019-10-17 Jason Merrill <jason@redhat.com>
4813
4814 * gimplify.h (get_initialized_tmp_var): Add default argument to
4815 post_p.
4816 * gimplify.c (gimplify_self_mod_expr, gimplify_omp_atomic): Remove
4817 NULL post_p argument.
4818 * targhooks (std_gimplify_va_arg_expr): Likewise.
4819
4820 2019-10-17 Richard Biener <rguenther@suse.de>
4821
4822 * tree-vectorizer.h (_stmt_vec_info::cond_reduc_code): Remove.
4823 (STMT_VINFO_VEC_COND_REDUC_CODE): Likewise.
4824 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Do not
4825 initialize STMT_VINFO_VEC_COND_REDUC_CODE.
4826 * tree-vect-loop.c (vect_is_simple_reduction): Set
4827 STMT_VINFO_REDUC_CODE.
4828 (vectorizable_reduction): Remove dead and redundant code, use
4829 STMT_VINFO_REDUC_CODE instead of STMT_VINFO_VEC_COND_REDUC_CODE.
4830
4831 2019-10-17 Georg-Johann Lay <avr@gjlay.de>
4832
4833 Fix breakage introduced by r276985.
4834
4835 * config/avr/avr.c (avr_option_override): Remove set of
4836 PARAM_ALLOW_STORE_DATA_RACES.
4837 * common/config/avr/avr-common.c (avr_option_optimization_table)
4838 [OPT_LEVELS_ALL]: Turn on -fallow-store-data-races.
4839
4840 2019-10-17 H.J. Lu <hongjiu.lu@intel.com>
4841
4842 * config/i386/i386.h (processor_costs): Add clear_ratio.
4843 (CLEAR_RATIO): Remove MIN and use ix86_cost->clear_ratio.
4844 * config/i386/x86-tune-costs.h: Set clear_ratio to the minimum
4845 of 6 and move_ratio in all cost models.
4846
4847 2019-10-17 Richard Biener <rguenther@suse.de>
4848
4849 * tree-vect-loop.c (check_reduction_path): Compute reduction
4850 operation here.
4851 (vect_is_simple_reduction): Remove special-case of single-stmt
4852 reduction path detection.
4853
4854 2019-10-17 Richard Earnshaw <rearnsha@arm.com>
4855
4856 * config/arm/arm-cpus.in (marvel-pj4): Add +fp to the architecture.
4857
4858 2019-10-17 Yuliang Wang <yuliang.wang@arm.com>
4859
4860 * config/aarch64/aarch64-sve2.md (aarch64_sve2_eor3<mode>)
4861 (aarch64_sve2_nor<mode>, aarch64_sve2_nand<mode>)
4862 (aarch64_sve2_bsl<mode>, aarch64_sve2_nbsl<mode>)
4863 (aarch64_sve2_bsl1n<mode>, aarch64_sve2_bsl2n<mode>):
4864 New combine patterns.
4865 * config/aarch64/iterators.md (BSL_DUP): New int iterator for the
4866 above.
4867 (bsl_1st, bsl_2nd, bsl_dup, bsl_mov): Attributes for the above.
4868
4869 2019-10-17 Aldy Hernandez <aldyh@redhat.com>
4870
4871 * tree-vrp.c (value_range_base::dump): Display +INF for both
4872 pointers and integers when appropriate.
4873
4874 2019-10-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
4875
4876 * tree-vect-loop.c (vect_analyze_loop_2): Use same condition to decide
4877 when to use versioning threshold.
4878
4879 2019-10-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
4880
4881 * tree-vect-loop.c (determine_peel_for_niter): New function contained
4882 outlined code from ...
4883 (vect_analyze_loop_2): ... here.
4884
4885 2019-10-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
4886
4887 * tree-vect-loop.c (vect_transform_loop): Move code from here...
4888 * tree-vect-loop-manip.c (vect_loop_versioning): ... to here.
4889 * tree-vectorizer.h (vect_loop_versioning): Remove unused parameters.
4890
4891 2019-10-17 Richard Biener <rguenther@suse.de>
4892
4893 * tree-vect-loop.c (needs_fold_left_reduction_p): Export.
4894 (vect_is_simple_reduction): Move all validity checks ...
4895 (vectorizable_reduction): ... here. Compute whether we
4896 need a fold-left reduction here.
4897 * tree-vect-patterns.c (vect_reassociating_reduction_p): Merge
4898 both overloads, check needs_fold_left_reduction_p directly.
4899 * tree-vectorizer.h (needs_fold_left_reduction_p): Declare.
4900
4901 2019-10-17 Richard Biener <rguenther@suse.de>
4902
4903 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Fix
4904 TARGET_MEM_REF creation.
4905
4906 2019-10-17 Richard Biener <rguenther@suse.de>
4907
4908 PR tree-optimization/92129
4909 * tree-vect-loop.c (vectorizable_reduction): Also fail
4910 on GIMPLE_SINGLE_RHS.
4911
4912 2019-10-17 Jakub Jelinek <jakub@redhat.com>
4913
4914 PR tree-optimization/92056
4915 * tree-object-size.c (cond_expr_object_size): Return early if then_
4916 processing resulted in unknown size.
4917
4918 PR tree-optimization/92115
4919 * tree-ssa-ifcombine.c (ifcombine_ifandif): Force condition into
4920 temporary if it could trap.
4921
4922 2019-10-17 Richard Biener <rguenther@suse.de>
4923
4924 PR debug/91887
4925 * dwarf2out.c (gen_formal_parameter_die): Also try to match
4926 context_die against a DW_TAG_GNU_formal_parameter_pack parent.
4927
4928 2019-10-16 Jakub Jelinek <jakub@redhat.com>
4929
4930 * tree-ssa-strlen.c (maybe_invalidate): Use
4931 HOST_WIDE_INT_PRINT_UNSIGNED instead of "%zu".
4932
4933 2019-10-16 Andrew Burgess <andrew.burgess@embecosm.com>
4934 Jim Wilson <jimw@sifive.com>
4935
4936 * config/riscv/riscv.h (REG_CLASS_CONTENTS): Add argument passing
4937 regs to SIBCALL_REGS.
4938 * config/riscv/riscv.c (riscv_regno_to_class): Change argument
4939 passing regs to SIBCALL_REGS.
4940
4941 2019-10-16 Martin Sebor <msebor@redhat.com>
4942
4943 PR tree-optimization/83821
4944 * tree-ssa-strlen.c (maybe_invalidate): Add argument. Consider
4945 the length of a string when available.
4946 (handle_builtin_memset) Add argument.
4947 (handle_store, strlen_check_and_optimize_call): Same.
4948 (check_and_optimize_stmt): Same. Pass it to callees.
4949
4950 2019-10-16 Martin Sebor <msebor@redhat.com>
4951
4952 PR tree-optimization/91996
4953 * tree-ssa-strlen.c (maybe_warn_pointless_strcmp): Improve location
4954 information.
4955 (compare_nonzero_chars): Add an overload.
4956 (count_nonzero_bytes): Add an argument. Call overload above.
4957 Handle non-constant lengths in some range.
4958 (handle_store): Add an argument.
4959 (check_and_optimize_stmt): Pass an argument to handle_store.
4960
4961 2019-10-16 Richard Earnshaw <rearnsha@arm.com>
4962
4963 * config/arm/arm.c (neon_valid_immediate): Clear bytes before use.
4964
4965 2019-10-16 Mihailo Stojanovic <mistojanovic@wavecomp.com>
4966
4967 * config/mips/mips.c (mips_expand_builtin_insn): Force the
4968 operands which correspond to the same input-output register to
4969 have the same pseudo assigned to them.
4970
4971 2019-10-16 Ilya Leoshkevich <iii@linux.ibm.com>
4972
4973 * cfgrtl.c (find_partition_fixes): Remove bbs_in_cold_partition.
4974
4975 2019-10-16 Wilco Dijkstra <wdijkstr@arm.com>
4976
4977 * config/aarch64/aarch64.c (aarch64_classify_symbol):
4978 Apply reasonable limit to symbol offsets.
4979
4980 2019-10-16 Richard Biener <rguenther@suse.de>
4981
4982 * tree-vect-loop.c (vect_valid_reduction_input_p): Remove.
4983 (vect_is_simple_reduction): Delay checking to
4984 vectorizable_reduction and relax the checking.
4985 (vectorizable_reduction): Check we have a simple use. Check
4986 for bogus condition reductions.
4987 * tree-vect-stmts.c (vect_transform_stmt): Make sure we
4988 are looking at the last stmt in a pattern sequence when
4989 filling in backedge PHI values.
4990
4991 2019-10-16 Peter Bergner <bergner@linux.ibm.com>
4992 Jiufu Guo <guojiufu@linux.ibm.com>
4993
4994 PR target/70010
4995 * config/rs6000/rs6000.c (rs6000_can_inline_p): Prohibit inlining if
4996 the callee explicitly disables some isa_flags the caller is using.
4997
4998 2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
4999
5000 * function-abi.cc (expr_callee_abi): Assert for POINTER_TYPE_P.
5001
5002 2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
5003
5004 * genmodes.c (mode_data::order): New field.
5005 (blank_mode): Update accordingly.
5006 (VECTOR_MODES_WITH_PREFIX): Add an order parameter.
5007 (make_vector_modes): Likewise.
5008 (VECTOR_MODES): Update use accordingly.
5009 (cmp_modes): Sort by the new order field ahead of sorting by size.
5010 * config/aarch64/aarch64-modes.def (VNx2QI, VN2xHI, VNx2SI)
5011 (VNx4QI, VNx4HI, VNx8QI): New partial vector modes.
5012 * config/aarch64/aarch64.c (VEC_PARTIAL): New flag value.
5013 (aarch64_classify_vector_mode): Handle the new partial modes.
5014 (aarch64_vl_bytes): New function.
5015 (aarch64_hard_regno_nregs): Use it instead of BYTES_PER_SVE_VECTOR
5016 when counting the number of registers in an SVE mode.
5017 (aarch64_class_max_nregs): Likewise.
5018 (aarch64_hard_regno_mode_ok): Don't allow partial vectors
5019 in registers yet.
5020 (aarch64_classify_address): Treat partial vectors analogously
5021 to full vectors.
5022 (aarch64_print_address_internal): Consolidate the printing of
5023 MUL VL addresses, using aarch64_vl_bytes as the number of
5024 bytes represented by "VL".
5025 (aarch64_vector_mode_supported_p): Reject partial vector modes.
5026
5027 2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
5028
5029 * config/aarch64/aarch64.c (aarch64_layout_frame): Use is_constant
5030 rather than known_lt when choosing frame layouts.
5031
5032 2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
5033
5034 * config/aarch64/aarch64.c (aarch64_layout_frame): Assert
5035 that all the adjustments add up to the full frame size.
5036 Use crtl->outgoing_args_size directly as the final adjustment
5037 where appropriate.
5038
5039 2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
5040
5041 * config/aarch64/aarch64.c (aarch64_layout_frame): Use a local
5042 "frame" reference instead of always referring directly to
5043 "cfun->machine->frame".
5044
5045 2019-10-16 Richard Biener <rguenther@suse.de>
5046
5047 PR tree-optimization/92119
5048 * tree-vect-patterns.c (vect_recog_rotate_pattern): Guard
5049 against missing bswap lhs.
5050
5051 2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
5052
5053 PR middle-end/92033
5054 * poly-int.h (constant_lower_bound_with_limit): New function.
5055 (constant_upper_bound_with_limit): Likewise.
5056 * doc/poly-int.texi: Document them.
5057 * tree-vrp.c (value_range_base::set): Convert POLY_INT_CST bounds
5058 into the worst-case INTEGER_CST bounds.
5059
5060 2019-10-16 Feng Xue <fxue@os.amperecomputing.com>
5061
5062 PR ipa/91088
5063 * doc/invoke.texi (ipa-max-param-expr-ops): Document new option.
5064 * params.def (PARAM_IPA_MAX_PARAM_EXPR_OPS): New.
5065 * ipa-predicat.h (struct expr_eval_op): New struct.
5066 (expr_eval_ops): New typedef.
5067 (struct condition): Add type and param_ops fields, remove size field.
5068 (add_condition): Replace size parameter with type parameter, add
5069 param_ops parameter.
5070 * ipa-predicat.c (expr_eval_ops_equal_p): New function.
5071 (predicate::add_clause): Add comparisons on type and param_ops.
5072 (dump_condition): Add debug dump for param_ops.
5073 (remap_after_inlining): Adjust call arguments to add_condition.
5074 (add_condition): Replace size parameter with type parameter, add
5075 param_ops parameter. Unshare constant value used in conditions.
5076 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Fold
5077 parameter expressions using param_ops.
5078 (decompose_param_expr): New function.
5079 (set_cond_stmt_execution_predicate): Use call to decompose_param_expr
5080 to replace call to unmodified_parm_or_parm_agg_item.
5081 (set_switch_stmt_execution_predicate): Likewise.
5082 (will_be_nonconstant_expr_predicate): Likewise. Replace usage of size
5083 with type.
5084 (inline_read_section): Read param_ops from summary stream.
5085 (ipa_fn_summary_write): Write param_ops to summary stream.
5086
5087 2019-10-15 Segher Boessenkool <segher@kernel.crashing.org>
5088
5089 PR rtl-optimization/92107
5090 * genattrtab.c (write_attr_value) <do_operator>: Parenthesize the
5091 expression written.
5092
5093 2019-10-15 Iain Sandoe <iain@sandoe.co.uk>
5094
5095 * config/darwin.c: Update description of fix and continue.
5096
5097 2019-10-15 Iain Sandoe <iain@sandoe.co.uk>
5098
5099 * config/darwin.c (darwin_binds_local_p): Update to call
5100 default_binds_local_p_3 () directly. amend comments.
5101
5102 2019-10-15 Richard Biener <rguenther@suse.de>
5103
5104 * lto-streamer-out.c (lto_variably_modified_type_p): New.
5105 (tree_is_indexable): Use it.
5106 * tree-streamer-out.c (pack_ts_type_common_value_fields):
5107 Stream variably_modified_type_p as TYPE_LANG_FLAG_0.
5108 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
5109
5110 2019-10-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
5111
5112 * config/msp430/msp430.md (zero_extendqipsi2): New.
5113 (zero_extendqisi2): Optimize case where src register and base dst
5114 register are the same.
5115 (zero_extendhipsi2): Don't use 430X insn for rYs->r case.
5116 (zero_extendpsisi2): Optimize r->m case.
5117 Add unnamed insn patterns to catch insns combine searches for when
5118 optimizing pointer manipulation.
5119
5120 2019-10-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
5121
5122 * config/msp430/msp430.md: Group zero_extend* insns together.
5123
5124 2019-10-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
5125
5126 * config/msp430/constraints.md: Allow post_inc operand for "Ya"
5127 constraint.
5128 * config/msp430/msp430.c (msp430_legitimate_address_p): Handle
5129 POST_INC.
5130 (msp430_subreg): Likewise.
5131 (msp430_split_addsi): Likewise.
5132 (msp430_print_operand_addr): Likewise.
5133 * config/msp430/msp430.h (HAVE_POST_INCREMENT): Define.
5134 (USE_STORE_POST_INCREMENT): Define.
5135 * config/msp430/msp430.md: Use the msp430_general_dst_operand or
5136 msp430_general_dst_nonv_operand predicates for the lvalues of insns.
5137 * config/msp430/predicates.md (msp430_nonpostinc_operand): New.
5138 (msp430_general_dst_operand): New.
5139 (msp430_general_dst_nonv_operand): New.
5140 (msp430_nonsubreg_operand): Remove.
5141 (msp430_nonsubreg_dst_operand): New.
5142 (msp430_nonsubreg_or_imm_operand): Allow reg or mem operands in place
5143 of defunct msp430_nonsubreg_operand.
5144 (msp430_nonsubregnonpostinc_or_imm_operand): New.
5145
5146 2019-10-15 Richard Biener <rguenther@suse.de>
5147
5148 PR tree-optimization/91929
5149 * tree-ssa-pre.c (pre_expr_d::loc): New member.
5150 (get_or_alloc_expr_for_name): Initialize it.
5151 (get_or_alloc_expr_for_constant): Likewise.
5152 (phi_translate_1): Copy it.
5153 (create_expression_by_pieces): Use the original location
5154 of the expression for the inserted stmt.
5155 (compute_avail): Record the location of the stmt for the
5156 expressions created.
5157
5158 2019-10-15 Richard Sandiford <richard.sandiford@arm.com>
5159
5160 * tree-ssa-strlen.c (count_nonzero_bytes): Check tree_fits_uhwi_p
5161 before using tree_to_uhwi.
5162
5163 2019-10-15 Ilya Leoshkevich <iii@linux.ibm.com>
5164
5165 * config/s390/s390.md: Run %a0:DI splitters only after reload.
5166
5167 2019-10-15 Richard Biener <rguenther@suse.de>
5168
5169 PR tree-optimization/92094
5170 * tree-vect-loop.c (vectorizable_reduction): For nested cycles
5171 do not adjust the reduction definition def type.
5172 * tree-vect-stmts.c (vect_transform_stmt): Verify the scalar stmt
5173 defines the latch argument of the PHI.
5174
5175 2019-10-15 Hongyu Wang <hongtao.wang@intel.com>
5176
5177 PR target/92035
5178 * config/i386/avx512fintrin.h (_mm_mask_roundscale_ss,
5179 _mm_maskz_roundscale_ss, _mm_maskz_roundscale_round_ss,
5180 _mm_maskz_roundscale_round_ss, _mm_mask_roundscale_sd,
5181 _mm_maskz_roundscale_sd, _mm_mask_roundscale_round_sd,
5182 _mm_maskz_roundscale_round_sd): New intrinsics.
5183 (_mm_roundscale_ss, _mm_roundscale_round_ss): Use
5184 __builtin_ia32_rndscales?_mask_round builtins instead of
5185 __builtin_ia32_rndscales?_round.
5186 * config/i386/i386-builtin.def (__builtin_ia32_rndscaless_round,
5187 __builtin_ia32_rndscalesd_round): Remove.
5188 (__builtin_ia32_rndscaless_mask_round,
5189 __builtin_ia32_rndscalesd_mask_round): New intrinsics.
5190 * config/i386/sse.md
5191 (avx512f_rndscale<mode><round_saeonly_name>): Renamed to ...
5192 (avx512f_rndscale<mode><mask_scalar_name><round_saeonly_scalar_name>):
5193 ... this, adjust and add subst atrributes to make it maskable.
5194
5195 2019-10-15 Richard Biener <rguenther@suse.de>
5196
5197 PR middle-end/92046
5198 * common.opt (fallow-store-data-races): New.
5199 * params.def (PARAM_ALLOW_STORE_DATA_RACES): Remove.
5200 * params.h (ALLOW_STORE_DATA_RACES): Likewise.
5201 * doc/invoke.texi (fallow-store-data-races): Document.
5202 (--param allow-store-data-races): Remove docs.
5203 * opts.c (default_options_table): Enable -fallow-store-data-races
5204 at -Ofast.
5205 (default_options_optimization): Do not enable --param
5206 allow-store-data-races at -Ofast.
5207 * tree-if-conv.c (ifcvt_memrefs_wont_trap): Use flag_store_data_races
5208 instead of PARAM_ALLOW_STORE_DATA_RACES.
5209 * tree-ssa-loop-im.c (execute_sm): Likewise.
5210
5211 2019-10-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5212
5213 PR tree-optimization/92085
5214 * tree-if-conv.c (ifcvt_local_dce): Call gsi_next in else clause,
5215 instead of calling it unconditionally after
5216 delete_dead_or_redundant_assignment and fix indentation.
5217
5218 2019-10-15 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
5219
5220 * config/arm/vfp.md (fma<SDF:mode>4): Enable DF only when
5221 TARGET_VFP_DOUBLE.
5222 (*fmsub<SDF:mode>4): Likewise.
5223 *fnmsub<SDF:mode>4): Likewise.
5224 (*fnmadd<SDF:mode>4): Likewise.
5225
5226 2019-10-14 Joel Hutton <Joel.Hutton@arm.com>
5227
5228 * doc/tree-ssa.texi: Update renamed macro name.
5229
5230 2019-10-14 Mihailo Stojanovic <mistojanovic@wavecomp.com>
5231
5232 * config/mips/mips.c (mips_cannot_force_const_mem): Reject
5233 vector constants.
5234
5235 2019-10-14 Iain Sandoe <iain@sandoe.co.uk>
5236
5237 * config/darwin.c: Use unsigned ints for the picbase label
5238 counters, initialise the vars explicitly.
5239 (update_pic_label_number_if_needed): Move a variable declaration
5240 to where it's needed.
5241 (machopic_output_function_base_name): Use a more strict checking
5242 assert, and and unsigned int for the picbase label counter.
5243 (machopic_get_function_picbase): Likewise.
5244
5245 2019-10-14 Richard Biener <rguenther@suse.de>
5246
5247 PR middle-end/92046
5248 * dse.c (scan_insn): Use param max_active_local_stores.
5249 (dse_step1): Get PARAM_MAX_DSE_ACTIVE_LOCAL_STORES and adjust
5250 based on optimization level.
5251 * loop-invariant.c (move_loop_invariants): Adjust
5252 LOOP_INVARIANT_MAX_BBS_IN_LOOP based on optimization level.
5253 * opts.c (default_options_optimization): Do not adjust
5254 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES and
5255 LOOP_INVARIANT_MAX_BBS_IN_LOOP here.
5256
5257 2019-10-14 Wilco Dijkstra <wdijkstr@arm.com>
5258
5259 * config/arm/arm.c (arm_legitimize_address): Remove Thumb-2 bailout.
5260
5261 2019-10-14 Wilco Dijkstra <wdijkstr@arm.com>
5262
5263 * config/arm/arm.c (arm_option_override): Don't override sched
5264 pressure algorithm.
5265
5266 2019-10-14 Richard Biener <rguenther@suse.de>
5267
5268 PR tree-optimization/92069
5269 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): For nested
5270 cycles do not set vect_nested_cycle on the latch definition.
5271
5272 2019-10-14 Richard Sandiford <richard.sandiford@arm.com>
5273
5274 * function-abi.h (expr_callee_abi): Declare.
5275 * function-abi.cc (expr_callee_abi): New function.
5276
5277 2019-10-14 Aldy Hernandez <aldyh@redhat.com>
5278
5279 * tree-vrp.c (value_range_base::set): Normalize unsigned ~[0,0]
5280 into [1,MAX].
5281 * tree-vrp.h (value_range_base::nonzero_p): Adjust for unsigned
5282 non-zero being represented as [1,MAX].
5283
5284 2019-10-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
5285
5286 * tree-sra.c (dump_access): Add missing braces.
5287
5288 2019-10-13 Iain Sandoe <iain@sandoe.co.uk>
5289
5290 * config/darwin.c (machopic_indirection_name): Rework the
5291 function to emit linker-visible symbols only for indirections
5292 in the data section. Clean up the code and update comments.
5293
5294 2019-10-13 Iain Sandoe <iain@sandoe.co.uk>
5295
5296 * config/darwin.c (machopic_indirect_data_reference): Remove
5297 redundant code.
5298
5299 2019-10-13 Nathan Sidwell <nathan@acm.org>
5300
5301 * gengtype-lex.l (CXX_KEYWORD): Add 'mutable'.
5302
5303 2019-10-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5304
5305 * doc/sourcebuild.texi (Test Directives, Add Options): Remove
5306 c99_runtime.
5307
5308 2019-10-12 Jan Hubicka <hubicka@ucw.cz>
5309
5310 * lto-streamer-out.c (collect_block_tree_leafs): Renumber statements
5311 so non-virutal are before virutals.
5312 (output_function): Avoid body modifications.
5313
5314 2019-10-12 John David Anglin <danglin@gcc.gnu.org>
5315
5316 * config/pa/pa.c (pa_output_call): Load descriptor address to register
5317 %r22. Load function address before global pointer.
5318 (pa_attr_length_indirect_call): Adjust length of inline versions of
5319 $$dyncall.
5320 (pa_output_indirect_call): Remove fast inline version of $$dyncall
5321 before normal cases. Update inline $$dyncall sequences to preserve
5322 function descriptor address in register %r22.
5323 (TRAMPOLINE_CODE_SIZE): Adjust.
5324 (pa_asm_trampoline_template): Revise 32-bit trampoline. Don't assume
5325 register %r22 contains trampoline address.
5326 (pa_trampoline_init): Adjust offsets.
5327 (pa_trampoline_adjust_address): Likewise.
5328 * config/pa/pa.h (TRAMPOLINE_SIZE): Adjust 32-bit size.
5329
5330 2019-10-12 Iain Sandoe <iain@sandoe.co.uk>
5331
5332 PR target/67183
5333 * config/darwin.c (machopic_indirection): New field to flag
5334 non-lazy-symbol-pointers in the data section.
5335 (machopic_indirection_name): Compute if an indirection should
5336 appear in the data section.
5337 (machopic_output_data_section_indirection): New callback split
5338 from machopic_output_indirection.
5339 (machopic_output_stub_indirection): Likewise.
5340 (machopic_output_indirection): Retain the code for non-lazy
5341 symbol pointers in their regular section.
5342 (machopic_finish): Use the new callbacks to order the indirection
5343 output.
5344
5345 2019-10-12 Iain Sandoe <iain@sandoe.co.uk>
5346
5347 * config/darwin-protos.h (machopic_finish): Delete.
5348 * config/darwin.c (machopic_finish): Make static.
5349
5350 2019-10-12 Iain Sandoe <iain@sandoe.co.uk>
5351
5352 * config/darwin.c (darwin_file_end): Only emit empty CTOR/DTOR
5353 sections when building kernel extension code.
5354
5355 2019-10-12 Palmer Dabbelt <palmer@sifive.com>
5356
5357 * doc/extend.texi (Alternate Keywords): Change "-std=c11" to "a
5358 later standard."
5359
5360 2019-10-12 John David Anglin <danglin@gcc.gnu.org>
5361
5362 * config/pa/pa.c (pa_option_override): Remove trailing comma
5363 from warning.
5364
5365 2019-10-12 Jakub Jelinek <jakub@redhat.com>
5366
5367 PR middle-end/92063
5368 * tree-eh.c (operation_could_trap_helper_p) <case COND_EXPR>
5369 <case VEC_COND_EXPR>: Return false with *handled = false.
5370 (tree_could_trap_p): For {,VEC_}COND_EXPR return false instead of
5371 recursing on the first operand.
5372 * fold-const.c (simple_operand_p_2): Use generic_expr_could_trap_p
5373 instead of tree_could_trap_p.
5374 * tree-ssa-sccvn.c (vn_nary_may_trap): Formatting fixes.
5375
5376 2019-10-11 Jim Wilson <jimw@sifive.com>
5377
5378 PR rtl-optimization/91860
5379 * combine.c (subst): If new_rtx is a constant, also check for
5380 SIGN_EXTEND when deciding whether to call simplify_unary_operation.
5381
5382 2019-10-11 Richard Sandiford <richard.sandiford@arm.com>
5383
5384 * expr.c (store_expr): Use rtx_to_poly_int64 rather than
5385 INTVAL when calling store_bit_field.
5386
5387 2019-10-11 Wilco Dijkstra <wdijkstr@arm.com>
5388
5389 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Set when optimizing for
5390 size.
5391
5392 2019-10-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
5393
5394 * tree-vect-loop.c (vect_analyze_loop_operations): Adjust call to
5395 vectorizable_live_operation.
5396 (vectorizable_live_operation): Adjust parameters.
5397 * tree-vect-stmts.c (vect_init_vector,
5398 vect_gen_widened_results_half): Fix typo in function comment.
5399 (can_vectorize_live_stmts): Adjust function comment.
5400 Adjust parameters. Adjust call to vectorizable_live_operation.
5401 (vect_analyze_stmt): Adjust call to can_vectorize_live_stmts.
5402 (vect_transform_stmt): Adjust function comment. Adjust call to
5403 can_vectorize_live_stmts.
5404 * tree-vectorizer.h (vectorizable_live_operation): Adjust parameters.
5405
5406 2019-10-11 Richard Biener <rguenther@suse.de>
5407
5408 PR tree-optimization/90883
5409 PR tree-optimization/91091
5410 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use correct
5411 alias-sets both for recording VN table entries and continuing
5412 walking after translating through copies. Handle same-sized
5413 reads from SSA names by returning the plain SSA name.
5414 (eliminate_dom_walker::eliminate_stmt): Properly handle
5415 non-size precision stores in redundant store elimination.
5416
5417 2019-10-11 Jan Hubicka <hubicka@ucw.cz>
5418
5419 * ggc-page.c (release_pages): Output statistics when !quiet_flag.
5420 (ggc_collect): Dump later to not interfere with release_page dump.
5421 (ggc_trim): New function.
5422 * ggc-none.c (ggc_trim): New.
5423 * ggc.h (ggc_trim): Declare.
5424
5425 2019-10-11 Richard Biener <rguenther@suse.de>
5426
5427 PR tree-optimization/92066
5428 PR tree-optimization/92046
5429 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
5430 Fix bogus cost model check.
5431
5432 2019-10-11 Tobias Burnus <tobias@codesourcery.com>
5433
5434 * langhooks-def.h (LANG_HOOKS_OMP_IS_ALLOCATABLE_OR_PTR): Define.
5435 (LANG_HOOKS_DECLS): Add it.
5436 * langhooks.h (lang_hooks_for_decls): Add omp_is_allocatable_or_ptr;
5437 update comment for omp_is_optional_argument.
5438 * omp-general.c (omp_is_allocatable_or_ptr): New.
5439 * omp-general.h (omp_is_allocatable_or_ptr): Declare.
5440 * omp-low.c (scan_sharing_clauses, lower_omp_target): Handle
5441 Fortran's optional arguments and allocatable/pointer scalars
5442 with use_device_addr.
5443
5444 2019-10-11 Ilya Leoshkevich <iii@linux.ibm.com>
5445
5446 PR target/77918
5447 * config/s390/2827.md: Add new opcodes.
5448 * config/s390/2964.md: Likewise.
5449 * config/s390/3906.md: Likewise.
5450 * config/s390/8561.md: Likewise.
5451 * config/s390/s390-builtins.def (s390_vfchesb): Use
5452 the new vec_cmpgev4sf_quiet_nocc.
5453 (s390_vfchedb): Use the new vec_cmpgev2df_quiet_nocc.
5454 (s390_vfchsb): Use the new vec_cmpgtv4sf_quiet_nocc.
5455 (s390_vfchdb): Use the new vec_cmpgtv2df_quiet_nocc.
5456 (vec_cmplev4sf): Use the new vec_cmplev4sf_quiet_nocc.
5457 (vec_cmplev2df): Use the new vec_cmplev2df_quiet_nocc.
5458 (vec_cmpltv4sf): Use the new vec_cmpltv4sf_quiet_nocc.
5459 (vec_cmpltv2df): Use the new vec_cmpltv2df_quiet_nocc.
5460 * config/s390/s390-modes.def (CCSFPS): New mode.
5461 * config/s390/s390.c (s390_match_ccmode_set): Support CCSFPS.
5462 (s390_select_ccmode): Return CCSFPS for LT, LE, GT, GE and LTGT.
5463 (s390_branch_condition_mask): Reuse CCS for CCSFPS.
5464 (s390_expand_vec_compare): Use non-signaling patterns where
5465 necessary.
5466 (s390_reverse_condition): Support CCSFPS.
5467 * config/s390/s390.md (*cmp<mode>_ccsfps): New pattern.
5468 * config/s390/vector.md: (VFCMP_HW_OP): Remove.
5469 (asm_fcmp_op): Likewise.
5470 (*smaxv2df3_vx): Use pattern for quiet comparison.
5471 (*sminv2df3_vx): Likewise.
5472 (*vec_cmp<VFCMP_HW_OP:code><mode>_nocc): Remove.
5473 (*vec_cmpeq<mode>_quiet_nocc): New pattern.
5474 (vec_cmpgt<mode>_quiet_nocc): Likewise.
5475 (vec_cmplt<mode>_quiet_nocc): New expander.
5476 (vec_cmpge<mode>_quiet_nocc): New pattern.
5477 (vec_cmple<mode>_quiet_nocc): New expander.
5478 (*vec_cmpeq<mode>_signaling_nocc): New pattern.
5479 (*vec_cmpgt<mode>_signaling_nocc): Likewise.
5480 (*vec_cmpgt<mode>_signaling_finite_nocc): Likewise.
5481 (*vec_cmpge<mode>_signaling_nocc): Likewise.
5482 (*vec_cmpge<mode>_signaling_finite_nocc): Likewise.
5483 (vec_cmpungt<mode>): New expander.
5484 (vec_cmpunge<mode>): Likewise.
5485 (vec_cmpuneq<mode>): Use quiet patterns.
5486 (vec_cmpltgt<mode>): Allow only on z14+.
5487 (vec_cmpordered<mode>): Use quiet patterns.
5488 (vec_cmpunordered<mode>): Likewise.
5489 (VEC_CMP_EXPAND): Add ungt and unge.
5490
5491 2019-10-11 Jan Hubicka <hubicka@ucw.cz>
5492
5493 * gimple-streamer-out.c (output_gimple_stmt): Add explicit function
5494 parameter.
5495 * lto-streamer-out.c: Include tree-dfa.h.
5496 (output_cfg): Do not use cfun.
5497 (lto_prepare_function_for_streaming): New.
5498 (output_function): Do not push cfun; do not initialize loop optimizer.
5499 * lto-streamer.h (lto_prepare_function_for_streaming): Declare.
5500 * passes.c (ipa_write_summaries): Use it.
5501 (ipa_write_optimization_summaries): Do not modify bodies.
5502 * tree-dfa.c (renumber_gimple_stmt_uids): Add function parameter.
5503 * tree.dfa.h (renumber_gimple_stmt_uids): Update prototype.
5504 * tree-ssa-dse.c (pass_dse::execute): Update use of
5505 renumber_gimple_stmt_uids.
5506 * tree-ssa-math-opts.c (pass_optimize_widening_mul::execute): Likewise.
5507
5508 2019-10-11 Kewen Lin <linkw@gcc.gnu.org>
5509
5510 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Lower
5511 vec_promote_demote cost to 1 for non-Power7 VSX architectures.
5512
5513 2019-10-10 Joseph Myers <joseph@codesourcery.com>
5514
5515 * ginclude/float.h [!__DEC32_MANT_DIG__]: Do not define DFP
5516 macros.
5517 [__STDC_WANT_IEC_60559_DFP_EXT__ || __STDC_VERSION__ > 201710L]:
5518 Also define DFP macros for these conditions.
5519 [!__STDC_WANT_DEC_FP__] (DEC32_SUBNORMAL_MIN, DEC64_SUBNORMAL_MIN,
5520 DEC128_SUBNORMAL_MIN): Do not define.
5521 [__STDC_WANT_IEC_60559_DFP_EXT__ || __STDC_VERSION__ > 201710L]
5522 (DEC32_TRUE_MIN, DEC64_TRUE_MIN, DEC128_TRUE_MIN): New macros.
5523
5524 2019-10-10 Xiong Hu Luo <luoxhu@linux.ibm.com>
5525 Sandra Loosemore <sandra@codesourcery.com>
5526
5527 PR middle-end/26241
5528 * doc/lto.texi (IPA): Reference to the IPA passes.
5529 * doc/passes.texi (Pass manager): Add node IPA passes and
5530 description for each IPA pass.
5531
5532 2019-10-10 Jan Hubicka <hubicka@ucw.cz>
5533
5534 * ipa-reference.c: Do not include splay-tree.h
5535 (reference_vars_to_consider): Turn to hash map.
5536 (get_static_name, ipa_init, analyze_function, propagate,
5537 stream_out_bitmap, ipa_reference_write_optimization_summary,
5538 ipa_reference_write_optimization_summary): Update.
5539
5540 2019-10-10 Jan Hubicka <hubicka@ucw.cz>
5541
5542 * ipa-reference.c (propagate): Fix releasing of IPA summaries.
5543
5544 2019-10-10 Iain Sandoe <iain@sandoe.co.uk>
5545
5546 * config/darwin.c: Lookup Objective C metadata and force indirection
5547 for IVAR refs.
5548
5549 2019-10-10 Michael Meissner <meissner@linux.ibm.com>
5550
5551 * config/rs6000/rs6000.c (quad_address_p): Add check for prefixed
5552 addresses.
5553 (mem_operand_gpr): Add check for prefixed addresses.
5554 (mem_operand_ds_form): Add check for prefixed addresses.
5555 (rs6000_legitimate_offset_address_p): If we support prefixed
5556 addresses, check for a 34-bit offset instead of 16-bit.
5557 (rs6000_legitimate_address_p): Add check for prefixed addresses.
5558 Do not allow load/store with update if the address is prefixed.
5559 (rs6000_mode_dependent_address): If we support prefixed
5560 addresses, check for a 34-bit offset instead of 16-bit.
5561
5562 2019-10-10 Ilya Leoshkevich <iii@linux.ibm.com>
5563
5564 PR target/77918
5565 * config/s390/vector.md (vcond_comparison_operator): New
5566 predicate.
5567 (vcond<V_HW:mode><V_HW2:mode>): Use vcond_comparison_operator.
5568
5569 2019-10-10 David Malcolm <dmalcolm@redhat.com>
5570
5571 PR 87488
5572 * Makefile.in (CFLAGS-opts.o): Pass in DOCUMENTATION_ROOT_URL via
5573 -D.
5574 * configure.ac (--with-documentation-root-url): New option.
5575 * configure: Regenerate.
5576 * diagnostic-format-json.cc (json_end_diagnostic): If there is an
5577 option URL, add it as a new string field of the diagnostic option.
5578 * diagnostic.c (diagnostic_initialize): Initialize get_option_url.
5579 (print_option_information): If get_option_url is non-NULL, call
5580 it, and if the result is non-NULL, potentially emit an escape
5581 sequence to markup the option text with the resulting URL.
5582 * diagnostic.h (diagnostic_context::get_option_url): New callback.
5583 * doc/invoke.texi (-fdiagnostics-format=): Add "option_url" to
5584 example of JSON output.
5585 * opts-diagnostic.h (get_option_url): New decl.
5586 * opts.c (get_option_url): New function.
5587 * toplev.c (general_init): Initialize the get_option_url callback.
5588
5589 2019-10-10 David Malcolm <dmalcolm@redhat.com>
5590
5591 PR 87488
5592 * common.opt (fdiagnostics-urls=): New option.
5593 (diagnostic-url.h): Add SourceInclude.
5594 (diagnostic_url_rule): New enum.
5595 * diagnostic-color.c: Include "diagnostic-url.h".
5596 (diagnostic_urls_enabled_p): New function.
5597 * diagnostic-url.h: New file.
5598 * diagnostic.c: Include "diagnostic-url.h".
5599 (diagnostic_urls_init): New function.
5600 * diagnostic.h (diagnostic_urls_init): New decl.
5601 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
5602 -fdiagnostics-urls to the list.
5603 (-fdiagnostics-urls): New option.
5604 * gcc.c (driver_handle_option): Handle OPT_fdiagnostics_urls_.
5605 (driver::global_initializations): Call diagnostic_urls_init.
5606 * opts-global.c (init_options_once): Likewise.
5607 * opts.c (common_handle_option): Handle OPT_fdiagnostics_urls_.
5608 * pretty-print.c (pretty_printer::pretty_printer): Initialize
5609 show_urls.
5610 (pp_begin_url): New function.
5611 (pp_end_url): New function.
5612 (selftest::test_urls): New selftest.
5613 (selftest::pretty_print_c_tests): Call it.
5614 * pretty-print.h (pretty_printer::show_urls): New field.
5615 (pp_begin_url): New decl.
5616 (pp_end_url): New decl.
5617
5618 2019-10-10 Uroš Bizjak <ubizjak@gmail.com>
5619
5620 PR target/92022
5621 * config/alpha/alpha.c (alpha_handle_trap_shadows): Skip DEBUG_INSN.
5622
5623 2019-10-10 Oleg Endo <olegendo@gcc.gnu.org>
5624
5625 PR target/88630
5626 * config/sh/sh.h (TARGET_FPU_SH4_300): New macro.
5627 * config/sh/sh.c (sh_option_override): Enable fsca and fsrra insns
5628 also for TARGET_FPU_SH4_300.
5629 (sh_emit_mode_set): Check for TARGET_FPU_SH4_300 instead of
5630 TARGET_SH4_300.
5631 * config/sh/sh.md (toggle_pr): Add TARGET_FPU_SH4_300 condition.
5632 (negsf2): Expand to either negsf2_fpscr or negsf2_no_fpscr.
5633 (*negsf2_i): Split into ...
5634 (negsf2_fpscr, negsf2_no_fpscr): ... these new patterns.
5635 (abssf2): Expand to either abssf2_fpsc or abssf2_no_fpsc.
5636 (**abssf2_i): Split into ...
5637 (abssf2_fpscr, abssf2_no_fpscr): ... these new patterns.
5638 (negdf2): Expand to either negdf2_fpscr or negdf2_no_fpscr.
5639 (*negdf2_i): Split into ...
5640 (negdf2_fpscr, negdf2_no_fpscr): ... these new patterns.
5641 (absdf2): Expand to either absdf2_fpscr or absdf2_no_fpsc.
5642 (**abssf2_i): Split into ...
5643 (absdf2_fpscr, absdf2_no_fpscr): ... these new patterns.
5644
5645 2019-10-10 Richard Biener <rguenther@suse.de>
5646
5647 PR middle-end/92046
5648 * opts.c (finish_options): Do not influence global --params
5649 from options that are adjustable per function.
5650 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
5651 Apply --param adjustment based on active cost-model.
5652 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Disable
5653 further store-sinking when vectorization or if-conversion
5654 are not enabled.
5655
5656 2019-10-10 Jan Hubicka <hubicka@ucw.cz>
5657
5658 PR middle-end/92037
5659 * cgraph.c (symbol_table_test::symbol_table_test): Use ggc_alloc
5660 rather than ggc_alloc_cleared to alloc symbol table.
5661 * toplev.c (general_init): Likewise.
5662 * cgraph.h (symbol_table): Explicitly construct every field.
5663
5664 2019-10-10 Andreas Krebbel <krebbel@linux.ibm.com>
5665
5666 * common/config/s390/s390-common.c (PF_ARCH13): Rename to...
5667 (PF_Z15): ... this.
5668 * config.gcc: Add z15 as option for --with-arch and --with-tune
5669 configure switches.
5670 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Add
5671 error reporting for unsupported builtins.
5672 * config/s390/s390-opts.h (enum processor_type): Rename
5673 PROCESSOR_8561_ARCH13 to PROCESSOR_8561_Z15.
5674 * config/s390/8561.md: Rename arch13 to z15 throughout the file.
5675 * config/s390/driver-native.c (s390_host_detect_local_cpu):
5676 Likewise.
5677 * config/s390/s390-builtins.def: Likewise.
5678 * config/s390/s390.c (processor_table): Add z15 as option and keep arch13 as alternative.
5679 (s390_expand_builtin): Add missing check for unsupported builtins.
5680 (s390_canonicalize_comparison): Rename TARGET_ARCH13 to TARGET_Z15.
5681 (s390_rtx_costs): Likewise.
5682 (s390_get_sched_attrmask): Rename arch13 to z15.
5683 (s390_get_unit_mask): Likewise.
5684 (s390_is_fpd): Likewise.
5685 (s390_is_fxd): Likewise.
5686 * config/s390/s390.h (enum processor_flags): Likewise.
5687 * config/s390/s390.md: Likewise.
5688 * config/s390/vector.md: Likewise.
5689 * config/s390/vx-builtins.md: Likewise.
5690 * config/s390/s390.opt: Add z15 to processor_type value.
5691
5692 2019-10-10 Andreas Krebbel <krebbel@linux.ibm.com>
5693
5694 PR target/91035
5695 * config/s390/s390-protos.h (s390_output_split_stack_data): Add
5696 prototype.
5697 * config/s390/s390.md (UNSPECV_SPLIT_STACK_DATA): Remove.
5698 ("split_stack_data", "split_stack_call")
5699 ("split_stack_call_<mode>", "split_stack_cond_call")
5700 ("split_stack_cond_call_<mode>"): Remove.
5701 ("@split_stack_call<mode>", "@split_stack_cond_call<mode>"): New
5702 insn definition.
5703 * config/s390/s390.c (s390_output_split_stack_data): New function.
5704 (s390_expand_split_stack_prologue): Use the merged expander.
5705
5706 2019-10-09 Martin Sebor <msebor@redhat.com>
5707
5708 PR tree-optimization/90879
5709 * builtins.c (check_access): Avoid using maxbound when null.
5710 * calls.c (maybe_warn_nonstring_arg): Adjust to get_range_strlen change.
5711 * doc/invoke.texi (-Wstring-compare): Document new warning option.
5712 * gimple-fold.c (get_range_strlen_tree): Make setting maxbound
5713 conditional.
5714 (get_range_strlen): Overwrite initial maxbound when non-null.
5715 * gimple-ssa-sprintf.c (get_string_length): Adjust to get_range_strlen
5716 changes.
5717 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Same.
5718 (used_only_for_zero_equality): New function.
5719 (handle_builtin_memcmp): Call it.
5720 (determine_min_objsize): Return an integer instead of tree.
5721 (get_len_or_size, strxcmp_eqz_result): New functions.
5722 (maybe_warn_pointless_strcmp): New function.
5723 (handle_builtin_string_cmp): Call it. Fold zero-equality of strcmp
5724 between a longer string and a smaller array.
5725 (get_range_strlen_dynamic): Overwrite initial maxbound when non-null.
5726
5727 2019-10-09 Iain Sandoe <iain@sandoe.co.uk>
5728
5729 * config/darwin.c (darwin_override_options): Make the check for
5730 Objective-C ABI version more specific for 64bit code.
5731
5732 2019-10-09 Iain Sandoe <iain@sandoe.co.uk>
5733
5734 * config/darwin.c (machopic_indirect_data_reference): Set flag to
5735 indicate that the new symbol is an indirection.
5736 (machopic_indirect_call_target): Likewise.
5737 * config/darwin.h (MACHO_SYMBOL_FLAG_INDIRECTION): New.
5738 (MACHO_SYMBOL_INDIRECTION_P): New.
5739 (MACHO_SYMBOL_FLAG_STATIC): Adjust bit number.
5740
5741 2019-10-08 Jason Merrill <jason@redhat.com>
5742
5743 * doc/invoke.texi: Document -fconcepts-ts.
5744
5745 2019-10-09 Richard Biener <rguenther@suse.de>
5746
5747 * tree-vect-loop.c (vect_is_simple_reduction): Simplify and
5748 allow stmts other than GIMPLE_ASSIGN in nested cycles.
5749
5750 2019-10-08 Richard Biener <rguenther@suse.de>
5751
5752 * tree-vectorizer.h (_stmt_vec_info::reduc_vectype_in): New.
5753 (_stmt_vec_info::force_single_cycle): Likewise.
5754 (STMT_VINFO_FORCE_SINGLE_CYCLE): New.
5755 (STMT_VINFO_REDUC_VECTYPE_IN): Likewise.
5756 * tree-vect-loop.c (vectorizable_reduction): Set
5757 STMT_VINFO_REDUC_VECTYPE_IN and STMT_VINFO_FORCE_SINGLE_CYCLE.
5758 (vect_transform_reduction): Use them to remove redundant code.
5759 (vect_transform_cycle_phi): Likewise.
5760
5761 2019-10-08 Dmitrij Pochepko <dmitrij.pochepko@bell-sw.com>
5762
5763 PR tree-optimization/90836
5764 * match.pd (popcount): New pattern.
5765
5766 2019-10-08 Martin Sebor <msebor@redhat.com>
5767
5768 PR middle-end/92026
5769 PR middle-end/92014
5770 * tree-ssa-strlen.c (count_nonzero_bytes): Avoid recursing for MEM_REF
5771 again once nbytes has been set. Set the access size when not yet set.
5772
5773 2019-10-08 Iain Sandoe <iain@sandoe.co.uk>
5774
5775 * config/darwin.c (machopic_select_section): Remove dead code for
5776 old Objective-C section selection method, replace with unreachable.
5777
5778 2019-10-08 Iain Sandoe <iain@sandoe.co.uk>
5779
5780 * config/darwin.c (machopic_indirect_data_reference): Check for
5781 required indirections before making direct access to defined
5782 values.
5783 (machopic_output_indirection): Place the indirected pointes for
5784 required indirections into the non-lazy symbol pointers section.
5785 (darwin_encode_section_info):
5786 * config/darwin.h (MACHO_SYMBOL_FLAG_MUST_INDIRECT): New.
5787 (MACHO_SYMBOL_MUST_INDIRECT_P): New.
5788
5789 2019-10-08 Uroš Bizjak <ubizjak@gmail.com>
5790
5791 PR target/91994
5792 * config/i386/i386.c (x86_avx_u128_mode_needed): Use SSE_REG
5793 instead of ALL_SSE_REG to check if function call preserves some
5794 256-bit SSE registers.
5795
5796 2019-10-08 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
5797
5798 * config.gcc: Move -L usage from LINK_OS_EXTRA_SPEC32 and
5799 LINK_OS_EXTRA_SPEC64 to MD_STARTFILE_PREFIX and
5800 MD_STARTFILE_PREFIX_1 when using --with-advance-toolchain.
5801
5802 2019-10-08 Richard Biener <rguenther@suse.de>
5803
5804 * tree-vectorizer.h (_stmt_vec_info::v_reduc_type): Remove.
5805 (_stmt_vec_info::is_reduc_info): Add.
5806 (STMT_VINFO_VEC_REDUCTION_TYPE): Remove.
5807 (vectorizable_condition): Remove.
5808 (vectorizable_shift): Likewise.
5809 (vectorizable_reduction): Adjust.
5810 (info_for_reduction): New.
5811 * tree-vect-loop.c (vect_force_simple_reduction): Fold into...
5812 (vect_analyze_scalar_cycles_1): ... here.
5813 (vect_analyze_loop_operations): Adjust.
5814 (needs_fold_left_reduction_p): Simplify for single caller.
5815 (vect_is_simple_reduction): Likewise. Remove stmt restriction
5816 for nested cycles not part of double reductions.
5817 (vect_model_reduction_cost): Pass in the reduction type.
5818 (info_for_reduction): New function.
5819 (vect_create_epilog_for_reduction): Use it, access reduction
5820 meta off the stmt info it returns. Use STMT_VINFO_REDUC_TYPE
5821 instead of STMT_VINFO_VEC_REDUCTION_TYPE.
5822 (vectorize_fold_left_reduction): Remove pointless assert.
5823 (vectorizable_reduction): Analyze the full reduction when
5824 visiting the outermost PHI. Simplify. Use STMT_VINFO_REDUC_TYPE
5825 instead of STMT_VINFO_VEC_REDUCTION_TYPE. Direct reduction
5826 stmt code-generation to vectorizable_* in most cases. Verify
5827 code-generation only for cases handled by
5828 vect_transform_reductuon.
5829 (vect_transform_reduction): Use info_for_reduction to get at
5830 reduction meta. Simplify.
5831 (vect_transform_cycle_phi): Likewise.
5832 (vectorizable_live_operation): Likewise.
5833 * tree-vect-patterns.c (vect_reassociating_reduction_p): Look
5834 at the PHI node for STMT_VINFO_REDUC_TYPE.
5835 * tree-vect-slp.c (vect_schedule_slp_instance): Remove no
5836 longer necessary code.
5837 * tree-vect-stmts.c (vectorizable_shift): Make static again.
5838 (vectorizable_condition): Likewise. Get at reduction related
5839 info via info_for_reduction.
5840 (vect_analyze_stmt): Adjust.
5841 (vect_transform_stmt): Likewise.
5842 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
5843 STMT_VINFO_REDUC_TYPE instead of STMT_VINFO_VEC_REDUCTION_TYPE.
5844
5845 2019-10-08 Joseph Myers <joseph@codesourcery.com>
5846
5847 * doc/invoke.texi (-ffp-int-builtin-inexact): Document
5848 -fno-fp-int-builtin-inexact default for C2X.
5849
5850 2019-10-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5851 Richard Biener <rguenther@suse.de>
5852
5853 PR tree-optimization/91532
5854 * tree-if-conv.c: Include tree-ssa-dse.h.
5855 (ifcvt_local_dce): Change param from bb to loop,
5856 and call dse_classify_store.
5857 (tree_if_conversion): Pass loop instead of loop->header as arg
5858 to ifcvt_local_dce.
5859 * tree-ssa-dse.c: Include tree-ssa-dse.h.
5860 (delete_dead_or_redundant_assignment): Remove static qualifier from
5861 declaration, and add prototype in tree-ssa-dse.h.
5862 (dse_store_status): Move to tree-ssa-dse.h.
5863 (dse_classify_store): Remove static qualifier and add new tree param
5864 stop_at_vuse, and add prototype in tree-ssa-dse.h.
5865 * tree-ssa-dse.h: New header.
5866
5867 2019-10-07 Iain Sandoe <iain@sandoe.co.uk>
5868
5869 * config/darwin.c (machopic_output_indirection): Don't put
5870 hidden symbol indirections into the .data section, use the
5871 non-lazy symbol pointers section as normal.
5872 (darwin_encode_section_info): Record if a symbol is hidden.
5873 * config/darwin.h (MACHO_SYMBOL_FLAG_HIDDEN_VIS): New.
5874 (MACHO_SYMBOL_HIDDEN_VIS_P): New.
5875
5876 2019-10-07 Iain Sandoe <iain@sandoe.co.uk>
5877
5878 * config/darwin.c (machopic_symbol_defined_p): Use symbol flag
5879 predicates instead of accessing bits directly.
5880 (machopic_indirect_call_target): Likewise.
5881 (machopic_output_indirection): Likewise.
5882 (darwin_encode_section_info): Improve description. Use renamed
5883 symbol flags. Use predicate macros for variables and functions.
5884 * config/darwin.h:
5885 Rename MACHO_SYMBOL_VARIABLE to MACHO_SYMBOL_FLAG_VARIABLE.
5886 Rename MACHO_SYMBOL_DEFINED to MACHO_SYMBOL_FLAG_DEFINED.
5887 Rename MACHO_SYMBOL_STATIC to MACHO_SYMBOL_FLAG_STATIC.
5888 (MACHO_SYMBOL_VARIABLE_P): New.
5889 (MACHO_SYMBOL_DEFINED_P):New.
5890 (MACHO_SYMBOL_STATIC_P): New.
5891 * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Delete.
5892 (SYMBOL_FLAG_SUBT_DEP): New.
5893 * config/rs6000/darwin.h (SYMBOL_FLAG_SUBT_DEP): New.
5894
5895 2019-10-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
5896
5897 * config/msp430/msp430.c (msp430_file_end): s/msp_/msp430_/
5898 (msp430_expand_epilogue): Likewise.
5899 * config/msp430/predicates.md: Likewise.
5900 * config/msp430/msp430.md: Likewise.
5901 Replace blocks of 8 spaces with tabs.
5902
5903 2019-10-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
5904
5905 * config/msp430/msp430-protos.h (msp430_split_addsi): New prototype.
5906 * config/msp430/msp430.c (msp430_split_addsi): New.
5907 * config/msp430/msp430.md: Call msp430_split_addsi () instead of using
5908 a block of C code for splitting addsi.
5909
5910 2019-10-07 Uroš Bizjak <ubizjak@gmail.com>
5911
5912 * config/i386/i386-expand.c (ix86_expand_floorceildf_32,
5913 ix86_expand_rounddf_32): Reorder functions.
5914 * config/i386/i386-protos.h: Update.
5915
5916 2019-10-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
5917
5918 * config.in: Regenerate.
5919 * config/msp430/constraints.md: Fix docstring for "Ys" constraint.
5920 Add new "Yx" constraint.
5921 * config/msp430/driver-msp430.c (msp430_propagate_region_opt): New spec
5922 function.
5923 * config/msp430/msp430-protos.h (msp430_op_not_in_high_mem): New
5924 prototype.
5925 * config/msp430/msp430.c (msp430_option_override): Allow the lower
5926 code/data region to be selected in the small memory model.
5927 (msp430_section_attr): Don't warn if the "section" and "lower"
5928 attributes are used together.
5929 (msp430_handle_generic_attribute): Likewise.
5930 (msp430_var_in_low_mem): New function.
5931 (TARGET_ENCODE_SECTION_INFO): Define.
5932 (msp430_encode_section_info): New function.
5933 (gen_prefix): Return early in the small memory model.
5934 Require TARGET_USE_LOWER_REGION_PREFIX to be set before adding the
5935 ".lower" prefix if -m{code,data}-region=lower have been passed.
5936 (msp430_output_aligned_decl_common): Emit common symbols when
5937 -mdata-region=lower is passed unless TARGET_USE_LOWER_REGION_PREFIX is
5938 set.
5939 (TARGET_ASM_FILE_END): Define.
5940 (msp430_file_end): New function.
5941 (msp430_do_not_relax_short_jumps): Allow relaxation when
5942 function will be in the lower region.
5943 (msp430_op_not_in_high_mem): New function.
5944 (msp430_print_operand): Check "msp430_op_not_in_high_mem" for
5945 the 'X' operand selector.
5946 Clarify comment for 'x' operand selector.
5947 * config/msp430/msp430.h (LINK_SPEC): Propagate
5948 -m{code,data}-region to the linker via spec function
5949 msp430_propagate_region_opt.
5950 (msp430_propagate_region_opt): New prototype.
5951 (EXTRA_SPEC_FUNCTIONS): Add msp430_propagate_region_opt.
5952 (SYMBOL_FLAG_LOW_MEM): Define.
5953 * config/msp430/msp430.md (addsipsi3): Add missing "%X" operand
5954 selector.
5955 (zero_extendqihi2): Fix operand number used by "%X" selector.
5956 (zero_extendqisi2): Likewise.
5957 (zero_extendhisi2): Likewise.
5958 (movqi): Use "Yx" constraint in place of "%X" operand selector.
5959 (movhi): Likewise.
5960 (addqi3): Likewise.
5961 (addhi3): Likewise.
5962 (addsi3): Likewise.
5963 (addhi3_cy): Likewise.
5964 (addchi4_cy): Likewise.
5965 (subqi3): Likewise.
5966 (subhi3): Likewise.
5967 (subsi3): Likewise.
5968 (bic<mode>3): Likewise.
5969 (and<mode>3): Likewise.
5970 (ior<mode>3): Likewise.
5971 (xor<mode>3): Likewise.
5972 (slli_1): Add missing "%X" operand selector.
5973 (slll_1): Likewise.
5974 (slll_2): Likewise.
5975 (srai_1): Likewise.
5976 (sral_1): Likewise.
5977 (sral_2): Likewise.
5978 (srli_1): Likewise.
5979 (srll_1): Likewise.
5980 (cbranchqi4_real): Use "Yx" constraint in place of "%X" operand
5981 selector.
5982 (cbranchhi4_real): Likewise.
5983 (cbranchqi4_reversed): Likewise.
5984 (cbranchhi4_reversed): Likewise.
5985 (*bitbranch<mode>4): Likewise.
5986 (*bitbranch<mode>4_z): Remove unnecessary "%x" operand selector.
5987 * config/msp430/msp430.opt (mcode-region=): Set default to
5988 MSP430_REGION_LOWER. Improve docstring.
5989 (mdata-region=): Likewise.
5990 (muse-lower-region-prefix): New option.
5991 * config/msp430/t-msp430 (MULTILIB_OPTIONS): Add
5992 mdata-region=none multilib.
5993 (MULTILIB_MATCHES): Set mdata-region={upper,either} to match
5994 mdata-region=none multilib.
5995 MULTILIB_EXCEPTIONS: Remove.
5996 MULTILIB_REQUIRED: Define.
5997 * configure: Regenerate.
5998 * configure.ac: Define HAVE_AS_GNU_ATTRIBUTE and
5999 HAVE_AS_MSPABI_ATTRIBUTE if GAS version >= 2.33.50.
6000 * doc/extend.texi: Clarify comment for {upper,lower,either}
6001 function attributes.
6002 Add separate description for "lower" variable attribute.
6003
6004 2019-10-07 Ilya Leoshkevich <iii@linux.ibm.com>
6005
6006 PR target/77918
6007 * optabs-tree.c (vcond_icode_p): New function.
6008 (vcond_eq_icode_p): Likewise.
6009 (expand_vec_cond_expr_p): Use vcond_icode_p and
6010 vcond_eq_icode_p.
6011 * optabs.c (can_vcond_compare_p): New function.
6012 * optabs.h (can_vcond_compare_p): Likewise.
6013
6014 2019-10-07 Ilya Leoshkevich <iii@linux.ibm.com>
6015
6016 PR target/77918
6017 * gimple-expr.c (gimple_cond_get_ops_from_tree): Assert that the
6018 caller passes a non-trapping condition.
6019 (is_gimple_condexpr): Allow trapping conditions.
6020 (is_gimple_condexpr_1): New helper function.
6021 (is_gimple_condexpr_for_cond): New function, acts like old
6022 is_gimple_condexpr.
6023 * gimple-expr.h (is_gimple_condexpr_for_cond): New function.
6024 * gimple.c (gimple_could_trap_p_1): Handle COND_EXPR and
6025 VEC_COND_EXPR. Fix an issue with statements like i = (fp < 1.).
6026 * gimplify.c (gimplify_cond_expr): Use
6027 is_gimple_condexpr_for_cond.
6028 (gimplify_expr): Allow is_gimple_condexpr_for_cond.
6029 * tree-eh.c (operation_could_trap_p): Assert on COND_EXPR and
6030 VEC_COND_EXPR.
6031 (tree_could_trap_p): Handle COND_EXPR and VEC_COND_EXPR.
6032 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Use
6033 is_gimple_condexpr_for_cond, remove pointless tmp check
6034 (forward_propagate_into_cond): Remove pointless tmp check.
6035
6036 2019-10-07 Vladislav Ivanishin <vlad@ispras.ru>
6037
6038 * gimple-iterator.h (gsi_next_nonvirtual_phi): Change the semantics to
6039 match that of other gsi_next_* functions. Adjust the comment.
6040 (gsi_start_nonvirtual_phis): New function.
6041 * ipa-icf.c (sem_function::compare_phi_node): Update uses of
6042 gsi_next_nonvirtual_phi accordingly. (No functional change.)
6043
6044 2019-10-07 Vladislav Ivanishin <vlad@ispras.ru>
6045
6046 * doc/invoke.texi (-Wuninitialized): Don't mention the clobbered by
6047 setjmp situation here. Fix a verb's ending: "the exact variables or
6048 elements for which there are warnings depends" -> "... depend".
6049
6050 2019-10-07 Aldy Hernandez <aldyh@redhat.com>
6051
6052 * ipa-prop.c (ipa_vr::nonzero_p): Add TYPE_UNSIGNED check.
6053
6054 2019-10-07 Aldy Hernandez <aldyh@redhat.com>
6055
6056 * ipa-prop.c (ipa_vr::nonzero_p): New.
6057 (ipcp_update_vr): Use nonzero_p instead of open-coding check for
6058 non-zero range.
6059 * ipa-prop.h (class ipa_vr): Add nonzero_p.
6060 * tree-vrp.c (range_has_numeric_bounds_p): New.
6061 (range_int_cst_p): Use range_has_numeric_bounds_p.
6062 (get_range_op_handler): New.
6063 (supported_types_p): New.
6064 (defined_ranges_p): New.
6065 (drop_undefines_to_varying): New.
6066 (range_fold_binary_symbolics_p): New.
6067 (range_fold_unary_symbolics_p): New.
6068 (range_fold_unary_expr): Extract out into above functions.
6069 (range_fold_binary_expr): Same.
6070 (value_range_base::normalize_addresses): New.
6071 (value_range_base::normalize_symbolics): Normalize addresses.
6072 * tree-vrp.h (class value_range_base): Add normalize_addresses.
6073
6074 2019-10-07 Aldy Hernandez <aldyh@redhat.com>
6075
6076 * tree-vrp.c (value_range_base::singleton_p): Use
6077 value_range_base::num_pairs instead of vrp_val_is* to check
6078 if a range has one sub-range.
6079
6080 2019-10-07 Richard Sandiford <richard.sandiford@arm.com>
6081
6082 * ira-lives.c (check_and_make_def_conflict): Handle cases in which
6083 DEF is not a true earlyclobber but is tied to a specific input
6084 operand, and so is effectively earlyclobber wrt inputs that have
6085 different values.
6086 (make_early_clobber_and_input_conflicts): Pass this case to the above.
6087
6088 2019-10-07 Richard Sandiford <richard.sandiford@arm.com>
6089
6090 * machmode.h (opt_mode): Mark constructors with CONSTEXPR.
6091 (pod_mode): Mark operators likewise.
6092 (scalar_int_mode): Mark non-default constructors and
6093 operators with CONSTEXPR.
6094 (scalar_float_mode, scalar_mode, complex_mode): Likewise.
6095 (fixed_size_mode): Likewise.
6096
6097 2019-10-07 Richard Sandiford <richard.sandiford@arm.com>
6098
6099 PR target/91994
6100 * config/i386/sse.md (avx_vzeroupper): Turn into a define_expand
6101 and wrap the unspec_volatile in a parallel.
6102 (*avx_vzeroupper): New define_insn. Use a match_parallel around
6103 the unspec_volatile.
6104 * config/i386/predicates.md (vzeroupper_pattern): Expect the
6105 unspec_volatile to be wrapped in a parallel.
6106 * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper)
6107 (ix86_add_reg_usage_to_vzerouppers): New functions.
6108 (rest_of_handle_insert_vzeroupper): Use them to add register
6109 usage information to the vzeroupper instructions.
6110
6111 2019-10-07 Richard Biener <rguenther@suse.de>
6112
6113 PR tree-optimization/91975
6114 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Consistently
6115 handle invariants.
6116
6117 2019-10-06 Richard Sandiford <richard.sandiford@arm.com>
6118
6119 * var-tracking.c (dataflow_set_clear_at_call): Hoist temporary
6120 function result outside of EXECUTE_IF_SET_IN_HARD_REG_SET.
6121
6122 2019-10-06 Iain Sandoe <iain@sandoe.co.uk>
6123
6124 * config/darwin.c (darwin_override_options): Adjust objective-c
6125 ABI version error messages to avoid punctuation and contracted
6126 negations.
6127
6128 2019-10-05 Jan Hubicka <hubicka@ucw.cz>
6129
6130 * ipa-inline.c: Fix type; compute size rather than self_size
6131 for size of caller function.
6132
6133 2019-10-05 Iain Sandoe <iain@sandoe.co.uk>
6134
6135 PR target/59888
6136 * config/darwin.c (darwin_rodata_section): Add relocation flag,
6137 choose const_data section for constants with relocations.
6138 (machopic_select_section): Pass relocation flag to
6139 darwin_rodata_section ().
6140
6141 2019-10-05 Jakub Jelinek <jakub@redhat.com>
6142
6143 PR tree-optimization/91734
6144 * generic-match-head.c: Include fold-const-call.h.
6145 * match.pd (sqrt(x) cmp c): Check the boundary value and
6146 in case inexact computation of c*c affects comparison of the boundary,
6147 turn LT_EXPR into LE_EXPR, GE_EXPR into GT_EXPR, LE_EXPR into LT_EXPR
6148 or GT_EXPR into GE_EXPR. Punt for sqrt comparisons against NaN and
6149 for -frounding-math. For c2, try the next smaller or larger floating
6150 point constant depending on comparison code and if it has the same
6151 sqrt as c2, use it instead of c2.
6152
6153 2019-10-04 Martin Sebor <msebor@redhat.com>
6154
6155 PR middle-end/91977
6156 * tree-ssa-strlen.c (count_nonzero_bytes): Handle assignments with
6157 MEM_REF right operand. Avoid failing for MEM_REF assignments from
6158 uninitialized objects.
6159
6160 2019-10-04 Martin Sebor <msebor@redhat.com>
6161
6162 * builtins.c (compute_objsize): Add an argument.
6163 * tree-object-size.c (addr_object_size): Same.
6164 (compute_builtin_object_size): Same.
6165 * tree-object-size.h (compute_builtin_object): Same.
6166
6167 2019-10-04 Jan Hubicka <hubicka@ucw.cz>
6168
6169 * ipa-inline.c (inline_insns_single, inline_insns_auto): Fix typo.
6170
6171 2019-10-04 Rafael Tsuha <rafael.tsuha@usp.br>
6172
6173 * match.pd (sinh (x) / cosh (x)): New simplification rule.
6174
6175 2019-10-04 Martin Jambor <mjambor@suse.cz>
6176
6177 * tree-ssa-forwprop.c (simplify_builtin_call): Set gimple call
6178 fntype when switching to calling memcpy instead of memset.
6179
6180 2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
6181
6182 * hash-table.h (hash_table::empty_slow): Don't assign
6183 size_t values to int variables.
6184
6185 2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
6186
6187 * expr.c (convert_mode_scalar): Remove shadowing local var.
6188 (emit_block_move): Rename local vars.
6189 (block_move_libcall_safe_for_call_parm): Remove shadowing local var.
6190 (emit_push_insn): Rename local vars.
6191 (expand_assignment): Fix wrong mode in assign_stack_temp. Remove
6192 shadowing local vars.
6193 (store_constructor): Remove shadowing local vars. Rename local var.
6194 (store_field, expand_cond_expr_using_cmove,
6195 expand_expr_real_2): Remove shadowing local vars.
6196 (expand_expr_real_1,
6197 do_store_flag): Remove shadowing local vars. Rename local vars.
6198
6199 2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
6200
6201 * cgraph.h (FOR_EACH_ALIAS): Avoid shadowing the loop variable.
6202
6203 2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
6204
6205 * genmatch.c (commutate): Rename local var.
6206 (lower_cond): Reuse local var.
6207 (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1,
6208 dt_operand::gen, dt_operand::gen_gimple_expr,
6209 dt_simplify::gen): Add a param. Rename generated vars.
6210 (decision_tree::insert_operand,
6211 (capture_info::walk_match, capture_info::walk_result,
6212 capture_info::walk_c_expr): Rename local vars.
6213 (expr::gen_transform): Rename generated vars.
6214 Use snprintf. Rename local vars.
6215 (capture::gen_transform, dt_operand::get_name,
6216 dt_operand::gen_opname): Rename generated vars.
6217 (write_predicate): Adjust call to gen_kids.
6218 (parser::get_internal_capture_id): Rename generated vars.
6219 (parser::parse_expr): Rename local vars.
6220 (parser::parse_if): Remove local var.
6221 (parser::parse_pattern, add_operator): Rename local vars.
6222
6223 2019-10-04 Joseph Myers <joseph@codesourcery.com>
6224
6225 * builtins.def (DEF_C2X_BUILTIN): New macro.
6226 (exp10, exp10f, exp10l, fabsd32, fabsd64, fabsd128, nand32)
6227 (nand64, nand128, roundeven, roundevenf, roundevenl, strdup)
6228 (strndup): Use DEF_C2X_BUILTIN.
6229 * coretypes.h (enum function_class): Add function_c2x_misc.
6230
6231 2019-10-04 Maya Rashish <coypu@sdf.org>
6232
6233 * ira-color.c (update_costs_from_allocno): Call
6234 ira_init_register_move_cost_if_necessary.
6235
6236 2019-10-04 Jeff Law <law@redhat.com>
6237
6238 * config/h8300/h8300.md (cpymemsi): Disable.
6239 (movmd, movmd_internal_<mode>, movstr, movsd):
6240 (movstr, movsd, stpcpy_internal_<mode>: Likewise.
6241 (movmd splitter, movsd splitter): Likewise.
6242
6243 * range-op.cc (range_tests): Avoid two tests when ints and
6244 shorts are the same size.
6245
6246 2019-10-04 Richard Biener <rguenther@suse.de>
6247
6248 PR lto/91968
6249 * tree.c (find_decls_types_r): Do not remove LABEL_DECLs from
6250 BLOCK_VARS.
6251
6252 2019-10-04 Richard Biener <rguenther@suse.de>
6253
6254 PR tree-optimization/91982
6255 * tree-vect-loop.c (vectorizable_live_operation): Also guard
6256 against EXTRACT_LAST_REDUCTION.
6257 * tree-vect-stmts.c (vect_transform_stmt): Likewise.
6258
6259 2019-10-04 Aldy Hernandez <aldyh@redhat.com>
6260
6261 * range-op.o (value_range_from_overflowed_bounds): Rename from
6262 adjust_overflow_bound.
6263 (value_range_with_overflow): Rename from
6264 create_range_with_overflow.
6265 (create_possibly_reversed_range): Adjusted for above renames.
6266 (operator_*::wi_fold): Same.
6267 (cross_product_operator::wi_cross_productor): Same.
6268
6269 2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
6270
6271 * doc/invoke.texi (-Wshadow=global, -Wshadow=local,
6272 -Wshadow=compatible-local): Fix description.
6273 Add an example where -Wshadow=compatible-local does not
6274 warn.
6275
6276 2019-10-03 John David Anglin <danglin@gcc.gnu.org>
6277
6278 * config/pa/pa.h (MAX_PCREL17F_OFFSET): Adjust.
6279
6280 * config/pa/pa.c (pa_output_call): Remove 64-bit sibcall sequence.
6281 (pa_attr_length_call): Adjust length for 64-bit plabel sequence.
6282
6283 2019-10-03 Aaron Sawdey <acsawdey@linux.ibm.com>
6284
6285 * expr.c (emit_block_move_hints): Slightly cleaner fix to
6286 can_move_by_pieces issue.
6287
6288 2019-10-03 Iain Sandoe <iain@sandoe.co.uk>
6289
6290 PR target/87243
6291 * config/darwin-driver.c (maybe_get_sysroot_from_sdkroot): New.
6292 (darwin_driver_init): Use the sysroot provided by SDKROOT when that
6293 is available and the user has not set one on the command line.
6294
6295 2019-10-03 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
6296
6297 PR target/91769
6298 * config/mips/mips.c (mips_split_move): Use reg_overlap_mentioned_p
6299 instead of REGNO equality check on addr.reg.
6300
6301 2019-10-03 Jan Hubicka <hubicka@ucw.cz>
6302
6303 * params.def (PARAM_INLINE_HEURISTICS_HINT_PERCENT,
6304 PARAM_INLINE_HEURISTICS_HINT_PERCENT_O2): New.
6305 * doc/invoke.texi (inline-heuristics-hint-percent,
6306 inline-heuristics-hint-percent-O2): Document.
6307 * tree-inline.c (inline_insns_single, inline_insns_auto): Add new
6308 hint attribute.
6309 (can_inline_edge_by_limits_p): Use it.
6310
6311 2019-10-03 Richard Sandiford <richard.sandiford@arm.com>
6312
6313 * config/arm/arm.c (arm_print_value): Use real_to_decimal
6314 to print CONST_DOUBLEs.
6315
6316 2019-10-03 Andrea Corallo <andrea.corallo@arm.com>
6317
6318 * ipa-cp.c (ipa_cp_c_finalize): Release ipcp_transformation_sum.
6319 * ipa-prop.c (ipcp_free_transformation_sum): New function.
6320 * ipa-prop.h (ipcp_free_transformation_sum): Add declaration.
6321
6322 2019-10-03 Aldy Hernandez <aldyh@redhat.com>
6323
6324 * Makefile.in (OBJS): Add range.o and range-op.o.
6325 Remove wide-int-range.o.
6326 * function-tests.c (test_ranges): New.
6327 (function_tests_c_tests): Call test_ranges.
6328 * ipa-cp.c (ipa_vr_operation_and_type_effects): Call
6329 range_fold_unary_expr instead of extract_range_from_unary_expr.
6330 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Same.
6331 * range-op.cc: New file.
6332 * range-op.h: New file.
6333 * range.cc: New file.
6334 * range.h: New file.
6335 * selftest.h (range_tests): New prototype.
6336 * ssa.h: Include range.h.
6337 * tree-vrp.c (value_range_base::value_range_base): New
6338 constructors.
6339 (value_range_base::singleton_p): Do not call
6340 ranges_from_anti_range until sure we will need to.
6341 (value_range_base::type): Rename gcc_assert to
6342 gcc_checking_assert.
6343 (vrp_val_is_max): New argument.
6344 (vrp_val_is_min): Same.
6345 (wide_int_range_set_zero_nonzero_bits): Move from
6346 wide-int-range.cc.
6347 (extract_range_into_wide_ints): Remove.
6348 (extract_range_from_multiplicative_op): Remove.
6349 (extract_range_from_pointer_plus_expr): Abstract POINTER_PLUS code
6350 from extract_range_from_binary_expr.
6351 (extract_range_from_plus_minus_expr): Abstract PLUS/MINUS code
6352 from extract_range_from_binary_expr.
6353 (extract_range_from_binary_expr): Remove.
6354 (normalize_for_range_ops): New.
6355 (range_fold_binary_expr): New.
6356 (range_fold_unary_expr): New.
6357 (value_range_base::num_pairs): New.
6358 (value_range_base::lower_bound): New.
6359 (value_range_base::upper_bound): New.
6360 (value_range_base::upper_bound): New.
6361 (value_range_base::contains_p): New.
6362 (value_range_base::invert): New.
6363 (value_range_base::union_): New.
6364 (value_range_base::intersect): New.
6365 (range_compatible_p): New.
6366 (value_range_base::operator==): New.
6367 (determine_value_range_1): Call range_fold_*expr instead of
6368 extract_range_from_*expr.
6369 * tree-vrp.h (class value_range_base): Add new constructors.
6370 Add methods for union_, intersect, operator==, contains_p,
6371 num_pairs, lower_bound, upper_bound, invert.
6372 (vrp_val_is_min): Add handle_pointers argument.
6373 (vrp_val_is_max): Same.
6374 (extract_range_from_unary_expr): Remove.
6375 (extract_range_from_binary_expr): Remove.
6376 (range_fold_unary_expr): New.
6377 (range_fold_binary_expr): New.
6378 * vr-values.c (vr_values::extract_range_from_binary_expr): Call
6379 range_fold_binary_expr instead of extract_range_from_binary_expr.
6380 (vr_values::extract_range_basic): Same.
6381 (vr_values::extract_range_from_unary_expr): Call
6382 range_fold_unary_expr instead of extract_range_from_unary_expr.
6383 * wide-int-range.cc: Remove.
6384 * wide-int-range.h: Remove.
6385
6386 2019-10-02 Michael Meissner <meissner@linux.ibm.com>
6387
6388 * config/rs6000/rs6000.c (mem_operand_gpr): Use
6389 SIGNED_16BIT_OFFSET_EXTRA_P macro.
6390 (mem_operand_ds_form): Use SIGNED_16BIT_OFFSET_EXTRA_P macro.
6391 (rs6000_mode_dependent_address): Use SIGNED_16BIT_OFFSET_EXTRA_P
6392 macro.
6393
6394 2019-10-02 Joseph Myers <joseph@codesourcery.com>
6395
6396 * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Change
6397 condition on WIDTH macros to [__STDC_WANT_IEC_60559_BFP_EXT__ ||
6398 (__STDC_VERSION__ && __STDC_VERSION__ > 201710L)].
6399 * glimits.h: Likewise.
6400
6401 2019-10-03 Jakub Jelinek <jakub@redhat.com>
6402
6403 PR rtl-optimization/91976
6404 * expr.c (emit_block_move_hints): Don't call can_move_by_pieces if
6405 size is not CONST_INT_P, set pieces_ok to false in that case. Simplify
6406 CONST_INT_P (size) && pieces_ok to pieces_ok. Formatting fix.
6407
6408 2019-10-02 Martin Sebor <msebor@redhat.com>
6409
6410 PR tree-optimization/80936
6411 * builtins.def (bcmp, bcopy, bzero): Declare nonnull.
6412
6413 2019-10-02 Richard Sandiford <richard.sandiford@arm.com>
6414
6415 * cgraph.c (cgraph_node::rtl_info): Use SET_HARD_REG_SET
6416 instead of reg_class_contents[ALL_REGS].
6417
6418 2019-09-30 Jason Merrill <jason@redhat.com>
6419
6420 Add some hash_map_safe_* functions like vec_safe_*.
6421 * hash-map.h (default_hash_map_size): New variable.
6422 (create_ggc): Use it as default argument.
6423 (hash_map_maybe_create, hash_map_safe_get)
6424 (hash_map_safe_get_or_insert, hash_map_safe_put): New fns.
6425
6426 2019-10-02 Jan Hubicka <hubicka@ucw.cz>
6427
6428 * cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT,
6429 MAX_INLINE_INSNS_AUTO_O2_LIMIT): New.
6430 * ipa-inline.c (inline_insns_single, inline_insns_auto): New functions.
6431 (can_inline_edge_by_limits_p): Use it.
6432 (big_speedup_p): Use PARAM_INLINE_MIN_SPEEDUP_O2.
6433 (want_inline_small_function_p): Use O2 bounds.
6434 (edge_badness): LIkewise.
6435 * opts.c (default_options): Add OPT_finline_functions.
6436 * params.def (PARAM_INLINE_MIN_SPEEDUP_O2,
6437 PARAM_MAX_INLINE_INSNS_SINGLE_O2, PARAM_MAX_INLINE_INSNS_AUTO_O2):
6438 New parameters.
6439 * doc/invoke.texi (-finline-functions): Update documentation.
6440 (max-inline-insns-single-O2, max-inline-insns-auto-O2,
6441 inline-min-speedup-O2): Document.
6442 (early-inlining-insns-O2): Simplify docs.
6443
6444 2019-10-02 Alexander Monakov <amonakov@ispras.ru>
6445
6446 PR rtl-optimization/87047
6447 * ifcvt.c (average_cost): New static function. Use it...
6448 (noce_process_if_block): ... here.
6449
6450 2019-10-02 Aaron Sawdey <acsawdey@linux.ibm.com>
6451
6452 * config/rs6000/rs6000-protos.h (expand_block_move): Change prototype.
6453 * config/rs6000/rs6000-string.c (expand_block_move): Add
6454 might_overlap parm.
6455 * config/rs6000/rs6000.md (movmemsi): Add new pattern.
6456 (cpymemsi): Add might_overlap parm to expand_block_move() call.
6457
6458 2019-10-02 Aaron Sawdey <acsawdey@linux.ibm.com>
6459
6460 * builtins.c (expand_builtin_memory_copy_args): Add might_overlap parm.
6461 (expand_builtin_memcpy): Use might_overlap parm.
6462 (expand_builtin_mempcpy_args): Use might_overlap parm.
6463 (expand_builtin_memmove): Call expand_builtin_memory_copy_args.
6464 (expand_builtin_memory_copy_args): Add might_overlap parm.
6465 * expr.c (emit_block_move_via_cpymem): Rename to
6466 emit_block_move_via_pattern, add might_overlap parm, use cpymem
6467 or movmem optab as appropriate.
6468 (emit_block_move_hints): Add might_overlap parm, do the right
6469 thing for might_overlap==true.
6470 * expr.h (emit_block_move_hints): Update prototype.
6471
6472 2019-10-02 Eric Botcazou <ebotcazou@adacore.com>
6473
6474 * tree-eh.h (unsplit_eh_edges): Declare.
6475 * tree-eh.c (maybe_remove_unreachable_handlers): Detect more cases.
6476 (unsplit_eh_edges): New function wrapping unsplit_all_eh.
6477 * gimple-ssa-store-merging.c: Include cfganal.h cfgcleanup.h except.h.
6478 (struct store_immediate_info): Add lp_nr field.
6479 (store_immediate_info::store_immediate_info): Add NR2 parameter and
6480 initialize lp_nr with it.
6481 (struct merged_store_group): Add lp_nr and only_constants fields.
6482 (merged_store_group::merged_store_group): Initialize them.
6483 (merged_store_group::can_be_merged_into): Deal with them.
6484 (pass_store_merging): Rename terminate_and_release_chain into
6485 terminate_and_process_chain.
6486 (pass_store_merging::terminate_and_process_all_chains): Adjust to above
6487 renaming and remove useless assertions.
6488 (pass_store_merging::terminate_all_aliasing_chains): Small tweak.
6489 (stmts_may_clobber_ref_p): Be prepared for different basic blocks.
6490 (imm_store_chain_info::coalesce_immediate_stores): Use only_constants
6491 instead of always recomputing it and compare lp_nr.
6492 (imm_store_chain_info::output_merged_store): If the group is in an
6493 active EH region, register new stores if they can throw. Moreover,
6494 if the insertion has created new basic blocks, adjust the PHI nodes
6495 of the post landing pad.
6496 (imm_store_chain_info::output_merged_stores): If the original stores
6497 are in an active EH region, deregister them.
6498 (lhs_valid_for_store_merging_p): Prettify.
6499 (adjust_bit_pos): New function extracted from...
6500 (mem_valid_for_store_merging): ...here. Use it for the base address
6501 and also for the offset if it is the addition of a constant.
6502 (lp_nr_for_store): New function.
6503 (pass_store_merging::process_store): Change return type to bool.
6504 Call lp_nr_for_store to initialize the store info. Propagate the
6505 return status of various called functions to the return value.
6506 (store_valid_for_store_merging_p): New predicate.
6507 (enum basic_block_status): New enumeration.
6508 (get_status_for_store_merging): New function.
6509 (pass_store_merging::execute): If the function can throw and catch
6510 non-call exceptions, unsplit the EH edges on entry and clean up the
6511 CFG on exit if something changed. Call get_status_for_store_merging
6512 for every basic block and keep the chains open across basic blocks
6513 when possible. Terminate and process open chains at the end, if any.
6514
6515 2019-10-02 Richard Sandiford <richard.sandiford@arm.com>
6516
6517 * reginfo.c (globalize_reg): Fix shadowed variable in
6518 function_abis walk.
6519
6520 2019-10-02 Martin Jambor <mjambor@suse.cz>
6521
6522 * cgraph.c (symbol_table::create_edge): New parameter cloning_p,
6523 do not compute some stuff when set.
6524 (cgraph_node::create_edge): Likewise.
6525 (cgraph_node::create_indirect_edge): Renamed last parameter to
6526 coning_p and flipped its meaning, don't even calculate
6527 inline_failed when set.
6528 * cgraph.h (cgraph_node::create_edge): Add new parameter.
6529 (symbol_table::::create_edge): Likewise.
6530 (cgraph_node::create_indirect_edge): Rename last parameter, flip
6531 the default value.
6532 * cgraphclones.c (cgraph_edge::clone): Pass true cloning_p to all
6533 call graph edge creating functions.
6534
6535 2019-10-01 Jan Hubicka <hubicka@ucw.cz>
6536
6537 PR c++/91222
6538 * ipa-devirt.c (warn_types_mismatch): Fix conditional on anonymous
6539 namespace types.
6540
6541 2019-10-02 Shahab Vahedi <shahab@synopsys.com>
6542
6543 * config/arc/arc.h (ASM_SPEC): Pass -mcode-density.
6544
6545 2019-10-02 Richard Biener <rguenther@suse.de>
6546
6547 * tree-vectorizer.h (vect_transform_reduction): Declare.
6548 * tree-vect-stmts.c (vect_transform_stmt): Use it.
6549 * tree-vect-loop.c (vectorizable_reduction): Split out reduction
6550 stmt transform to ...
6551 (vect_transform_reduction): ... this.
6552
6553 2019-10-02 Tobias Burnus <tobias@codesourcery.com>
6554
6555 * omp-low.c (lower_omp_target): Dereference optional argument
6556 to work with the right pointer.
6557
6558 2019-10-02 Kwok Cheung Yeung <kcy@codesourcery.com>
6559
6560 * langhooks-def.h (LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT): Default to
6561 false.
6562 (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT.
6563 * langhooks.h (omp_is_optional_argument): New hook.
6564 * omp-general.c (omp_is_optional_argument): New.
6565 * omp-general.h (omp_is_optional_argument): New declaration.
6566 * omp-low.c (lower_omp_target): Create temporary for received value
6567 and take the address for new_var if the original variable was a
6568 DECL_BY_REFERENCE. Use size of referenced object when a
6569 pass-by-reference optional argument used as argument to firstprivate.
6570
6571 2019-10-02 Jakub Jelinek <jakub@redhat.com>
6572
6573 PR tree-optimization/91940
6574 * tree-vect-patterns.c: Include tree-vector-builder.h and
6575 vec-perm-indices.h.
6576 (vect_recog_rotate_pattern): Also handle __builtin_bswap16, either by
6577 unpromoting the argument back to uint16_t, or by converting into a
6578 rotate, or into shifts plus ior.
6579
6580 2019-10-02 Richard Biener <rguenther@suse.de>
6581
6582 * tree-vectorizer.h (stmt_vec_info_type::cycle_phi_info_type):
6583 New.
6584 (vect_transform_cycle_phi): Declare.
6585 * tree-vect-stmts.c (vect_transform_stmt): Call
6586 vect_transform_cycle_phi.
6587 * tree-vect-loop.c (vectorizable_reduction): Split out
6588 PHI transformation stage to ...
6589 (vect_transform_cycle_phi): ... here.
6590
6591 2019-10-02 Richard Sandiford <richard.sandiford@arm.com>
6592
6593 PR middle-end/91957
6594 * lra-lives.c (make_hard_regno_dead): Don't record conflicts for
6595 eliminable registers.
6596 (make_hard_regno_live): Likewise, and don't make them live.
6597
6598 2019-10-01 David Malcolm <dmalcolm@redhat.com>
6599
6600 * diagnostic-show-locus.c (layout::print_gap_in_line_numbering):
6601 Call pp_emit_prefix.
6602 (layout::print_source_line): Likewise.
6603 (layout::start_annotation_line): Likewise.
6604 (diagnostic_show_locus): Remove call to temporarily clear the
6605 prefix.
6606 (selftest::test_one_liner_fixit_remove): Add test coverage for the
6607 interaction of pp_set_prefix with rulers and fix-it hints.
6608 * diagnostic.c (default_diagnostic_finalizer): Temporarily clear
6609 prefix when calling diagnostic_show_locus, rather than destroying
6610 it afterwards.
6611 (print_parseable_fixits): Temporarily clear prefix.
6612 * pretty-print.c (pp_format): Save and restore line_length, rather
6613 than assuming it is zero.
6614 (pp_output_formatted_text): Remove assertion that line_length is
6615 zero.
6616
6617 2019-10-01 Jan Hubicka <hubicka@ucw.cz>
6618
6619 * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p):
6620 Rename to ...
6621 (nonoverlapping_refs_since_match_p): ... this; handle also
6622 ARRAY_REFs.
6623 (alias_stats): Update stats.
6624 (dump_alias_stats): Likewise.
6625 (cheap_array_ref_low_bound): New function.
6626 (aliasing_matching_component_refs_p): Add partial_overlap
6627 argument;
6628 pass it to nonoverlapping_refs_since_match_p.
6629 (aliasing_component_refs_walk): Update call of
6630 aliasing_matching_component_refs_p
6631 (nonoverlapping_array_refs_p): New function.
6632 (decl_refs_may_alias_p, indirect_ref_may_alias_decl_p,
6633 indirect_refs_may_alias_p): Update calls of
6634 nonoverlapping_refs_since_match_p.
6635
6636 2019-10-01 Maya Rashish <coypu@sdf.org>
6637
6638 PR target/85401
6639 * ira-color.c (allocno_copy_cost_saving): Call
6640 ira_init_register_move_cost_if_necessary.
6641
6642 2019-10-01 Maciej W. Rozycki <macro@wdc.com>
6643
6644 * Makefile.in (gnat_install_lib): New variable.
6645 * configure.ac: Substitute it.
6646 * configure: Regenerate.
6647
6648 2019-10-01 Jan Hubicka <hubicka@ucw.cz>
6649
6650 PR lto/91222
6651 * ipa-devirt.c (warn_types_mismatch): Do not ICE when anonymous type
6652 is matched with non-C++ type
6653
6654 2019-10-01 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6655
6656 * tree-if-conv.c (tree_if_conversion): Move call to ifcvt_local_dce
6657 after local CSE.
6658
6659 2019-10-01 Jan Hubicka <hubicka@ucw.cz>
6660
6661 * doc/invoke.texi (early-inlining-insns-O2): Document.
6662 (early-inlining-insns): Update.
6663 * params.def (early-inlining-insns-O2): New bound.
6664 (early-inlining-insns): Update docs.
6665 * ipa-inline.c (want_early_inline_function_p): Use new bound.
6666
6667 2019-10-01 Oleg Endo <olegendo@gcc.gnu.org>
6668
6669 PR target/88562
6670 * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Use
6671 sh_check_add_incdec_notes to preserve REG_INC notes when replacing
6672 a memory access insn.
6673
6674 2019-10-01 Bill Schmidt <wschmidt@linux.ibm.com>
6675
6676 * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Don't swap
6677 vpmsumd.
6678
6679 2019-10-01 Ilya Leoshkevich <iii@linux.ibm.com>
6680
6681 PR target/77918
6682 * config/s390/s390.c (s390_expand_vec_compare): Use
6683 gen_vec_cmpordered and gen_vec_cmpunordered.
6684 * config/s390/vector.md (vec_cmpuneq, vec_cmpltgt, vec_ordered,
6685 vec_unordered): Delete.
6686 (vec_ordered<mode>): Rename to vec_cmpordered<mode>.
6687 (vec_unordered<mode>): Rename to vec_cmpunordered<mode>.
6688 (VEC_CMP_EXPAND): New iterator for the generic dispatcher.
6689 (vec_cmp<code>): Generic dispatcher.
6690
6691 2019-10-01 Ilya Leoshkevich <iii@linux.ibm.com>
6692
6693 PR target/77918
6694 * config/s390/vector.md (V_HW): Add V1TI in order to make
6695 vcond$a$b generate vcondv1tiv1tf.
6696
6697 2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
6698
6699 PR rtl-optimization/91948
6700 * ira-build.c (ira_create_allocno): Initialize
6701 ALLOCNO_CROSSED_CALLS_ABIS.
6702 * ira-color.c (allocno_reload_assign): Pass hard_regno rather
6703 than regno to ira_need_caller_save_p.
6704
6705 2019-10-01 Alexandre Oliva <oliva@adacore.com>
6706
6707 * config/i386/i386-options.c
6708 (ix86_recompute_optlev_based_flags): New, moved out of...
6709 (ix86_option_override_internal): ... this. Call it.
6710 (ix86_override_options_after_change): Call it here too.
6711
6712 PR debug/91507
6713 * dwarf2out.c (override_type_for_decl_p): New.
6714 (gen_variable_die): Use it.
6715
6716 2019-10-01 Richard Biener <rguenther@suse.de>
6717
6718 * tree-vect-loop.c (vectorizable_reduction): Move variables
6719 to where they are used.
6720
6721 2019-10-01 Segher Boessenkool <segher@kernel.crashing.org>
6722
6723 * regrename.c (hide_operands): Use pc_rtx instead of cc0_rtx.
6724 (build_def_use): Use PC instead of CC0 in a comment.
6725
6726 2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
6727
6728 * rtl.def (CLOBBER_HIGH): Delete.
6729 * doc/rtl.texi (clobber_high): Remove documentation.
6730 * rtl.h (SET_DEST): Remove CLOBBER_HIGH from the list of codes.
6731 (reg_is_clobbered_by_clobber_high): Delete.
6732 (gen_hard_reg_clobber_high): Likewise.
6733 * alias.c (record_set): Remove CLOBBER_HIGH handling.
6734 * cfgexpand.c (expand_gimple_stmt): Likewise.
6735 * combine-stack-adj.c (single_set_for_csa): Likewise.
6736 * combine.c (find_single_use_1, set_nonzero_bits_and_sign_copies)
6737 (can_combine_p, is_parallel_of_n_reg_sets, try_combine)
6738 (record_dead_and_set_regs_1, reg_dead_at_p_1): Likewise.
6739 * cse.c (invalidate_reg): Remove clobber_high parameter.
6740 (invalidate): Update call accordingly.
6741 (canonicalize_insn): Remove CLOBBER_HIGH handling.
6742 (invalidate_from_clobbers, invalidate_from_sets_and_clobbers)
6743 (count_reg_usage, insn_live_p): Likewise.
6744 * cselib.h (cselib_invalidate_rtx): Remove sett argument.
6745 * cselib.c (cselib_invalidate_regno, cselib_invalidate_rtx): Likewise.
6746 (cselib_invalidate_rtx_note_stores): Update call accordingly.
6747 (cselib_expand_value_rtx_1): Remove CLOBBER_HIGH handling.
6748 (cselib_invalidate_regno, cselib_process_insn): Likewise.
6749 * dce.c (deletable_insn_p, mark_nonreg_stores_1): Likewise.
6750 (mark_nonreg_stores_2): Likewise.
6751 * df-scan.c (df_find_hard_reg_defs, df_uses_record): Likewise.
6752 (df_get_call_refs): Likewise.
6753 * dwarf2out.c (mem_loc_descriptor): Likewise.
6754 * emit-rtl.c (verify_rtx_sharing): Likewise.
6755 (copy_insn_1, copy_rtx_if_shared_1): Likewise.
6756 (hard_reg_clobbers_high, gen_hard_reg_clobber_high): Delete.
6757 * genconfig.c (walk_insn_part): Remove CLOBBER_HIGH handling.
6758 * genemit.c (gen_exp, gen_insn): Likewise.
6759 * genrecog.c (validate_pattern, remove_clobbers): Likewise.
6760 * haifa-sched.c (haifa_classify_rtx): Likewise.
6761 * ira-build.c (create_insn_allocnos): Likewise.
6762 * ira-costs.c (scan_one_insn): Likewise.
6763 * ira.c (equiv_init_movable_p, memref_referenced_p): Likewise.
6764 (rtx_moveable_p, interesting_dest_for_shprep): Likewise.
6765 * jump.c (mark_jump_label_1): Likewise.
6766 * lra-int.h (lra_insn_reg::clobber_high): Delete.
6767 * lra-eliminations.c (lra_eliminate_regs_1): Remove CLOBBER_HIGH
6768 handling.
6769 (mark_not_eliminable): Likewise.
6770 * lra-lives.c (process_bb_lives): Likewise.
6771 * lra.c (new_insn_reg): Remove clobber_high parameter.
6772 (collect_non_operand_hard_regs): Likewise. Update call to new
6773 insn_reg. Remove CLOBBER_HIGH handling.
6774 (lra_set_insn_recog_data): Remove CLOBBER_HIGH handling. Update call
6775 to collect_non_operand_hard_regs.
6776 (add_regs_to_insn_regno_info): Remove CLOBBER_HIGH handling.
6777 Update call to new_insn_reg.
6778 (lra_update_insn_regno_info): Remove CLOBBER_HIGH handling.
6779 * postreload.c (reload_cse_simplify, reload_combine_note_use)
6780 (move2add_note_store): Likewise.
6781 * print-rtl.c (print_pattern): Likewise.
6782 * recog.c (store_data_bypass_p_1, store_data_bypass_p): Likewise.
6783 (if_test_bypass_p): Likewise.
6784 * regcprop.c (kill_clobbered_value, kill_set_value): Likewise.
6785 * reginfo.c (reg_scan_mark_refs): Likewise.
6786 * reload1.c (maybe_fix_stack_asms, eliminate_regs_1): Likewise.
6787 (elimination_effects, mark_not_eliminable, scan_paradoxical_subregs)
6788 (forget_old_reloads_1): Likewise.
6789 * reorg.c (find_end_label, try_merge_delay_insns, redundant_insn)
6790 (own_thread_p, fill_simple_delay_slots, fill_slots_from_thread)
6791 (dbr_schedule): Likewise.
6792 * resource.c (update_live_status, mark_referenced_resources)
6793 (mark_set_resources): Likewise.
6794 * rtl.c (copy_rtx): Likewise.
6795 * rtlanal.c (reg_referenced_p, set_of_1, single_set_2, noop_move_p)
6796 (note_pattern_stores): Likewise.
6797 (reg_is_clobbered_by_clobber_high): Delete.
6798 * sched-deps.c (sched_analyze_reg, sched_analyze_insn): Remove
6799 CLOBBER_HIGH handling.
6800
6801 2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
6802
6803 PR target/91452
6804 * config/aarch64/aarch64.h (ARM_PCS_TLSDESC): New arm_pcs.
6805 * config/aarch64/aarch64-protos.h (aarch64_tlsdesc_abi_id): Declare.
6806 * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
6807 Handle ARM_PCS_TLSDESC.
6808 (aarch64_tlsdesc_abi_id): New function.
6809 * config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use a call
6810 rtx instead of a list of clobbers and clobber_highs.
6811 (tlsdesc_small_<mode>): Update accordingly.
6812
6813 2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
6814
6815 * config/aarch64/aarch64-protos.h (aarch64_expand_call): Take an
6816 extra callee_abi argument.
6817 * config/aarch64/aarch64.c (aarch64_expand_call): Likewise.
6818 Insert a CALLEE_ABI unspec into the call pattern as the second
6819 element in the PARALLEL.
6820 (aarch64_simd_call_p): Delete.
6821 (aarch64_insn_callee_abi): Get the arm_pcs of the callee from
6822 the new CALLEE_ABI element of the PARALLEL.
6823 (aarch64_init_cumulative_args): Get the arm_pcs of the callee
6824 from the function type, if given.
6825 (aarch64_function_arg_advance): Handle ARM_PCS_SIMD.
6826 (aarch64_function_arg): Likewise. Return the arm_pcs of the callee
6827 when passed the function_arg_info end marker.
6828 (aarch64_output_mi_thunk): Pass the arm_pcs of the callee as the
6829 final argument of gen_sibcall.
6830 * config/aarch64/aarch64.md (UNSPEC_CALLEE_ABI): New unspec.
6831 (call): Make operand 2 a const_int_operand and pass it to expand_call.
6832 Wrap it in an UNSPEC_CALLEE_ABI unspec for the dummy define_expand
6833 pattern.
6834 (call_value): Likewise operand 3.
6835 (sibcall): Likewise operand 2. Place the unspec before rather than
6836 after the return.
6837 (sibcall_value): Likewise operand 3.
6838 (*call_insn, *call_value_insn): Include an UNSPEC_CALLEE_ABI.
6839 (tlsgd_small_<mode>, *tlsgd_small_<mode>): Likewise.
6840 (*sibcall_insn, *sibcall_value_insn): Likewise. Remove empty
6841 constraint strings.
6842 (untyped_call): Pass const0_rtx as the callee ABI to gen_call.
6843
6844 2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
6845
6846 * regs.h (HARD_REGNO_CALLER_SAVE_MODE): Update call to
6847 choose_hard_reg_mode.
6848 * config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
6849
6850 2019-10-01 Segher Boessenkool <segher@kernel.crashing.org>
6851
6852 * doc/md.texi (vec_pack_trunc_@var{m}): Fix typo.
6853 (vec_pack_sfix_trunc_@var{m}, vec_pack_ufix_trunc_@var{m}): Ditto.
6854 (vec_packs_float_@var{m}, vec_packu_float_@var{m}): Ditto.
6855
6856 2019-09-30 David Malcolm <dmalcolm@redhat.com>
6857
6858 * diagnostic-show-locus.c (line_label::line_label): Initialize
6859 m_has_vbar.
6860 (line_label::comparator): Reverse the sort order by m_state_idx,
6861 so that when the list is walked backwards the labels appear in
6862 order of insertion into the rich_location.
6863 (line_label::m_has_vbar): New field.
6864 (layout::print_any_labels): When dealing with multiple labels at
6865 the same line and column, only print vertical bars for the one
6866 with the highest label_line.
6867 (selftest::test_one_liner_labels): Update test for multiple labels
6868 to expect the labels to be in the order of insertion into the
6869 rich_location. Add a test for many such labels, where the column
6870 numbers are out-of-order relative to the insertion order.
6871
6872 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
6873
6874 * config/i386/i386.h (ix86_frame::expensive_p): New field.
6875 (ix86_frame::expensive_count): Likewise.
6876 * config/i386/i386.c (ix86_compute_frame_layout): Make the choice
6877 of use_fast_prologue_epilogue robust against incidental changes
6878 in function size.
6879
6880 2019-09-30 Ilya Leoshkevich <iii@linux.ibm.com>
6881
6882 PR target/77918
6883 * config/s390/vector.md (vec_unordered<mode>): Call
6884 gen_vec_ordered<mode>.
6885
6886 2019-09-30 Yuliang Wang <yuliang.wang@arm.com>
6887
6888 * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3):
6889 New pattern for ASRD.
6890 * config/aarch64/iterators.md (UNSPEC_ASRD): New unspec.
6891 * internal-fn.def (IFN_DIV_POW2): New internal function.
6892 * optabs.def (sdiv_pow2_optab): New optab.
6893 * tree-vect-patterns.c (vect_recog_divmod_pattern):
6894 Modify pattern to support new operation.
6895 * doc/md.texi (sdiv_pow2$var{m3}): Documentation for the above.
6896 * doc/sourcebuild.texi (vect_sdiv_pow2_si):
6897 Document new target selector.
6898
6899 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
6900
6901 * config/aarch64/aarch64.c (aarch64_layout_frame): Use crtl->abi
6902 to test whether we're compiling a vector PCS function and to test
6903 whether the function needs to save a particular register.
6904 Remove the vector PCS handling of df_set_regs_ever_live.
6905 (aarch64_components_for_bb): Use crtl->abi to test whether
6906 the function needs to save a particular register.
6907 (aarch64_process_components): Use crtl->abi to test whether
6908 we're compiling a vector PCS function.
6909 (aarch64_expand_prologue, aarch64_expand_epilogue): Likewise.
6910 (aarch64_epilogue_uses): Remove handling of vector PCS functions.
6911
6912 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
6913
6914 * config/aarch64/aarch64-protos.h (aarch64_use_simple_return_insn_p):
6915 Delete.
6916 * config/aarch64/aarch64.c (aarch64_components_for_bb): Check
6917 whether the block calls a function that clobbers more registers
6918 than the current function is allowed to.
6919 (aarch64_use_simple_return_insn_p): Delete.
6920 * config/aarch64/aarch64.md (simple_return): Remove condition.
6921
6922 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
6923
6924 * function-abi.h (function_abi_aggregator): New class.
6925 * function-abi.cc (function_abi_aggregator::caller_save_regs): New
6926 function.
6927 * ira.c (update_equiv_regs_prescan): New function. Call
6928 set_paradoxical_subreg here rather than...
6929 (update_equiv_regs): ...here.
6930 (ira): Call update_equiv_regs_prescan.
6931
6932 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
6933
6934 * hard-reg-set.h (regs_invalidated_by_call): Only define if
6935 IN_TARGET_CODE.
6936 (call_used_or_fixed_regs): Likewise.
6937 (call_used_or_fixed_reg_p): Likewise.
6938 * reginfo.c (regs_invalidated_by_call): New macro.
6939
6940 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
6941
6942 * shrink-wrap.c: Include function-abi.h.
6943 (requires_stack_frame_p): Use crtl->abi to test whether the
6944 current function can use a register without saving it first.
6945
6946 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
6947
6948 * sel-sched-ir.h (_def::crosses_call): Replace with...
6949 (_def::crossed_call_abis): ..this new field.
6950 (def_list_add): Take a mask of ABIs instead of a crosses_call
6951 boolean.
6952 * sel-sched-ir.c (def_list_add): Likewise. Update initialization
6953 of _def accordingly.
6954 * sel-sched.c: Include function-abi.h.
6955 (hard_regs_data::regs_for_call_clobbered): Delete.
6956 (reg_rename::crosses_call): Replace with...
6957 (reg_rename::crossed_call_abis): ...this new field.
6958 (fur_static_params::crosses_call): Replace with...
6959 (fur_static_params::crossed_call_abis): ...this new field.
6960 (init_regs_for_mode): Don't initialize sel_hrd.regs_for_call_clobbered.
6961 (init_hard_regs_data): Use crtl->abi to test which registers the
6962 current function would need to save before it uses them.
6963 (mark_unavailable_hard_regs): Update handling of call-clobbered
6964 registers, using call_clobbers_in_region to find out which registers
6965 might be call-clobbered (but without taking -fipa-ra into account
6966 for now). Remove separate handling of partially call-clobbered
6967 registers.
6968 (verify_target_availability): Use crossed_call_abis instead of
6969 crosses_call.
6970 (get_spec_check_type_for_insn, find_used_regs): Likewise.
6971 (fur_orig_expr_found, fur_on_enter, fur_orig_expr_not_found): Likewise.
6972
6973 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
6974
6975 * sched-deps.c (deps_analyze_insn): Use the ABI of the target
6976 function to test whether a register is fully or partly clobbered.
6977
6978 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
6979
6980 * rtlanal.c: Include function-abi.h.
6981 (reg_set_p): Use insn_callee_abi to get the ABI of the called
6982 function and clobbers_reg_p to test whether the register
6983 is call-clobbered.
6984 (find_all_hard_reg_sets): When implicit is true, use insn_callee_abi
6985 to get the ABI of the called function and full_reg_clobbers to
6986 get the set of fully call-clobbered registers. Warn about the
6987 pitfalls of using this mode.
6988
6989 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
6990
6991 * reload.c: Include function-abi.h.
6992 (find_equiv_reg): Use clobbers_reg_p to test whether either
6993 of the equivalent registers is clobbered by a call.
6994 * reload1.c: Include function-abi.h.
6995 (reg_reloaded_call_part_clobbered): Delete.
6996 (reload): Use crtl->abi to test which registers would need
6997 saving in the prologue before use.
6998 (find_reg): Likewise.
6999 (emit_reload_insns): Remove code for reg_reloaded_call_part_clobbered.
7000 (reload_as_needed): Likewise. Use full_and_partial_reg_clobbers
7001 instead of call_used_or_fixed_regs | reg_reloaded_call_part_clobbered.
7002
7003 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7004
7005 * regrename.h (du_head::call_clobber_mask): New field.
7006 (du_head::need_caller_save_reg): Replace with...
7007 (du_head::call_abis): ...this new field.
7008 * regrename.c: Include function-abi.h.
7009 (call_clobbered_in_chain_p): New function.
7010 (check_new_reg_p): Use crtl->abi when deciding whether a register
7011 is free for use after RA. Use call_clobbered_in_chain_p to test
7012 whether a candidate register would be clobbered by a call.
7013 (find_rename_reg): Don't add call-clobber conflicts here.
7014 (rename_chains): Check call_abis instead of need_caller_save_reg.
7015 (merge_chains): Update for changes to du_head.
7016 (build_def_use): Use insn_callee_abi to get the ABI of the call insn
7017 target. Record the ABI identifier in call_abis and the set of
7018 fully or partially clobbered registers in call_clobber_mask.
7019 Add fully-clobbered registers to hard_conflicts here rather
7020 than in find_rename_reg.
7021 * config/aarch64/cortex-a57-fma-steering.c: Include function-abi.h.
7022 (rename_single_chain): Check call_abis instead of need_caller_save_reg.
7023 * config/aarch64/falkor-tag-collision-avoidance.c: Include
7024 function-abi.h.
7025 * config/c6x/c6x.c: Likewise.
7026
7027 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7028
7029 * regcprop.c (copyprop_hardreg_forward_1): Use the recorded
7030 mode of the register when deciding whether it is no longer
7031 available after a call.
7032
7033 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7034
7035 * recog.c: Include function-abi.h.
7036 (peep2_find_free_register): Use crtl->abi when deciding whether
7037 a register is free for use after RA.
7038
7039 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7040
7041 * postreload-gcse.c: Include regs.h and function-abi.h.
7042 (record_opr_changes): Use insn_callee_abi to get the ABI of the
7043 call insn target. Conservatively assume that partially-clobbered
7044 registers are altered.
7045
7046 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7047
7048 * postreload.c (reload_combine_recognize_pattern): Use crtl->abi
7049 when deciding whether a register is free for use after RA.
7050 (reload_combine): Remove unnecessary use of fixed_reg_set.
7051 (reload_cse_move2add): Use insn_callee_abi to get the ABI of the
7052 call insn target. Use reg_mode when testing whether a register
7053 is no longer available.
7054
7055 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7056
7057 * target.def (return_call_with_max_clobbers): Delete.
7058 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): Delete.
7059 * doc/tm.texi: Regenerate.
7060 * config/aarch64/aarch64.c (aarch64_return_call_with_max_clobbers)
7061 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): Delete.
7062 * lra-int.h (lra_reg::actual_call_used_reg_set): Delete.
7063 (lra_reg::call_insn): Delete.
7064 * lra.c: Include function-abi.h.
7065 (initialize_lra_reg_info_element): Don't initialize the fields above.
7066 (lra): Use crtl->abi to test whether the current function needs to
7067 save a register in the prologue. Remove special pre-inheritance
7068 lra_create_live_ranges pass for flag_ipa_ra.
7069 * lra-assigns.c: Include function-abi.h
7070 (find_hard_regno_for_1): Use crtl->abi to test whether the current
7071 function needs to save a register in the prologue.
7072 (lra_assign): Assert that registers aren't allocated to a
7073 conflicting register, rather than checking only for overlaps
7074 with call_used_or_fixed_regs. Do this even for flag_ipa_ra,
7075 and for registers that are not live across a call.
7076 * lra-constraints.c (last_call_for_abi): New variable.
7077 (full_and_partial_call_clobbers): Likewise.
7078 (setup_next_usage_insn): Remove the register from
7079 full_and_partial_call_clobbers.
7080 (need_for_call_save_p): Use call_clobbered_in_region_p to test
7081 whether the register needs a caller save.
7082 (need_for_split_p): Use full_and_partial_reg_clobbers instead
7083 of call_used_or_fixed_regs.
7084 (inherit_in_ebb): Initialize and maintain last_call_for_abi and
7085 full_and_partial_call_clobbers.
7086 * lra-lives.c (check_pseudos_live_through_calls): Replace
7087 last_call_used_reg_set and call_insn arguments with an abi argument.
7088 Remove handling of lra_reg::call_insn. Use function_abi::mode_clobbers
7089 as the set of conflicting registers.
7090 (calls_have_same_clobbers_p): Delete.
7091 (process_bb_lives): Track the ABI of the last call instead of an
7092 insn/HARD_REG_SET pair. Update calls to
7093 check_pseudos_live_through_calls. Use eh_edge_abi to calculate
7094 the set of registers that could be clobbered by an EH edge.
7095 Include partially-clobbered as well as fully-clobbered registers.
7096 (lra_create_live_ranges_1): Don't initialize lra_reg::call_insn.
7097 * lra-remat.c: Include function-abi.h.
7098 (call_used_regs_arr_len, call_used_regs_arr): Delete.
7099 (set_bb_regs): Use insn_callee_abi to get the set of call-clobbered
7100 registers and bitmap_view to combine them into dead_regs.
7101 (call_used_input_regno_present_p): Take a function_abi argument
7102 and use it to test whether a register is call-clobbered.
7103 (calculate_gen_cands): Use insn_callee_abi to get the ABI of the
7104 call insn target. Update tje call to call_used_input_regno_present_p.
7105 (do_remat): Likewise.
7106 (lra_remat): Remove the initialization of call_used_regs_arr_len
7107 and call_used_regs_arr.
7108
7109 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7110
7111 * loop-iv.c: Include regs.h and function-abi.h.
7112 (simplify_using_initial_values): Use insn_callee_abi to get the
7113 ABI of the call insn target. Conservatively assume that
7114 partially-clobbered registers are altered.
7115
7116 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7117
7118 * function-abi.h (call_clobbers_in_region): Declare.
7119 (call_clobbered_in_region_p): New function.
7120 * function-abi.cc (call_clobbers_in_region): Likewise.
7121 * ira-int.h: Include function-abi.h.
7122 (ira_allocno::crossed_calls_abis): New field.
7123 (ALLOCNO_CROSSED_CALLS_ABIS): New macro.
7124 (ira_need_caller_save_regs): New function.
7125 (ira_need_caller_save_p): Likewise.
7126 * ira.c (setup_reg_renumber): Use ira_need_caller_save_p instead
7127 of call_used_or_fixed_regs.
7128 (do_reload): Use crtl->abi to test whether the current function
7129 needs to save a register in the prologue. Count registers that
7130 need to be saved rather than registers that don't.
7131 * ira-build.c (create_cap_allocno): Copy ALLOCNO_CROSSED_CALLS_ABIS.
7132 Remove unnecessary | from ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
7133 (propagate_allocno_info): Merge ALLOCNO_CROSSED_CALLS_ABIS too.
7134 (propagate_some_info_from_allocno): Likewise.
7135 (copy_info_to_removed_store_destinations): Likewise.
7136 (ira_flattening): Say that ALLOCNO_CROSSED_CALLS_ABIS and
7137 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS are handled conservatively.
7138 (ira_build): Use ira_need_caller_save_regs instead of
7139 call_used_or_fixed_regs.
7140 * ira-color.c (calculate_saved_nregs): Use crtl->abi to test
7141 whether the current function would need to save a register
7142 before using it.
7143 (calculate_spill_cost): Likewise.
7144 (allocno_reload_assign): Use ira_need_caller_save_regs and
7145 ira_need_caller_save_p instead of call_used_or_fixed_regs.
7146 * ira-conflicts.c (ira_build_conflicts): Use
7147 ira_need_caller_save_regs rather than call_used_or_fixed_regs
7148 as the set of call-clobbered registers. Remove the
7149 call_used_or_fixed_regs mask from the calculation of
7150 temp_hard_reg_set and mask its use instead. Remove special
7151 handling of partially-clobbered registers.
7152 * ira-costs.c (ira_tune_allocno_costs): Use ira_need_caller_save_p.
7153 * ira-lives.c (process_bb_node_lives): Use mode_clobbers to
7154 calculate the set of conflicting registers for calls that
7155 can throw. Record the ABIs of calls in ALLOCNO_CROSSED_CALLS_ABIS.
7156 Use full_and_partial_reg_clobbers rather than full_reg_clobbers
7157 for the calculation of ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
7158 Use eh_edge_abi to calculate the set of registers that could
7159 be clobbered by an EH edge. Include partially-clobbered as
7160 well as fully-clobbered registers.
7161
7162 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7163
7164 * haifa-sched.c: Include function-abi.h.
7165 (alloc_global_sched_pressure_data): Use crtl->abi to check whether
7166 the function would need to save a register before using it.
7167
7168 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7169
7170 * gcse.c: Include function-abi.h.
7171 (compute_hash_table_work): Use insn_callee_abi to get the ABI of
7172 the call insn target. Invalidate partially call-clobbered
7173 registers as well as fully call-clobbered ones.
7174
7175 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7176
7177 * function.c (aggregate_value_p): Work out which ABI the
7178 function is using before testing which registers are at least
7179 partly preserved by a call.
7180
7181 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7182
7183 * early-remat.c: Include regs.h and function-abi.h.
7184 (early_remat::maybe_add_candidate): Don't check for call-clobbered
7185 registers here.
7186 (early_remat::restrict_remat_for_unavail_regs): New function.
7187 (early_remat::restrict_remat_for_call): Likewise.
7188 (early_remat::process_block): Before calling emit_remat_insns
7189 for a previous call in the block, invalidate any candidates
7190 that would clobber call-preserved registers.
7191 (early_remat::emit_remat_insns_for_block): Likewise for the
7192 final call in a block. Do the same thing for live-in registers
7193 when calling emit_remat_insns at the head of a block.
7194
7195 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7196
7197 * df-scan.c (df_get_entry_block_def_set): Use crtl->abi to test
7198 whether the current function needs to save at least part of a
7199 register before using it.
7200 (df_get_exit_block_use_set): Likewise for epilogue restores.
7201
7202 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7203
7204 * df-problems.c: Include regs.h and function-abi.h.
7205 (df_rd_problem_data): Rename sparse_invalidated_by_call to
7206 sparse_invalidated_by_eh and dense_invalidated_by_call to
7207 dense_invalidated_by_eh.
7208 (df_print_bb_index): Update accordingly.
7209 (df_rd_alloc, df_rd_start_dump, df_rd_confluence_n): Likewise.
7210 (df_lr_confluence_n): Use eh_edge_abi to get the set of registers
7211 that are clobbered by an EH edge. Clobber partially-clobbered
7212 registers as well as fully-clobbered ones.
7213 (df_md_confluence_n): Likewise.
7214 (df_rd_local_compute): Likewise. Update for changes to
7215 df_rd_problem_data.
7216 * df-scan.c (df_scan_start_dump): Use eh_edge_abi to get the set
7217 of registers that are clobbered by an EH edge. Includde partially-
7218 clobbered registers as well as fully-clobbered ones.
7219
7220 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7221
7222 * cselib.c (cselib_process_insn): If we know what mode a
7223 register was set in, check whether it is clobbered in that
7224 mode by a call. Only fall back to reg_raw_mode if that fails.
7225
7226 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7227
7228 * cse.c: Include regs.h and function-abi.h.
7229 (invalidate_for_call): Take the call insn as an argument.
7230 Use insn_callee_abi to get the ABI of the call and invalidate
7231 partially clobbered registers as well as fully clobbered ones.
7232 (cse_insn): Update call accordingly.
7233
7234 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7235
7236 * combine.c: Include function-abi.h.
7237 (record_dead_and_set_regs): Use insn_callee_abi to get the ABI
7238 of the target of call insns. Invalidate partially-clobbered
7239 registers as well as fully-clobbered ones.
7240
7241 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7242
7243 * cfgloopanal.c: Include regs.h and function-abi.h.
7244 (init_set_costs): Use default_function_abi to test whether
7245 a general register is call-clobbered.
7246
7247 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7248
7249 * cfgcleanup.c (old_insns_match_p): Compare the ABIs of calls
7250 instead of the call-clobbered sets.
7251
7252 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7253
7254 * caller-save.c (setup_save_areas): Remove redundant |s of
7255 fixed_reg_set.
7256 (save_call_clobbered_regs): Likewise. Use the call ABI rather
7257 than call_used_or_fixed_regs to decide whether a REG_RETURNED
7258 value is useful.
7259
7260 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7261
7262 * rtl.h (predefined_function_abi): Declare.
7263 (choose_hard_reg_mode): Take a pointer to a predefined_function_abi
7264 instead of a boolean call_save flag.
7265 * config/gcn/gcn.c (gcn_hard_regno_caller_save_mode): Update call
7266 accordingly.
7267 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
7268 * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
7269 * config/mips/mips.c (mips_hard_regno_caller_save_mode): Likewise.
7270 * config/msp430/msp430.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
7271 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
7272 * config/sh/sh.c (sh_hard_regno_caller_save_mode): Likewise.
7273 * reginfo.c (init_reg_modes_target): Likewise.
7274 (choose_hard_reg_mode): Take a pointer to a predefined_function_abi
7275 instead of a boolean call_save flag.
7276 * targhooks.c: Include function-abi.h.
7277 (default_dwarf_frame_reg_mode): Update call to choose_hard_reg_mode,
7278 using eh_edge_abi to choose the mode.
7279
7280 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7281
7282 * target.def (hard_regno_call_part_clobbered): Take an ABI
7283 identifier instead of an rtx_insn.
7284 * doc/tm.texi: Regenerate.
7285 * hooks.h (hook_bool_insn_uint_mode_false): Delete.
7286 (hook_bool_uint_uint_mode_false): New function.
7287 * hooks.c (hook_bool_insn_uint_mode_false): Delete.
7288 (hook_bool_uint_uint_mode_false): New function.
7289 * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
7290 Take an ABI identifier instead of an rtx_insn.
7291 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Likewise.
7292 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Likewise.
7293 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
7294 * config/pru/pru.c (pru_hard_regno_call_part_clobbered): Likewise.
7295 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
7296 Likewise.
7297 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Likewise.
7298 * cselib.c: Include function-abi.h.
7299 (cselib_process_insn): Update call to
7300 targetm.hard_regno_call_part_clobbered, using insn_callee_abi
7301 to get the appropriate ABI identifier.
7302 * function-abi.cc (predefined_function_abi::initialize): Update call
7303 to targetm.hard_regno_call_part_clobbered.
7304 * ira-conflicts.c (ira_build_conflicts): Likewise.
7305 * ira-costs.c (ira_tune_allocno_costs): Likewise.
7306 * lra-constraints.c: Include function-abi.h.
7307 (need_for_call_save_p): Update call to
7308 targetm.hard_regno_call_part_clobbered, using insn_callee_abi
7309 to get the appropriate ABI identifier.
7310 * lra-lives.c (check_pseudos_live_through_calls): Likewise.
7311 * regcprop.c (copyprop_hardreg_forward_1): Update call
7312 to targetm.hard_regno_call_part_clobbered.
7313 * reginfo.c (choose_hard_reg_mode): Likewise.
7314 * regrename.c (check_new_reg_p): Likewise.
7315 * reload.c (find_equiv_reg): Likewise.
7316 * reload1.c (emit_reload_insns): Likewise.
7317 * sched-deps.c: Include function-abi.h.
7318 (deps_analyze_insn): Update call to
7319 targetm.hard_regno_call_part_clobbered, using insn_callee_abi
7320 to get the appropriate ABI identifier.
7321 * sel-sched.c (init_regs_for_mode, mark_unavailable_hard_regs): Update
7322 call to targetm.hard_regno_call_part_clobbered.
7323 * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
7324
7325 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7326
7327 * config/i386/i386.c: Include function-abi.h.
7328 (ix86_avx_u128_mode_needed): Treat function calls as AVX_U128_ANY
7329 if they preserve some 256-bit or 512-bit SSE registers.
7330
7331 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7332
7333 * target.def (insn_callee_abi): New hook.
7334 (remove_extra_call_preserved_regs): Delete.
7335 * doc/tm.texi.in (TARGET_INSN_CALLEE_ABI): New macro.
7336 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): Delete.
7337 * doc/tm.texi: Regenerate.
7338 * targhooks.h (default_remove_extra_call_preserved_regs): Delete.
7339 * targhooks.c (default_remove_extra_call_preserved_regs): Delete.
7340 * config/aarch64/aarch64.c (aarch64_simd_call_p): Constify the
7341 insn argument.
7342 (aarch64_remove_extra_call_preserved_regs): Delete.
7343 (aarch64_insn_callee_abi): New function.
7344 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): Delete.
7345 (TARGET_INSN_CALLEE_ABI): New macro.
7346 * rtl.h (get_call_fndecl): Declare.
7347 (cgraph_rtl_info): Fix formatting. Tweak comment for
7348 function_used_regs. Remove function_used_regs_valid.
7349 * rtlanal.c (get_call_fndecl): Moved from final.c
7350 * function-abi.h (insn_callee_abi): Declare.
7351 (target_function_abi_info): Mention insn_callee_abi.
7352 * function-abi.cc (fndecl_abi): Handle flag_ipa_ra in a similar
7353 way to get_call_reg_set_usage did.
7354 (insn_callee_abi): New function.
7355 * regs.h (get_call_reg_set_usage): Delete.
7356 * final.c: Include function-abi.h.
7357 (collect_fn_hard_reg_usage): Add fixed and stack registers to
7358 function_used_regs before the main loop rather than afterwards.
7359 Use insn_callee_abi instead of get_call_reg_set_usage. Exit early
7360 if function_used_regs ends up not being useful.
7361 (get_call_fndecl): Move to rtlanal.c
7362 (get_call_cgraph_rtl_info, get_call_reg_set_usage): Delete.
7363 * caller-save.c: Include function-abi.h.
7364 (setup_save_areas, save_call_clobbered_regs): Use insn_callee_abi
7365 instead of get_call_reg_set_usage.
7366 * cfgcleanup.c: Include function-abi.h.
7367 (old_insns_match_p): Use insn_callee_abi instead of
7368 get_call_reg_set_usage.
7369 * cgraph.h (cgraph_node::rtl_info): Take a const_tree instead of
7370 a tree.
7371 * cgraph.c (cgraph_node::rtl_info): Likewise. Initialize
7372 function_used_regs.
7373 * df-scan.c: Include function-abi.h.
7374 (df_get_call_refs): Use insn_callee_abi instead of
7375 get_call_reg_set_usage.
7376 * ira-lives.c: Include function-abi.h.
7377 (process_bb_node_lives): Use insn_callee_abi instead of
7378 get_call_reg_set_usage.
7379 * lra-lives.c: Include function-abi.h.
7380 (process_bb_lives): Use insn_callee_abi instead of
7381 get_call_reg_set_usage.
7382 * postreload.c: Include function-abi.h.
7383 (reload_combine): Use insn_callee_abi instead of
7384 get_call_reg_set_usage.
7385 * regcprop.c: Include function-abi.h.
7386 (copyprop_hardreg_forward_1): Use insn_callee_abi instead of
7387 get_call_reg_set_usage.
7388 * resource.c: Include function-abi.h.
7389 (mark_set_resources, mark_target_live_regs): Use insn_callee_abi
7390 instead of get_call_reg_set_usage.
7391 * var-tracking.c: Include function-abi.h.
7392 (dataflow_set_clear_at_call): Use insn_callee_abi instead of
7393 get_call_reg_set_usage.
7394
7395 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7396
7397 * target.def (fntype_abi): New target hook.
7398 * doc/tm.texi.in (TARGET_FNTYPE_ABI): Likewise.
7399 * doc/tm.texi: Regenerate.
7400 * target.h (predefined_function_abi): Declare.
7401 * function-abi.cc (fntype_abi): Call targetm.calls.fntype_abi,
7402 if defined.
7403 * config/aarch64/aarch64.h (ARM_PCS_SIMD): New arm_pcs value.
7404 * config/aarch64/aarch64.c: Include function-abi.h.
7405 (aarch64_simd_abi, aarch64_fntype_abi): New functions.
7406 (TARGET_FNTYPE_ABI): Define.
7407
7408 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7409
7410 * Makefile.in (OBJS): Add function-abi.o.
7411 (GTFILES): Add function-abi.h.
7412 * function-abi.cc: New file.
7413 * function-abi.h: Likewise.
7414 * emit-rtl.h (rtl_data::abi): New field.
7415 * function.c: Include function-abi.h.
7416 (prepare_function_start): Initialize crtl->abi.
7417 * read-rtl-function.c: Include regs.h and function-abi.h.
7418 (read_rtl_function_body): Initialize crtl->abi.
7419 (read_rtl_function_body_from_file_range): Likewise.
7420 * reginfo.c: Include function-abi.h.
7421 (init_reg_sets_1): Initialize default_function_abi.
7422 (globalize_reg): Call add_full_reg_clobber for each predefined ABI
7423 when making a register global.
7424 * target-globals.h (this_target_function_abi_info): Declare.
7425 (target_globals::function_abi_info): New field.
7426 (restore_target_globals): Copy it.
7427 * target-globals.c: Include function-abi.h.
7428 (default_target_globals): Initialize the function_abi_info field.
7429 (target_globals): Allocate it.
7430 (save_target_globals): Free it.
7431
7432 2019-09-30 Nick Clifton <nickc@redhat.com>
7433
7434 PR target/85978
7435 * config/frv/frv.c (frv_register_move_cost): Add break statements
7436 to avoid falling through to the wrong cases. Tidy code.
7437
7438 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
7439
7440 * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
7441 For multi-registers modes, test how big each register part is.
7442
7443 2019-09-30 Nick Clifton <nickc@redhat.com>
7444
7445 PR target/59205
7446 * config/iq2000/iq2000.c (iq2000_select_section): Delete.
7447 (TARGET_ASM_SELECT_SECTION): Remove definition.
7448 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Allow definition.
7449
7450 2019-09-30 Ilya Leoshkevich <iii@linux.ibm.com>
7451
7452 * emit-rtl.c (init_raw_REG): New function.
7453 (gen_raw_REG): Use init_raw_REG.
7454 * gengenrtl.c (gendef): Emit init_* functions and alloca_*
7455 macros.
7456 * rtl.c (rtx_alloc_stat_v): Use rtx_init.
7457 * rtl.h (rtx_init): New function.
7458 (rtx_alloca): New function.
7459 (init_raw_REG): New function.
7460 (alloca_raw_REG): New macro.
7461
7462 2019-09-30 Michael Meissner <meissner@linux.ibm.com>
7463
7464 * config/rs6000/predicates.md (pcrel_address): Delete predicate.
7465 (pcrel_local_address): Replace pcrel_address predicate, use the
7466 new function address_to_insn_form.
7467 (pcrel_external_address): Replace with new implementation using
7468 address_to_insn_form..
7469 (prefixed_mem_operand): Delete predicate which is now unused.
7470 (pcrel_external_mem_operand): Delete predicate which is now
7471 unused.
7472 * config/rs6000/rs6000-protos.h (enum insn_form): New
7473 enumeration.
7474 (enum non_prefixed_form): New enumeration.
7475 (address_to_insn_form): New declaration.
7476 (prefixed_load_p): New declaration.
7477 (prefixed_store_p): New declaration.
7478 (prefixed_paddi_p): New declaration.
7479 (rs6000_asm_output_opcode): New declaration.
7480 (rs6000_final_prescan_insn): Move declaration and update calling
7481 signature.
7482 (address_is_prefixed): New helper inline function.
7483 * config/rs6000/rs6000.c(print_operand_address): Check for either
7484 PC-relative local symbols or PC-relative external symbols.
7485 (rs6000_emit_move): Support loading PC-relative addresses.
7486 (mode_supports_prefixed_address_p): Delete, no longer used.
7487 (rs6000_prefixed_address_mode_p): Delete, no longer used.
7488 (address_to_insn_form): New function to decode an address format.
7489 (reg_to_non_prefixed): New function to identify what the
7490 non-prefixed memory instruction format is for a register.
7491 (prefixed_load_p): New function to identify prefixed loads.
7492 (prefixed_store_p): New function to identify prefixed stores.
7493 (prefixed_paddi_p): New function to identify prefixed load
7494 immediates.
7495 (next_insn_prefixed_p): New static state variable.
7496 (rs6000_final_prescan_insn): New function to determine if an insn
7497 uses a prefixed instruction.
7498 (rs6000_asm_output_opcode): New function to emit 'p' in front of a
7499 prefixed instruction.
7500 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): New target hook.
7501 (ASM_OUTPUT_OPCODE): New target hook.
7502 * config/rs6000/rs6000.md (prefixed): New insn attribute for
7503 prefixed instructions.
7504 (prefixed_length): New insn attribute for the size of prefixed
7505 instructions.
7506 (non_prefixed_length): New insn attribute for the size of
7507 non-prefixed instructions.
7508 (pcrel_local_addr): New insn to load up a local PC-relative
7509 address.
7510 (pcrel_extern_addr): New insn to load up an external PC-relative
7511 address.
7512 (mov<mode>_64bit_dm): Split the alternatives for loading 0.0 to a
7513 GPR and loading a 128-bit floating point type to a GPR.
7514
7515 2019-09-30 Richard Biener <rguenther@suse.de>
7516
7517 * gimple.c (gimple_get_lhs): For PHIs return the result.
7518 * tree-vectorizer.h (vectorizable_live_operation): Also get the
7519 SLP instance as argument.
7520 * tree-vect-loop.c (vect_analyze_loop_operations): Also handle
7521 double-reduction PHIs with vectorizable_lc_phi.
7522 (vect_analyze_loop_operations): Adjust.
7523 (vect_create_epilog_for_reduction): Remove all code not dealing
7524 with reduction LC PHI or epilogue generation.
7525 (vectorizable_live_operation): Call vect_create_epilog_for_reduction
7526 for live stmts of reductions.
7527 * tree-vect-stmts.c (vectorizable_condition): When !for_reduction
7528 do not handle defs that are not vect_internal_def.
7529 (can_vectorize_live_stmts): Adjust.
7530 (vect_analyze_stmt): When the vectorized stmt defined a value
7531 used on backedges adjust the backedge uses of vectorized PHIs.
7532
7533 2019-09-30 Martin Jambor <mjambor@suse.cz>
7534
7535 PR ipa/91853
7536 * tree-inline.c (force_value_to_type): New function.
7537 (setup_one_parameter): Use force_value_to_type to convert type.
7538 * tree-inline.c (force_value_to_type): Declare.
7539 * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Deal
7540 with register type mismatches.
7541
7542 2019-09-30 Andreas Tobler <andreast@gcc.gnu.org>
7543
7544 * config.gcc: Use the secure-plt on FreeBSD 13 and upwards for
7545 32-bit PowerPC.
7546 Define TARGET_FREEBSD32_SECURE_PLT for 64-bit PowerPC.
7547 * config/rs6000/t-freebsd64: Make use of the above define and build
7548 the 32-bit libraries with secure-plt.
7549
7550 2019-09-30 Jakub Jelinek <jakub@redhat.com>
7551
7552 PR target/91931
7553 * config/i386/i386-expand.c (ix86_expand_adjust_ufix_to_sfix_si): Use
7554 gen_int_mode instead of GEN_INT.
7555
7556 2019-09-29 Iain Sandoe <iain@sandoe.co.uk>
7557
7558 * config/darwin.c (gen_macho_low): Amend to include the mode
7559 argument.
7560 (machopic_indirect_data_reference): Amend gen_macho_low call
7561 to include mode argument
7562 * config/rs6000/rs6000.c (emit_move): Likewise. Amend a comment.
7563 * config/rs6000/darwin.md (@macho_low_<mode>): New, replaces
7564 the macho_high expander and two define_insn entries.
7565
7566 2019-09-29 Jakub Jelinek <jakub@redhat.com>
7567
7568 PR bootstrap/90543
7569 * optc-save-gen.awk: Fix up printing string option differences.
7570
7571 2019-09-29 Kewen Lin <linkw@gcc.gnu.org>
7572
7573 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Lower
7574 vec_perm cost to 1 for non-Power7 VSX architectures.
7575
7576 2019-09-29 Kewen Lin <linkw@gcc.gnu.org>
7577
7578 * config/rs6000/vsx.md (vec_pack[su]_float_v2di): New define_expand.
7579 (vec_unpack_[su]fix_trunc_hi_v4sf): Likewise.
7580 (vec_unpack_[su]fix_trunc_lo_v4sf): Likewise.
7581
7582 2019-09-28 Iain Sandoe <iain@sandoe.co.uk>
7583
7584 * config/darwin.c (gen_macho_high): Amend to include the mode
7585 argument.
7586 (machopic_indirect_data_reference): Amend gen_macho_high call
7587 to include mode argument.
7588 (machopic_legitimize_pic_address): Likewise.
7589 * config/rs6000/rs6000.c (rs6000_legitimize_address):
7590 * config/rs6000/darwin.md (@macho_high_<mode>): New, replaces
7591 the macho_high expander and two define_insn entries.
7592
7593 2019-09-28 Oleg Endo <olegendo@gcc.gnu.org>
7594
7595 PR target/86805
7596 * config/sh/sh.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
7597
7598 2019-09-28 Oleg Endo <olegendo@gcc.gnu.org>
7599
7600 PR target/80672
7601 * config/sh/sh.c (parse_validate_atomic_model_option): Use
7602 std::string::compare instead of std::string::find.
7603
7604 2019-09-27 Maciej W. Rozycki <macro@wdc.com>
7605
7606 * configure: Regenerate.
7607
7608 2019-09-27 Jakub Jelinek <jakub@redhat.com>
7609
7610 PR middle-end/91920
7611 * gimplify.c (omp_default_clause): Predetermine DECL_IN_CONSTANT_POOL
7612 variables as shared.
7613
7614 2019-09-27 Iain Sandoe <iain@sandoe.co.uk>
7615
7616 * config/rs6000/darwin.md (@macho_correct_pic_<mode>): New,
7617 replaces the expander and two define_insn entries.
7618 (@reload_macho_picbase_<mode>): Update gen_macho_correct_pic
7619 call.
7620 * config/rs6000/rs6000.md (builtin_setjmp_receiver): Likewise.
7621
7622 2019-09-27 David Malcolm <dmalcolm@redhat.com>
7623
7624 * fibonacci_heap.h (fibonacci_heap::empty): Make const.
7625 (fibonacci_heap::nodes): Likewise.
7626 (fibonacci_heap::min_key): Likewise.
7627 (fibonacci_heap::min): Likewise.
7628
7629 2019-09-27 David Malcolm <dmalcolm@redhat.com>
7630
7631 * cgraph.c (cgraph_node::get_fun): Make const.
7632 * cgraph.h (cgraph_node::get_fun): Likewise.
7633
7634 2019-09-27 Jakub Jelinek <jakub@redhat.com>
7635
7636 PR target/91919
7637 * config/arm/arm.md (<US>mlal): Remove SE wrappers around operands
7638 of SImode MULT.
7639
7640 2019-09-27 Richard Biener <rguenther@suse.de>
7641
7642 * tree-vectorizer.h (_stmt_vec_info::reduc_fn): New.
7643 (STMT_VINFO_REDUC_FN): Likewise.
7644 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
7645 STMT_VINFO_REDUC_FN.
7646 * tree-vect-loop.c (vect_is_simple_reduction): Fix STMT_VINFO_REDUC_IDX
7647 for condition reductions.
7648 (vect_create_epilog_for_reduction): Compute all required state
7649 from the stmt to be vectorized.
7650 (vectorizable_reduction): Simplify vect_create_epilog_for_reduction
7651 invocation and remove then dead code. For single def-use chains
7652 record only a single vector stmt.
7653
7654 2019-09-27 Richard Sandiford <richard.sandiford@arm.com>
7655
7656 * config/aarch64/aarch64-protos.h (aarch64_builtin_class): New enum.
7657 (AARCH64_BUILTIN_SHIFT, AARCH64_BUILTIN_CLASS): New constants.
7658 (aarch64_gimple_fold_builtin, aarch64_mangle_builtin_type)
7659 (aarch64_fold_builtin, aarch64_init_builtins, aarch64_expand_builtin):
7660 (aarch64_builtin_decl, aarch64_builtin_rsqrt): Delete.
7661 (aarch64_general_mangle_builtin_type, aarch64_general_init_builtins):
7662 (aarch64_general_fold_builtin, aarch64_general_gimple_fold_builtin):
7663 (aarch64_general_expand_builtin, aarch64_general_builtin_decl):
7664 (aarch64_general_builtin_rsqrt): Declare.
7665 * config/aarch64/aarch64-builtins.c (aarch64_general_add_builtin):
7666 New function.
7667 (aarch64_mangle_builtin_type): Rename to...
7668 (aarch64_general_mangle_builtin_type): ...this.
7669 (aarch64_init_fcmla_laneq_builtins, aarch64_init_simd_builtins)
7670 (aarch64_init_crc32_builtins, aarch64_init_builtin_rsqrt)
7671 (aarch64_init_pauth_hint_builtins, aarch64_init_tme_builtins): Use
7672 aarch64_general_add_builtin instead of add_builtin_function.
7673 (aarch64_init_builtins): Rename to...
7674 (aarch64_general_init_builtins): ...this. Use
7675 aarch64_general_add_builtin instead of add_builtin_function.
7676 (aarch64_builtin_decl): Rename to...
7677 (aarch64_general_builtin_decl): ...this and remove the unused
7678 arguments.
7679 (aarch64_expand_builtin): Rename to...
7680 (aarch64_general_expand_builtin): ...this and remove the unused
7681 arguments.
7682 (aarch64_builtin_rsqrt): Rename to...
7683 (aarch64_general_builtin_rsqrt): ...this.
7684 (aarch64_fold_builtin): Rename to...
7685 (aarch64_general_fold_builtin): ...this. Take the function subcode
7686 and return type as arguments. Remove the "ignored" argument.
7687 (aarch64_gimple_fold_builtin): Rename to...
7688 (aarch64_general_gimple_fold_builtin): ...this. Take the function
7689 subcode and gcall as arguments, and return the new function call.
7690 * config/aarch64/aarch64.c (aarch64_init_builtins)
7691 (aarch64_fold_builtin, aarch64_gimple_fold_builtin)
7692 (aarch64_expand_builtin, aarch64_builtin_decl): New functions.
7693 (aarch64_builtin_reciprocal): Call aarch64_general_builtin_rsqrt
7694 instead of aarch64_builtin_rsqrt.
7695 (aarch64_mangle_type): Call aarch64_general_mangle_builtin_type
7696 instead of aarch64_mangle_builtin_type.
7697
7698 2019-09-27 Richard Sandiford <richard.sandiford@arm.com>
7699
7700 * target.def (check_builtin_call): New target hook.
7701 * doc/tm.texi.in (TARGET_CHECK_BUILTIN_CALL): New @hook.
7702 * doc/tm.texi: Regenerate.
7703
7704 2019-09-27 Richard Sandiford <richard.sandiford@arm.com>
7705
7706 PR tree-optimization/91909
7707 * tree-vect-loop.c (vect_create_epilog_for_reduction): Take a
7708 reduc_index parameter. When handling COND_REDUCTION, make sure
7709 that the reduction phi operand is in the correct arm of the
7710 VEC_COND_EXPR.
7711 (vectorizable_reduction): Pass reduc_index to the above.
7712
7713 2019-09-27 Yuliang Wang <yuliang.wang@arm.com>
7714
7715 * config/aarch64/aarch64-sve2.md (aarch64_sve2_sra<mode>):
7716 New combine pattern.
7717
7718 2019-09-26 Max Filippov <jcmvbkbc@gmail.com>
7719
7720 * config/xtensa/xtensa.c (hwloop_optimize): Insert zero overhead
7721 loop instruction into new basic block before the loop when basic
7722 block that precedes the loop is empty.
7723
7724 2019-09-26 Jakub Jelinek <jakub@redhat.com>
7725
7726 * function.c (gimplify_parameters): Use build_clobber function.
7727 * tree-ssa.c (execute_update_addresses_taken): Likewise.
7728 * tree-inline.c (expand_call_inline): Likewise.
7729 * tree-sra.c (clobber_subtree): Likewise.
7730 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Likewise.
7731 * omp-low.c (lower_rec_simd_input_clauses, lower_rec_input_clauses,
7732 lower_omp_single, lower_depend_clauses, lower_omp_taskreg,
7733 lower_omp_target): Likewise.
7734 * omp-expand.c (expand_omp_for_generic): Likewise.
7735 * omp-offload.c (ompdevlow_adjust_simt_enter): Likewise.
7736
7737 2019-09-26 Will Schmidt <will_schmidt@vnet.ibm.com>
7738
7739 * config/rs6000/rs6000-builtin.def: (LVSL, LVSR, LVEBX, LVEHX,
7740 LVEWX, LVXL, LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI,
7741 LVXL_V16QI, LVX, LVX_V1TI, LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI,
7742 LVX_V8HI, LVX_V16QI, LVLX, LVLXL, LVRX, LVRXL, LXSDX, LXVD2X_V1TI,
7743 LXVD2X_V2DF, LXVD2X_V2DI, LXVDSX, LXVW4X_V4SF, LXVW4X_V4SI,
7744 LXVW4X_V8HI, LXVW4X_V16QI, LD_ELEMREV_V1TI, LD_ELEMREV_V2DF,
7745 LD_ELEMREV_V2DI, LD_ELEMREV_V4SF, LD_ELEMREV_V4SI, LD_ELEMREV_V8HI,
7746 LD_ELEMREV_V16QI): Use the PURE attribute.
7747
7748 2019-09-26 Iain Sandoe <iain@sandoe.co.uk>
7749
7750 * config/rs6000/darwin.md: Replace the expanders for
7751 load_macho_picbase and reload_macho_picbase with use of '@'
7752 and <mode> in their respective define_insns.
7753 (nonlocal_goto_receiver): Pass Pmode to gen_reload_macho_picbase.
7754 * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Pass
7755 Pmode to gen_load_macho_picbase.
7756 * config/rs6000/rs6000.md: Likewise.
7757
7758 2019-09-25 Richard Biener <rguenther@suse.de>
7759
7760 PR tree-optimization/91896
7761 * tree-vect-loop.c (vectorizable_reduction): The single
7762 def-use cycle optimization cannot apply when there's more
7763 than one pattern stmt involved.
7764
7765 2019-09-26 Richard Biener <rguenther@suse.de>
7766
7767 * tree-vect-loop.c (vect_analyze_loop_operations): Analyze
7768 loop-closed PHIs that are vect_internal_def.
7769 (vect_create_epilog_for_reduction): Exit early for nested cycles.
7770 Simplify.
7771 (vectorizable_lc_phi): New.
7772 * tree-vect-stmts.c (vect_analyze_stmt): Call vectorize_lc_phi.
7773 (vect_transform_stmt): Likewise.
7774 * tree-vectorizer.h (stmt_vec_info_type): Add lc_phi_info_type.
7775 (vectorizable_lc_phi): Declare.
7776
7777 2019-09-26 Richard Biener <rguenther@suse.de>
7778
7779 * tree-vect-loop.c (vect_analyze_loop_operations): Also call
7780 vectorizable_reduction for vect_double_reduction_def.
7781 (vect_transform_loop): Likewise.
7782 (vect_create_epilog_for_reduction): Move double-reduction
7783 PHI creation and preheader argument setting of PHIs ...
7784 (vectorizable_reduction): ... here. Also process
7785 vect_double_reduction_def PHIs, creating the vectorized
7786 PHI nodes, remembering the scalar adjustment computed for
7787 the epilogue in STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT.
7788 Remember the original reduction code in STMT_VINFO_REDUC_CODE.
7789 * tree-vectorizer.c (vec_info::new_stmt_vec_info):
7790 Initialize STMT_VINFO_REDUC_CODE.
7791 * tree-vectorizer.h (_stmt_vec_info::reduc_epilogue_adjustment): New.
7792 (_stmt_vec_info::reduc_code): Likewise.
7793 (STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT): Likewise.
7794 (STMT_VINFO_REDUC_CODE): Likewise.
7795
7796 2019-09-26 Matt Turner <mattst88@gmail.com>
7797
7798 PR driver/69471
7799 * config/aarch64/aarch64.opt (march=): Add Negative(march=).
7800 (mtune=): Add Negative(mtune=).
7801 (mcpu=): Add Negative(mcpu=).
7802 * config/arm/arm.opt: Likewise.
7803
7804 2019-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7805
7806 * config/arm/arm.md (arm_<simd32_op>): New define_insn.
7807 * config/arm/arm_acle.h (__smlald, __smlaldx, __smlsld, __smlsldx):
7808 Define.
7809 * config/arm/arm_acle.h: Define builtins for the above.
7810 * config/arm/iterators.md (SIMD32_DIMODE): New int_iterator.
7811 (simd32_op): Handle the above.
7812 * config/arm/unspecs.md: Define unspecs for the above.
7813
7814 2019-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7815
7816 * config/arm/arm.md (arm_<simd32_op>): New define_insn.
7817 (arm_<sup>xtb16): Likewise.
7818 (arm_usada8): Likewise.
7819 * config/arm/arm_acle.h (__qadd8, __qsub8, __shadd8, __shsub8,
7820 __uhadd8, __uhsub8, __uqadd8, __uqsub8, __qadd16, __qasx, __qsax,
7821 __qsub16, __shadd16, __shasx, __shsax, __shsub16, __uhadd16, __uhasx,
7822 __uhsax, __uhsub16, __uqadd16, __uqasx, __uqsax, __uqsub16, __sxtab16,
7823 __sxtb16, __uxtab16, __uxtb16): Define.
7824 * config/arm/arm_acle_builtins.def: Define builtins for the above.
7825 * config/arm/unspecs.md: Define unspecs for the above.
7826 * config/arm/iterators.md (SIMD32_NOGE_BINOP): New int_iterator.
7827 (USXTB16): Likewise.
7828 (simd32_op): New int_attribute.
7829 (sup): Handle UNSPEC_SXTB16, UNSPEC_UXTB16.
7830 * doc/sourcebuild.exp (arm_simd32_ok): Document.
7831
7832 2019-09-26 Martin Jambor <mjambor@suse.cz>
7833
7834 * ipa-sra.c (verify_splitting_accesses): Fix quoting in a call to
7835 internal_error.
7836
7837 2019-09-26 Martin Jambor <mjambor@suse.cz>
7838
7839 * ipa-sra.c (process_scan_results): Fix continue condition.
7840
7841 2019-09-26 Martin Liska <mliska@suse.cz>
7842
7843 PR tree-optimization/91885
7844 * tree-vectorizer.c (try_vectorize_loop_1): Add
7845 TODO_update_ssa_only_virtuals similarly to what slp pass does.
7846
7847 2019-09-26 Richard Sandiford <richard.sandiford@arm.com>
7848
7849 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use
7850 aarch64_plus_immediate rather than aarch64_uimm12_shift
7851 to test for valid PLUS immediates.
7852
7853 2019-09-25 Martin Jambor <mjambor@suse.cz>
7854
7855 * tree-sra.c (no_accesses_p): Remove.
7856 (no_accesses_representant): Likewise.
7857
7858 2019-09-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7859
7860 * config/aarch64/arm_neon.h (vaba_s8): Use __ in identifiers
7861 consistenly.
7862 (vaba_s16): Likewise.
7863 (vaba_s32): Likewise.
7864 (vaba_u8): Likewise.
7865 (vaba_u16): Likewise.
7866 (vaba_u32): Likewise.
7867 (vabal_high_s8): Likewise.
7868 (vabal_high_s16): Likewise.
7869 (vabal_high_s32): Likewise.
7870 (vabal_high_u8): Likewise.
7871 (vabal_high_u16): Likewise.
7872 (vabal_high_u32): Likewise.
7873 (vabal_s8): Likewise.
7874 (vabal_s16): Likewise.
7875 (vabal_s32): Likewise.
7876 (vabal_u8): Likewise.
7877 (vabal_u16): Likewise.
7878 (vabal_u32): Likewise.
7879 (vabaq_s8): Likewise.
7880 (vabaq_s16): Likewise.
7881 (vabaq_s32): Likewise.
7882 (vabaq_u8): Likewise.
7883 (vabaq_u16): Likewise.
7884 (vabaq_u32): Likewise.
7885 (vabd_s8): Likewise.
7886 (vabd_s16): Likewise.
7887 (vabd_s32): Likewise.
7888 (vabd_u8): Likewise.
7889 (vabd_u16): Likewise.
7890 (vabd_u32): Likewise.
7891 (vabdl_high_s8): Likewise.
7892 (vabdl_high_s16): Likewise.
7893 (vabdl_high_s32): Likewise.
7894 (vabdl_high_u8): Likewise.
7895 (vabdl_high_u16): Likewise.
7896 (vabdl_high_u32): Likewise.
7897 (vabdl_s8): Likewise.
7898 (vabdl_s16): Likewise.
7899 (vabdl_s32): Likewise.
7900 (vabdl_u8): Likewise.
7901 (vabdl_u16): Likewise.
7902 (vabdl_u32): Likewise.
7903 (vabdq_s8): Likewise.
7904 (vabdq_s16): Likewise.
7905 (vabdq_s32): Likewise.
7906 (vabdq_u8): Likewise.
7907 (vabdq_u16): Likewise.
7908 (vabdq_u32): Likewise.
7909 (vaddlv_s8): Likewise.
7910 (vaddlv_s16): Likewise.
7911 (vaddlv_u8): Likewise.
7912 (vaddlv_u16): Likewise.
7913 (vaddlvq_s8): Likewise.
7914 (vaddlvq_s16): Likewise.
7915 (vaddlvq_s32): Likewise.
7916 (vaddlvq_u8): Likewise.
7917 (vaddlvq_u16): Likewise.
7918 (vaddlvq_u32): Likewise.
7919 (vcvtx_f32_f64): Likewise.
7920 (vcvtx_high_f32_f64): Likewise.
7921 (vcvtxd_f32_f64): Likewise.
7922 (vmla_n_f32): Likewise.
7923 (vmla_n_s16): Likewise.
7924 (vmla_n_s32): Likewise.
7925 (vmla_n_u16): Likewise.
7926 (vmla_n_u32): Likewise.
7927 (vmla_s8): Likewise.
7928 (vmla_s16): Likewise.
7929 (vmla_s32): Likewise.
7930 (vmla_u8): Likewise.
7931 (vmla_u16): Likewise.
7932 (vmla_u32): Likewise.
7933 (vmlal_high_n_s16): Likewise.
7934 (vmlal_high_n_s32): Likewise.
7935 (vmlal_high_n_u16): Likewise.
7936 (vmlal_high_n_u32): Likewise.
7937 (vmlal_high_s8): Likewise.
7938 (vmlal_high_s16): Likewise.
7939 (vmlal_high_s32): Likewise.
7940 (vmlal_high_u8): Likewise.
7941 (vmlal_high_u16): Likewise.
7942 (vmlal_high_u32): Likewise.
7943 (vmlal_n_s16): Likewise.
7944 (vmlal_n_s32): Likewise.
7945 (vmlal_n_u16): Likewise.
7946 (vmlal_n_u32): Likewise.
7947 (vmlal_s8): Likewise.
7948 (vmlal_s16): Likewise.
7949 (vmlal_s32): Likewise.
7950 (vmlal_u8): Likewise.
7951 (vmlal_u16): Likewise.
7952 (vmlal_u32): Likewise.
7953 (vmlaq_n_f32): Likewise.
7954 (vmlaq_n_s16): Likewise.
7955 (vmlaq_n_s32): Likewise.
7956 (vmlaq_n_u16): Likewise.
7957 (vmlaq_n_u32): Likewise.
7958 (vmlaq_s8): Likewise.
7959 (vmlaq_s16): Likewise.
7960 (vmlaq_s32): Likewise.
7961 (vmlaq_u8): Likewise.
7962 (vmlaq_u16): Likewise.
7963 (vmlaq_u32): Likewise.
7964 (vmls_n_f32): Likewise.
7965 (vmls_n_s16): Likewise.
7966 (vmls_n_s32): Likewise.
7967 (vmls_n_u16): Likewise.
7968 (vmls_n_u32): Likewise.
7969 (vmls_s8): Likewise.
7970 (vmls_s16): Likewise.
7971 (vmls_s32): Likewise.
7972 (vmls_u8): Likewise.
7973 (vmls_u16): Likewise.
7974 (vmls_u32): Likewise.
7975 (vmlsl_high_n_s16): Likewise.
7976 (vmlsl_high_n_s32): Likewise.
7977 (vmlsl_high_n_u16): Likewise.
7978 (vmlsl_high_n_u32): Likewise.
7979 (vmlsl_high_s8): Likewise.
7980 (vmlsl_high_s16): Likewise.
7981 (vmlsl_high_s32): Likewise.
7982 (vmlsl_high_u8): Likewise.
7983 (vmlsl_high_u16): Likewise.
7984 (vmlsl_high_u32): Likewise.
7985 (vmlsl_n_s16): Likewise.
7986 (vmlsl_n_s32): Likewise.
7987 (vmlsl_n_u16): Likewise.
7988 (vmlsl_n_u32): Likewise.
7989 (vmlsl_s8): Likewise.
7990 (vmlsl_s16): Likewise.
7991 (vmlsl_s32): Likewise.
7992 (vmlsl_u8): Likewise.
7993 (vmlsl_u16): Likewise.
7994 (vmlsl_u32): Likewise.
7995 (vmlsq_n_f32): Likewise.
7996 (vmlsq_n_s16): Likewise.
7997 (vmlsq_n_s32): Likewise.
7998 (vmlsq_n_u16): Likewise.
7999 (vmlsq_n_u32): Likewise.
8000 (vmlsq_s8): Likewise.
8001 (vmlsq_s16): Likewise.
8002 (vmlsq_s32): Likewise.
8003 (vmlsq_u8): Likewise.
8004 (vmlsq_u16): Likewise.
8005 (vmlsq_u32): Likewise.
8006 (vmovl_high_s8): Likewise.
8007 (vmovl_high_s16): Likewise.
8008 (vmovl_high_s32): Likewise.
8009 (vmovl_high_u8): Likewise.
8010 (vmovl_high_u16): Likewise.
8011 (vmovl_high_u32): Likewise.
8012 (vmovl_s8): Likewise.
8013 (vmovl_s16): Likewise.
8014 (vmovl_s32): Likewise.
8015 (vmovl_u8): Likewise.
8016 (vmovl_u16): Likewise.
8017 (vmovl_u32): Likewise.
8018 (vmovn_high_s16): Likewise.
8019 (vmovn_high_s32): Likewise.
8020 (vmovn_high_s64): Likewise.
8021 (vmovn_high_u16): Likewise.
8022 (vmovn_high_u32): Likewise.
8023 (vmovn_high_u64): Likewise.
8024 (vmovn_s16): Likewise.
8025 (vmovn_s32): Likewise.
8026 (vmovn_s64): Likewise.
8027 (vmovn_u16): Likewise.
8028 (vmovn_u32): Likewise.
8029 (vmovn_u64): Likewise.
8030 (vmull_high_n_s16): Likewise.
8031 (vmull_high_n_s32): Likewise.
8032 (vmull_high_n_u16): Likewise.
8033 (vmull_high_n_u32): Likewise.
8034 (vmull_high_p8): Likewise.
8035 (vmull_high_s8): Likewise.
8036 (vmull_high_s16): Likewise.
8037 (vmull_high_s32): Likewise.
8038 (vmull_high_u8): Likewise.
8039 (vmull_high_u16): Likewise.
8040 (vmull_high_u32): Likewise.
8041 (vmull_n_s16): Likewise.
8042 (vmull_n_s32): Likewise.
8043 (vmull_n_u16): Likewise.
8044 (vmull_n_u32): Likewise.
8045 (vmull_p8): Likewise.
8046 (vmull_s8): Likewise.
8047 (vmull_s16): Likewise.
8048 (vmull_s32): Likewise.
8049 (vmull_u8): Likewise.
8050 (vmull_u16): Likewise.
8051 (vmull_u32): Likewise.
8052 (vpadal_s8): Likewise.
8053 (vpadal_s16): Likewise.
8054 (vpadal_s32): Likewise.
8055 (vpadal_u8): Likewise.
8056 (vpadal_u16): Likewise.
8057 (vpadal_u32): Likewise.
8058 (vpadalq_s8): Likewise.
8059 (vpadalq_s16): Likewise.
8060 (vpadalq_s32): Likewise.
8061 (vpadalq_u8): Likewise.
8062 (vpadalq_u16): Likewise.
8063 (vpadalq_u32): Likewise.
8064 (vpaddl_s8): Likewise.
8065 (vpaddl_s16): Likewise.
8066 (vpaddl_s32): Likewise.
8067 (vpaddl_u8): Likewise.
8068 (vpaddl_u16): Likewise.
8069 (vpaddl_u32): Likewise.
8070 (vpaddlq_s8): Likewise.
8071 (vpaddlq_s16): Likewise.
8072 (vpaddlq_s32): Likewise.
8073 (vpaddlq_u8): Likewise.
8074 (vpaddlq_u16): Likewise.
8075 (vpaddlq_u32): Likewise.
8076 (vpaddq_s8): Likewise.
8077 (vpaddq_s16): Likewise.
8078 (vpaddq_s32): Likewise.
8079 (vpaddq_s64): Likewise.
8080 (vpaddq_u8): Likewise.
8081 (vpaddq_u16): Likewise.
8082 (vpaddq_u32): Likewise.
8083 (vpaddq_u64): Likewise.
8084 (vqdmulh_n_s16): Likewise.
8085 (vqdmulh_n_s32): Likewise.
8086 (vqdmulhq_n_s16): Likewise.
8087 (vqdmulhq_n_s32): Likewise.
8088 (vqmovn_high_s16): Likewise.
8089 (vqmovn_high_s32): Likewise.
8090 (vqmovn_high_s64): Likewise.
8091 (vqmovn_high_u16): Likewise.
8092 (vqmovn_high_u32): Likewise.
8093 (vqmovn_high_u64): Likewise.
8094 (vqmovun_high_s16): Likewise.
8095 (vqmovun_high_s32): Likewise.
8096 (vqmovun_high_s64): Likewise.
8097 (vqrdmulh_n_s16): Likewise.
8098 (vqrdmulh_n_s32): Likewise.
8099 (vqrdmulhq_n_s16): Likewise.
8100 (vqrdmulhq_n_s32): Likewise.
8101 (vrsqrte_u32): Likewise.
8102 (vrsqrteq_u32): Likewise.
8103 (vtst_p8): Likewise.
8104 (vtst_p16): Likewise.
8105 (vtst_p64): Likewise.
8106 (vtstq_p8): Likewise.
8107 (vtstq_p16): Likewise.
8108 (vtstq_p64): Likewise.
8109 (vaddlv_s32): Likewise.
8110 (vaddlv_u32): Likewise.
8111 (vqtbl1_p8): Likewise.
8112 (vqtbl1_s8): Likewise.
8113 (vqtbl1_u8): Likewise.
8114 (vqtbl1q_p8): Likewise.
8115 (vqtbl1q_s8): Likewise.
8116 (vqtbl1q_u8): Likewise.
8117 (vqtbx1_s8): Likewise.
8118 (vqtbx1_u8): Likewise.
8119 (vqtbx1_p8): Likewise.
8120 (vqtbx1q_s8): Likewise.
8121 (vqtbx1q_u8): Likewise.
8122 (vqtbx1q_p8): Likewise.
8123 (vtbl1_s8): Likewise.
8124 (vtbl1_u8): Likewise.
8125 (vtbl1_p8): Likewise.
8126 (vtbl2_s8): Likewise.
8127 (vtbl2_u8): Likewise.
8128 (vtbl2_p8): Likewise.
8129 (vtbl3_s8): Likewise.
8130 (vtbl3_u8): Likewise.
8131 (vtbl3_p8): Likewise.
8132 (vtbl4_s8): Likewise.
8133 (vtbl4_u8): Likewise.
8134 (vtbl4_p8): Likewise.
8135 (vtbx2_s8): Likewise.
8136 (vtbx2_u8): Likewise.
8137 (vtbx2_p8): Likewise.
8138 (vld1_f32): Likewise.
8139 (vld1_f64): Likewise.
8140 (vld1_p8): Likewise.
8141 (vld1_p16): Likewise.
8142 (vld1_p64): Likewise.
8143 (vld1_s8): Likewise.
8144 (vld1_s16): Likewise.
8145 (vld1_s32): Likewise.
8146 (vld1_s64): Likewise.
8147 (vld1_u8): Likewise.
8148 (vld1_u16): Likewise.
8149 (vld1_u32): Likewise.
8150 (vld1_u64): Likewise.
8151 (vld1q_f32): Likewise.
8152 (vld1q_f64): Likewise.
8153 (vld1q_p8): Likewise.
8154 (vld1q_p16): Likewise.
8155 (vld1q_p64): Likewise.
8156 (vld1q_s8): Likewise.
8157 (vld1q_s16): Likewise.
8158 (vld1q_s32): Likewise.
8159 (vld1q_s64): Likewise.
8160 (vld1q_u8): Likewise.
8161 (vld1q_u16): Likewise.
8162 (vld1q_u32): Likewise.
8163 (vld1q_u64): Likewise.
8164 (vpmax_s8): Likewise.
8165 (vpmax_s16): Likewise.
8166 (vpmax_s32): Likewise.
8167 (vpmax_u8): Likewise.
8168 (vpmax_u16): Likewise.
8169 (vpmax_u32): Likewise.
8170 (vpmaxq_s8): Likewise.
8171 (vpmaxq_s16): Likewise.
8172 (vpmaxq_s32): Likewise.
8173 (vpmaxq_u8): Likewise.
8174 (vpmaxq_u16): Likewise.
8175 (vpmaxq_u32): Likewise.
8176 (vpmax_f32): Likewise.
8177 (vpmaxq_f32): Likewise.
8178 (vpmaxq_f64): Likewise.
8179 (vpmaxqd_f64): Likewise.
8180 (vpmaxs_f32): Likewise.
8181 (vpmaxnm_f32): Likewise.
8182 (vpmaxnmq_f32): Likewise.
8183 (vpmaxnmq_f64): Likewise.
8184 (vpmaxnmqd_f64): Likewise.
8185 (vpmaxnms_f32): Likewise.
8186 (vpmin_s8): Likewise.
8187 (vpmin_s16): Likewise.
8188 (vpmin_s32): Likewise.
8189 (vpmin_u8): Likewise.
8190 (vpmin_u16): Likewise.
8191 (vpmin_u32): Likewise.
8192 (vpminq_s8): Likewise.
8193 (vpminq_s16): Likewise.
8194 (vpminq_s32): Likewise.
8195 (vpminq_u8): Likewise.
8196 (vpminq_u16): Likewise.
8197 (vpminq_u32): Likewise.
8198 (vpmin_f32): Likewise.
8199 (vpminq_f32): Likewise.
8200 (vpminq_f64): Likewise.
8201 (vpminqd_f64): Likewise.
8202 (vpmins_f32): Likewise.
8203 (vpminnm_f32): Likewise.
8204 (vpminnmq_f32): Likewise.
8205 (vpminnmq_f64): Likewise.
8206 (vpminnmqd_f64): Likewise.
8207 (vpminnms_f32): Likewise.
8208 (vmla_f32): Likewise.
8209 (vmlaq_f32): Likewise.
8210 (vmlaq_f64): Likewise.
8211 (vmls_f32): Likewise.
8212 (vmlsq_f32): Likewise.
8213 (vmlsq_f64): Likewise.
8214 (vqtbl2_s8): Likewise.
8215 (vqtbl2_u8): Likewise.
8216 (vqtbl2_p8): Likewise.
8217 (vqtbl2q_s8): Likewise.
8218 (vqtbl2q_u8): Likewise.
8219 (vqtbl2q_p8): Likewise.
8220 (vqtbl3_s8): Likewise.
8221 (vqtbl3_u8): Likewise.
8222 (vqtbl3_p8): Likewise.
8223 (vqtbl3q_s8): Likewise.
8224 (vqtbl3q_u8): Likewise.
8225 (vqtbl3q_p8): Likewise.
8226 (vqtbl4_s8): Likewise.
8227 (vqtbl4_u8): Likewise.
8228 (vqtbl4_p8): Likewise.
8229 (vqtbl4q_s8): Likewise.
8230 (vqtbl4q_u8): Likewise.
8231 (vqtbl4q_p8): Likewise.
8232 (vqtbx2_s8): Likewise.
8233 (vqtbx2_u8): Likewise.
8234 (vqtbx2_p8): Likewise.
8235 (vqtbx2q_s8): Likewise.
8236 (vqtbx2q_u8): Likewise.
8237 (vqtbx2q_p8): Likewise.
8238 (vqtbx3_s8): Likewise.
8239 (vqtbx3_u8): Likewise.
8240 (vqtbx3_p8): Likewise.
8241 (vqtbx3q_s8): Likewise.
8242 (vqtbx3q_u8): Likewise.
8243 (vqtbx3q_p8): Likewise.
8244 (vqtbx4_s8): Likewise.
8245 (vqtbx4_u8): Likewise.
8246 (vqtbx4_p8): Likewise.
8247 (vqtbx4q_s8): Likewise.
8248 (vqtbx4q_u8): Likewise.
8249 (vqtbx4q_p8): Likewise.
8250 (vrev16_p8): Likewise.
8251 (vrev16_s8): Likewise.
8252 (vrev16_u8): Likewise.
8253 (vrev16q_p8): Likewise.
8254 (vrev16q_s8): Likewise.
8255 (vrev16q_u8): Likewise.
8256 (vrev32_p8): Likewise.
8257 (vrev32_p16): Likewise.
8258 (vrev32_s8): Likewise.
8259 (vrev32_s16): Likewise.
8260 (vrev32_u8): Likewise.
8261 (vrev32_u16): Likewise.
8262 (vrev32q_p8): Likewise.
8263 (vrev32q_p16): Likewise.
8264 (vrev32q_s8): Likewise.
8265 (vrev32q_s16): Likewise.
8266 (vrev32q_u8): Likewise.
8267 (vrev32q_u16): Likewise.
8268 (vrev64_f32): Likewise.
8269 (vrev64_p8): Likewise.
8270 (vrev64_p16): Likewise.
8271 (vrev64_s8): Likewise.
8272 (vrev64_s16): Likewise.
8273 (vrev64_s32): Likewise.
8274 (vrev64_u8): Likewise.
8275 (vrev64_u16): Likewise.
8276 (vrev64_u32): Likewise.
8277 (vrev64q_f32): Likewise.
8278 (vrev64q_p8): Likewise.
8279 (vrev64q_p16): Likewise.
8280 (vrev64q_s8): Likewise.
8281 (vrev64q_s16): Likewise.
8282 (vrev64q_s32): Likewise.
8283 (vrev64q_u8): Likewise.
8284 (vrev64q_u16): Likewise.
8285 (vrev64q_u32): Likewise.
8286 (vsha1cq_u32): Likewise.
8287 (vsha1mq_u32): Likewise.
8288 (vsha1pq_u32): Likewise.
8289 (vsha1h_u32): Likewise.
8290 (vsha1su0q_u32): Likewise.
8291 (vsha1su1q_u32): Likewise.
8292 (vsha256hq_u32): Likewise.
8293 (vsha256h2q_u32): Likewise.
8294 (vsha256su0q_u32): Likewise.
8295 (vsha256su1q_u32): Likewise.
8296 (vmull_p64): Likewise.
8297 (vmull_high_p64): Likewise.
8298 (vsqrt_f32): Likewise.
8299 (vsqrtq_f32): Likewise.
8300 (vsqrt_f64): Likewise.
8301 (vsqrtq_f64): Likewise.
8302 (vst1_f32): Likewise.
8303 (vst1_f64): Likewise.
8304 (vst1_p8): Likewise.
8305 (vst1_p16): Likewise.
8306 (vst1_p64): Likewise.
8307 (vst1_s8): Likewise.
8308 (vst1_s16): Likewise.
8309 (vst1_s32): Likewise.
8310 (vst1_s64): Likewise.
8311 (vst1_u8): Likewise.
8312 (vst1_u16): Likewise.
8313 (vst1_u32): Likewise.
8314 (vst1_u64): Likewise.
8315 (vst1q_f32): Likewise.
8316 (vst1q_f64): Likewise.
8317 (vst1q_p8): Likewise.
8318 (vst1q_p16): Likewise.
8319 (vst1q_p64): Likewise.
8320 (vst1q_s8): Likewise.
8321 (vst1q_s16): Likewise.
8322 (vst1q_s32): Likewise.
8323 (vst1q_s64): Likewise.
8324 (vst1q_u8): Likewise.
8325 (vst1q_u16): Likewise.
8326 (vst1q_u32): Likewise.
8327 (vst1q_u64): Likewise.
8328 (vst1_s64_x2): Likewise.
8329 (vst1_u64_x2): Likewise.
8330 (vst1_f64_x2): Likewise.
8331 (vst1_s8_x2): Likewise.
8332 (vst1_p8_x2): Likewise.
8333 (vst1_s16_x2): Likewise.
8334 (vst1_p16_x2): Likewise.
8335 (vst1_s32_x2): Likewise.
8336 (vst1_u8_x2): Likewise.
8337 (vst1_u16_x2): Likewise.
8338 (vst1_u32_x2): Likewise.
8339 (vst1_f16_x2): Likewise.
8340 (vst1_f32_x2): Likewise.
8341 (vst1_p64_x2): Likewise.
8342 (vst1q_s8_x2): Likewise.
8343 (vst1q_p8_x2): Likewise.
8344 (vst1q_s16_x2): Likewise.
8345 (vst1q_p16_x2): Likewise.
8346 (vst1q_s32_x2): Likewise.
8347 (vst1q_s64_x2): Likewise.
8348 (vst1q_u8_x2): Likewise.
8349 (vst1q_u16_x2): Likewise.
8350 (vst1q_u32_x2): Likewise.
8351 (vst1q_u64_x2): Likewise.
8352 (vst1q_f16_x2): Likewise.
8353 (vst1q_f32_x2): Likewise.
8354 (vst1q_f64_x2): Likewise.
8355 (vst1q_p64_x2): Likewise.
8356 (vst1_s64_x3): Likewise.
8357 (vst1_u64_x3): Likewise.
8358 (vst1_f64_x3): Likewise.
8359 (vst1_s8_x3): Likewise.
8360 (vst1_p8_x3): Likewise.
8361 (vst1_s16_x3): Likewise.
8362 (vst1_p16_x3): Likewise.
8363 (vst1_s32_x3): Likewise.
8364 (vst1_u8_x3): Likewise.
8365 (vst1_u16_x3): Likewise.
8366 (vst1_u32_x3): Likewise.
8367 (vst1_f16_x3): Likewise.
8368 (vst1_f32_x3): Likewise.
8369 (vst1_p64_x3): Likewise.
8370 (vst1q_s8_x3): Likewise.
8371 (vst1q_p8_x3): Likewise.
8372 (vst1q_s16_x3): Likewise.
8373 (vst1q_p16_x3): Likewise.
8374 (vst1q_s32_x3): Likewise.
8375 (vst1q_s64_x3): Likewise.
8376 (vst1q_u8_x3): Likewise.
8377 (vst1q_u16_x3): Likewise.
8378 (vst1q_u32_x3): Likewise.
8379 (vst1q_u64_x3): Likewise.
8380 (vst1q_f16_x3): Likewise.
8381 (vst1q_f32_x3): Likewise.
8382 (vst1q_f64_x3): Likewise.
8383 (vst1q_p64_x3): Likewise.
8384 (vst2_s64): Likewise.
8385 (vst2_u64): Likewise.
8386 (vst2_f64): Likewise.
8387 (vst2_s8): Likewise.
8388 (vst2_p8): Likewise.
8389 (vst2_s16): Likewise.
8390 (vst2_p16): Likewise.
8391 (vst2_s32): Likewise.
8392 (vst2_u8): Likewise.
8393 (vst2_u16): Likewise.
8394 (vst2_u32): Likewise.
8395 (vst2_f16): Likewise.
8396 (vst2_f32): Likewise.
8397 (vst2_p64): Likewise.
8398 (vst2q_s8): Likewise.
8399 (vst2q_p8): Likewise.
8400 (vst2q_s16): Likewise.
8401 (vst2q_p16): Likewise.
8402 (vst2q_s32): Likewise.
8403 (vst2q_s64): Likewise.
8404 (vst2q_u8): Likewise.
8405 (vst2q_u16): Likewise.
8406 (vst2q_u32): Likewise.
8407 (vst2q_u64): Likewise.
8408 (vst2q_f16): Likewise.
8409 (vst2q_f32): Likewise.
8410 (vst2q_f64): Likewise.
8411 (vst2q_p64): Likewise.
8412 (vst3_s64): Likewise.
8413 (vst3_u64): Likewise.
8414 (vst3_f64): Likewise.
8415 (vst3_s8): Likewise.
8416 (vst3_p8): Likewise.
8417 (vst3_s16): Likewise.
8418 (vst3_p16): Likewise.
8419 (vst3_s32): Likewise.
8420 (vst3_u8): Likewise.
8421 (vst3_u16): Likewise.
8422 (vst3_u32): Likewise.
8423 (vst3_f16): Likewise.
8424 (vst3_f32): Likewise.
8425 (vst3_p64): Likewise.
8426 (vst3q_s8): Likewise.
8427 (vst3q_p8): Likewise.
8428 (vst3q_s16): Likewise.
8429 (vst3q_p16): Likewise.
8430 (vst3q_s32): Likewise.
8431 (vst3q_s64): Likewise.
8432 (vst3q_u8): Likewise.
8433 (vst3q_u16): Likewise.
8434 (vst3q_u32): Likewise.
8435 (vst3q_u64): Likewise.
8436 (vst3q_f16): Likewise.
8437 (vst3q_f32): Likewise.
8438 (vst3q_f64): Likewise.
8439 (vst3q_p64): Likewise.
8440 (vst4_s64): Likewise.
8441 (vst4_u64): Likewise.
8442 (vst4_f64): Likewise.
8443 (vst4_s8): Likewise.
8444 (vst4_p8): Likewise.
8445 (vst4_s16): Likewise.
8446 (vst4_p16): Likewise.
8447 (vst4_s32): Likewise.
8448 (vst4_u8): Likewise.
8449 (vst4_u16): Likewise.
8450 (vst4_u32): Likewise.
8451 (vst4_f16): Likewise.
8452 (vst4_f32): Likewise.
8453 (vst4_p64): Likewise.
8454 (vst4q_s8): Likewise.
8455 (vst4q_p8): Likewise.
8456 (vst4q_s16): Likewise.
8457 (vst4q_p16): Likewise.
8458 (vst4q_s32): Likewise.
8459 (vst4q_s64): Likewise.
8460 (vst4q_u8): Likewise.
8461 (vst4q_u16): Likewise.
8462 (vst4q_u32): Likewise.
8463 (vst4q_u64): Likewise.
8464 (vst4q_f16): Likewise.
8465 (vst4q_f32): Likewise.
8466 (vst4q_f64): Likewise.
8467 (vst4q_p64): Likewise.
8468 (vtbx4_s8): Likewise.
8469 (vtbx4_u8): Likewise.
8470 (vtbx4_p8): Likewise.
8471 (vtrn_f32): Likewise.
8472 (vtrn_p8): Likewise.
8473 (vtrn_p16): Likewise.
8474 (vtrn_s8): Likewise.
8475 (vtrn_s16): Likewise.
8476 (vtrn_s32): Likewise.
8477 (vtrn_u8): Likewise.
8478 (vtrn_u16): Likewise.
8479 (vtrn_u32): Likewise.
8480 (vtrnq_f32): Likewise.
8481 (vtrnq_p8): Likewise.
8482 (vtrnq_p16): Likewise.
8483 (vtrnq_s8): Likewise.
8484 (vtrnq_s16): Likewise.
8485 (vtrnq_s32): Likewise.
8486 (vtrnq_u8): Likewise.
8487 (vtrnq_u16): Likewise.
8488 (vtrnq_u32): Likewise.
8489 (vrsqrte_f16): Likewise.
8490 (vrsqrteq_f16): Likewise.
8491 (vsqrt_f16): Likewise.
8492 (vsqrtq_f16): Likewise.
8493 (vabd_f16): Likewise.
8494 (vabdq_f16): Likewise.
8495 (vpadd_f16): Likewise.
8496 (vpaddq_f16): Likewise.
8497 (vpmax_f16): Likewise.
8498 (vpmaxq_f16): Likewise.
8499 (vpmaxnm_f16): Likewise.
8500 (vpmaxnmq_f16): Likewise.
8501 (vpmin_f16): Likewise.
8502 (vpminq_f16): Likewise.
8503 (vpminnm_f16): Likewise.
8504 (vpminnmq_f16): Likewise.
8505 (vrsqrts_f16): Likewise.
8506 (vrsqrtsq_f16): Likewise.
8507
8508 2019-09-25 Richard Biener <rguenther@suse.de>
8509
8510 PR tree-optimization/91896
8511 * tree-vect-loop.c (vectorizable_reduction): The single
8512 def-use cycle optimization cannot apply when there's more
8513 than one pattern stmt involved.
8514
8515 2019-09-24 Iain Sandoe <iain@sandoe.co.uk>
8516
8517 * config/rs6000/rs6000.md (load_macho_picbase_<mode>): New, using
8518 the 'P' mode iterator, replacing the (removed) SI and DI variants.
8519 (reload_macho_picbase_<mode>): Likewise.
8520
8521 2019-09-24 Iain Sandoe <iain@sandoe.co.uk>
8522
8523 * config/rs6000/rs6000.md: Move darwin.md include until
8524 after the definition of the mode iterators.
8525
8526 2019-09-23 Martin Sebor <msebor@redhat.com>
8527
8528 PR tree-optimization/91570
8529 * tree-ssa-strlen.c (get_range_strlen_dynamic): Handle null and
8530 non-constant minlen, maxlen and maxbound.
8531
8532 2019-09-24 Richard Biener <rguenther@suse.de>
8533
8534 * tree-vectorizer.h (_stmt_vec_info::const_cond_reduc_code):
8535 Rename to...
8536 (_stmt_vec_info::cond_reduc_code): ... this.
8537 (_stmt_vec_info::induc_cond_initial_val): Add.
8538 (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): Rename to...
8539 (STMT_VINFO_VEC_COND_REDUC_CODE): ... this.
8540 (STMT_VINFO_VEC_INDUC_COND_INITIAL_VAL): Add.
8541 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Adjust.
8542 * tree-vect-loop.c (get_initial_def_for_reduction): Pass in
8543 the reduction code.
8544 (vect_create_epilog_for_reduction): Drop special
8545 induction condition reduction params, pass in reduction code
8546 and simplify.
8547 (vectorizable_reduction): Perform condition reduction kind
8548 selection only at analysis time. Adjust passing on state.
8549
8550 2019-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8551
8552 * config/aarch64/aarch64.md (mov<mode>): Don't call
8553 aarch64_split_dimode_const_store on volatile MEM.
8554
8555 2019-09-24 Stamatis Markianos-Wright <stam.markianos-wright@arm.com>
8556
8557 * config/aarch64/aarch64-option-extensions.def (fp16fml):
8558 Update hwcap string for fp16fml.
8559
8560 2019-09-24 Jakub Jelinek <jakub@redhat.com>
8561
8562 PR middle-end/91866
8563 * match.pd (((T)(A)) + CST -> (T)(A + CST)): Formatting fix.
8564 (((T)(A + CST1)) + CST2 -> (T)(A) + (T)CST1 + CST2): New optimization.
8565
8566 2019-09-24 Martin Liska <mliska@suse.cz>
8567
8568 * cfgexpand.c (gimple_assign_rhs_to_tree): Use switch statement
8569 instead of if-elseif-elseif-...
8570 * gimple-expr.c (extract_ops_from_tree): Likewise.
8571 * gimple.c (get_gimple_rhs_num_ops): Likewise.
8572 * tree-ssa-forwprop.c (rhs_to_tree): Likewise.
8573
8574 2019-09-24 Martin Jambor <mjambor@suse.cz>
8575
8576 PR ipa/91831
8577 * ipa-param-manipulation.c (carry_over_param): Make a method of
8578 ipa_param_body_adjustments, remove now unnecessary argument. Also copy
8579 in case of a context mismatch.
8580 (ipa_param_body_adjustments::common_initialization): Adjust call to
8581 carry_over_param.
8582 * ipa-param-manipulation.h (class ipa_param_body_adjustments): Add
8583 private method carry_over_param.
8584
8585 2019-09-24 Martin Jambor <mjambor@suse.cz>
8586
8587 PR ipa/91832
8588 * ipa-sra.c (scan_expr_access): Check that offset is non-negative.
8589
8590 2019-09-24 Richard Biener <rguenther@suse.de>
8591
8592 * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize MEM_REF
8593 base.
8594
8595 2019-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8596
8597 * config/arm/t-arm (arm-builtins.o): Add dependency on
8598 arm_acle_builtins.def.
8599
8600 2019-09-23 Richard Sandiford <richard.sandiford@arm.com>
8601
8602 PR target/91823
8603 * config/rs6000/altivec.md (altivec_copysign_v4sf3): Generate
8604 canonical CONST_INTs. Use gen_rtvec.
8605
8606 2019-09-23 Richard Biener <rguenther@suse.de>
8607
8608 * tree-vect-loop.c (get_initial_def_for_reduction): Simplify,
8609 avoid adjusting by + 0 or * 1.
8610 (vect_create_epilog_for_reduction): Get reduction code only
8611 when necessary. Deal with adjustment_def only when necessary.
8612
8613 2019-09-23 Richard Sandiford <richard.sandiford@arm.com>
8614
8615 * config/aarch64/atomics.md (aarch64_store_exclusive_pair): Fix
8616 memmodel index.
8617
8618 2019-09-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8619
8620 PR ipa/91835
8621 * lto-section-in.c (lto_section_name): Use "ipa_sra" instead of
8622 "ipa-sra".
8623
8624 2019-09-22 Iain Sandoe <iain@sandoe.co.uk>
8625
8626 * config/rs6000/rs6000.c (machopic_output_stub): Remove dead
8627 code. Merge code blocks with common conditionals. Use declared
8628 macro instead of a magic number for PIC level.
8629
8630 2019-09-21 Martin Sebor <msebor@redhat.com>
8631
8632 PR middle-end/91830
8633 * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset):
8634 Simplify computation of the offset of the referenced subobject.
8635
8636 2019-09-21 Iain Sandoe <iain@sandoe.co.uk>
8637
8638 * config/darwin.c (machopic_legitimize_pic_address): Check
8639 for lra not reload.
8640
8641 2019-09-21 Richard Sandiford <richard.sandiford@arm.com>
8642
8643 * ira-conflicts.c (can_use_same_reg_p): New function.
8644 (process_reg_shuffles): Take an insn parameter. Ignore cases
8645 in which input operand op_num could seemingly never be allocated
8646 to the same register as the destination.
8647 (add_insn_allocno_copies): Update call to process_reg_shuffles.
8648
8649 2019-09-21 Richard Sandiford <richard.sandiford@arm.com>
8650
8651 * simplify-rtx.c (neg_const_int): Replace with...
8652 (neg_poly_int_rtx): ...this new function.
8653 (simplify_binary_operation_1): Extend (minus x C) -> (plus X -C)
8654 to all CONST_SCALAR_INTs and to CONST_POLY_INT.
8655 (simplify_plus_minus): Likewise for constant terms here.
8656
8657 2019-09-20 Jonas Pfeil <jonas.pfeil@uli-ulm.de>
8658
8659 * config/microblaze/microblaze.h (ASM_OUTPUT_SKIP): Use
8660 HOST_WIDE_PRINT_UNSIGNED.
8661
8662 2019-09-20 John David Anglin <danglin@gcc.gnu.org>
8663
8664 * config/pa/pa.c (pa_trampoline_init): Remove spurious extended
8665 character.
8666
8667 2019-09-20 Maya Rashish <coypu@sdf.org>
8668
8669 PR target/86811
8670 * config/vax/vax.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
8671 Define to speculation_safe_value_not_needed.
8672
8673 2019-09-20 Richard Biener <rguenther@suse.de>
8674 Uros Bizjak <ubizjak@gmail.com>
8675
8676 PR target/91814
8677 * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): Revert
8678 previous change.
8679 (general_scalar_chain::convert_op): Force not suitable memory
8680 operands to a register.
8681
8682 2019-09-20 Richard Biener <rguenther@suse.de>
8683
8684 PR tree-optimization/91821
8685 * tree-vect-loop.c (check_reduction_path): Check we can compute
8686 reduc_idx.
8687 (vect_is_simple_reduction): Set STMT_VINFO_REDUC_IDX.
8688 * tree-vect-patterns.c (vect_reassociating_reduction_p): Return
8689 operands in canonical order.
8690 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
8691 STMT_VINFO_REDUC_IDX.
8692 * tree-vectorizer.h (_stmt_vec_info::reduc_idx): New.
8693 (STMT_VINFO_REDUC_IDX): Likewise.
8694
8695 2019-09-20 Eric Botcazou <ebotcazou@adacore.com>
8696
8697 PR target/91269
8698 * config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
8699
8700 2019-09-20 Richard Biener <rguenther@suse.de>
8701
8702 PR tree-optimization/91822
8703 * tree-vectorizer.h (vectorizable_condition): Restore for_reduction
8704 parameter.
8705 * tree-vect-loop.c (vectorizable_reduction): Adjust asserts
8706 for reduc_index in nested cycles, adjust vectorizable_condition
8707 calls.
8708 * tree-vect-stmts.c (vectorizable_condition): Restore for_reduction
8709 parameter.
8710 (vect_analyze_stmt): Adjust.
8711 (vect_transform_stmt): Likewise.
8712
8713 2019-09-20 Richard Biener <rguenther@suse.de>
8714
8715 PR target/91767
8716 * config/i386/i386-features.c (general_scalar_chain::convert_registers):
8717 Ensure there's a sequence point between allocating the new register
8718 and passing a reference to a reg via regno_reg_rtx.
8719
8720 2019-09-20 Martin Jambor <mjambor@suse.cz>
8721
8722 * coretypes.h (cgraph_edge): Declare.
8723 * ipa-param-manipulation.c: Rewrite.
8724 * ipa-param-manipulation.h: Likewise.
8725 * Makefile.in (GTFILES): Added ipa-param-manipulation.h and ipa-sra.c.
8726 (OBJS): Added ipa-sra.o.
8727 * cgraph.h (ipa_replace_map): Removed fields old_tree, replace_p
8728 and ref_p, added fields param_adjustments and performed_splits.
8729 (struct cgraph_clone_info): Remove ags_to_skip and
8730 combined_args_to_skip, new field param_adjustments.
8731 (cgraph_node::create_clone): Changed parameters to use
8732 ipa_param_adjustments.
8733 (cgraph_node::create_virtual_clone): Likewise.
8734 (cgraph_node::create_virtual_clone_with_body): Likewise.
8735 (tree_function_versioning): Likewise.
8736 (cgraph_build_function_type_skip_args): Removed.
8737 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Convert to
8738 using ipa_param_adjustments.
8739 (clone_of_p): Likewise.
8740 * cgraphclones.c (cgraph_build_function_type_skip_args): Removed.
8741 (build_function_decl_skip_args): Likewise.
8742 (duplicate_thunk_for_node): Adjust parameters using
8743 ipa_param_body_adjustments, copy param_adjustments instead of
8744 args_to_skip.
8745 (cgraph_node::create_clone): Convert to using ipa_param_adjustments.
8746 (cgraph_node::create_virtual_clone): Likewise.
8747 (cgraph_node::create_version_clone_with_body): Likewise.
8748 (cgraph_materialize_clone): Likewise.
8749 (symbol_table::materialize_all_clones): Likewise.
8750 * ipa-fnsummary.c (ipa_fn_summary_t::duplicate): Simplify
8751 ipa_replace_map check.
8752 * ipa-cp.c (get_replacement_map): Do not initialize removed fields.
8753 (initialize_node_lattices): Make aware that some parameters might have
8754 already been removed.
8755 (want_remove_some_param_p): New function.
8756 (create_specialized_node): Convert to using ipa_param_adjustments and
8757 deal with possibly pre-existing adjustments.
8758 * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.
8759 (output_node_opt_summary): Do not stream removed fields. Stream
8760 parameter adjustments instead of argumetns to skip.
8761 (input_node_opt_summary): Likewise.
8762 (input_node_opt_summary): Likewise.
8763 * lto-section-in.c (lto_section_name): Added ipa-sra section.
8764 * lto-streamer.h (lto_section_type): Likewise.
8765 * tree-inline.h (copy_body_data): New fields killed_new_ssa_names and
8766 param_body_adjs.
8767 (copy_decl_to_var): Declare.
8768 * tree-inline.c (update_clone_info): Do not remap old_tree.
8769 (remap_gimple_stmt): Use ipa_param_body_adjustments to modify gimple
8770 statements, walk all extra generated statements and remap their
8771 operands.
8772 (redirect_all_calls): Add killed SSA names to a hash set.
8773 (remap_ssa_name): Do not remap killed SSA names.
8774 (copy_arguments_for_versioning): Renames to copy_arguments_nochange,
8775 half of functionality moved to ipa_param_body_adjustments.
8776 (copy_decl_to_var): Make exported.
8777 (copy_body): Destroy killed_new_ssa_names hash set.
8778 (expand_call_inline): Remap performed splits.
8779 (update_clone_info): Likewise.
8780 (tree_function_versioning): Simplify tree_map processing. Updated to
8781 accept ipa_param_adjustments and use ipa_param_body_adjustments.
8782 * omp-simd-clone.c (simd_clone_vector_of_formal_parm_types): Adjust
8783 for the new interface.
8784 (simd_clone_clauses_extract): Likewise, make args an auto_vec.
8785 (simd_clone_compute_base_data_type): Likewise.
8786 (simd_clone_init_simd_arrays): Adjust for the new interface.
8787 (simd_clone_adjust_argument_types): Likewise.
8788 (struct modify_stmt_info): Likewise.
8789 (ipa_simd_modify_stmt_ops): Likewise.
8790 (ipa_simd_modify_function_body): Likewise.
8791 (simd_clone_adjust): Likewise.
8792 * tree-sra.c: Removed IPA-SRA. Include tree-sra.h.
8793 (type_internals_preclude_sra_p): Make public.
8794 * tree-sra.h: New file.
8795 * ipa-inline-transform.c (save_inline_function_body): Update to
8796 refelct new tree_function_versioning signature.
8797 * ipa-prop.c (adjust_agg_replacement_values): Use a helper from
8798 ipa_param_adjustments to get current parameter indices.
8799 (ipcp_modif_dom_walker::before_dom_children): Likewise.
8800 (ipcp_update_bits): Likewise.
8801 (ipcp_update_vr): Likewise.
8802 * ipa-split.c (split_function): Convert to using ipa_param_adjustments.
8803 * ipa-sra.c: New file.
8804 * multiple_target.c (create_target_clone): Update to reflet new type
8805 of create_version_clone_with_body.
8806 * trans-mem.c (ipa_tm_create_version): Update to reflect new type of
8807 tree_function_versioning.
8808 (modify_function): Update to reflect new type of
8809 tree_function_versioning.
8810 * params.def (PARAM_IPA_SRA_MAX_REPLACEMENTS): New.
8811 * passes.def: Remove old IPA-SRA and add new one.
8812 * tree-pass.h (make_pass_early_ipa_sra): Remove declaration.
8813 (make_pass_ipa_sra): Declare.
8814 * dbgcnt.def: Remove eipa_sra. Added ipa_sra_params and
8815 ipa_sra_retvalues.
8816 * doc/invoke.texi (ipa-sra-max-replacements): New.
8817
8818 2019-09-19 Martin Sebor <msebor@redhat.com>
8819
8820 PR middle-end/91631
8821 * builtins.c (component_size): Correct trailing array computation,
8822 rename to component_ref_size and move...
8823 (compute_objsize): Adjust.
8824 * gimple-ssa-warn-restrict.c (builtin_memref::refsize): New member.
8825 (builtin_access::strict): Do not consider memmove.
8826 (builtin_access::write_off): New function.
8827 (builtin_memref::builtin_memref): Initialize refsize.
8828 (builtin_memref::set_base_and_offset): Adjust refoff and compute
8829 refsize.
8830 (builtin_memref::offset_out_of_bounds): Use ooboff input values.
8831 Handle refsize.
8832 (builtin_access::builtin_access): Initialize dstoff to destination
8833 refeence offset here instead of in maybe_diag_overlap. Adjust
8834 referencess even to unrelated objects. Adjust sizrange of bounded
8835 string functions to reflect bound. For strcat, adjust destination
8836 sizrange by that of source.
8837 (builtin_access::strcat_overlap): Adjust offsets and sizes
8838 to reflect the increase in destination sizrange above.
8839 (builtin_access::overlap): Do not set dstoff here but instead
8840 in builtin_access::builtin_access.
8841 (check_bounds_or_overlap): Use builtin_access::write_off.
8842 (maybe_diag_access_bounds): Add argument. Add informational notes.
8843 (dump_builtin_memref, dump_builtin_access): New functions.
8844 * tree.c (component_ref_size): ...to here.
8845 * tree.h (component_ref_size): Declare.
8846 * tree-ssa-strlen (handle_builtin_strcat): Include the terminating
8847 nul in the size of the source string.
8848
8849 2019-09-19 Lewis Hyatt <lhyatt@gmail.com>
8850
8851 PR c/67224
8852 * doc/cpp.texi: Document support for extended characters in
8853 identifiers.
8854 * doc/cppopts.texi: Likewise.
8855
8856 2019-09-19 Richard Biener <rguenther@suse.de>
8857
8858 * tree-vect-loop.c (vect_is_slp_reduction): Remove.
8859 (check_reduction_path): New overload having the path as result.
8860 (vect_is_simple_reduction): From the detected reduction
8861 path build a SLP reduction chain if possible.
8862
8863 2019-09-19 Richard Biener <rguenther@suse.de>
8864
8865 PR target/91814
8866 * config/i386/i386-features.c (gen_gpr_to_xmm_move_src):
8867 Force operand to a register if it isn't nonimmediate_operand.
8868
8869 2019-09-19 Wilco Dijkstra <wdijkstr@arm.com>
8870
8871 * config/arm/arm.md (<logical_op>di3): Use <optab> and <CODE>.
8872 * config/arm/iterators.md (optab): Add and, ior, xor entries.
8873 (logical_op): Remove code attribute.
8874 (logical_OP): Likewise.
8875
8876 2019-09-19 Martin Liska <mliska@suse.cz>
8877
8878 * ipa-icf.c (sort_congruence_class_groups_by_decl_uid):
8879 Use proper casting.
8880
8881 2019-09-19 Richard Henderson <richard.henderson@linaro.org>
8882
8883 * config/aarch64/aarch64.c (aarch64_print_operand): Allow integer
8884 registers with %R.
8885
8886 * config/aarch64/aarch64.c (aarch64_gen_compare_reg): Add support
8887 for NE comparison of TImode values.
8888 (aarch64_emit_load_exclusive): Add support for TImode.
8889 (aarch64_emit_store_exclusive): Likewise.
8890 (aarch64_split_compare_and_swap): Disable strong_zero_p for TImode.
8891 * config/aarch64/atomics.md (@atomic_compare_and_swap<ALLI_TI>):
8892 Change iterator from ALLI to ALLI_TI.
8893 (@atomic_compare_and_swap<JUST_TI>): New.
8894 (@atomic_compare_and_swap<JUST_TI>_lse): New.
8895 (aarch64_load_exclusive_pair): New.
8896 (aarch64_store_exclusive_pair): New.
8897 * config/aarch64/iterators.md (JUST_TI): New.
8898
8899 * config/aarch64/aarch64 (aarch64_split_compare_and_swap): Disable
8900 strong_zero_p for aarch64_track_speculation; unify some code paths;
8901 use aarch64_gen_compare_reg instead of open-coding.
8902
8903 * config/aarch64/aarch64.opt (-moutline-atomics): New.
8904 * config/aarch64/aarch64.c (aarch64_atomic_ool_func): New.
8905 (aarch64_ool_cas_names, aarch64_ool_swp_names): New.
8906 (aarch64_ool_ldadd_names, aarch64_ool_ldset_names): New.
8907 (aarch64_ool_ldclr_names, aarch64_ool_ldeor_names): New.
8908 (aarch64_expand_compare_and_swap): Honor TARGET_OUTLINE_ATOMICS.
8909 * config/aarch64/atomics.md (atomic_exchange<ALLI>): Likewise.
8910 (atomic_<atomic_op><ALLI>): Likewise.
8911 (atomic_fetch_<atomic_op><ALLI>): Likewise.
8912 (atomic_<atomic_op>_fetch<ALLI>): Likewise.
8913 * doc/invoke.texi: Document -moutline-atomics.
8914
8915 2019-09-19 Feng Xue <fxue@os.amperecomputing.com>
8916
8917 * ipa-fnsummary.c (set_cond_stmt_execution_predicate): Do not compute
8918 trivial predicate for condition branch.
8919 (set_switch_stmt_execution_predicate): Do not compute trivial predicate
8920 for switch case.
8921 (compute_bb_predicates): Update predicate based on post-dominating
8922 relationship.
8923 (analyze_function_body): Calculate post-dominating information.
8924
8925 2019-09-19 Richard Sandiford <richard.sandiford@arm.com>
8926
8927 * tree-vectorizer.h (vectorizable_condition): Take an int
8928 reduction index instead of a boolean flag.
8929 * tree-vect-stmts.c (vectorizable_condition): Likewise.
8930 Swap the "then" and "else" values for EXTRACT_LAST_REDUCTION
8931 reductions if the reduction accumulator is the "then" rather
8932 than the "else" value.
8933 (vect_analyze_stmt): Update call accordingly.
8934 (vect_transform_stmt): Likewise.
8935 * tree-vect-loop.c (vectorizable_reduction): Likewise,
8936 asserting that the index is > 0.
8937
8938 2019-09-19 Martin Liska <mliska@suse.cz>
8939
8940 * ipa-icf.c (sort_sem_items_by_decl_uid): Simplify comparator.
8941 (sort_congruence_classes_by_decl_uid): Likewise.
8942 (sort_congruence_class_groups_by_decl_uid): Use std::pair for
8943 easier sorting.
8944 (sem_item_optimizer::merge_classes): Likewise.
8945
8946 2019-09-19 Richard Biener <rguenther@suse.de>
8947
8948 PR tree-optimization/91812
8949 * tree-ssa-phiprop.c (propagate_with_phi): Do not replace
8950 volatile loads.
8951
8952 2019-09-19 Richard Sandiford <richard.sandiford@arm.com>
8953
8954 * defaults.h (TARGET_UNIT): New macro.
8955 (target_unit): New type.
8956 * rtl.h (native_encode_rtx, native_decode_rtx)
8957 (native_decode_vector_rtx, subreg_size_lsb): Declare.
8958 (subreg_lsb_1): Turn into an inline wrapper around subreg_size_lsb.
8959 * rtlanal.c (subreg_lsb_1): Delete.
8960 (subreg_size_lsb): New function.
8961 * simplify-rtx.c: Include rtx-vector-builder.h
8962 (simplify_immed_subreg): Delete.
8963 (native_encode_rtx, native_decode_vector_rtx, native_decode_rtx)
8964 (simplify_const_vector_byte_offset, simplify_const_vector_subreg): New
8965 functions.
8966 (simplify_subreg): Use them.
8967 (test_vector_subregs_modes, test_vector_subregs_repeating)
8968 (test_vector_subregs_fore_back, test_vector_subregs_stepped)
8969 (test_vector_subregs): New functions.
8970 (test_vector_ops): Call test_vector_subregs for integer vector
8971 modes with at least 2 elements.
8972
8973 2019-09-19 Richard Biener <rguenther@suse.de>
8974
8975 * tree-parloops.c (parloops_is_slp_reduction): Do not set
8976 LOOP_VINFO_OPERANDS_SWAPPED.
8977 (parloops_is_simple_reduction): Likewise.
8978 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Do not
8979 initialize operands_swapped.
8980 (_loop_vec_info::~_loop_vec_info): Do not re-canonicalize stmts.
8981 (vect_is_slp_reduction): Do not swap operands.
8982 * tree-vectorizer.h (_loop_vec_info::operands_swapped): Remove.
8983 (LOOP_VINFO_OPERANDS_SWAPPED): Likewise.
8984
8985 2019-09-19 Hongtao Liu <hongtao.liu@intel.com>
8986
8987 PR target/87007
8988 * config/i386.md (*floatuns<SWI48:mode><MODEF:mode>2_avx512):
8989 Add avx_partial_xmm_update.
8990
8991 2019-09-18 Jim Wilson <jimw@sifive.com>
8992
8993 PR target/91683
8994 * config/riscv/riscv-protos.h (riscv_split_symbol): New bool parameter.
8995 (riscv_move_integer): Likewise.
8996 * config/riscv/riscv.c (riscv_split_integer): Pass FALSE for new
8997 riscv_move_integer arg.
8998 (riscv_legitimize_move): Likewise.
8999 (riscv_force_temporary): New parameter in_splitter. Don't call
9000 force_reg if true.
9001 (riscv_unspec_offset_high): Pass FALSE for new riscv_force_temporary
9002 arg.
9003 (riscv_add_offset): Likewise.
9004 (riscv_split_symbol): New parameter in_splitter. Pass to
9005 riscv_force_temporary.
9006 (riscv_legitimize_address): Pass FALSE for new riscv_split_symbol
9007 arg.
9008 (riscv_move_integer): New parameter in_splitter. New local
9009 can_create_psuedo. Don't call riscv_split_integer or force_reg when
9010 in_splitter TRUE.
9011 (riscv_legitimize_const_move): Pass FALSE for new riscv_move_integer,
9012 riscv_split_symbol, and riscv_force_temporary args.
9013 * config/riscv/riscv.md (low<mode>+1): Pass TRUE for new
9014 riscv_move_integer arg.
9015 (low<mode>+2): Pass TRUE for new riscv_split_symbol arg.
9016
9017 2019-09-18 H.J. Lu <hongjiu.lu@intel.com>
9018
9019 PR target/90878
9020 * config/i386/x86-tune-costs.h (skylake_cost): Restore SImode
9021 hard register store cost to 6.
9022
9023 2019-09-18 H.J. Lu <hongjiu.lu@intel.com>
9024
9025 PR target/91446
9026 * config/i386/x86-tune-costs.h (skylake_cost): Increase SImode
9027 pseudo register store cost from 3 to 6 to make it the same as
9028 QImode and HImode.
9029
9030 2019-09-18 Wilco Dijkstra <wdijkstr@arm.com>
9031
9032 PR target/91738
9033 * config/arm/arm.md (<logical_op>di3): Expand explicitly.
9034 (one_cmpldi2): Likewise.
9035 * config/arm/arm.c (const_ok_for_dimode_op): Return true if one
9036 of the constant parts is simple.
9037 * config/arm/iterators.md (LOGICAL): Add new code iterator.
9038 (logical_op): Add new code attribute.
9039 (logical_OP): Likewise.
9040 * config/arm/predicates.md (arm_anddi_operand): Add predicate.
9041 (arm_iordi_operand): Add predicate.
9042 (arm_xordi_operand): Add predicate.
9043
9044 2019-09-18 Wilco Dijkstra <wdijkstr@arm.com>
9045
9046 * config/arm/arm.md (maddsidi4): Remove expander.
9047 (mulsidi3adddi): Remove pattern.
9048 (mulsidi3adddi_v6): Likewise.
9049 (mulsidi3_nov6): Likewise.
9050 (mulsidi3_v6): Likewise.
9051 (umulsidi3): Remove expander.
9052 (umulsidi3_nov6): Remove pattern.
9053 (umulsidi3_v6): Likewise.
9054 (umulsidi3adddi): Likewise.
9055 (umulsidi3adddi_v6): Likewise.
9056 (<Us>mulsidi3): Add combined expander.
9057 (<Us>maddsidi4): Likewise.
9058 (<US>mull): Add combined umull and smull pattern.
9059 (<US>mlal): Likewise.
9060 * config/arm/iterators.md (Us): Add new iterator.
9061
9062 2019-09-18 Richard Biener <rguenther@suse.de>
9063
9064 * tree-vect-loop.c (vect_is_simple_reduction): Remove operand
9065 swapping.
9066 (vectorize_fold_left_reduction): Remove assert.
9067 (vectorizable_reduction): Also expect COND_EXPR non-reduction
9068 operand in position 2. Remove assert.
9069
9070 2019-09-18 Wilco Dijkstra <wdijkstr@arm.com>
9071
9072 * config/arm/arm.md (smulsi3_highpart): Use <US> and <SE> iterators.
9073 (smulsi3_highpart_nov6): Remove pattern.
9074 (smulsi3_highpart_v6): Likewise.
9075 (umulsi3_highpart): Likewise.
9076 (umulsi3_highpart_nov6): Likewise.
9077 (umulsi3_highpart_v6): Likewise.
9078 (<US>mull_high): Add new combined multiply pattern.
9079
9080 2019-09-18 Wilco Dijkstra <wdijkstr@arm.com>
9081
9082 * config/arm/arm.md (arm_mulsi3): Remove pattern.
9083 (arm_mulsi3_v6): Likewise.
9084 (mulsi3addsi_v6): Likewise.
9085 (mulsi3subsi): Likewise.
9086 (mul): Add new multiply pattern.
9087 (mla): Likewise.
9088 (mls): Likewise.
9089
9090 2019-09-18 Richard Biener <rguenther@suse.de>
9091
9092 * tree-parloops.c (report_ploop_op): Copy from report_vect_op.
9093 (parloops_valid_reduction_input_p): Copy from
9094 valid_reduction_input_p.
9095 (parloops_is_slp_reduction): Copy from vect_is_slp_reduction.
9096 (parloops_needs_fold_left_reduction_p): Copy from
9097 needs_fold_left_reduction_p.
9098 (parloops_is_simple_reduction): Copy from
9099 vect_is_simple_reduction.
9100 (parloops_force_simple_reduction): Copy from
9101 vect_force_simple_reduction.
9102 (gather_scalar_reductions): Adjust.
9103 * tree-vect-loop.c (vect_force_simple_reduction): Make static.
9104 * tree-vectorizer.h (vect_force_simple_reduction): Remove.
9105
9106 2019-09-18 Richard Biener <rguenther@suse.de>
9107
9108 * tree-vectorizer.h (get_initial_def_for_reduction): Remove.
9109 * tree-vect-loop.c (get_initial_def_for_reduction): Make
9110 static.
9111 (vect_create_epilog_for_reduction): Remove dead code.
9112
9113 2019-09-18 Richard Sandiford <richard.sandiford@arm.com>
9114
9115 * varasm.c (assemble_real): Generate canonical const_ints.
9116
9117 2019-09-18 Richard Biener <rguenther@suse.de>
9118
9119 PR lto/91763
9120 * lto-streamer-in.c (input_eh_regions): Move EH init to
9121 lto_materialize_function.
9122 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers):
9123 Likewise.
9124
9125 2019-09-18 Richard Sandiford <richard.sandiford@arm.com>
9126
9127 * tree-ssa-ccp.c (get_value_for_expr): Check whether CONSTANTs
9128 are INTEGER_CSTs.
9129
9130 2019-09-18 Richard Sandiford <richard.sandiford@arm.com>
9131
9132 * gimplify.c (gimplify_decl_expr): Use poly_int_tree_p instead
9133 of checking specifically for INTEGER_CST.
9134
9135 2019-09-18 Richard Sandiford <richard.sandiford@arm.com>
9136
9137 * stor-layout.c (compute_record_mode): Operate on poly_uint64
9138 sizes instead of uhwi sizes.
9139
9140 2019-09-18 Richard Sandiford <richard.sandiford@arm.com>
9141
9142 * dwarf2out.c (loc_list_from_tree_1): Handle POLY_INT_CST.
9143 (add_const_value_attribute): Handle CONST_POLY_INT.
9144
9145 2019-09-18 Martin Liska <mliska@suse.cz>
9146
9147 * dbgcnt.def (store_merging): New counter.
9148 * gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_stores):
9149 Use it in store merging.
9150
9151 2019-09-17 Richard Sandiford <richard.sandiford@arm.com>
9152
9153 * config/aarch64/aarch64.c (aarch64_sched_variable_issue): New
9154 function.
9155 (TARGET_SCHED_VARIABLE_ISSUE): New macro.
9156 * config/arm/arm.c (arm_sched_variable_issue): New function.
9157 (TARGET_SCHED_VARIABLE_ISSUE): New macro.
9158
9159 2019-09-17 Richard Sandiford <richard.sandiford@arm.com>
9160
9161 * config/arm/types.md (no_reservation): New reservation.
9162 * config/aarch64/falkor.md (falkor_other_0_nothing): Don't handle
9163 no_insn here.
9164 * config/aarch64/saphira.md (saphira_other_0_nothing): Likewise.
9165 * config/aarch64/thunderx2t99.md (thunderx2t99_nothing): Likewise.
9166 * config/aarch64/tsv110.md (tsv110_alu): Likewise.
9167 * config/arm/arm1020e.md (1020alu_op): Likewise.
9168 * config/arm/arm1026ejs.md (alu_op): Likewise.
9169 * config/arm/arm1136jfs.md (11_alu_op): Likewise.
9170 * config/arm/arm926ejs.md (9_alu_op): Likewise.
9171 * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
9172 * config/arm/cortex-a17.md (cortex_a17_alu): Likewise.
9173 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
9174 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
9175 * config/arm/cortex-a57.md (cortex_a57_alu): Likewise.
9176 * config/arm/cortex-a7.md (cortex_a7_alu_shift): Likewise.
9177 * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
9178 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
9179 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
9180 * config/arm/cortex-m7.md (cortex_m7_alu_simple): Likewise.
9181 * config/arm/cortex-r4.md (cortex_r4_alu_shift_reg): Likewise.
9182 * config/arm/fa526.md (526_alu_op): Likewise.
9183 * config/arm/fa606te.md (606te_alu_op): Likewise.
9184 * config/arm/fa626te.md (626te_alu_op): Likewise.
9185 * config/arm/fa726te.md (726te_alu_op): Likewise.
9186 * config/arm/xgene1.md (xgene1_nop): Likewise.
9187
9188 2019-09-17 Richard Sandiford <richard.sandiford@arm.com>
9189
9190 * config/arm/thumb1.md (*thumb1_tablejump): Change type from
9191 "no_insn" to "branch".
9192
9193 2019-09-17 Richard Sandiford <richard.sandiford@arm.com>
9194
9195 * array-traits.h (array_traits<T[N]>::size): Remove parameter name.
9196
9197 2019-09-17 Richard Biener <rguenther@suse.de>
9198
9199 PR debug/91772
9200 * dwarf2out.c (dwarf2out_late_global_decl): If early dwarf
9201 was missing generate locations only once.
9202
9203 2019-09-17 Feng Xue <fxue@os.amperecomputing.com>
9204
9205 PR ipa/91089
9206 * doc/invoke.texi (ipa-max-switch-predicate-bounds): Document new
9207 option.
9208 * params.def (PARAM_IPA_MAX_SWITCH_PREDICATE_BOUNDS): New.
9209 * ipa-fnsummary.c (set_switch_stmt_execution_predicate): Add predicate
9210 for switch default case using range analysis information.
9211
9212 2019-09-17 Christophe Lyon <christophe.lyon@linaro.org>
9213
9214 PR target/91749
9215 * config/arm/arm.c (arm_valid_target_attribute_rec): Make sure the
9216 mode attributed is supported by FDPIC.
9217
9218 2019-09-17 Richard Biener <rguenther@suse.de>
9219
9220 PR tree-optimization/91790
9221 * tree-vect-stmts.c (vectorizable_load): For BB vectorization
9222 use the correct DR for setting up realignment.
9223
9224 2019-09-16 Uroš Bizjak <ubizjak@gmail.com>
9225
9226 PR target/91719
9227 * config/i386/i386.h (TARGET_USE_XCHG_FOR_ATOMIC_STORE): New macro.
9228 * config/i386/x86-tune.def (X86_TUNE_USE_XCHG_FOR_ATOMIC_STORE): New.
9229 * config/i386/sync.md (atomic_store<mode>): emit XCHG for
9230 TARGET_USE_XCHG_FOR_ATOMIC_STORE.
9231
9232 2019-09-16 Jason Merrill <jason@redhat.com>
9233
9234 * Makefile.in (build/genmatch.o): Depend on $(CPPLIB_H).
9235
9236 2019-09-16 Martin Liska <mliska@suse.cz>
9237
9238 * gimple-fold.c (or_comparisons_1): Remove rules moved
9239 to ...
9240 * match.pd: ... here.
9241
9242 2019-09-16 Martin Liska <mliska@suse.cz>
9243
9244 * gimple-fold.c (or_comparisons_1): Remove rules
9245 moved to ...
9246 * match.pd: ... here.
9247
9248 2019-09-16 Martin Liska <mliska@suse.cz>
9249
9250 * genmatch.c (dt_node::append_simplify): Do not print
9251 warning when we have duplicate patterns belonging
9252 to a same simplify rule.
9253 * gimple-fold.c (and_comparisons_1): Remove matching moved to match.pd.
9254 (maybe_fold_comparisons_from_match_pd): Handle
9255 tcc_comparison as a results.
9256 * match.pd: Handle (X == CST1) && (X OP2 CST2) conditions.
9257
9258 2019-09-16 Li Jia He <helijia@linux.ibm.com>
9259 Qi Feng <ffengqi@linux.ibm.com>
9260
9261 PR middle-end/88784
9262 * match.pd (x > y && x != XXX_MIN): Optimize into 'x > y'.
9263 (x > y && x == XXX_MIN): Optimize into 'false'.
9264 (x <= y && x == XXX_MIN): Optimize into 'x == XXX_MIN'.
9265 (x < y && x != XXX_MAX): Optimize into 'x < y'.
9266 (x < y && x == XXX_MAX): Optimize into 'false'.
9267 (x >= y && x == XXX_MAX): Optimize into 'x == XXX_MAX'.
9268 (x > y || x != XXX_MIN): Optimize into 'x != XXX_MIN'.
9269 (x <= y || x != XXX_MIN): Optimize into 'true'.
9270 (x <= y || x == XXX_MIN): Optimize into 'x <= y'.
9271 (x < y || x != XXX_MAX): Optimize into 'x != XXX_MAX'.
9272 (x >= y || x != XXX_MAX): Optimize into 'true'.
9273 (x >= y || x == XXX_MAX): Optimize into 'x >= y'.
9274
9275 2019-09-16 Li Jia He <helijia@linux.ibm.com>
9276 Martin Liska <mliska@suse.cz>
9277
9278 * gimple-fold.c (and_comparisons_1): Add type as first
9279 argument.
9280 (and_var_with_comparison): Likewise.
9281 (and_var_with_comparison_1): Likewise.
9282 (or_comparisons_1): Likewise.
9283 (or_var_with_comparison): Likewise.
9284 (or_var_with_comparison_1): Likewise.
9285 (maybe_fold_and_comparisons): Call maybe_fold_comparisons_from_match_pd.
9286 (maybe_fold_or_comparisons): Likewise.
9287 (maybe_fold_comparisons_from_match_pd): New.
9288 * gimple-fold.h (maybe_fold_and_comparisons): Add type argument.
9289 (maybe_fold_or_comparisons): Likewise.
9290 * gimple.c (gimple_size): Make it public and add num_ops argument.
9291 (gimple_init): New function.
9292 (gimple_alloc): Call gimple_init.
9293 * gimple.h (gimple_size): New.
9294 (gimple_init): Likewise.
9295 * tree-if-conv.c (fold_or_predicates): Pass type.
9296 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
9297 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Likewise.
9298 (optimize_vec_cond_expr): Likewise.
9299 (ovce_extract_ops): Return type of conditional expression.
9300 * tree-ssanames.c (init_ssa_name_imm_use): New.
9301 (make_ssa_name_fn): Use init_ssa_name_imm_use.
9302 * tree-ssanames.h (init_ssa_name_imm_use): New.
9303
9304 2019-09-16 Richard Biener <rguenther@suse.de>
9305
9306 PR tree-optimization/91756
9307 PR tree-optimization/87132
9308 * tree-ssa-alias.h (enum translate_flags): New.
9309 (get_continuation_for_phi): Use it instead of simple bool flag.
9310 (walk_non_aliased_vuses): Likewise.
9311 * tree-ssa-alias.c (maybe_skip_until): Adjust.
9312 (get_continuation_for_phi): When looking across backedges only
9313 disallow valueization.
9314 (walk_non_aliased_vuses): Adjust.
9315 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid valueization
9316 if requested.
9317
9318 2019-09-14 Kewen Lin <linkw@gcc.gnu.org>
9319
9320 PR middle-end/80791
9321 * config/rs6000/rs6000.c (TARGET_HAVE_COUNT_REG_DECR_P): New macro.
9322 (TARGET_DOLOOP_COST_FOR_GENERIC): Likewise.
9323 (TARGET_DOLOOP_COST_FOR_ADDRESS): Likewise.
9324 * target.def (have_count_reg_decr_p): New hook.
9325 (doloop_cost_for_generic): Likewise.
9326 (doloop_cost_for_address): Likewise.
9327 * doc/tm.texi.in (TARGET_HAVE_COUNT_REG_DECR_P): Likewise.
9328 (TARGET_DOLOOP_COST_FOR_GENERIC): Likewise.
9329 (TARGET_DOLOOP_COST_FOR_ADDRESS): Likewise.
9330 * doc/tm.texi: Regenerate.
9331 * tree-ssa-loop-ivopts.c (comp_cost::operator+=): Consider infinite cost
9332 addend.
9333 (record_group): Init doloop_p.
9334 (add_candidate_1): Add optional argument doloop, change the handlings
9335 accordingly.
9336 (add_candidate): Likewise.
9337 (generic_predict_doloop_p): Update attribute.
9338 (force_expr_to_var_cost): Add costing for expressions COND_EXPR/LT_EXPR/
9339 LE_EXPR/GT_EXPR/GE_EXPR/EQ_EXPR/NE_EXPR/UNORDERED_EXPR/ORDERED_EXPR/
9340 UNLT_EXPR/UNLE_EXPR/UNGT_EXPR/UNGE_EXPR/UNEQ_EXPR/LTGT_EXPR/MAX_EXPR/
9341 MIN_EXPR.
9342 (get_computation_cost): Update for doloop IV cand extra cost.
9343 (determine_group_iv_cost_cond): Update for doloop IV cand.
9344 (determine_iv_cost): Likewise.
9345 (ivopts_estimate_reg_pressure): Likewise.
9346 (may_eliminate_iv): Update handlings for doloop IV cand.
9347 (add_iv_candidate_for_doloop): New function.
9348 (find_iv_candidates): Call function add_iv_candidate_for_doloop.
9349 (iv_ca_set_no_cp): Update for doloop IV cand.
9350 (iv_ca_set_cp): Likewise.
9351 (iv_ca_dump): Dump register cost.
9352 (find_doloop_use): New function.
9353 (analyze_and_mark_doloop_use): Likewise.
9354 (tree_ssa_iv_optimize_loop): Call function analyze_and_mark_doloop_use.
9355
9356 2019-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
9357
9358 PR middle-end/91708
9359 * cse.c (cse_insn): Do not replace anything with a
9360 MEM.
9361
9362 2019-09-13 Ian Lance Taylor <iant@golang.org>
9363
9364 * doc/invoke.texi (Optimize Options): Fix typo.
9365
9366 2019-09-12 Uroš Bizjak <ubizjak@gmail.com>
9367
9368 PR tree-optimization/89386
9369 * config/i386/sse.md (smulhrs<mode>3): New expander.
9370 (smulhrsv4hi3): Ditto.
9371
9372 2019-09-12 Richard Biener <rguenther@suse.de>
9373
9374 PR tree-optimization/91750
9375 * tree-vect-loop.c (vectorizable_induction): Compute IV increments
9376 in the type of the evolution.
9377
9378 2019-09-12 Yuliang Wang <yuliang.wang@arm.com>
9379
9380 PR tree-optimization/89386
9381 * config/aarch64/aarch64-sve2.md (<su>mull<bt><Vwide>)
9382 (<r>shrnb<mode>, <r>shrnt<mode>): New SVE2 patterns.
9383 (<su>mulh<r>s<mode>3): New pattern for MULHRS.
9384 * config/aarch64/iterators.md (UNSPEC_SMULLB, UNSPEC_SMULLT)
9385 (UNSPEC_UMULLB, UNSPEC_UMULLT, UNSPEC_SHRNB, UNSPEC_SHRNT)
9386 (UNSPEC_RSHRNB, UNSPEC_RSHRNT, UNSPEC_SMULHS, UNSPEC_SMULHRS)
9387 UNSPEC_UMULHS, UNSPEC_UMULHRS): New unspecs.
9388 (MULLBT, SHRNB, SHRNT, MULHRS): New int iterators.
9389 (su, r): Handle the unspecs above.
9390 (bt): New int attribute.
9391 * internal-fn.def (IFN_MULHS, IFN_MULHRS): New internal functions.
9392 * internal-fn.c (first_commutative_argument): Commutativity info for
9393 above.
9394 * optabs.def (smulhs_optab, smulhrs_optab, umulhs_optab)
9395 (umulhrs_optab): New optabs.
9396 * doc/md.texi (smulhs$var{m3}, umulhs$var{m3})
9397 (smulhrs$var{m3}, umulhrs$var{m3}): Documentation for the above.
9398 * tree-vect-patterns.c (vect_recog_mulhs_pattern): New pattern
9399 function.
9400 (vect_vect_recog_func_ptrs): Add it.
9401
9402 2019-09-11 Michael Meissner <meissner@linux.ibm.com>
9403
9404 * config/rs6000/predicates.md (non_add_cint_operand): Simplify the
9405 code.
9406
9407 2019-09-11 Nathan Sidwell <nathan@acm.org>
9408
9409 * tree.h (MARK_TS_TYPE_NON_COMMON): New.
9410 * tree.c (tree_node_structure_for_code): Reformat and alphabetize.
9411
9412 2019-09-11 Richard Biener <rguenther@suse.de>
9413
9414 * lto-opts.c (lto_write_options): Stream -g when debug is enabled.
9415 * lto-wrapper.c (merge_and_complain): Pick up -g.
9416 (append_compiler_options): Likewise.
9417 (run_gcc): Re-instantiate handling -g0 at link-time.
9418 * doc/invoke.texi (flto): Document debug info generation.
9419
9420 2019-09-11 Richard Biener <rguenther@suse.de>
9421
9422 PR tree-optimization/90387
9423 * vr-values.c (vr_values::extract_range_basic): After inlining
9424 simplify non-constant __builtin_constant_p to false.
9425
9426 2019-09-11 Eric Botcazou <ebotcazou@adacore.com>
9427
9428 PR rtl-optimization/89795
9429 * rtlanal.c (nonzero_bits1) <SUBREG>: Do not propagate results from
9430 inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set.
9431
9432 2019-09-11 Jakub Jelinek <jakub@redhat.com>
9433
9434 PR tree-optimization/91723
9435 * tree-vect-stmts.c (vectorizable_call): Use types_compatible_p check
9436 instead of pointer equality when checking if argument vectypes are
9437 the same.
9438
9439 PR middle-end/91725
9440 * match.pd ((A / (1 << B)) -> (A >> B)): Call tree_nonzero_bits instead
9441 of get_nonzero_bits, only call it for integral types.
9442
9443 2019-09-11 Richard Biener <rguenther@suse.de>
9444
9445 Revert
9446 2019-09-09 Barnaby Wilks <barnaby.wilks@arm.com>
9447
9448 * match.pd: Add flag_unsafe_math_optimizations check
9449 before deciding on the widest type in a binary math operation.
9450
9451 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
9452
9453 * doc/tm.texi.in: Document that exactly one of CALL_USED_REGISTERS
9454 and CALL_REALLY_USED_REGISTERS must be defined, and that
9455 CALL_REALLY_USED_REGISTERS is preferred.
9456 * doc/tm.texi: Regenerate.
9457 * hard-reg-set.h (target_hard_regs::x_call_really_used_regs): Delete.
9458 (call_really_used_regs): Likewise.
9459 * reginfo.c: Raise an #error if both CALL_USED_REGISTERS and
9460 CALL_REALLY_USED_REGISTERS are defined.
9461 (initial_call_used_regs): Use CALL_REALLY_USED_REGISTERS as the
9462 initial value if defined.
9463 (initial_call_really_used_regs): Delete.
9464 (saved_call_really_used_regs): Likewise.
9465 (CALL_REALLY_USED_REGNO_P): Likewise.
9466 (init_reg_sets): Remove handling of call_really_used_regs.
9467 (save_register_info, restore_register_info, globalize_reg): Likewise.
9468 (init_reg_sets_1): Likewise. Use call_used_regs instead of
9469 CALL_REALLY_USED_REGNO_P. Don't set call_used_regs for registers
9470 outside operand_reg_set.
9471 (fix_register): Don't change call_used_regs if
9472 CALL_REALLY_USED_REGISTERS is defined.
9473 * config/csky/csky.h (CALL_USED_REGISTERS): Delete.
9474 * config/csky/csky.c (get_csky_live_regs): Use call_used_regs
9475 instead of call_really_used_regs.
9476 (csky_conditional_register_usage): Remove the old handling of
9477 call_used_regs and change the handling of call_really_used_regs
9478 to use call_used_regs instead.
9479 * config/ia64/ia64.h (CALL_USED_REGISTERS): Delete.
9480 * config/ia64/ia64.c (fix_range): Don't set call_used_regs when
9481 making a register fixed.
9482 * config/m32r/m32r.h (CALL_USED_REGISTERS): Delete.
9483 * config/m32r/m32r.c (MUST_SAVE_REGISTER): Use call_used_regs
9484 instead of call_really_used_regs.
9485 (m32r_conditional_register_usage): Don't set call_used_regs when
9486 making a register fixed.
9487 * config/mips/mips.h (CALL_USED_REGISTERS): Delete.
9488 * config/mips/mips.c (mips_global_pointer): Use call_used_regs
9489 instead of call_really_used_regs.
9490 (mips_interrupt_extra_call_saved_reg_p): Likewise.
9491 (mips_cfun_call_saved_reg_p): Likewise.
9492 (mips_swap_registers): Remove the old handling of call_used_regs
9493 and change the handling of call_really_used_regs to use call_used_regs
9494 instead.
9495 (mips_conditional_register_usage): Likewise.
9496 * config/mn10300/mn10300.h (CALL_USED_REGISTERS): Delete.
9497 * config/mn10300/mn10300.c (fp_regs_to_save): Use call_used_regs
9498 instead of call_really_used_regs.
9499 (mn10300_get_live_callee_saved_regs): Likewise.
9500 (mn10300_expand_prologue, mn10300_expand_epilogue): Likewise.
9501 (mn10300_conditional_register_usage): Don't set call_used_regs when
9502 making a register fixed.
9503 * config/rs6000/rs6000.h (CALL_USED_REGISTERS): Delete.
9504 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
9505 Remove the old handling of call_used_regs and change the handling
9506 of call_really_used_regs to use call_used_regs instead.
9507 * config/s390/s390.h (CALL_USED_REGISTERS): Delete.
9508 * config/s390/s390.c (s390_regs_ever_clobbered): Use call_used_regs
9509 instead of call_really_used_regs.
9510 (s390_register_info_gprtofpr, s390_register_info): Likewise.
9511 (s390_hard_regno_rename_ok, s390_hard_regno_scratch_ok): Likewise.
9512 (s390_emit_prologue, s300_set_up_by_prologue): Likewise.
9513 (s390_can_use_return_insn, s390_optimize_prologue): Likewise.
9514 (s390_conditional_register_usage): Remove the old handling of
9515 call_used_regs and change the handling of call_really_used_regs
9516 to use call_used_regs instead.
9517 * config/sh/sh.h (CALL_USED_REGISTERS): Delete.
9518 * config/sh/sh.c (output_stack_adjust, calc_live_regs): Likewise.
9519 (sh_fix_range, reg_unused_after): Likewise.
9520 (sh_conditional_register_usage): Remove the old handling of
9521 call_used_regs and change the handling of call_really_used_regs
9522 to use call_used_regs instead.
9523 * config/sparc/sparc.h (CALL_USED_REGISTERS): Delete.
9524 * config/sparc/sparc.c (sparc_conditional_register_usage): Don't set
9525 call_used_regs when making a register fixed.
9526 * config/tilegx/tilegx.h (CALL_USED_REGISTERS): Delete.
9527 * config/tilegx/tilegx.c (tilegx_conditional_register_usage): Don't set
9528 call_used_regs when making a register fixed.
9529 * config/tilepro/tilepro.h (CALL_USED_REGISTERS): Delete.
9530 * config/tilepro/tilepro.c (tilepro_conditional_register_usage): Don't
9531 set call_used_regs when making a register fixed.
9532 * config/visium/visium.h (CALL_USED_REGISTERS): Delete.
9533 * config/visium/visium.c (visium_conditional_register_usage): Remove
9534 the old handling of call_used_regs and change the handling of
9535 call_really_used_regs to use call_used_regs instead.
9536
9537 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
9538
9539 * hard-reg-set.h (call_used_regs): Only define if IN_TARGET_CODE.
9540 (call_used_or_fixed_reg_p): Expand definition of call_used_regs.
9541 * reginfo.c (call_used_regs): New macro.
9542
9543 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
9544
9545 * config/alpha/alpha.c (alpha_compute_frame_layout): Remove redundant
9546 fixed_regs test.
9547 * config/bpf/bpf.c (bpf_compute_frame_layout, bpf_expand_prologue)
9548 (bpf_expand_epilogue): Likewise.
9549 * config/c6x/c6x.c (c6x_save_reg): Likewise.
9550 * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
9551 (ft32_expand_epilogue): Likewise.
9552 * config/i386/i386.c (ix86_save_reg): Likewise.
9553 * config/moxie/moxie.c (moxie_expand_prologue): Likewise.
9554 (moxie_expand_epilogue): Likewise.
9555 * config/tilegx/tilegx.c (need_to_save_reg): Likewise.
9556 * config/tilepro/tilepro.c (need_to_save_reg): Likewise.
9557 * config/xtensa/xtensa.c (xtensa_call_save_reg): Likewise.
9558
9559 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
9560
9561 * hard-reg-set.h (call_used_or_fixed_reg_p): New macro.
9562 * cfgloopanal.c (init_set_costs): Use call_used_or_fixed_reg_p
9563 instead of testing call_used_regs directly.
9564 * config/aarch64/aarch64.c (aarch64_layout_frame): Likewise.
9565 (aarch64_components_for_bb): Likewise.
9566 * config/alpha/alpha.c (alpha_compute_frame_layout): Likewise.
9567 * config/arc/arc.c (arc_must_save_register): Likewise.
9568 (arc_epilogue_uses): Likewise.
9569 * config/arm/arm.c (arm_option_override, use_return_insn): Likewise.
9570 (legitimize_pic_address, callee_saved_reg_p): Likewise.
9571 (arm_compute_save_reg0_reg12_mask): Likewise.
9572 (arm_compute_save_core_reg_mask): Likewise.
9573 (arm_get_vfp_saved_size, arm_compute_frame_layout): Likewise.
9574 (arm_save_coproc_regs, thumb1_extra_regs_pushed): Likewise.
9575 (cmse_nonsecure_entry_clear_before_return): Likewise.
9576 (thumb1_expand_epilogue, arm_expand_epilogue_apcs_frame): Likewise.
9577 (arm_expand_epilogue): Likewise.
9578 * config/avr/avr.c (avr_regs_to_save, sequent_regs_live): Likewise.
9579 (avr_function_arg_advance, avr_find_unused_d_reg): Likewise.
9580 (_reg_unused_after): Likewise.
9581 * config/bfin/bfin.c (must_save_p, expand_prologue_reg_save): Likewise.
9582 (expand_epilogue_reg_restore, n_regs_saved_by_prologue): Likewise.
9583 (add_to_reg, hwloop_optimize): Likewise.
9584 * config/bpf/bpf.c (bpf_compute_frame_layout, bpf_expand_prologue)
9585 (bpf_expand_epilogue): Likewise.
9586 * config/c6x/c6x.c (c6x_save_reg, c6x_regno_reg_class): Likewise.
9587 * config/cr16/cr16.c (cr16_compute_save_regs): Likewise.
9588 * config/cris/cris.c (cris_reg_saved_in_regsave_area): Likewise.
9589 * config/epiphany/epiphany.c (epiphany_init_reg_tables): Likewise.
9590 (epiphany_compute_function_type, MUST_SAVE_REGISTER): Likewise.
9591 (epiphany_output_mi_thunk, epiphany_start_function): Likewise.
9592 * config/fr30/fr30.c (fr30_num_arg_regs): Likewise.
9593 * config/frv/frv.c (frv_stack_info): Likewise.
9594 * config/ft32/ft32.c (ft32_compute_frame): Likewise.
9595 (ft32_expand_prologue, ft32_expand_epilogue): Likewise.
9596 * config/gcn/gcn.c (gcn_compute_frame_offsets): Likewise.
9597 (move_callee_saved_registers): Likewise.
9598 * config/h8300/h8300.c (byte_reg): Likewise.
9599 * config/i386/i386-options.c (ix86_set_current_function): Likewise.
9600 * config/i386/i386.c (ix86_save_reg, ix86_expand_prologue): Likewise.
9601 (ix86_expand_epilogue, x86_order_regs_for_local_alloc): Likewise.
9602 * config/i386/predicates.md (sibcall_memory_operand): Likewise.
9603 * config/ia64/ia64.c (emit_safe_across_calls, find_gr_spill): Likewise.
9604 (next_scratch_gr_reg, ia64_compute_frame_size): Likewise.
9605 * config/iq2000/iq2000.h (MUST_SAVE_REGISTER): Likewise.
9606 * config/lm32/lm32.c (lm32_compute_frame_size): Likewise.
9607 * config/m32c/m32c.c (need_to_save): Likewise.
9608 * config/m68k/m68k.c (m68k_save_reg): Likewise.
9609 * config/mcore/mcore.c (calc_live_regs): Likewise.
9610 * config/microblaze/microblaze.c (microblaze_must_save_register):
9611 Likewise.
9612 * config/mmix/mmix.c (mmix_local_regno): Likewise.
9613 (mmix_initial_elimination_offset, mmix_reorg): Likewise.
9614 (mmix_use_simple_return, mmix_expand_prologue): Likewise.
9615 (mmix_expand_epilogue): Likewise.
9616 * config/moxie/moxie.c (moxie_compute_frame): Likewise.
9617 (moxie_expand_prologue, moxie_expand_epilogue): Likewise.
9618 * config/msp430/msp430.c (msp430_preserve_reg_p): Likewise.
9619 * config/nds32/nds32.h (nds32_16bit_address_type): Likewise.
9620 (NDS32_REQUIRED_CALLEE_SAVED_P): Likewise.
9621 * config/nios2/nios2.c (prologue_saved_reg_p): Likewise.
9622 * config/or1k/or1k.c (callee_saved_regno_p): Likewise.
9623 * config/pa/pa.c (pa_expand_prologue, pa_expand_epilogue): Likewise.
9624 * config/pdp11/pdp11.c (pdp11_saved_regno): Likewise.
9625 * config/pru/pru.c (prologue_saved_reg_p): Likewise.
9626 * config/riscv/riscv.c (riscv_save_reg_p): Likewise.
9627 (riscv_epilogue_uses, riscv_hard_regno_mode_ok): Likewise.
9628 * config/rl78/rl78.c (need_to_save): Likewise.
9629 * config/rs6000/rs6000-logue.c (save_reg_p): Likewise.
9630 (rs6000_stack_info, generate_set_vrsave): Likewise.
9631 (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.
9632 * config/rs6000/rs6000.c (rs6000_debug_reg_print): Likewise.
9633 * config/rx/rx.c (rx_get_stack_layout): Likewise.
9634 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
9635 * config/sh/sh.c (calc_live_regs, sh_output_mi_thunk): Likewise.
9636 * config/sparc/sparc.c (save_global_or_fp_reg_p): Likewise.
9637 (save_local_or_in_reg_p): Likewise.
9638 * config/stormy16/stormy16.c (REG_NEEDS_SAVE): Likewise.
9639 (xstormy16_epilogue_uses): Likewise.
9640 * config/tilegx/tilegx.c (need_to_save_reg): Likewise.
9641 * config/tilepro/tilepro.c (need_to_save_reg): Likewise.
9642 * config/v850/v850.c (compute_register_save_size): Likewise.
9643 * config/vax/vax.c (vax_expand_prologue): Likewise.
9644 * config/visium/visium.c (visium_save_reg_p): Likewise.
9645 * config/xtensa/xtensa.c (xtensa_call_save_reg): Likewise.
9646 * cselib.c (cselib_process_insn): Likewise.
9647 * df-scan.c (df_get_entry_block_def_set): Likewise.
9648 * function.c (aggregate_value_p): Likewise.
9649 * haifa-sched.c (alloc_global_sched_pressure_data): Likewise.
9650 * ira-lives.c (process_bb_node_lives): Likewise.
9651 * ira.c (do_reload): Likewise.
9652 * lra-lives.c (process_bb_lives): Likewise.
9653 * lra-remat.c (lra_remat): Likewise.
9654 * lra.c (lra): Likewise.
9655 * postreload.c (reload_combine_recognize_pattern): Likewise.
9656 (reload_cse_move2add): Likewise.
9657 * recog.c (peep2_find_free_register): Likewise.
9658 * regrename.c (check_new_reg_p): Likewise.
9659 * reload.c (find_equiv_reg): Likewise.
9660 * reload1.c (reload, find_reg): Likewise.
9661 * sel-sched.c (init_hard_regs_data): Likewise.
9662
9663 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
9664
9665 * config/frv/frv.c (frv_ifcvt_modify_tests): Use
9666 regs_invalidated_by_call & ~fixed_reg_set instead of
9667 call_used_or_fixed_regs & ~fixed_reg_set.
9668 * config/sh/sh.c (output_stack_adjust): Likewise.
9669
9670 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
9671
9672 * hard-reg-set.h (target_hard_regs::x_call_used_reg_set): Delete.
9673 (call_used_reg_set): Delete.
9674 (call_used_or_fixed_regs): New macro.
9675 * reginfo.c (init_reg_sets_1, globalize_reg): Remove initialization
9676 of call_used_reg_set.
9677 * caller-save.c (setup_save_areas): Use call_used_or_fixed_regs
9678 instead of call_used_regs.
9679 (save_call_clobbered_regs): Likewise.
9680 * cfgcleanup.c (old_insns_match_p): Likewise.
9681 * config/c6x/c6x.c (c6x_call_saved_register_used): Likewise.
9682 * config/epiphany/epiphany.c (epiphany_conditional_register_usage):
9683 Likewise.
9684 * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
9685 * config/sh/sh.c (output_stack_adjust): Likewise.
9686 * final.c (collect_fn_hard_reg_usage): Likewise.
9687 * ira-build.c (ira_build): Likewise.
9688 * ira-color.c (calculate_saved_nregs): Likewise.
9689 (allocno_reload_assign, calculate_spill_cost): Likewise.
9690 * ira-conflicts.c (ira_build_conflicts): Likewise.
9691 * ira-costs.c (ira_tune_allocno_costs): Likewise.
9692 * ira-lives.c (process_bb_node_lives): Likewise.
9693 * ira.c (setup_reg_renumber): Likewise.
9694 * lra-assigns.c (find_hard_regno_for_1, lra_assign): Likewise.
9695 * lra-constraints.c (need_for_call_save_p): Likewise.
9696 (need_for_split_p, inherit_in_ebb): Likewise.
9697 * lra-lives.c (process_bb_lives): Likewise.
9698 * lra-remat.c (call_used_input_regno_present_p): Likewise.
9699 * postreload.c (reload_combine): Likewise.
9700 * regrename.c (find_rename_reg): Likewise.
9701 * reload1.c (reload_as_needed): Likewise.
9702 * rtlanal.c (find_all_hard_reg_sets): Likewise.
9703 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
9704 * shrink-wrap.c (requires_stack_frame_p): Likewise.
9705
9706 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
9707
9708 * hard-reg-set.h (target_hard_regs::x_no_caller_save_reg_set): Delete.
9709 (no_caller_save_reg_set): Delete.
9710 * caller-save.c (init_caller_save): Don't initialize it.
9711 * ira-conflicts.c (ira_build_conflicts): Calculate
9712 no_caller_save_reg_set locally from call_used_reg_set and savable_regs.
9713
9714 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
9715
9716 * hard-reg-set.h (target_hard_regs::x_call_fixed_reg_set): Delete.
9717 (target_hard_regs::x_savable_regs): New field.
9718 (call_fixed_reg_set): Delete.
9719 (savable_regs): New macro,
9720 * reginfo.c (globalize_reg): Don't set call_fixed_reg_set.
9721 (init_reg_sets_1): Likewise. Initialize savable_regs.
9722 * caller-save.c (init_caller_save): Invoke HARD_REGNO_CALLER_SAVE_MODE
9723 for all registers. Set savable_regs instead of call_fixed_reg_set.
9724 (setup_save_areas, save_call_clobbered_regs): Replace uses of
9725 ~call_fixed_reg_set with ~fixed_reg_set & savable_regs.
9726 * config/sh/sh.c (output_stack_adjust): Likewise.
9727
9728 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
9729
9730 * config/c6x/c6x-protos.h (c6x_set_return_address): Declare.
9731 * config/c6x/c6x.h (REGNO_REG_CLASS): Move implementation to
9732 * config/c6x/c6x.c (c6x_regno_reg_class): ...this new function.
9733
9734 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
9735
9736 * rtl.h (get_call_rtx_from): Take a const rtx_insn * instead of an rtx.
9737 * rtlanal.c (get_call_rtx_from): Likewise.
9738 * dwarf2out.c (dwarf2out_var_location): Pass the insn rather
9739 than the pattern to get_call_rtx_from.
9740 * config/i386/i386-expand.h (ix86_notrack_prefixed_insn_p): Take
9741 an rtx_insn * instead of an rtx.
9742 * config/i386/i386-expand.c (ix86_notrack_prefixed_insn_p): Likewise.
9743
9744 2019-09-10 Martin Liska <mliska@suse.cz>
9745
9746 * common.opt: Use newly added WarnRemoved.
9747 * config/aarch64/aarch64.opt: Likewise.
9748 * config/arm/arm.opt: Likewise.
9749 * config/i386/i386.opt: Likewise.
9750 * config/ia64/ia64.opt: Likewise.
9751 * config/rs6000/rs6000.opt: Likewise.
9752 * doc/options.texi: Document WarnRemoved properly.
9753 * dwarf2out.c (gen_producer_string): Handle renamed
9754 OPT_SPECIAL_warn_removed.
9755 * lto-opts.c (lto_write_options): Likewise.
9756 * lto-wrapper.c (merge_and_complain): Likewise.
9757 * opts-common.c (decode_cmdline_option): Likewise.
9758 (prune_options): Likewise.
9759 (read_cmdline_option): Likewise.
9760 (control_warning_option): Likewise.
9761 * opts.c (print_filtered_help): Likewise.
9762 * optc-gen.awk: Parse for WarnRemoved and make usage
9763 of Deprecated an error.
9764 * opth-gen.awk: Generate new OPT_SPECIAL_warn_removed.
9765
9766 2019-09-10 Arnaud Charlet <charlet@adacore.com>
9767
9768 * doc/install.texi: Fix syntax for html generation.
9769
9770 2019-09-10 Jakub Jelinek <jakub@redhat.com>
9771
9772 PR middle-end/91680
9773 * match.pd ((A / (1 << B)) -> (A >> B)): Allow widening cast from
9774 the shift type to type.
9775
9776 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
9777
9778 * config/arm/arm.md (stack_protect_combined_set_insn): Handle
9779 FDPIC mode.
9780 (stack_protect_combined_test_insn): Likewise.
9781
9782 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
9783 Mickaël Guêné <mickael.guene@st.com>
9784
9785 * config/arm/arm.c (arm_load_tp): Add FDPIC support.
9786 * config/arm/arm.md (FDPIC_REGNUM): New constant.
9787 (load_tp_soft_fdpic): New pattern.
9788 (load_tp_soft): Disable in FDPIC mode.
9789
9790 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
9791 Mickaël Guêné <mickael.guene@st.com>
9792
9793 * config/arm/arm.c (tls_reloc): Add TLS_GD32_FDPIC,
9794 TLS_LDM32_FDPIC and TLS_IE32_FDPIC.
9795 (arm_call_tls_get_addr): Add FDPIC support.
9796 (legitimize_tls_address): Likewise.
9797 (arm_emit_tls_decoration): Likewise.
9798
9799 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
9800 Mickaël Guêné <mickael.guene@st.com>
9801
9802 * config/arm/arm.c (arm_asm_trampoline_template): Add FDPIC
9803 support.
9804 (arm_trampoline_init): Likewise.
9805 (arm_trampoline_adjust_address): Likewise.
9806 * config/arm/arm.h (TRAMPOLINE_SIZE): Likewise.
9807
9808 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
9809 Mickaël Guêné <mickael.guene@st.com>
9810
9811 * config/arm/arm.c (arm_fdpic_local_funcdesc_p): New function.
9812 (legitimize_pic_address): Enforce binding rules on function
9813 pointers in FDPIC mode.
9814 (arm_assemble_integer): Likewise.
9815
9816 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
9817 Mickaël Guêné <mickael.guene@st.com>
9818
9819 * config/arm/arm.h (PIC_REGISTER_MAY_NEED_SAVING): New helper.
9820 * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Handle
9821 FDPIC.
9822
9823 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
9824 Mickaël Guêné <mickael.guene@st.com>
9825
9826 * ginclude/unwind-arm-common.h (unwinder_cache): Add reserved5
9827 field.
9828
9829 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
9830 Mickaël Guêné <mickael.guene@st.com>
9831
9832 * config/arm/arm-c.c (__FDPIC__): Define new pre-processor macro
9833 in FDPIC mode.
9834 * config/arm/arm-protos.h (arm_load_function_descriptor): Declare
9835 new function.
9836 * config/arm/arm.c (arm_option_override): Define pic register to
9837 FDPIC_REGNUM.
9838 (arm_function_ok_for_sibcall): Disable sibcall optimization if we
9839 have no decl or go through PLT.
9840 (calculate_pic_address_constant): New function.
9841 (legitimize_pic_address): Call calculate_pic_address_constant.
9842 (arm_load_pic_register): Handle TARGET_FDPIC.
9843 (arm_is_segment_info_known): New function.
9844 (arm_pic_static_addr): Add support for FDPIC.
9845 (arm_load_function_descriptor): New function.
9846 (arm_emit_call_insn): Add support for FDPIC.
9847 (arm_assemble_integer): Add support for FDPIC.
9848 * config/arm/arm.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED):
9849 Define. (FDPIC_REGNUM): New define.
9850 * config/arm/arm.md (call): Add support for FDPIC.
9851 (call_value): Likewise.
9852 (restore_pic_register_after_call): New pattern.
9853 (untyped_call): Disable if FDPIC.
9854 (untyped_return): Likewise.
9855 * config/arm/unspecs.md (UNSPEC_PIC_RESTORE): New.
9856
9857 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
9858 Mickaël Guêné <mickael.guene@st.com>
9859
9860 * config.gcc: Handle arm*-*-uclinuxfdpiceabi.
9861 * config/arm/bpabi.h (TARGET_FDPIC_ASM_SPEC): New.
9862 (SUBTARGET_EXTRA_ASM_SPEC): Use TARGET_FDPIC_ASM_SPEC.
9863 * config/arm/linux-eabi.h (FDPIC_CC1_SPEC): New.
9864 (CC1_SPEC): Use FDPIC_CC1_SPEC.
9865 (MUSL_DYNAMIC_LINKER): Add -fdpic suffix when needed.
9866 * config/arm/uclinuxfdpiceabi.h: New file.
9867
9868 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
9869
9870 * config.gcc: Handle *-*-uclinuxfdpiceabi.
9871
9872 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
9873 Mickaël Guêné <mickael.guene@st.com>
9874
9875 * config/arm/arm.opt: Add -mfdpic option.
9876 * doc/invoke.texi: Add documentation for -mfdpic.
9877
9878 2019-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de>
9879
9880 * expmed.c (extract_bit_field): Update function comment
9881 regarding alt_rtl.
9882 * expr.c (expand_expr_real): Update function comment
9883 regarding alt_rtl.
9884 (expand_misaligned_mem_ref): New helper function.
9885 (expand_expr_real_2): Use expand_misaligned_mem_ref.
9886 Remove duplicate assignment to "base" at case MEM_REF.
9887 Remove a shadowed variable "unsignedp" at case VCE.
9888
9889 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
9890
9891 * regset.h (regs_invalidated_by_call_regset): Delete.
9892 (fixed_reg_set_regset): Likewise.
9893 * reginfo.c (regs_invalidated_by_call_regset): Likewise.
9894 (fixed_reg_set_regset, persistent_obstack): Likewise.
9895 (init_reg_sets_1, globalize_reg): Update accordingly.
9896 * df.h (df_print_regset, df_print_word_regset): Take a const_bitmap
9897 instead of a bitmap.
9898 * df-core.c (df_print_regset, df_print_word_regset): Likewise.
9899 * df-problems.c (df_rd_local_compute): Use regs_invalidated_by_call
9900 instead of regs_invalidated_by_call_regset.
9901 (df_lr_confluence_n, df_md_confluence_n): Likewise.
9902 * df-scan.c (df_scan_start_dump): Likewise.
9903 * dse.c (copy_fixed_regs): Likewise.
9904 * config/sh/sh.c (sh_find_equiv_gbr_addr): Likewise.
9905
9906 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
9907
9908 * array-traits.h: New file.
9909 * coretypes.h (array_traits, bitmap_view): New types.
9910 * bitmap.h: Include "array-traits.h"
9911 (bitmap_bit_p): Take a const_bitmap instead of a bitmap.
9912 (base_bitmap_view, bitmap_view): New classes.
9913 * bitmap.c (bitmap_bit_p): Take a const_bitmap instead of a bitmap.
9914 * hard-reg-set.h: Include array-traits.h.
9915 (array_traits<HARD_REG_SET>): New struct.
9916 * regset.h (IOR_REG_SET_HRS): New macro.
9917 * loop-iv.c (simplify_using_initial_values): Use IOR_REG_SET_HRS
9918 rather than iterating over each hard register.
9919 * sched-deps.c (sched_analyze_insn): Likewise.
9920 * sel-sched-ir.c (setup_id_implicit_regs): Likewise.
9921
9922 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
9923
9924 * ira-int.h (ior_hard_reg_conflicts): Take a const_hard_reg_set
9925 instead of a HARD_REG_SET *.
9926 * ira-build.c (ior_hard_reg_conflicts): Likewise.
9927 (ira_build): Update call accordingly.
9928 * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
9929
9930 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
9931
9932 * hard-reg-set.h (HARD_REG_SET::operator==): New function.
9933 (HARD_REG_SET::operator!=): Likewise.
9934 (hard_reg_set_equal_p): Delete.
9935 * cfgcleanup.c (old_insns_match_p): Use == instead of
9936 hard_reg_set_equal_p and != instead of !hard_reg_set_equal_p.
9937 * ira-color.c (allocno_hard_regs_hasher::equal): Likewise.
9938 (add_allocno_hard_regs_to_forest): Likewise.
9939 (setup_allocno_available_regs_num): Likewise.
9940 * ira.c (setup_pressure_classes): Likewise.
9941 (setup_allocno_and_important_classes): Likewise.
9942 (setup_reg_class_relations): Likewise.
9943 * lra-lives.c (process_bb_lives): Likewise.
9944 * reg-stack.c (change_stack, convert_regs_1): Likewise.
9945
9946 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
9947
9948 * hard-reg-set.h (IOR_COMPL_HARD_REG_SET): Delete.
9949 * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
9950 Use "|~" instead of IOR_COMPL_HARD_REG_SET.
9951 * config/aarch64/falkor-tag-collision-avoidance.c (init_unavailable):
9952 Likewise.
9953 * ira-build.c (ira_create_object, ira_set_allocno_class): Likewise.
9954 * ira.c (setup_reg_renumber): Likewise.
9955 * lra-assigns.c (find_hard_regno_for_1): Likewise.
9956 * regrename.c (regrename_find_superclass): Likewise.
9957 * reload1.c (find_reg): Likewise.
9958
9959 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
9960
9961 * hard-reg-set.h (AND_COMPL_HARD_REG_SET): Delete.
9962 * caller-save.c (setup_save_areas): Use "&~" instead of
9963 AND_COMPL_HARD_REG_SET.
9964 (save_call_clobbered_regs): Likewise.
9965 * config/epiphany/epiphany.c (epiphany_conditional_register_usage):
9966 Likewise.
9967 * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
9968 * config/gcn/gcn.c (gcn_md_reorg): Likewise.
9969 * config/i386/i386.c (ix86_conditional_register_usage): Likewise.
9970 * config/mips/mips.c (mips_class_max_nregs): Likewise.
9971 (mips_conditional_register_usage): Likewise.
9972 * config/sh/sh.c (output_stack_adjust): Likewise.
9973 * ira-color.c (form_allocno_hard_regs_nodes_forest): Likewise.
9974 (setup_profitable_hard_regs): Likewise.
9975 (get_conflict_and_start_profitable_regs): Likewise.
9976 * ira-conflicts.c (print_allocno_conflicts): Likewise.
9977 (ira_build_conflicts): Likewise.
9978 * ira-costs.c (restrict_cost_classes): Likewise.
9979 (setup_regno_cost_classes_by_aclass): Likewise.
9980 * ira-lives.c (process_bb_node_lives): Likewise.
9981 * ira.c (setup_class_hard_regs, setup_reg_subclasses): Likewise.
9982 (setup_class_subset_and_memory_move_costs, setup_pressure_classes)
9983 (setup_allocno_and_important_classes, setup_class_translate_array)
9984 (setup_reg_class_relations, setup_prohibited_class_mode_regs):
9985 Likewise.
9986 * lra-assigns.c (find_hard_regno_for_1): Likewise.
9987 * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
9988 (process_alt_operands, inherit_in_ebb): Likewise.
9989 * lra-eliminations.c (update_reg_eliminate): Likewise.
9990 * lra-lives.c (process_bb_lives): Likewise.
9991 * reload1.c (update_eliminables_and_spill, reload_as_needed): Likewise.
9992 * resource.c (find_dead_or_set_registers): Likewise.
9993 (mark_target_live_regs): Likewise.
9994 * sched-deps.c (get_implicit_reg_pending_clobbers): Likewise.
9995 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
9996 (implicit_clobber_conflict_p): Likewise.
9997 * shrink-wrap.c (requires_stack_frame_p): Likewise.
9998 (try_shrink_wrapping): Likewise.
9999
10000 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
10001
10002 * hard-reg-set.h (HARD_REG_SET::operator|): New function.
10003 (HARD_REG_SET::operator|=): Likewise.
10004 (IOR_HARD_REG_SET): Delete.
10005 * config/gcn/gcn.c (gcn_md_reorg): Use "|" instead of
10006 IOR_HARD_REG_SET.
10007 * config/m32c/m32c.c (m32c_register_move_cost): Likewise.
10008 * config/s390/s390.c (s390_adjust_loop_scan_osc): Likewise.
10009 * final.c (collect_fn_hard_reg_usage): Likewise.
10010 * hw-doloop.c (scan_loop, optimize_loop): Likewise.
10011 * ira-build.c (merge_hard_reg_conflicts): Likewise.
10012 (ior_hard_reg_conflicts, create_cap_allocno, propagate_allocno_info)
10013 (propagate_some_info_from_allocno): Likewise.
10014 (copy_info_to_removed_store_destinations): Likewise.
10015 * ira-color.c (add_allocno_hard_regs_to_forest, assign_hard_reg)
10016 (allocno_reload_assign, ira_reassign_pseudos): Likewise.
10017 (fast_allocation): Likewise.
10018 * ira-conflicts.c (ira_build_conflicts): Likewise.
10019 * ira-lives.c (make_object_dead, process_single_reg_class_operands)
10020 (process_bb_node_lives): Likewise.
10021 * ira.c (setup_pressure_classes, setup_reg_class_relations): Likewise.
10022 * lra-assigns.c (find_hard_regno_for_1): Likewise.
10023 (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
10024 * lra-constraints.c (process_alt_operands, inherit_in_ebb): Likewise.
10025 * lra-eliminations.c (spill_pseudos, update_reg_eliminate): Likewise.
10026 * lra-lives.c (mark_pseudo_dead, check_pseudos_live_through_calls)
10027 (process_bb_lives): Likewise.
10028 * lra-spills.c (assign_spill_hard_regs): Likewise.
10029 * postreload.c (reload_combine): Likewise.
10030 * reginfo.c (init_reg_sets_1): Likewise.
10031 * regrename.c (merge_overlapping_regs, find_rename_reg)
10032 (merge_chains): Likewise.
10033 * reload1.c (maybe_fix_stack_asms, order_regs_for_reload, find_reg)
10034 (find_reload_regs, finish_spills, choose_reload_regs_init)
10035 (emit_reload_insns): Likewise.
10036 * reorg.c (redundant_insn): Likewise.
10037 * resource.c (find_dead_or_set_registers, mark_set_resources)
10038 (mark_target_live_regs): Likewise.
10039 * rtlanal.c (find_all_hard_reg_sets): Likewise.
10040 * sched-deps.c (sched_analyze_insn): Likewise.
10041 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
10042 (find_best_reg_for_expr): Likewise.
10043 * shrink-wrap.c (try_shrink_wrapping): Likewise.
10044
10045 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
10046
10047 * hard-reg-set.h (HARD_REG_SET::operator&): New function.
10048 (HARD_REG_SET::operator&): Likewise.
10049 (AND_HARD_REG_SET): Delete.
10050 * caller-save.c (setup_save_areas): Use "&" instead of
10051 AND_HARD_REG_SET.
10052 (save_call_clobbered_regs): Likewise.
10053 * config/gcn/gcn.c (gcn_md_reorg): Likewise.
10054 * config/m32c/m32c.c (reduce_class): Likewise.
10055 * config/rs6000/rs6000.c (rs6000_register_move_cost): Likewise.
10056 * final.c (get_call_reg_set_usage): Likewise.
10057 * ira-color.c (add_allocno_hard_regs_to_forest): Likewise.
10058 (setup_left_conflict_sizes_p): Likewise.
10059 * ira-conflicts.c (print_allocno_conflicts): Likewise.
10060 (ira_build_conflicts): Likewise.
10061 * ira-costs.c (restrict_cost_classes): Likewise.
10062 * ira.c (setup_stack_reg_pressure_class, setup_class_translate_array)
10063 (setup_reg_class_relations): Likewise.
10064 * reginfo.c (init_reg_sets_1, record_subregs_of_mode): Likewise.
10065 * reload1.c (maybe_fix_stack_asms, finish_spills): Likewise.
10066 * resource.c (find_dead_or_set_registers): Likewise.
10067 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
10068
10069 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
10070
10071 * hard-reg-set.h (HARD_REG_SET::operator~): New function.
10072 (COMPL_HARD_REG_SET): Delete.
10073 * config/c6x/c6x.c (c6x_call_saved_register_used): Use ~ instead
10074 of COMPL_HARD_REG_SET.
10075 (try_rename_operands): Likewise.
10076 * config/sh/sh.c (push_regs): Likewise.
10077 * lra-assigns.c (find_hard_regno_for_1): Likewise.
10078 * lra-constraints.c (contains_reg_p): Likewise.
10079 * reload1.c (finish_spills, choose_reload_regs_init): Likewise.
10080
10081 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
10082
10083 * hard-reg-set.h (COPY_HARD_REG_SET): Delete.
10084 * caller-save.c (save_call_clobbered_regs): Use assignment instead
10085 of COPY_HARD_REG_SET.
10086 * config/epiphany/epiphany.c (epiphany_compute_frame_size): Likewise.
10087 (epiphany_conditional_register_usage): Likewise.
10088 * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
10089 * config/gcn/gcn.c (gcn_md_reorg): Likewise.
10090 * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
10091 * config/m32c/m32c.c (m32c_register_move_cost): Likewise.
10092 * config/m68k/m68k.c (m68k_conditional_register_usage): Likewise.
10093 * config/mips/mips.c (mips_class_max_nregs): Likewise.
10094 * config/pdp11/pdp11.c (pdp11_conditional_register_usage): Likewise.
10095 * config/rs6000/rs6000.c (rs6000_register_move_cost): Likewise.
10096 * config/sh/sh.c (output_stack_adjust): Likewise.
10097 * final.c (collect_fn_hard_reg_usage): Likewise.
10098 (get_call_reg_set_usage): Likewise.
10099 * ira-build.c (ira_create_object, remove_low_level_allocnos)
10100 (ira_flattening): Likewise.
10101 * ira-color.c (add_allocno_hard_regs, add_allocno_hard_regs_to_forest)
10102 (setup_left_conflict_sizes_p, setup_profitable_hard_regs)
10103 (get_conflict_and_start_profitable_regs, allocno_reload_assign)
10104 (ira_reassign_pseudos): Likewise.
10105 * ira-conflicts.c (print_allocno_conflicts): Likewise.
10106 (ira_build_conflicts): Likewise.
10107 * ira-costs.c (restrict_cost_classes): Likewise.
10108 (setup_regno_cost_classes_by_aclass): Likewise.
10109 * ira.c (setup_class_hard_regs, setup_alloc_regs): Likewise.
10110 (setup_reg_subclasses, setup_class_subset_and_memory_move_costs)
10111 (setup_stack_reg_pressure_class, setup_pressure_classes)
10112 (setup_allocno_and_important_classes, setup_class_translate_array)
10113 (setup_reg_class_relations, setup_prohibited_class_mode_regs)
10114 (ira_setup_eliminable_regset): Likewise.
10115 * lra-assigns.c (find_hard_regno_for_1): Likewise.
10116 (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
10117 * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
10118 (process_alt_operands, inherit_in_ebb): Likewise.
10119 * lra-lives.c (process_bb_lives): Likewise.
10120 * lra-spills.c (assign_spill_hard_regs): Likewise.
10121 * lra.c (lra): Likewise.
10122 * mode-switching.c (new_seginfo): Likewise.
10123 * postreload.c (reload_combine): Likewise.
10124 * reg-stack.c (straighten_stack): Likewise.
10125 * reginfo.c (save_register_info, restore_register_info): Likewise.
10126 (init_reg_sets_1, record_subregs_of_mode): Likewise
10127 * regrename.c (create_new_chain, rename_chains): Likewise.
10128 * reload1.c (order_regs_for_reload, find_reg): Likewise.
10129 (find_reload_regs): Likewise.
10130 * resource.c (find_dead_or_set_registers): Likewise.
10131 (mark_target_live_regs): Likewise.
10132 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
10133
10134 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
10135
10136 * rtl.h (CALL_INSN_FUNCTION_USAGE): Document what SETs mean.
10137 (note_pattern_stores): Declare.
10138 (note_stores): Take an rtx_insn *.
10139 * rtlanal.c (set_of): Use note_pattern_stores instead of note_stores.
10140 (find_all_hard_reg_sets): Pass the insn rather than its pattern to
10141 note_stores. Remove explicit handling of CALL_INSN_FUNCTION_USAGE.
10142 (note_stores): Take an rtx_insn * as argument and process
10143 CALL_INSN_FUNCTION_USAGE. Rename old function to...
10144 (note_pattern_stores): ...this.
10145 (find_first_parameter_load): Pass the insn rather than
10146 its pattern to note_stores.
10147 * alias.c (memory_modified_in_insn_p, init_alias_analysis): Likewise.
10148 * caller-save.c (setup_save_areas, save_call_clobbered_regs)
10149 (insert_one_insn): Likewise.
10150 * combine.c (combine_instructions): Likewise.
10151 (likely_spilled_retval_p): Likewise.
10152 (try_combine): Use note_pattern_stores instead of note_stores.
10153 (record_dead_and_set_regs): Pass the insn rather than its pattern
10154 to note_stores.
10155 (reg_dead_at_p): Likewise.
10156 * config/bfin/bfin.c (workaround_speculation): Likewise.
10157 * config/c6x/c6x.c (maybe_clobber_cond): Likewise. Take an rtx_insn *
10158 rather than an rtx.
10159 * config/frv/frv.c (frv_registers_update): Use note_pattern_stores
10160 instead of note_stores.
10161 (frv_optimize_membar_local): Pass the insn rather than its pattern
10162 to note_stores.
10163 * config/gcn/gcn.c (gcn_md_reorg): Likewise.
10164 * config/i386/i386.c (ix86_avx_u128_mode_after): Likewise.
10165 * config/mips/mips.c (vr4130_true_reg_dependence_p): Likewise.
10166 (r10k_needs_protection_p, mips_sim_issue_insn): Likewise.
10167 (mips_reorg_process_insns): Likewise.
10168 * config/s390/s390.c (s390_regs_ever_clobbered): Likewise.
10169 * config/sh/sh.c (flow_dependent_p): Likewise. Take rtx_insn *s
10170 rather than rtxes.
10171 * cse.c (delete_trivially_dead_insns): Pass the insn rather than
10172 its pattern to note_stores.
10173 * cselib.c (cselib_record_sets): Use note_pattern_stores instead
10174 of note_stores.
10175 * dce.c (mark_nonreg_stores): Remove the "body" parameter and pass
10176 the insn to note_stores.
10177 (prescan_insns_for_dce): Update call accordingly.
10178 * ddg.c (mem_write_insn_p): Pass the insn rather than its pattern
10179 to note_stores.
10180 * df-problems.c (can_move_insns_across): Likewise.
10181 * dse.c (emit_inc_dec_insn_before, replace_read): Likewise.
10182 * function.c (assign_parm_setup_reg): Likewise.
10183 * gcse-common.c (record_last_mem_set_info_common): Likewise.
10184 * gcse.c (load_killed_in_block_p, compute_hash_table_work): Likewise.
10185 (single_set_gcse): Likewise.
10186 * ira.c (validate_equiv_mem): Likewise.
10187 (update_equiv_regs): Use note_pattern_stores rather than note_stores
10188 for no_equiv.
10189 * loop-doloop.c (doloop_optimize): Pass the insn rather than its
10190 pattern to note_stores.
10191 * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
10192 * loop-iv.c (simplify_using_initial_values): Likewise.
10193 * mode-switching.c (optimize_mode_switching): Likewise.
10194 * optabs.c (emit_libcall_block_1): Likewise.
10195 (expand_atomic_compare_and_swap): Likewise.
10196 * postreload-gcse.c (load_killed_in_block_p): Likewise.
10197 (record_opr_changes): Likewise. Remove explicit handling of
10198 CALL_INSN_FUNCTION_USAGE.
10199 * postreload.c (reload_combine, reload_cse_move2add): Likewise.
10200 * regcprop.c (kill_clobbered_values): Likewise.
10201 (copyprop_hardreg_forward_1): Pass the insn rather than its pattern
10202 to note_stores.
10203 * regrename.c (build_def_use): Likewise.
10204 * reload1.c (reload): Use note_pattern_stores instead of note_stores
10205 for mark_not_eliminable.
10206 (reload_as_needed): Pass the insn rather than its pattern
10207 to note_stores.
10208 (emit_output_reload_insns): Likewise.
10209 * resource.c (mark_target_live_regs): Likewise.
10210 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
10211 * sched-rgn.c (sets_likely_spilled): Use note_pattern_stores
10212 instead of note_stores.
10213 * shrink-wrap.c (try_shrink_wrapping): Pass the insn rather than
10214 its pattern to note_stores.
10215 * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Likewise.
10216 * var-tracking.c (adjust_insn, add_with_sets): Likewise.
10217
10218 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
10219
10220 * hard-reg-set.h (HARD_REG_SET): Define using a typedef rather
10221 than a #define. Use a structure rather than an array as the
10222 fallback definition. Remove special cases for low array sizes.
10223 (const_hard_reg_set): New typedef.
10224 (hard_reg_set_subset_p): Use it instead of "const HARD_REG_SET".
10225 (hard_reg_set_equal_p, hard_reg_set_intersect_p): Likewise.
10226 (hard_reg_set_empty_p): Likewise.
10227 (SET_HARD_REG_BIT): Use a function rather than a macro to
10228 handle the case in which HARD_REG_SET is a structure.
10229 (CLEAR_HARD_REG_BIT, TEST_HARD_REG_BIT, CLEAR_HARD_REG_SET)
10230 (SET_HARD_REG_SET, COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
10231 (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
10232 (IOR_COMPL_HARD_REG_SET): Likewise.
10233 (hard_reg_set_iterator::pset): Constify the pointer target.
10234 (hard_reg_set_iter_init): Take a const_hard_reg_set instead
10235 of a "const HARD_REG_SET". Update the handling of non-integer
10236 HARD_REG_SETs.
10237 * recog.h: Test HARD_CONST instead of CLEAR_HARD_REG_SET.
10238 * reload.h: Likewise.
10239 * rtl.h (choose_hard_reg_mode): Remove unnecessary line break.
10240 * regs.h (in_hard_reg_set_p): Take a const_hard_reg_set instead
10241 of a "const HARD_REG_SET".
10242 (overlaps_hard_reg_set_p, range_overlaps_hard_reg_set_p): Likewise.
10243 (range_in_hard_reg_set_p): Likewise.
10244 * ira-costs.c (restrict_cost_classes): Likewise.
10245 * shrink-wrap.c (move_insn_for_shrink_wrap): Likewise.
10246 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
10247 Pass a NO_REGS HARD_REG_SET rather than NULL to emit_set_fp_mode.
10248 * config/ia64/ia64.c (rws_insn): In the CHECKING_P version,
10249 use unsigned HOST_WIDEST_FAST_INT rather than HARD_REG_ELT_TYPE.
10250 (rws_insn_set, rws_insn_test): In the CHECKING_P version,
10251 take an unsigned int and open-code the HARD_REG_SET operations.
10252
10253 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
10254
10255 * Makefile.in (OBJS): Remove bt-load.o.
10256 * doc/invoke.texi (fbranch-target-load-optimize): Delete.
10257 (fbranch-target-load-optimize2, fbtr-bb-exclusive): Likewise.
10258 * common.opt (fbranch-target-load-optimize): Mark as Ignore and
10259 document that the option no longer does anything.
10260 (fbranch-target-load-optimize2, fbtr-bb-exclusive): Likewise.
10261 * target.def (branch_target_register_class): Delete.
10262 (branch_target_register_callee_saved): Likewise.
10263 * doc/tm.texi.in (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
10264 (TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise.
10265 * doc/tm.texi: Regenerate.
10266 * tree-pass.h (make_pass_branch_target_load_optimize1): Delete.
10267 (make_pass_branch_target_load_optimize2): Likewise.
10268 * passes.def (pass_branch_target_load_optimize1): Likewise.
10269 (pass_branch_target_load_optimize2): Likewise.
10270 * targhooks.h (default_branch_target_register_class): Likewise.
10271 * targhooks.c (default_branch_target_register_class): Likewise.
10272 * opt-suggestions.c (test_completion_valid_options): Remove
10273 -fbtr-bb-exclusive from the list of test options.
10274 * bt-load.c: Remove.
10275
10276 2019-09-09 Barnaby Wilks <barnaby.wilks@arm.com>
10277
10278 * match.pd: Add flag_unsafe_math_optimizations check
10279 before deciding on the widest type in a binary math operation.
10280
10281 2019-09-09 Martin Liska <mliska@suse.cz>
10282
10283 * config/i386/i386.opt: Update comment of removed
10284 options that are preserved only for backward
10285 compatibility.
10286
10287 2019-09-09 Jakub Jelinek <jakub@redhat.com>
10288
10289 PR target/87853
10290 * config/i386/emmintrin.h (_mm_cmpeq_epi8): Use casts to __v16qi
10291 instead of __v16qs.
10292
10293 PR target/91704
10294 * config/i386/avxintrin.h (__v32qs): New typedef.
10295 * config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs
10296 instead of __v32qi.
10297
10298 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
10299
10300 * doc/invoke.texi (Option Summary): Cover eBPF.
10301 (eBPF Options): New section.
10302 * doc/extend.texi (BPF Built-in Functions): Likewise.
10303 (BPF Kernel Helpers): Likewise.
10304
10305 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
10306
10307 * config.gcc: Support for bpf-*-* targets.
10308 * common/config/bpf/bpf-common.c: New file.
10309 * config/bpf/t-bpf: Likewise.
10310 * config/bpf/predicates.md: Likewise.
10311 * config/bpf/constraints.md: Likewise.
10312 * config/bpf/bpf.opt: Likewise.
10313 * config/bpf/bpf.md: Likewise.
10314 * config/bpf/bpf.h: Likewise.
10315 * config/bpf/bpf.c: Likewise.
10316 * config/bpf/bpf-protos.h: Likewise.
10317 * config/bpf/bpf-opts.h: Likewise.
10318 * config/bpf/bpf-helpers.h: Likewise.
10319 * config/bpf/bpf-helpers.def: Likewise.
10320
10321 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
10322
10323 * doc/sourcebuild.texi (Effective-Target Keywords): Document
10324 indirect_calls.
10325
10326 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
10327
10328 * opt-functions.awk (integer_range_info): Make sure values are in
10329 numeric context before operating with them.
10330
10331 2019-09-08 Segher Boessenkool <segher@kernel.crashing.org>
10332
10333 * genemit.c (gen_split): Print the filename and line number where the
10334 splitter (or peephole2) was defined, to the dump file.
10335
10336 2019-09-07 Jakub Jelinek <jakub@redhat.com>
10337
10338 PR tree-optimization/91665
10339 * tree-vect-loop.c (vectorizable_reduction): Punt if base has type
10340 incompatible with the type of PHI result.
10341
10342 2019-09-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
10343
10344 PR target/91684
10345 * config/arm/arm.c (arm_block_set_aligned_non_vect): Use
10346 gen_unaligned_storedi for 4-byte aligned addresses.
10347
10348 2019-09-06 Jim Wilson <jimw@sifive.com>
10349
10350 * config/riscv/riscv.c (riscv_option_override): Revert 2019-08-30
10351 change.
10352
10353 2019-09-06 Segher Boessenkool <segher@kernel.crashing.org>
10354
10355 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_MV_CR_OV.
10356
10357 2019-09-06 Segher Boessenkool <segher@kernel.crashing.org>
10358
10359 * config/rs6000/rs6000.c (rs6000_rtx_costs) <case UNSPEC>: Delete.
10360 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_FRSP.
10361
10362 2019-09-06 Uroš Bizjak <ubizjak@gmail.com>
10363
10364 PR target/91654
10365 * config/i386/x86-tune-costs.h (skylake_cost): Raise the
10366 cost of SSE->integer and integer->SSE moves from 2 to 6.
10367 (core_cost): Ditto.
10368
10369 2019-09-06 Jakub Jelinek <jakub@redhat.com>
10370
10371 * function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P
10372 before testing TYPE_TRANSPARENT_AGGR.
10373 * calls.c (initialize_argument_information, load_register_parameters):
10374 Likewise.
10375
10376 2019-09-06 Richard Earnshaw <rearnsha@arm.com>
10377
10378 * config/arm/arm.md (cmp_and): Add short-it variant for thumb2 with
10379 high regs.
10380 (cmp_ior): Likewise.
10381
10382 2019-09-06 Martin Liska <mliska@suse.cz>
10383
10384 * doc/match-and-simplify.texi: Separate tuples with ;.
10385
10386 2019-09-06 Martin Liska <mliska@suse.cz>
10387
10388 PR c++/91125
10389 * Makefile.in: Remove tlink.o.
10390 * collect2.c (do_link): New function isolated
10391 from do_tlink.
10392 (main): Use.
10393 * collect2.h (do_tlink): Remove declaration of do_tlink.
10394 * doc/extend.texi: Remove documentation of -frepo.
10395 * doc/invoke.texi: Likewise.
10396 * doc/sourcebuild.texi: Remove cleanup-repo-files.
10397 * tlink.c: Remove.
10398
10399 2019-09-05 Jakub Jelinek <jakub@redhat.com>
10400 Jim Wilson <jimw@sifive.com>
10401
10402 PR target/91635
10403 * config/riscv/riscv.md (zero_extendsidi2, zero_extendhi<GPR:mode>2,
10404 extend<SHORT:mode><SUPERQI:mode>2): Don't split if
10405 paradoxical_subreg_p (operands[0]).
10406 (*lshrsi3_zero_extend_3+1, *lshrsi3_zero_extend_3+2): Add clobber and
10407 use as intermediate value.
10408
10409 2019-09-05 Andrew Stubbs <ams@codesourcery.com>
10410
10411 * config/gcn/gcn.md (*movti_insn): Set delayeduse for global_store.
10412 (sync_compare_and_swap<mode>_insn): Likewise.
10413
10414 2019-09-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
10415
10416 PR middle-end/91615
10417 * expr.c (expand_expr_real_1): Handle misaligned TARGET_MEM_REF
10418 without movmisalign optab.
10419
10420 2019-09-05 Jakub Jelinek <jakub@redhat.com>
10421
10422 PR middle-end/91001
10423 PR middle-end/91105
10424 PR middle-end/91106
10425 * calls.c (load_register_parameters): For TYPE_TRANSPARENT_AGGR
10426 types, use type of their first field instead of type of
10427 args[i].tree_value.
10428
10429 2019-09-05 Richard Biener <rguenther@suse.de>
10430
10431 PR rtl-optimization/91656
10432 * postreload-gcse.c (record_last_mem_set_info): Revert addition
10433 of early out.
10434
10435 2019-09-05 Richard Biener <rguenther@suse.de>
10436
10437 PR middle-end/90501
10438 * tree-inline.c (declare_return_variable): Mark the return
10439 slot as addressable after building an address of it.
10440
10441 2019-09-05 Arnaud Charlet <charlet@adacore.com>
10442
10443 * doc/install.texi: Update and clarify requirements to build GNAT.
10444
10445 2019-09-05 Richard Sandiford <richard.sandiford@arm.com>
10446
10447 PR middle-end/91577
10448 * cfgexpand.c (discover_nonconstant_array_refs): Force the source
10449 of an IFN_LOAD_LANES call and the destination of an IFN_STORE_LANES
10450 call to be in memory.
10451 (pass_expand::execute): Call discover_nonconstant_array_refs before
10452 setting currently_expanding_to_rtl.
10453
10454 2019-09-04 Caroline Tice <cmtice@google.com>
10455
10456 * opts.c (finish_options): Disallow -fvtable-verify and -flto to be
10457 specified together.
10458
10459 2019-09-04 Marek Polacek <polacek@redhat.com>
10460
10461 * doc/invoke.texi: Remove -fdeduce-init-list documentation.
10462
10463 2019-09-04 Uroš Bizjak <ubizjak@gmail.com>
10464
10465 PR target/32413
10466 * config/i386/i386.c (inline_secondary_memory_needed): Return true
10467 for QI and HImode moves between SSE and general registers.
10468
10469 2019-09-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10470
10471 PR c/78736
10472 * doc/invoke.texi: Document -Wenum-conversion.
10473
10474 2019-09-04 Richard Biener <rguenther@suse.de>
10475
10476 PR rtl-optimization/36262
10477 * postreload-gcse.c: Include intl.h and gcse.h.
10478 (insert_expr_in_table): Insert at the head of cur_expr->avail_occr
10479 to avoid linear list walk.
10480 (record_last_mem_set_info): Gate off if not computing transparentness.
10481 (get_bb_avail_insn): If transparentness isn't computed give up
10482 early.
10483 (gcse_after_reload_main): Skip compute_transp and extended PRE
10484 if gcse_or_cprop_is_too_expensive says so.
10485
10486 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com>
10487
10488 * config/msp430/msp430.c (msp430_init_sections): Remove handling of the
10489 noinit section.
10490 (msp430_select_section): Handle decls with the "noinit" attribute with
10491 default_elf_select_section.
10492 Handle SECCAT_RODATA_MERGE_* section types with
10493 default_elf_select_section.
10494 Add comments about handling of unsupported section types.
10495 (msp430_section_type_flags): Remove handling of the noinit section.
10496
10497 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com>
10498
10499 * config/msp430/msp430.c (msp430_attr): Remove warnings about
10500 conflicting msp430-specific attributes.
10501 (msp430_section_attr): Likewise.
10502 Add warnings about conflicts with generic "noinit" and "section"
10503 attributes.
10504 Fix grammar in -mlarge error message.
10505 (msp430_data_attr): Rename to msp430_persist_attr.
10506 Add warnings about conflicts with generic "noinit" and "section"
10507 attributes.
10508 Add warning for when variable is not initialized.
10509 Chain conditionals which prevent the attribute being added.
10510 (ATTR_EXCL): New helper.
10511 (attr_reent_exclusions): New exclusion table.
10512 (attr_naked_exclusions): Likewise.
10513 (attr_crit_exclusions): Likewise.
10514 (attr_lower_exclusions): Likewise.
10515 (attr_upper_exclusions): Likewise.
10516 (attr_either_exclusions): Likewise.
10517 (attr_persist_exclusions): Likewise.
10518 (msp430_attribute_table): Update with exclusion rules.
10519 (msp430_output_aligned_decl_common): Don't output common symbol if decl
10520 has a section.
10521
10522 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com>
10523
10524 * config/msp430/msp430.c (TARGET_HANDLE_GENERIC_ATTRIBUTE): Define.
10525 (msp430_handle_generic_attribute): New function.
10526 * doc/tm.texi: Regenerate.
10527 * doc/tm.texi.in: Add TARGET_HANDLE_GENERIC_ATTRIBUTE.
10528 * hooks.c (hook_tree_treeptr_tree_tree_int_boolptr_null): New.
10529 * hooks.h (hook_tree_treeptr_tree_tree_int_boolptr_null): New.
10530 * target.def: Define new hook TARGET_HANDLE_GENERIC_ATTRIBUTE.
10531
10532 2019-09-03 Kamlesh Kumar <kamleshbhalui@gmail.com>
10533
10534 PR tree-optimization/91504
10535 * match.pd: Add ((~a & b) ^a) --> (a | b).
10536
10537 2019-09-03 Jakub Jelinek <jakub@redhat.com>
10538
10539 PR target/91604
10540 * config/i386/i386-expand.c (split_double_mode): If there is more than
10541 one MEM operand and they are rtx_equal_p, reuse lo_half/hi_half from
10542 already split matching MEM operand instead of calling adjust_address
10543 again.
10544
10545 2019-09-03 Ulrich Weigand <uweigand@de.ibm.com>
10546
10547 * config.gcc: Obsolete spu target. Remove references to spu.
10548 * configure.ac: Remove references to spu.
10549 * configure: Regenerate.
10550 * config/spu/: Remove directory.
10551 * common/config/spu/: Remove directory.
10552
10553 * doc/extend.texi: Remove references to spu.
10554 * doc/invoke.texi: Likewise.
10555 * doc/md.texi: Likewise.
10556 * doc/sourcebuild.texi: Likewise.
10557
10558 2019-09-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
10559
10560 PR middle-end/91603
10561 PR middle-end/91612
10562 PR middle-end/91613
10563 * expr.c (expand_expr_real_1): Handle unaligned decl_rtl
10564 and SSA_NAME referring to CONSTANT_P correctly.
10565
10566 2019-09-03 Richard Biener <rguenther@suse.de>
10567
10568 * tree-ssa-sccvn.h (vn_nary_op_lookup): Remove.
10569 (vn_nary_op_insert): Likewise.
10570 * tree-ssa-sccvn.c (init_vn_nary_op_from_op): Remove.
10571 (vn_nary_op_lookup): Likewise.
10572 (vn_nary_op_insert): Likewise.
10573
10574 2019-09-03 Ilya Leoshkevich <iii@linux.ibm.com>
10575
10576 * config/s390/s390.c (s390_canonicalize_comparison): Use XEXP
10577 (*op0, 1) instead of XEXP (*op1, 0).
10578
10579 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10580
10581 * config/aarch64/aarch64.md (UNSPEC_FJCVTZS): Define.
10582 (aarch64_fjcvtzs): New define_insn.
10583 * config/aarch64/aarch64.h (TARGET_JSCVT): Define.
10584 * config/aarch64/aarch64-builtins.c (aarch64_builtins):
10585 Add AARCH64_JSCVT.
10586 (aarch64_init_builtins): Initialize __builtin_aarch64_jcvtzs.
10587 (aarch64_expand_builtin): Handle AARCH64_JSCVT.
10588 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
10589 __ARM_FEATURE_JCVT where appropriate.
10590 * config/aarch64/arm_acle.h (__jcvt): Define.
10591
10592 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10593
10594 * config/aarch64/aarch64.md ("unspec"): Add UNSPEC_FRINT32Z,
10595 UNSPEC_FRINT32X, UNSPEC_FRINT64Z, UNSPEC_FRINT64X.
10596 (aarch64_<frintnzs_op><mode>): New define_insn.
10597 * config/aarch64/aarch64.h (TARGET_FRINT): Define.
10598 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
10599 __ARM_FEATURE_FRINT when appropriate.
10600 * config/aarch64/aarch64-simd-builtins.def: Add builtins for frint32z,
10601 frint32x, frint64z, frint64x.
10602 * config/aarch64/arm_acle.h (__rint32zf, __rint32z, __rint64zf,
10603 __rint64z, __rint32xf, __rint32x, __rint64xf, __rint64x): Define.
10604 * config/aarch64/arm_neon.h (vrnd32z_f32, vrnd32zq_f32, vrnd32z_f64,
10605 vrnd32zq_f64, vrnd32x_f32, vrnd32xq_f32, vrnd32x_f64, vrnd32xq_f64,
10606 vrnd64z_f32, vrnd64zq_f32, vrnd64z_f64, vrnd64zq_f64, vrnd64x_f32,
10607 vrnd64xq_f32, vrnd64x_f64, vrnd64xq_f64): Define.
10608 * config/aarch64/iterators.md (VSFDF): Define.
10609 (FRINTNZX): Likewise.
10610 (frintnzs_op): Likewise.
10611
10612 2019-09-03 Dennis Zhang <dennis.zhang@arm.com>
10613
10614 * config/aarch64/aarch64-cores.def (AARCH64_CORE): New entries
10615 for Cortex-A77, Cortex-A76AE, Cortex-A65, Cortex-A65AE, and
10616 Cortex-A34.
10617 * config/aarch64/aarch64-tune.md: Regenerated.
10618 * doc/invoke.texi: Document the new processors.
10619
10620 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10621
10622 * config/aarch64/aarch64-option-extensions.def (sb): Add feature
10623 string.
10624 (ssbs): Likewise.
10625 (sve2): Likewise.
10626 (sve2-sm4): Likewise.
10627 (sveaes): Likewise.
10628 (svesha3): Likewise.
10629 (svebitperm): Likewise.
10630
10631 2019-09-03 Jakub Jelinek <jakub@redhat.com>
10632 Richard Biener <rguenther@suse.de>
10633
10634 PR tree-optimization/91597
10635 * tree-vrp.c (extract_range_from_binary_expr): Remove unsafe
10636 BIT_AND_EXPR optimization for pointers, even if both operand
10637 ranges don't include NULL, the result can be NULL.
10638
10639 2019-09-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
10640
10641 PR middle-end/91605
10642 * expr.c (addr_expr_of_non_mem_decl_p_1): Refactor into...
10643 (non_mem_decl_p): ...this.
10644 (mem_ref_refers_to_non_mem_p): Handle DECL_P as well as MEM_REF.
10645 (expand_assignment): Call mem_ref_referes_to_non_mem_p
10646 unconditionally as before.
10647
10648 2019-09-02 Eric Botcazou <ebotcazou@adacore.com>
10649
10650 PR target/91323
10651 * doc/generic.texi (LTGT_EXPR): Merge with other comparison operators.
10652 * rtl.def (LTGT): Likewise. Add note about floating-point exceptions.
10653 * tree.def (LTGT_EXPR): Likewise.
10654 * config/sparc/sparc.c (select_cc_mode): Return CCFPEmode for LTGT.
10655
10656 2019-09-02 Jakub Jelinek <jakub@redhat.com>
10657
10658 PR go/91617
10659 * fold-const.c (range_check_type): For enumeral and boolean
10660 type, pass 1 to type_for_size langhook instead of
10661 TYPE_UNSIGNED (etype). Return unsigned_type_for result whenever
10662 etype isn't TYPE_UNSIGNED INTEGER_TYPE.
10663 (build_range_check): Don't call unsigned_type_for for pointer types.
10664 * match.pd (X / C1 op C2): Don't call unsigned_type_for on
10665 range_check_type result.
10666
10667 2019-09-02 Eric Botcazou <ebotcazou@adacore.com>
10668
10669 * gimple-ssa-strength-reduction.c (valid_mem_ref_cand_p): New function.
10670 (replace_ref): Do not replace a chain of only two candidates which are
10671 valid memory references.
10672
10673 2019-09-02 Martin Liska <mliska@suse.cz>
10674
10675 * tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
10676 Bail out when we'll end up with the same number of clusters as
10677 at the beginning.
10678 (bit_test_cluster::find_bit_tests): Likewise for bit tests.
10679 (jump_table_cluster::can_be_handled): Remove the guard
10680 as it's already handled in ::is_enabled. Allocate output
10681 after early bail out.
10682
10683 2019-09-02 Martin Liska <mliska@suse.cz>
10684
10685 PR gcov-profile/91601
10686 * gcov.c (path_contains_zero_cycle_arc): Rename to ...
10687 (path_contains_zero_or_negative_cycle_arc): ... this and handle
10688 also negative edges.
10689 (circuit): Handle also negative edges as they can happen
10690 in some situations.
10691
10692 2019-09-01 Eric Botcazou <ebotcazou@adacore.com>
10693
10694 PR target/91472
10695 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Return true
10696 during LRA/reload in PIC mode if the PIC register hasn't been used yet.
10697 (sparc_pic_register_p): Test reload_in_progress for consistency's sake.
10698
10699 2019-09-01 Jakub Jelinek <jakub@redhat.com>
10700
10701 PR middle-end/91623
10702 * optabs.c (expand_vec_cond_expr): If op0 is a VECTOR_CST and only
10703 EQ_EXPR/NE_EXPR is supported, verify that op0 only contains
10704 zeros or negative elements and use NE_EXPR instead of LT_EXPR against
10705 zero vector.
10706
10707 PR lto/91572
10708 * tree.c (find_decls_types_in_node): Also walk TREE_PURPOSE of
10709 GIMPLE_ASM TREE_LIST operands.
10710
10711 2019-08-31 Gerald Pfeifer <gerald@pfeifer.com>
10712
10713 * doc/generic.texi (Unary and Binary Expressions): Mark up
10714 an instance of TYPE_MIN.
10715
10716 2019-08-31 Stafford Horne <shorne@gmail.com>
10717
10718 * config/or1k/constraints.md (t): New constraint.
10719 * config/or1k/or1k.h (GOT_REGS): New register class.
10720 * config/or1k/or1k.md (set_got_tmp, set_got): Use t contraint.
10721
10722 2019-08-30 Jim Wilson <jimw@sifive.com>
10723
10724 * config/riscv/riscv.c (riscv_option_override): If -msave-restore
10725 and -fpic and -mplt then disable -msave-restore and warn.
10726
10727 2019-08-30 Martin Sebor <msebor@redhat.com>
10728
10729 PR middle-end/91599
10730 * tree-ssa-strlen.c (handle_store): Use a fallback location if
10731 the statement doesn't have one.
10732 * gimple-pretty-print.c (percent_G_format): Same.
10733
10734 PR middle-end/91584
10735 * tree-vrp.c (vrp_prop::check_mem_ref): Normalize type domain bounds
10736 before using them to validate MEM_REF offset.
10737
10738 2019-08-30 Marek Polacek <polacek@redhat.com>
10739
10740 * doc/invoke.texi (-Wvolatile): Use @code for volatile.
10741
10742 2019-08-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
10743
10744 * config/arm/arm.md (unaligned_loaddi,
10745 unaligned_storedi): New unspec insn patterns.
10746 * config/arm/neon.md (unaligned_storev8qi): Likewise.
10747 * config/arm/arm.c (gen_cpymem_ldrd_strd): Use unaligned_loaddi
10748 and unaligned_storedi for 4-byte aligned memory.
10749 (arm_block_set_aligned_vect): Use unaligned_storev8qi for
10750 4-byte aligned memory.
10751
10752 2019-08-30 Martin Jambor <mjambor@suse.cz>
10753
10754 tree-optimization/91579
10755 * tree-tailcall.c (tailr_arg_needs_copy): New variable.
10756 (find_tail_calls): Allocate tailr_arg_needs_copy and set its bits as
10757 appropriate.
10758 (arg_needs_copy_p): Removed.
10759 (eliminate_tail_call): Test tailr_arg_needs_copy instead of calling
10760 arg_needs_copy_p.
10761 (tree_optimize_tail_calls_1): Likewise. Free tailr_arg_needs_copy.
10762
10763 2019-08-29 Uroš Bizjak <ubizjak@gmail.com>
10764
10765 * config/i386/i386-features.c
10766 (general_scalar_chain::compute_convert_gain):
10767 Correct cost for double-word shifts.
10768 (general_scalar_to_vector_candidate_p): Reject count operands
10769 greater or equal to mode bitsize.
10770
10771 2019-08-29 Uroš Bizjak <ubizjak@gmail.com>
10772
10773 * config/i386/i386.c (inline_secondary_memory_needed): Return true
10774 for moves between SSE and non-general registers and between
10775 mask and non-general registers.
10776 (ix86_register_move_cost): Remove stalled comment.
10777
10778 2019-08-29 Richard Biener <rguenther@suse.de>
10779
10780 * config/i386/i386-features.c (general_scalar_chain::convert_insn):
10781 Guard debug work with MAY_HAVE_DEBUG_BIND_INSNS.
10782
10783 2019-08-29 Richard Biener <rguenther@suse.de>
10784
10785 PR bootstrap/91580
10786 * config/i386/i386-features.c (general_scalar_chain::convert_insn):
10787 Do not emit scalar copies for debug-insns, instead replace
10788 their uses with the reg copy used in the chain or reset them
10789 if there is a reaching definition outside of the chain as well.
10790
10791 2019-08-29 Jakub Jelinek <jakub@redhat.com>
10792
10793 PR target/91560
10794 * config/i386/i386-expand.c (expand_vec_perm_movs,
10795 expand_vec_perm_blend, expand_vec_perm_vpermil,
10796 expand_vec_perm_pshufb, expand_vec_perm_1,
10797 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr,
10798 expand_vec_perm_interleave2, expand_vec_perm_vpermq_perm_1,
10799 expand_vec_perm_vperm2f128, expand_vec_perm_interleave3,
10800 expand_vec_perm_vperm2f128_vblend, expand_vec_perm_2vperm2f128_vshuf,
10801 expand_vec_perm_even_odd, expand_vec_perm_broadcast): Adjust function
10802 comments - replace ix86_expand_vec_perm_builtin_1 with
10803 ix86_expand_vec_perm_const_1.
10804 (expand_vec_perm2_vperm2f128_vblend): New function.
10805 (ix86_expand_vec_perm_const_1): New forward declaration. Call
10806 expand_vec_perm2_vperm2f128_vblend as last resort.
10807 (canonicalize_perm): Formatting fix.
10808
10809 PR tree-optimization/91351
10810 * tree-cfg.c (generate_range_test): Use range_check_type instead of
10811 unsigned_type_for.
10812 * tree-cfgcleanup.c (convert_single_case_switch): Punt if
10813 range_check_type returns NULL.
10814 * tree-switch-conversion.c (switch_conversion::build_one_array):
10815 Use range_check_type instead of unsigned_type_for, don't perform
10816 linear opt if it returns NULL.
10817 (bit_test_cluster::find_bit_tests): Formatting fix.
10818 (bit_test_cluster::emit): Use range_check_type instead of
10819 unsigned_type_for.
10820 (switch_decision_tree::try_switch_expansion): Punt if range_check_type
10821 returns NULL.
10822
10823 2019-08-29 Richard Biener <rguenther@suse.de>
10824
10825 PR tree-optimization/91568
10826 * tree-vectorizer.h (_slp_tree::max_nunits): Add.
10827 (vect_update_max_nunits): Add overload for poly_uint64.
10828 * tree-vect-slp.c (vect_create_new_slp_node): Initialize it.
10829 (vect_build_slp_tree): Record max_nunits into the subtree
10830 and merge it upwards.
10831 (vect_print_slp_tree): Print max_nunits.
10832
10833 2019-08-28 Marek Polacek <polacek@redhat.com>
10834
10835 Implement P1152R4: Deprecating some uses of volatile.
10836 PR c++/91361
10837 * doc/invoke.texi: Document -Wvolatile.
10838
10839 2019-08-28 Marek Polacek <polacek@redhat.com>
10840
10841 PR c++/91360 - Implement C++20 P1143R2: constinit.
10842 * doc/invoke.texi: Document -Wc++20-compat.
10843
10844 2019-08-28 Martin Sebor <msebor@redhat.com>
10845
10846 PR tree-optimization/91457
10847 * builtins.c (component_size): New function.
10848 (compute_objsize): Add argument. Handle ARRAY_REF and COMPONENT_REF.
10849 * builtins.h (compute_objsize): Add argument.
10850 * tree-ssa-strlen.c (handle_store): Handle no-warning bit.
10851 * tree-vrp.c (vrp_prop::check_array_ref): Return warning result.
10852 (vrp_prop::check_mem_ref): Same.
10853 (vrp_prop::search_for_addr_array): Set no-warning bit.
10854 (check_array_bounds): Same.
10855
10856 2019-08-28 Martin Sebor <msebor@redhat.com>
10857
10858 PR driver/80545
10859 * opts-common.c (option_enabled): Correct checking for language
10860 options.
10861
10862 2019-08-28 Uroš Bizjak <ubizjak@gmail.com>
10863
10864 * config/i386/i386.c (ix86_register_move_cost): Do not
10865 limit the cost of moves to/from XMM register to minimum 8.
10866
10867 2019-08-28 Martin Jambor <mjambor@suse.cz>
10868
10869 PR ipa/91468
10870 * ipa-cp.c (merge_agg_lats_step): Removed redundant test, made a
10871 checking assert a normal assert to test it really is redundant.
10872 * ipa-prop.c (compute_complex_assign_jump_func): Removed
10873 redundant test.
10874 (update_jump_functions_after_inlining): Removed combining unary
10875 arithmetic operations with an ancestor jump function.
10876 (ipcp_modif_dom_walker::before_dom_children): Fix wrong use of rhs
10877 instead of t.
10878
10879 2019-08-28 Richard Biener <rguenther@suse.de>
10880
10881 * config/i386/i386-features.c (convert_scalars_to_vector): Do not
10882 add the MD problem.
10883
10884 2019-08-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
10885 Richard Biener <rguenther@suse.de>
10886
10887 * expr.c (expand_assignment): Handle misaligned DECLs.
10888 (expand_expr_real_1): Handle FUNCTION_DECL as unaligned.
10889 * function.c (assign_parm_adjust_stack_rtl): Check movmisalign optab
10890 too.
10891 (assign_parm_setup_stack): Allocate properly aligned stack slots.
10892 * varasm.c (build_constant_desc): Align constants of misaligned types.
10893 * config/arm/predicates.md (aligned_operand): New predicate.
10894 * config/arm/arm.md (movdi, movsi, movhi, movhf, movsf, movdf): Use
10895 aligned_operand to check restrictions on memory addresses.
10896 * config/arm/neon.md (movti, mov<VSTRUCT>, mov<VH>): Likewise.
10897 * config/arm/vec-common.md (mov<VALL>): Likewise.
10898
10899 2019-08-28 Jakub Jelinek <jakub@redhat.com>
10900
10901 PR libgomp/91530
10902 * config/i386/sse.md (vec_shl_<mode>, vec_shr_<mode>): Use
10903 V_128 iterator instead of VI_128.
10904
10905 2019-08-28 Martin Liska <mliska@suse.cz>
10906
10907 PR tree-optimization/90970
10908 * builtins.c (check_access): Remove assignment to maxread
10909 as it hasn't been used since when it was introduced in r255755.
10910
10911 2019-08-27 Martin Sebor <msebor@redhat.com>
10912
10913 PR tree-optimization/91567
10914 * gimple-ssa-sprintf.c (get_string_length): Handle more forms of lengths
10915 of unknown strings.
10916 * vr-values.c (vr_values::extract_range_basic): Set strlen upper bound
10917 to PTRDIFF_MAX - 2.
10918
10919 2019-08-27 Jeff Law <law@redhat.com>
10920
10921 * tree-ssa-strlen.c (printf_strlen_execute): Initialize
10922 the loop optimizer and SCEV before sizing ssa_ver_to_stridx.
10923
10924 2019-08-27 Uroš Bizjak <ubizjak@gmail.com>
10925
10926 PR target/91528
10927 * config/i386/i386-features.c (convert_scalars_to_vector):
10928 Update crtl->stack_realign_needed, crtl->stack_realign_tried and
10929 crtl->stack_realign_processed. Update crtl->drap_reg by calling
10930 targetm.calls.get_drap_rtx. If drap_rtx is non-null then
10931 Update crtl->args.internal_arg_pointer and call fixup_tail_calls.
10932
10933 2019-08-27 Richard Biener <rguenther@suse.de>
10934
10935 * config/i386/i386-features.h
10936 (general_scalar_chain::~general_scalar_chain): Add.
10937 (general_scalar_chain::insns_conv): New bitmap.
10938 (general_scalar_chain::n_sse_to_integer): New.
10939 (general_scalar_chain::n_integer_to_sse): Likewise.
10940 (general_scalar_chain::make_vector_copies): Adjust signature.
10941 * config/i386/i386-features.c
10942 (general_scalar_chain::general_scalar_chain): Outline,
10943 initialize new members.
10944 (general_scalar_chain::~general_scalar_chain): New.
10945 (general_scalar_chain::mark_dual_mode_def): Record insns
10946 we need to insert conversions at and count them.
10947 (general_scalar_chain::compute_convert_gain): Account
10948 for conversion instructions at chain boundary.
10949 (general_scalar_chain::make_vector_copies): Generate a single
10950 copy for a def by a specific insn.
10951 (general_scalar_chain::convert_registers): First populate
10952 defs_map, then make copies at out-of chain insns.
10953
10954 2019-08-27 Richard Earnshaw <rearnsha@arm.com>
10955
10956 * config/arm/arm.md (stack_protect_set_insn): Add security-related
10957 comment.
10958 * config/aarch64/aarch64.md (stack_protect_set_<mode>): Likewise.
10959
10960 2019-08-27 Martin Liska <mliska@suse.cz>
10961
10962 * cgraph.c (cgraph_node::remove): Remove dead assignment before
10963 loop.
10964 * config/i386/i386-features.c (scalar_chain::emit_conversion_insns):
10965 Enclose in anonymous namespace.
10966 * config/i386/x86-tune-costs.h (struct processor_costs): Wrap
10967 hard_register initialization in braces.
10968 * tree-vrp.h (value_range_base::supports_type_p): Return false
10969 for function with boolean return type.
10970
10971 2019-08-26 Uroš Bizjak <ubizjak@gmail.com>
10972
10973 * config/i386/i386.c (emit_i387_cw_initialization)
10974 <case I387_CW_ROUNDEVEN>: Fix masking operand value.
10975
10976 2019-08-26 Martin Sebor <msebor@redhat.com>
10977
10978 PR c++/83431
10979 * gimple-ssa-sprintf.c (pass_data_sprintf_length): Remove object.
10980 (sprintf_dom_walker): Remove class.
10981 (get_int_range): Make argument const.
10982 (directive::fmtfunc, directive::set_precision): Same.
10983 (format_none): Same.
10984 (build_intmax_type_nodes): Same.
10985 (adjust_range_for_overflow): Same.
10986 (format_floating): Same.
10987 (format_character): Same.
10988 (format_string): Same.
10989 (format_plain): Same.
10990 (get_int_range): Cast away constness.
10991 (format_integer): Same.
10992 (get_string_length): Call get_range_strlen_dynamic. Handle
10993 null lendata.maxbound.
10994 (should_warn_p): Adjust argument scope qualifier.
10995 (maybe_warn): Same.
10996 (format_directive): Same.
10997 (parse_directive): Same.
10998 (is_call_safe): Same.
10999 (try_substitute_return_value): Same.
11000 (sprintf_dom_walker::handle_printf_call): Rename...
11001 (handle_printf_call): ...to this. Initialize target to host charmap
11002 here instead of in pass_sprintf_length::execute.
11003 (struct call_info): Make global.
11004 (sprintf_dom_walker::compute_format_length): Make global.
11005 (sprintf_dom_walker::handle_gimple_call): Same.
11006 * passes.def (pass_sprintf_length): Replace with pass_strlen.
11007 * print-rtl.c (print_pattern): Reduce the number of spaces to
11008 avoid -Wformat-truncation.
11009 * tree-pass.h (make_pass_warn_printf): New function.
11010 * tree-ssa-strlen.c (strlen_optimize): New variable.
11011 (get_string_length): Add comments.
11012 (get_range_strlen_dynamic): New function.
11013 (check_and_optimize_call): New function.
11014 (handle_integral_assign): New function.
11015 (strlen_check_and_optimize_stmt): Factor code out into
11016 strlen_check_and_optimize_call and handle_integral_assign.
11017 (strlen_dom_walker::evrp): New member.
11018 (strlen_dom_walker::before_dom_children): Use evrp member.
11019 (strlen_dom_walker::after_dom_children): Use evrp member.
11020 (printf_strlen_execute): New function.
11021 (pass_strlen::gate): Update to handle printf calls.
11022 (dump_strlen_info): New function.
11023 (pass_data_warn_printf): New variable.
11024 (pass_warn_printf): New class.
11025 * tree-ssa-strlen.h (get_range_strlen_dynamic): Declare.
11026 (handle_printf_call): Same.
11027 * tree-vrp.c (value_range_base::type): Adjust assertion.
11028 * vr-values.c (vr_values::update_value_range): Use type of the first
11029 argument rather than the second.
11030
11031 2019-08-26 Richard Biener <rguenther@suse.de>
11032
11033 * config/i386/i386-features.c (general_remove_non_convertible_regs):
11034 Remove.
11035 (convert_scalars_to_vector): Do not call it.
11036
11037 2019-08-26 Tejas Joshi <tejasjoshi9673@gmail.com>
11038 Uros Bizjak <ubizjak@gmail.com>
11039
11040 * builtins.c (mathfn_built_in_2): Change CASE_MATHFN to
11041 CASE_MATHFN_FLOATN for roundeven.
11042 * config/i386/i386.c (ix86_i387_mode_needed): Add case
11043 I387_ROUNDEVEN.
11044 (ix86_mode_needed): Likewise.
11045 (ix86_mode_after): Likewise.
11046 (ix86_mode_entry): Likewise.
11047 (ix86_mode_exit): Likewise.
11048 (ix86_emit_mode_set): Likewise.
11049 (emit_i387_cw_initialization): Add case I387_CW_ROUNDEVEN.
11050 * config/i386/i386.h (ix86_stack_slot): Add SLOT_CW_ROUNDEVEN.
11051 (ix86_entity): Add I387_ROUNDEVEN.
11052 (NUM_MODES_FOR_MODE_SWITCHING): Add I387_CW_ANY.
11053 * config/i386/i386.md: Define UNSPEC_FRNDINT_ROUNDEVEN.
11054 (define_int_iterator): Likewise.
11055 (define_int_attr): Likewise for rounding_insn, rounding and ROUNDING.
11056 (define_constant): Define ROUND_ROUNDEVEN mode.
11057 (define_attr): Add roundeven mode for i387_cw.
11058 (<rouding_insn><mode>2): Add condition for ROUND_ROUNDEVEN.
11059 * internal-fn.def (ROUNDEVEN): New builtin function.
11060 * optabs.def (roundeven_optab): New optab.
11061
11062 2019-08-26 Tejas Joshi <tejasjoshi9673@gmail.com>
11063
11064 * builtins.c (mathfn_built_in_2): Added CASE_MATHFN_FLOATN
11065 for ROUNDEVEN.
11066 * builtins.def: Added function definitions for roundeven function
11067 variants.
11068 * fold-const-call.c (fold_const_call_ss): Added case for roundeven
11069 function call. Adjust condition for floor, ceil, trunc and round.
11070 * fold-const.c (negate_mathfn_p): Added case for roundeven function.
11071 (tree_call_nonnegative_warnv_p): Added case for roundeven function.
11072 (integer_valued_real_call_p): Added case for roundeven function.
11073 * real.c (is_even): New function. Returns true if real number is even,
11074 otherwise returns false.
11075 (is_halfway_below): New function. Returns true if real number is
11076 halfway between two integers, else return false.
11077 (real_roundeven): New function. Round real number to nearest integer,
11078 rounding halfway cases towards even.
11079 * real.h (real_value): Added descriptive comments. Added function
11080 declaration for roundeven function.
11081 * doc/extend.texi (Other Builtins): List roundeven variants among
11082 functions which can be handled as builtins.
11083
11084 2019-08-26 Richard Biener <rguenther@suse.de>
11085
11086 PR target/91522
11087 PR target/91527
11088 * config/i386/i386-features.h (general_scalar_chain::defs_map):
11089 New member.
11090 (general_scalar_chain::replace_with_subreg): Remove.
11091 (general_scalar_chain::replace_with_subreg_in_insn): Likewise.
11092 (general_scalar_chain::convert_reg): Adjust signature.
11093 * config/i386/i386-features.c (scalar_chain::add_insn): Do not
11094 iterate over all defs of a reg.
11095 (general_scalar_chain::replace_with_subreg): Remove.
11096 (general_scalar_chain::replace_with_subreg_in_insn): Likewise.
11097 (general_scalar_chain::make_vector_copies): Populate defs_map,
11098 place copy only after defs that are used as vectors in the chain.
11099 (general_scalar_chain::convert_reg): Emit a copy for a specific
11100 def in a specific instruction.
11101 (general_scalar_chain::convert_op): All reg uses are converted here.
11102 (general_scalar_chain::convert_insn): Emit copies for scalar
11103 uses of defs here. Replace uses with the copies we created.
11104 Replace and convert the def. Adjust REG_DEAD notes, remove
11105 REG_EQUIV/EQUAL notes.
11106 (general_scalar_chain::convert_registers): Only handle copies
11107 into the chain here.
11108
11109 2019-08-26 Robin Dapp <rdapp@linux.ibm.com>
11110
11111 * match.pd: Add (T)(A) + CST -> (T)(A + CST).
11112
11113 2019-08-26 Robin Dapp <rdapp@linux.ibm.com>
11114
11115 * gimple-loop-versioning.cc (loop_versioning::record_address_fragment):
11116 Add nop_convert case.
11117 * tree-ssa-propagate.c (substitute_and_fold_dom_walker::before_dom_children):
11118 Fold all statements if requested.
11119 * tree-ssa-propagate.h (class substitute_and_fold_engine):
11120 Allow to fold all statements.
11121 * tree-vrp.c (class vrp_folder):
11122 Let substitute_and_fold_engine fold all statements.
11123
11124 2019-08-26 Richard Biener <rguenther@suse.de>
11125
11126 PR tree-optimization/91526
11127 * passes.def: Note that after late FRE we do TODO_update_address_taken.
11128 * tree-ssa-sccvn.c (pass_fre::execute): In late mode schedule
11129 TODO_update_address_taken.
11130
11131 2019-08-26 Gerald Pfeifer <gerald@pfeifer.com>
11132
11133 * config/i386/gmm_malloc.h: Only use <errno.h> and errno if
11134 __STDC_HOSTED__.
11135
11136 2019-08-23 Mihailo Stojanovic <mistojanovic@wavecomp.com>
11137
11138 * config/mips/mips.md (mips_get_fcsr, *mips_get_fcsr): Use SI
11139 machine mode for unspec_volatile operand.
11140
11141 2019-08-23 Wilco Dijkstra <wdijkstr@arm.com>
11142
11143 * doc/invoke.texi (mneon-for-64bits): Deprecate option.
11144 * config/arm/arm.opt (mneon-for-64bits): Deprecate option.
11145 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): Remove.
11146 (prefer_neon_for_64bits): Remove.
11147 * config/arm/arm.c (prefer_neon_for_64bits): Remove.
11148 (tune_params): Remove PREF_NEON_64_FALSE uses.
11149 (arm_option_override): Remove prefer_neon selection code.
11150 (arm_print_tune_info): Remove prefer_neon_for_64bits.
11151 * config/arm/arm-protos.h (tune_params): Remove
11152 prefer_neon_for_64bits.
11153 (prefer_neon_for_64bits): Remove.
11154
11155 2019-08-23 Iain Sandoe <iain@sandoe.co.uk>
11156
11157 PR pch/61250
11158 * ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure
11159 and issue any diagnostics needed before collecting the pre-PCH
11160 state.
11161
11162 2019-08-23 Jakub Jelinek <jakub@redhat.com>
11163
11164 PR middle-end/91283
11165 * common.opt (fexcess-precision=): Add Optimization flag. Use
11166 flag_excess_precision variable instead of
11167 flag_excess_precision_cmdline.
11168 * flags.h (class target_flag_state): Remove x_flag_excess_precision
11169 member.
11170 (flag_excess_precision): Don't define.
11171 * langhooks.c (lhd_post_options): Set flag_excess_precision instead of
11172 flag_excess_precision_cmdline. Remove comment.
11173 * opts.c (set_fast_math_flags): Use frontend_set_flag_excess_precision
11174 and x_flag_excess_precision instead of
11175 frontend_set_flag_excess_precision_cmdline and
11176 x_flag_excess_precision_cmdline.
11177 (fast_math_flags_set_p): Use x_flag_excess_precision instead of
11178 x_flag_excess_precision_cmdline.
11179 * toplev.c (init_excess_precision): Remove.
11180 (lang_dependent_init_target): Don't call it.
11181
11182 2019-08-23 Martin Liska <mliska@suse.cz>
11183
11184 * lto-wrapper.c (run_gcc): When setting jobserver
11185 set also parallel to 1. This was done so before r273908.
11186
11187 2019-08-23 Dennis Zhang <dennis.zhang@arm.com>
11188
11189 * config/arm/arm-cpus.in (cortex-m35p): New entry.
11190 (cortex-a76ae): Likewise.
11191 (cortex-a77): Likewise
11192 * config/arm/arm-tables.opt: Regenerate.
11193 * config/arm/arm-tune.md: Likewise.
11194 * doc/invoke.texi (ARM Options): Document cortex-m35p, cortx-a76ae,
11195 cortex-a77 CPU options.
11196
11197 2019-08-23 Martin Liska <mliska@suse.cz>
11198
11199 * profile.c (instrument_values): Do not set
11200 0 as last argument.
11201 * tree-profile.c (gimple_gen_interval_profiler): Remove
11202 last argument.
11203 (gimple_gen_pow2_profiler): Likewise.
11204 (gimple_gen_topn_values_profiler): Likewise.
11205 (gimple_gen_ic_profiler): Likewise.
11206 (gimple_gen_time_profiler): Likewise.
11207 (gimple_gen_average_profiler): Likewise.
11208 (gimple_gen_ior_profiler): Likewise.
11209 * value-prof.c (dump_histogram_value): Use default
11210 in switch statement instead of HIST_TYPE_MAX.
11211 (stream_in_histogram_value): Likewise.
11212 (gimple_duplicate_stmt_histograms): Do not
11213 use NULL for implicitly set arguments.
11214 (gimple_divmod_values_to_profile): Do not use
11215 reserve+quick_push.
11216 (gimple_indirect_call_to_profile): Likewise.
11217 (gimple_find_values_to_profile): Use implicit
11218 function call arguments.
11219 * value-prof.h (gimple_alloc_histogram_value):
11220 Set default values.
11221 (gimple_gen_interval_profiler): Remove last argument.
11222 (gimple_gen_pow2_profiler): Likewise.
11223 (gimple_gen_topn_values_profiler): Likewise.
11224 (gimple_gen_ic_profiler): Likewise.
11225 (gimple_gen_time_profiler): Likewise.
11226 (gimple_gen_average_profiler): Likewise.
11227 (gimple_gen_ior_profiler): Likewise.
11228
11229 2019-08-22 Martin Sebor <msebor@redhat.com>
11230
11231 PR middle-end/91490
11232 * builtins.c (c_strlen): Rename argument and introduce new local.
11233 Set no-warning bit on original argument.
11234 * expr.c (string_constant): Pass argument type to fold_ctor_reference.
11235 Fold empty and zero constructors into empty strings.
11236 * gimple-fold.c (fold_nonarray_ctor_reference): Return a STRING_CST
11237 for missing initializers.
11238 * tree.c (build_string_literal): Handle optional argument.
11239 * tree.h (build_string_literal): Add defaulted argument.
11240 * gimple-ssa-warn-restrict.c (maybe_diag_access_bounds): Check
11241 no-warning bit on original expression.
11242
11243 2019-08-22 Segher Boessenkool <segher@kernel.crashing.org>
11244
11245 PR target/91481
11246 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
11247 and UNSPEC_DARN_RAW.
11248 (unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and
11249 UNSPECV_DARN_RAW.
11250 (darn_32): Use an unspec_volatile, and UNSPECV_DARN_32.
11251 (darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW.
11252 (darn): Use an unspec_volatile, and UNSPECV_DARN.
11253
11254 2019-08-22 Segher Boessenkool <segher@kernel.crashing.org>
11255
11256 * config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
11257 UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to...
11258 * config/rs6000/rs6000.md (unspec): ... here.
11259 * config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb,
11260 *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
11261 cmpeqb, *cmpeqb_internal): Delete, move to...
11262 * config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb,
11263 *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
11264 cmpeqb, *cmpeqb_internal): ... here.
11265
11266 2019-08-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11267
11268 * config/arm/arm_acle.h: Use arch=armv8-a+crc+simd pragma for CRC32
11269 intrinsics if __ARM_FP.
11270 Use __ARM_FEATURE_CRC32 ifdef guard.
11271
11272 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com>
11273
11274 * config/arm/arm.md (neon_for_64bits): Remove.
11275 (avoid_neon_for_64bits): Remove.
11276 (arm_adddi3): Always split early.
11277 (arm_subdi3): Always split early.
11278 (negdi2): Remove Neon expansion.
11279 (split zero_extend): Split before reload.
11280 (split sign_extend): Split before reload.
11281
11282 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com>
11283
11284 * config/arm/iterators.md (qhs_extenddi_cstr): Update.
11285 (qhs_extenddi_cstr): Likewise.
11286 * config/arm/arm.md (ashldi3): Always expand early.
11287 (ashlsi3): Likewise.
11288 (ashrsi3): Likewise.
11289 (zero_extend<mode>di2): Remove Neon variants.
11290 (extend<mode>di2): Likewise.
11291 * config/arm/neon.md (ashldi3_neon_noclobber): Remove.
11292 (signed_shift_di3_neon): Likewise.
11293 (unsigned_shift_di3_neon): Likewise.
11294 (ashrdi3_neon_imm_noclobber): Likewise.
11295 (lshrdi3_neon_imm_noclobber): Likewise.
11296 (<shift>di3_neon): Likewise.
11297 (split extend): Remove DI extend split patterns.
11298
11299 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com>
11300
11301 * config/arm/arm.md (split and/eor/ior): Remove Neon check.
11302 (split not): Add DImode not splitter.
11303 (anddi3): Remove pattern.
11304 (anddi3_insn): Likewise.
11305 (anddi_zesidi_di): Likewise.
11306 (anddi_sesdi_di): Likewise.
11307 (anddi_notdi_di): Likewise.
11308 (anddi_notzesidi_di): Likewise.
11309 (anddi_notsesidi_di): Likewise.
11310 (iordi3): Likewise.
11311 (iordi3_insn): Likewise.
11312 (iordi_zesidi_di): Likewise.
11313 (iordi_sesidi_di): Likewise.
11314 (xordi3): Likewise.
11315 (xordi3_insn): Likewise.
11316 (xordi_sesidi_di): Likewise.
11317 (xordi_zesidi_di): Likewise.
11318 (one_cmpldi2): Likewise.
11319 (one_cmpldi2_insn): Likewise.
11320 * config/arm/constraints.md: Remove De, Df, Dg constraints.
11321 * config/arm/iwmmxt.md (iwmmxt_iordi3): Remove general register
11322 alternative.
11323 (iwmmxt_xordi3): Likewise.
11324 (iwmmxt_anddi3): Likewise.
11325 * config/arm/neon.md (orndi3_neon): Remove pattern.
11326 (anddi_notdi_di): Likewise.
11327 * config/arm/predicates.md (arm_anddi_operand_neon): Remove.
11328 (arm_iordi_operand_neon): Likewise.
11329 (arm_xordi_operand_neon): Likewise.
11330 * config/arm/thumb2.md(iordi_notdi_di): Remove pattern.
11331 (iordi_notzesidi_di): Likewise.
11332 (iordi_notdi_zesidi): Likewise.
11333 (iordi_notsesidi_di): Likewise.
11334
11335 2019-08-22 Richard Earnshaw <rearnsha@arm.com>
11336
11337 * config/arm/arm.md (iorsi3_compare0): Add alternative for 16-bit thumb
11338 insn.
11339 (iorsi3_compare0_scratch): Likewise.
11340
11341 2019-08-22 Sylvia Taylor <sylvia.taylor@arm.com>
11342
11343 * config/aarch64/aarch64-simd-builtins.def:
11344 (ld1x4): New.
11345 (st1x4): Likewise.
11346 * config/aarch64/aarch64-simd.md:
11347 (aarch64_ld1x4<VALLDIF:mode>): New pattern.
11348 (aarch64_st1x4<VALLDIF:mode>): Likewise.
11349 (aarch64_ld1_x4_<mode>): Likewise.
11350 (aarch64_st1_x4_<mode>): Likewise.
11351 * config/aarch64/arm_neon.h:
11352 (vld1_s8_x4): New function.
11353 (vld1q_s8_x4): Likewise.
11354 (vld1_s16_x4): Likewise.
11355 (vld1q_s16_x4): Likewise.
11356 (vld1_s32_x4): Likewise.
11357 (vld1q_s32_x4): Likewise.
11358 (vld1_u8_x4): Likewise.
11359 (vld1q_u8_x4): Likewise.
11360 (vld1_u16_x4): Likewise.
11361 (vld1q_u16_x4): Likewise.
11362 (vld1_u32_x4): Likewise.
11363 (vld1q_u32_x4): Likewise.
11364 (vld1_f16_x4): Likewise.
11365 (vld1q_f16_x4): Likewise.
11366 (vld1_f32_x4): Likewise.
11367 (vld1q_f32_x4): Likewise.
11368 (vld1_p8_x4): Likewise.
11369 (vld1q_p8_x4): Likewise.
11370 (vld1_p16_x4): Likewise.
11371 (vld1q_p16_x4): Likewise.
11372 (vld1_s64_x4): Likewise.
11373 (vld1_u64_x4): Likewise.
11374 (vld1_p64_x4): Likewise.
11375 (vld1q_s64_x4): Likewise.
11376 (vld1q_u64_x4): Likewise.
11377 (vld1q_p64_x4): Likewise.
11378 (vld1_f64_x4): Likewise.
11379 (vld1q_f64_x4): Likewise.
11380 (vst1_s8_x4): Likewise.
11381 (vst1q_s8_x4): Likewise.
11382 (vst1_s16_x4): Likewise.
11383 (vst1q_s16_x4): Likewise.
11384 (vst1_s32_x4): Likewise.
11385 (vst1q_s32_x4): Likewise.
11386 (vst1_u8_x4): Likewise.
11387 (vst1q_u8_x4): Likewise.
11388 (vst1_u16_x4): Likewise.
11389 (vst1q_u16_x4): Likewise.
11390 (vst1_u32_x4): Likewise.
11391 (vst1q_u32_x4): Likewise.
11392 (vst1_f16_x4): Likewise.
11393 (vst1q_f16_x4): Likewise.
11394 (vst1_f32_x4): Likewise.
11395 (vst1q_f32_x4): Likewise.
11396 (vst1_p8_x4): Likewise.
11397 (vst1q_p8_x4): Likewise.
11398 (vst1_p16_x4): Likewise.
11399 (vst1q_p16_x4): Likewise.
11400 (vst1_s64_x4): Likewise.
11401 (vst1_u64_x4): Likewise.
11402 (vst1_p64_x4): Likewise.
11403 (vst1q_s64_x4): Likewise.
11404 (vst1q_u64_x4): Likewise.
11405 (vst1q_p64_x4): Likewise.
11406 (vst1_f64_x4): Likewise.
11407 (vst1q_f64_x4): Likewise.
11408
11409 2019-08-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11410
11411 * config/aarch64/aarch64-sve.md (vcond_mask): Add "@".
11412
11413 2019-08-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11414 Richard Sandiford <richard.sandiford@arm.com>
11415
11416 PR target/88839
11417 * config/aarch64/aarch64.c (aarch64_evpc_sel): New function.
11418 (aarch64_expand_vec_perm_const_1): Call aarch64_evpc_sel.
11419
11420 2019-08-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11421
11422 PR target/90724
11423 * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y
11424 in reg if it fails aarch64_plus_operand predicate.
11425
11426 2019-08-21 Richard Biener <rguenther@suse.de>
11427
11428 PR tree-optimization/91482
11429 * tree-ssa-ccp.c (ccp_folder::fold_stmt): Remove useless
11430 BUILT_IN_ASSUME_ALIGNED calls.
11431
11432 2019-08-21 Richard Biener <rguenther@suse.de>
11433
11434 PR target/91498
11435 PR target/91503
11436 * config/i386/i386-features.c
11437 (general_scalar_chain::make_vector_copies): Copy stack temporary
11438 rtx when using it multiple times.
11439 (general_scalar_chain::convert_reg): Likewise.
11440
11441 2019-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
11442
11443 * function.c (assign_parm_find_stack_rtl): Use known_eq instead of ==.
11444
11445 2019-08-20 Matthew Beliveau <mbelivea@redhat.com>
11446
11447 * tree-ssa-dse.c (dse_optimize_redundant_stores): Improved check to
11448 catch more redundant zero initialization cases.
11449 (dse_dom_walker::dse_optimize_stmt): Likewise.
11450
11451 2019-08-20 Richard Biener <rguenther@suse.de>
11452
11453 PR lto/91307
11454 * ipa.c (cgraph_build_static_cdtor_1): Use names not recognizable
11455 by collect2 when targetm.have_ctors_dtors which avoids dragging
11456 in temporary filenames from LTO input objects.
11457
11458 2019-08-20 Richard Biener <rguenther@suse.de>
11459
11460 PR tree-optimization/37242
11461 * tree-ssa-sccvn.c (visit_nary_op): Also CSE (T)(a + b)
11462 to (T)a + (T)b if we know that a + b does not overflow.
11463
11464 2019-08-20 Eric Botcazou <ebotcazou@adacore.com>
11465
11466 PR rtl-optimization/91347
11467 * dse.c (scan_insn): Call add_wild_read for non-const/memset tail calls
11468 before reload if HARD_FRAME_POINTER_IS_ARG_POINTER.
11469
11470 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
11471
11472 * calls.h (function_arg_info): Add a pass_by_reference field,
11473 defaulting to false.
11474 * calls.c (apply_pass_by_reference_rules): Set pass_by_reference
11475 when applying pass-by-reference semantics.
11476 (initialize_argument_information): Likewise.
11477 (emit_library_call_value_1): Likewise.
11478 * function.c (assign_parm_data_one): Remove passed_pointer field.
11479 (assign_parm_find_data_types): Don't set it.
11480 (assign_parm_find_stack_rtl, assign_parm_adjust_stack_rtl)
11481 (assign_parm_setup_reg, assign_parms, gimplify_parameters): Use
11482 arg.pass_by_reference instead of passed_pointer.
11483
11484 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
11485
11486 * calls.c (emit_library_call_value_1): Merge arg and orig_arg
11487 into a single function_arg_info, updating its fields when we
11488 apply pass-by-reference and promotion semantics. Use the
11489 function_arg_info to track the mode rather than keeping it in
11490 a separate local variable.
11491 (initialize_argument_information): Likewise. Base the final
11492 arg_to_skip on this new function_arg_info rather than creating
11493 a new one from scratch.
11494
11495 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
11496
11497 * function.c (assign_parm_data_one): Replace passed_type,
11498 promoted_mode and named_arg with a function_arg_info field.
11499 (assign_parm_find_data_types): Remove local variables and
11500 assign directly to "data". Make data->passed_mode shadow
11501 data->arg.mode until promotion, then assign the promoted
11502 mode to data->arg.mode.
11503 (assign_parms_setup_varargs, assign_parm_find_entry_rtl)
11504 (assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl)
11505 (assign_parm_remove_parallels, assign_parm_setup_block_p)
11506 (assign_parm_setup_block, assign_parm_setup_reg)
11507 (assign_parm_setup_stack, assign_parms, gimplify_parameters): Use
11508 arg.mode instead of promoted_mode, arg.type instead of passed_type
11509 and arg.named instead of named_arg. Use data->arg for
11510 function_arg_info structures that had the field values passed_type,
11511 promoted_mode and named_arg. Base other function_arg_infos on
11512 data->arg, changing the necessary properties.
11513
11514 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
11515
11516 * calls.h (apply_pass_by_reference_rules): Declare.
11517 * calls.c (apply_pass_by_reference_rules): New function.
11518 * config/c6x/c6x.c (c6x_call_saved_register_used): Use it.
11519 * config/rs6000/rs6000-call.c (rs6000_parm_needs_stack): Likewise.
11520 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
11521 * function.c (assign_parm_find_data_types): Likewise.
11522 * var-tracking.c (prepare_call_arguments): Likewise.
11523
11524 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
11525
11526 * target.def (must_pass_in_stack): Take a function_arg_info instead
11527 of a mode and a type.
11528 * doc/tm.texi: Regenerate.
11529 * calls.h (must_pass_in_stack_var_size): Take a function_arg_info
11530 instead of a mode and a type.
11531 (must_pass_in_stack_var_size_or_pad): Likewise.
11532 * calls.c (must_pass_in_stack_var_size): Likewise.
11533 (must_pass_in_stack_var_size_or_pad): Likewise.
11534 (initialize_argument_information): Update call to
11535 targetm.calls.must_pass_in_stack.
11536 (must_pass_va_arg_on_stack): Likewise.
11537 * function.c (assign_parm_find_entry_rtl): Likewise.
11538 * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Likewise.
11539 * config/alpha/alpha.c (alpha_function_arg): Likewise.
11540 (alpha_function_arg_advance): Likewise.
11541 * config/cr16/cr16.c (cr16_function_arg): Likewise.
11542 (cr16_function_arg_advance): Likewise.
11543 * config/cris/cris.c (cris_pass_by_reference): Likewise.
11544 (cris_arg_partial_bytes): Likewise.
11545 * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise.
11546 * config/lm32/lm32.c (lm32_function_arg): Likewise.
11547 * config/mcore/mcore.c (mcore_num_arg_regs): Likewise.
11548 (mcore_function_arg, mcore_arg_partial_bytes): Likewise.
11549 * config/mips/mips.c (mips_pass_by_reference): Likewise.
11550 * config/mmix/mmix.c (mmix_function_arg_advance): Likewise.
11551 (mmix_function_arg_1, mmix_pass_by_reference): Likewise.
11552 * config/sh/sh.c (sh_pass_by_reference): Likewise.
11553 * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise.
11554 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
11555 * config/arm/arm.c (arm_must_pass_in_stack): Take a function_arg_info
11556 instead of a mode and a type.
11557 * config/fr30/fr30.c (fr30_must_pass_in_stack): Likewise.
11558 (fr30_num_arg_regs): Likewise.
11559 (fr30_setup_incoming_varargs): Update calls accordingly.
11560 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
11561 (fr30_function_arg_advance): Likewise.
11562 * config/frv/frv.c (frv_must_pass_in_stack): Take a function_arg_info
11563 instead of a mode and a type.
11564 * config/gcn/gcn.c (num_arg_regs): Likewise.
11565 (gcn_function_arg, gcn_function_arg_advance): Update calls to
11566 num_arg_regs and targetm.calls.must_pass_in_stack.
11567 (gcn_arg_partial_bytes): Likewise.
11568 * config/i386/i386.c (ix86_must_pass_in_stack): Take a
11569 function_arg_info instead of a mode and a type.
11570 (classify_argument): Update call accordingly.
11571 * config/nds32/nds32.c (nds32_must_pass_in_stack): Take a
11572 function_arg_info instead of a mode and a type.
11573 * config/rs6000/rs6000-internal.h (rs6000_must_pass_in_stack):
11574 Likewise.
11575 * config/rs6000/rs6000-call.c (rs6000_must_pass_in_stack): Likewise.
11576 (rs6000_parm_needs_stack): Update call accordingly.
11577 (setup_incoming_varargs): Likewise.
11578
11579 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
11580
11581 * target.def (callee_copies): Take a function_arg_info instead
11582 of a mode, type and named flag.
11583 * doc/tm.texi: Regenerate.
11584 * targhooks.h (hook_callee_copies_named): Take a function_arg_info
11585 instead of a mode, type and named flag.
11586 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete.
11587 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
11588 (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function.
11589 * targhooks.c (hook_callee_copies_named): Take a function_arg_info
11590 instead of a mode, type and named flag.
11591 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete.
11592 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
11593 (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function.
11594 * calls.h (reference_callee_copied): Take a function_arg_info
11595 instead of a mode, type and named flag.
11596 * calls.c (reference_callee_copied): Likewise.
11597 (initialize_argument_information): Update call accordingly.
11598 (emit_library_call_value_1): Likewise.
11599 * function.c (gimplify_parameters): Likewise.
11600 * config/aarch64/aarch64.c (TARGET_CALLEE_COPIES): Define to
11601 hook_bool_CUMULATIVE_ARGS_arg_info_false instead of
11602 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false.
11603 * config/c6x/c6x.c (c6x_callee_copies): Delete.
11604 (TARGET_CALLEE_COPIES): Define to
11605 hook_bool_CUMULATIVE_ARGS_arg_info_true instead.
11606 * config/epiphany/epiphany.c (TARGET_CALLEE_COPIES): Define to
11607 hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
11608 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
11609 * config/mips/mips.c (mips_callee_copies): Take a function_arg_info
11610 instead of a mode, type and named flag.
11611 * config/mmix/mmix.c (TARGET_CALLEE_COPIES): Define to
11612 hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
11613 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
11614 * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): Likewise.
11615 * config/msp430/msp430.c (msp430_callee_copies): Delete.
11616 (TARGET_CALLEE_COPIES): Define to
11617 hook_bool_CUMULATIVE_ARGS_arg_info_true instead.
11618 * config/pa/pa.c (pa_callee_copies): Take a function_arg_info
11619 instead of a mode, type and named flag.
11620 * config/sh/sh.c (sh_callee_copies): Likewise.
11621 * config/v850/v850.c (TARGET_CALLEE_COPIES): Define to
11622 hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
11623 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
11624
11625 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
11626
11627 * target.def (function_arg_advance): Take a function_arg_info instead
11628 of a mode, type and named flag.
11629 * doc/tm.texi: Regenerate.
11630 * targhooks.h (default_function_arg_advance): Take a function_arg_info
11631 instead of a mode, type and named flag.
11632 * targhooks.c (default_function_arg_advance): Likewise.
11633 * calls.c (initialize_argument_information): Update call to
11634 targetm.calls.function_arg_advance.
11635 (emit_library_call_value_1): Likewise.
11636 * dse.c (get_call_args): Likewise.
11637 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
11638 * function.c (assign_parms, gimplify_parameters): Likewise.
11639 * var-tracking.c (prepare_call_arguments): Likewise.
11640 * config/aarch64/aarch64.c (aarch64_function_arg_advance): Take a
11641 function_arg_info instead of a mode, type and named flag.
11642 (aarch64_setup_incoming_varargs): Update call accordingly.
11643 * config/alpha/alpha.c (alpha_function_arg_advance): Take a
11644 function_arg_info instead of a mode, type and named flag.
11645 (alpha_setup_incoming_varargs): Update call accordingly.
11646 * config/arc/arc.c (arc_function_arg_advance): Take a
11647 function_arg_info instead of a mode, type and named flag.
11648 (arc_setup_incoming_varargs): Update call accordingly.
11649 * config/arm/arm.c (arm_function_arg_advance): Take a
11650 function_arg_info instead of a mode, type and named flag.
11651 (cmse_func_args_or_return_in_stack): Update call accordingly.
11652 (arm_function_ok_for_sibcall): Likewise.
11653 (cmse_nonsecure_call_clear_caller_saved): Likewise.
11654 * config/avr/avr.c (avr_function_arg_advance): Take a
11655 function_arg_info instead of a mode, type and named flag.
11656 * config/bfin/bfin.c (bfin_function_arg_advance): Likewise.
11657 * config/c6x/c6x.c (c6x_function_arg_advance): Likewise.
11658 (c6x_call_saved_register_used): Update call accordingly.
11659 * config/cr16/cr16.c (cr16_function_arg_advance): Take a
11660 function_arg_info instead of a mode, type and named flag.
11661 * config/cris/cris.c (cris_function_arg_advance): Likewise.
11662 * config/csky/csky.c (csky_function_arg_advance): Likewise.
11663 (csky_setup_incoming_varargs): Update call accordingly.
11664 * config/epiphany/epiphany.c (epiphany_function_arg_advance): Take a
11665 function_arg_info instead of a mode, type and named flag.
11666 * config/fr30/fr30.c (fr30_function_arg_advance): Likewise.
11667 * config/frv/frv.c (frv_function_arg_advance): Likewise.
11668 * config/ft32/ft32.c (ft32_function_arg_advance): Likewise.
11669 * config/gcn/gcn.c (gcn_function_arg_advance): Likewise.
11670 * config/h8300/h8300.c (h8300_function_arg_advance): Likewise.
11671 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
11672 (ix86_setup_incoming_varargs): Update call accordingly.
11673 * config/ia64/ia64.c (ia64_function_arg_advance): Take a
11674 function_arg_info instead of a mode, type and named flag.
11675 (ia64_setup_incoming_varargs): Update call accordingly.
11676 * config/iq2000/iq2000.c (iq2000_function_arg_advance): Take a
11677 function_arg_info instead of a mode, type and named flag.
11678 (iq2000_expand_prologue): Update call accordingly.
11679 * config/lm32/lm32.c (lm32_function_arg_advance): Take a
11680 function_arg_info instead of a mode, type and named flag.
11681 * config/m32c/m32c.c (m32c_function_arg_advance): Likewise.
11682 * config/m32r/m32r.c (m32r_function_arg_advance): Likewise.
11683 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
11684 * config/mcore/mcore.c (mcore_function_arg_advance): Likewise.
11685 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
11686 Likewise.
11687 (microblaze_expand_prologue): Update call accordingly.
11688 * config/mips/mips.c (mips_function_arg_advance): Take a
11689 function_arg_info instead of a mode, type and named flag.
11690 (mips_setup_incoming_varargs): Update call accordingly.
11691 (mips_output_args_xfer): Likewise.
11692 * config/mmix/mmix.c (mmix_function_arg_advance): Take a
11693 function_arg_info instead of a mode, type and named flag.
11694 * config/mn10300/mn10300.c (mn10300_function_arg_advance): Likewise.
11695 * config/moxie/moxie.c (moxie_function_arg_advance): Likewise.
11696 * config/msp430/msp430.c (msp430_function_arg_advance): Likewise.
11697 * config/nds32/nds32.c (nds32_function_arg_advance): Likewise.
11698 * config/nios2/nios2.c (nios2_function_arg_advance): Likewise.
11699 (nios2_setup_incoming_varargs): Update call accordingly.
11700 * config/nvptx/nvptx.c (nvptx_function_arg_advance): Take a
11701 function_arg_info instead of a mode, type and named flag.
11702 * config/or1k/or1k.c (or1k_function_arg_advance): Likewise.
11703 * config/pa/pa.c (pa_function_arg_advance): Likewise.
11704 * config/pdp11/pdp11.c (pdp11_function_arg_advance): Likewise.
11705 * config/pru/pru.c (pru_function_arg_advance): Likewise.
11706 * config/riscv/riscv.c (riscv_function_arg_advance): Likewise.
11707 (riscv_setup_incoming_varargs): Update call accordingly.
11708 * config/rl78/rl78.c (rl78_function_arg_advance): Take a
11709 function_arg_info instead of a mode, type and named flag.
11710 * config/rs6000/rs6000-internal.h (rs6000_function_arg_advance):
11711 Likewise.
11712 * config/rs6000/rs6000-call.c (rs6000_function_arg_advance): Likewise.
11713 (rs6000_parm_needs_stack): Update call accordingly.
11714 * config/rx/rx.c (rx_function_arg_advance): Take a function_arg_info
11715 instead of a mode, type and named flag.
11716 * config/s390/s390.c (s390_function_arg_advance): Likewise.
11717 (s390_call_saved_register_used): Update call accordingly.
11718 * config/sh/sh.c (sh_function_arg_advance): Take a function_arg_info
11719 instead of a mode, type and named flag.
11720 (sh_output_mi_thunk): Update call accordingly.
11721 * config/sparc/sparc.c (sparc_function_arg_advance): Take a
11722 function_arg_info instead of a mode, type and named flag.
11723 * config/spu/spu.c (spu_function_arg_advance): Likewise.
11724 (spu_setup_incoming_varargs): Update call accordingly.
11725 * config/stormy16/stormy16.c (xstormy16_function_arg_advance): Take a
11726 function_arg_info instead of a mode, type and named flag.
11727 * config/tilegx/tilegx.c (tilegx_function_arg_advance): Likewise.
11728 (tilegx_setup_incoming_varargs): Update call accordingly.
11729 * config/tilepro/tilepro.c (tilepro_function_arg_advance): Take a
11730 function_arg_info instead of a mode, type and named flag.
11731 (tilegx_setup_incoming_varargs): Update call accordingly.
11732 * config/v850/v850.c (v850_function_arg_advance): Take a
11733 function_arg_info instead of a mode, type and named flag.
11734 * config/vax/vax.c (vax_function_arg_advance): Likewise.
11735 * config/visium/visium.c (visium_function_arg_advance): Likewise.
11736 (visium_setup_incoming_varargs): Update call accordingly.
11737 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Take a
11738 function_arg_info instead of a mode, type and named flag.
11739
11740 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
11741
11742 * target.def (function_arg, function_incoming_arg): Take a
11743 function_arg_info instead of a mode, tree and named flag.
11744 * doc/tm.texi: Regenerate.
11745 * targhooks.h (default_function_arg): Take a function_arg_info
11746 instead of a mode, tree and named flag.
11747 (default_function_incoming_arg): Likewise.
11748 * targhooks.c (default_function_arg): Likewise.
11749 (default_function_incoming_arg): Likewise.
11750 * calls.h (function_arg_info::end_marker_p): New function.
11751 (function_arg_info::end_marker): Likewise.
11752 * calls.c (prepare_call_address, initialize_argument_information)
11753 (expand_call, emit_library_call_value_1): Update calls to
11754 targetm.calls.function_arg and targetm.calls.function_incoming_arg.
11755 * dse.c: Include calls.h.
11756 (get_call_args): Update call to targetm.calls.function_arg.
11757 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
11758 * var-tracking.c (prepare_call_arguments): Likewise.
11759 * function.c (assign_parm_find_entry_rtl): Update call to
11760 targetm.calls.function_incoming_arg.
11761 * config/aarch64/aarch64.c (aarch64_function_arg): Take a
11762 function_arg_info instead of a mode, tree and named flag.
11763 * config/alpha/alpha.c (alpha_function_arg): Likewise.
11764 * config/arc/arc.c (arc_function_arg): Likewise.
11765 * config/arm/arm.c (arm_function_arg): Likewise.
11766 (cmse_func_args_or_return_in_stack): Update call accordingly.
11767 (arm_function_ok_for_sibcall): Likewise.
11768 (cmse_nonsecure_call_clear_caller_saved): Likewise.
11769 * config/avr/avr.c (avr_function_arg): Take a function_arg_info
11770 instead of a mode, tree and named flag.
11771 * config/bfin/bfin.c (bfin_function_arg): Likewise.
11772 * config/c6x/c6x.c (c6x_function_arg): Likewise.
11773 (c6x_call_saved_register_used): Update call accordingly.
11774 * config/cr16/cr16.c (cr16_function_arg): Take a function_arg_info
11775 instead of a mode, tree and named flag.
11776 * config/cris/cris.c (cris_function_arg, cris_function_incoming_arg)
11777 (cris_function_arg_1): Likewise.
11778 * config/csky/csky.c (csky_function_arg): Likewise.
11779 * config/epiphany/epiphany.c (epiphany_function_arg): Likewise.
11780 * config/fr30/fr30.c (fr30_function_arg): Likewise.
11781 * config/frv/frv.c (frv_function_arg, frv_function_incoming_arg)
11782 (frv_function_arg_1): Likewise.
11783 * config/ft32/ft32.c (ft32_function_arg): Likewise.
11784 * config/gcn/gcn.c (gcn_function_arg): Likewise.
11785 * config/h8300/h8300.c (h8300_function_arg): Likewise.
11786 * config/i386/i386.c (ix86_function_arg): Likewise.
11787 * config/ia64/ia64.c (ia64_function_arg, ia64_function_incoming_arg)
11788 (ia64_function_arg_1): Likewise.
11789 * config/iq2000/iq2000.c (iq2000_function_arg): Likewise.
11790 (iq2000_expand_prologue, iq2000_pass_by_reference): Update call
11791 accordingly.
11792 * config/lm32/lm32.c (lm32_function_arg): Take a function_arg_info
11793 instead of a mode, tree and named flag.
11794 * config/m32c/m32c.c (m32c_function_arg): Likewise.
11795 * config/m32r/m32r.c (m32r_function_arg): Likewise.
11796 * config/m68k/m68k.c (m68k_function_arg): Likewise.
11797 * config/mcore/mcore.c (mcore_function_arg): Likewise.
11798 * config/microblaze/microblaze.c (microblaze_function_arg): Likewise.
11799 (microblaze_expand_prologue): Update call accordingly.
11800 * config/mips/mips.c (mips_function_arg): Take a function_arg_info
11801 instead of a mode, tree and named flag.
11802 * config/mmix/mmix.c (mmix_function_incoming_arg, mmix_function_arg)
11803 (mmix_function_arg_1): Likewise.
11804 * config/mn10300/mn10300.c (mn10300_function_arg): Likewise.
11805 * config/moxie/moxie.c (moxie_function_arg): Likewise.
11806 * config/msp430/msp430.c (msp430_function_arg): Likewise.
11807 * config/nds32/nds32.c (nds32_function_arg): Likewise.
11808 * config/nios2/nios2.c (nios2_function_arg): Likewise.
11809 * config/nvptx/nvptx.c (nvptx_function_arg): Likewise.
11810 (nvptx_function_incoming_arg): Likewise.
11811 * config/or1k/or1k.c (or1k_function_arg): Likewise.
11812 * config/pa/pa.c (pa_function_arg): Likewise.
11813 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
11814 * config/pru/pru.c (pru_function_arg): Likewise.
11815 * config/riscv/riscv.c (riscv_function_arg): Likewise.
11816 * config/rl78/rl78.c (rl78_function_arg): Likewise.
11817 * config/rs6000/rs6000-internal.h (rs6000_function_arg): Likewise.
11818 * config/rs6000/rs6000-call.c (rs6000_function_arg): Likewise.
11819 (rs6000_parm_needs_stack): Update call accordingly.
11820 * config/rx/rx.c (rx_function_arg): Take a function_arg_info
11821 instead of a mode, tree and named flag.
11822 * config/s390/s390.c (s390_function_arg): Likewise.
11823 (s390_call_saved_register_used): Update call accordingly.
11824 * config/sh/sh.c (sh_function_arg): Take a function_arg_info
11825 instead of a mode, tree and named flag.
11826 (sh_output_mi_thunk): Update call accordingly.
11827 * config/sparc/sparc.c (sparc_function_arg_1, sparc_function_arg)
11828 (sparc_function_incoming_arg): Take a function_arg_info instead of
11829 a mode, tree and named flag.
11830 * config/spu/spu.c (spu_function_arg): Likewise.
11831 * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise.
11832 * config/tilegx/tilegx.c (tilegx_function_arg): Likewise.
11833 * config/tilepro/tilepro.c (tilepro_function_arg): Likewise.
11834 * config/v850/v850.c (v850_function_arg): Likewise.
11835 * config/vax/vax.c (vax_function_arg): Likewise.
11836 * config/visium/visium.c (visium_function_arg): Likewise.
11837 * config/xtensa/xtensa.c (xtensa_function_arg_1, xtensa_function_arg)
11838 (xtensa_function_incoming_arg): Likewise.
11839
11840 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
11841
11842 * target.def (setup_incoming_varargs): Take a function_arg_info
11843 instead of a mode and tree.
11844 * doc/tm.texi: Regenerate.
11845 * targhooks.h (default_setup_incoming_varargs): Take a
11846 function_arg_info instead of a mode and tree.
11847 * targhooks.c (default_setup_incoming_varargs): Likewise.
11848 * config/aarch64/aarch64.c (aarch64_setup_incoming_varargs): Likewise.
11849 * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.
11850 * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
11851 * config/arm/arm.c (arm_setup_incoming_varargs): Likewise.
11852 * config/bfin/bfin.c (setup_incoming_varargs): Likewise.
11853 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
11854 * config/csky/csky.c (csky_setup_incoming_varargs): Likewise.
11855 * config/epiphany/epiphany.c (epiphany_setup_incoming_varargs):
11856 Likewise.
11857 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
11858 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
11859 * config/ft32/ft32.c (ft32_setup_incoming_varargs): Likewise.
11860 * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise.
11861 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
11862 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
11863 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
11864 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
11865 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
11866 * config/mips/mips.c (mips_setup_incoming_varargs): Likewise.
11867 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
11868 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
11869 * config/nds32/nds32.c (nds32_setup_incoming_varargs): Likewise.
11870 * config/nios2/nios2.c (nios2_setup_incoming_varargs): Likewise.
11871 * config/riscv/riscv.c (riscv_setup_incoming_varargs): Likewise.
11872 * config/rs6000/rs6000-internal.h (setup_incoming_varargs): Likewise.
11873 * config/rs6000/rs6000-call.c (setup_incoming_varargs): Likewise.
11874 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
11875 * config/spu/spu.c (spu_setup_incoming_varargs): Likewise.
11876 * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs): Likewise.
11877 * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs): Likewise.
11878 * config/visium/visium.c (visium_setup_incoming_varargs): Likewise.
11879 * function.c (assign_parms_setup_varargs): Update call to
11880 targetm.calls.setup_incoming_varargs.
11881
11882 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
11883
11884 * target.def (pass_by_reference): Take a function_arg_info instead
11885 of a mode, type and named flag.
11886 * doc/tm.texi: Regenerate.
11887 * targhooks.h (hook_pass_by_reference_must_pass_in_stack): Update
11888 accordingly.
11889 (hook_bool_CUMULATIVE_ARGS_arg_info_false): Declare.
11890 * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Take a
11891 function_arg_info instead of a mode, type and named flag.
11892 (hook_bool_CUMULATIVE_ARGS_arg_info_false): New function.
11893 * calls.h (pass_by_reference): Take a function_arg_info instead of a
11894 mode, type and named flag.
11895 * calls.c (pass_by_reference): Likewise.
11896 (pass_va_arg_by_reference): Update call accordingly.
11897 (initialize_argument_information): Likewise.
11898 (emit_library_call_value_1): Likewise.
11899 * function.c (assign_parm_find_data_types): Likewise.
11900 * var-tracking.c (prepare_call_arguments): Likewise.
11901 * stor-layout.c: Include calls.h.
11902 (compute_record_mode): Update call to targetm.calls.pass_by_reference.
11903 * config/aarch64/aarch64.c (aarch64_pass_by_reference): Take a
11904 function_arg_info instead of a mode, type and named flag.
11905 * config/alpha/alpha.c (alpha_pass_by_reference): Likewise.
11906 * config/arc/arc.c (arc_pass_by_reference): Likewise.
11907 * config/arm/arm.c (arm_pass_by_reference): Likewise.
11908 * config/bfin/bfin.c (bfin_pass_by_reference): Likewise.
11909 * config/c6x/c6x.c (c6x_pass_by_reference): Likewise.
11910 (c6x_call_saved_register_used): Update call to pass_by_reference.
11911 * config/cris/cris.c (cris_pass_by_reference): Take a
11912 function_arg_info instead of a mode, type and named flag.
11913 * config/epiphany/epiphany.c (epiphany_pass_by_reference): Take a
11914 function_arg_info instead of a mode, type and named flag.
11915 (epiphany_arg_partial_bytes): Update call accordingly.
11916 * config/ft32/ft32.c (ft32_pass_by_reference): Take a
11917 function_arg_info instead of a mode, type and named flag.
11918 (ft32_arg_partial_bytes): Update call accordingly.
11919 * config/i386/i386.c (ix86_pass_by_reference): Take a
11920 function_arg_info instead of a mode, type and named flag.
11921 * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise.
11922 * config/m32c/m32c.c (m32c_pass_by_reference): Likewise.
11923 * config/m32r/m32r.c (m32r_pass_by_reference): Likewise.
11924 (m32r_return_in_memory): Update call accordingly.
11925 * config/mips/mips.c (mips_pass_by_reference): Take a
11926 function_arg_info instead of a mode, type and named flag.
11927 * config/mmix/mmix.c (mmix_pass_by_reference): Likewise.
11928 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
11929 * config/moxie/moxie.c (moxie_pass_by_reference): Likewise.
11930 (moxie_arg_partial_bytes): Update call accordingly.
11931 * config/msp430/msp430.c (msp430_pass_by_reference): Take a
11932 function_arg_info instead of a mode, type and named flag.
11933 * config/nvptx/nvptx.c (nvptx_pass_by_reference): Likewise.
11934 * config/or1k/or1k.c (or1k_pass_by_reference): Likewise.
11935 * config/pa/pa.c (pa_pass_by_reference): Likewise.
11936 * config/riscv/riscv.c (riscv_pass_by_reference): Likewise.
11937 (riscv_return_in_memory): Update call accordingly.
11938 * config/rs6000/rs6000-internal.h (rs6000_pass_by_reference): Take a
11939 function_arg_info instead of a mode, type and named flag.
11940 * config/rs6000/rs6000-call.c (rs6000_pass_by_reference): Likewise.
11941 (rs6000_parm_needs_stack): Update call to pass_by_reference.
11942 * config/s390/s390.c (s390_pass_by_reference): Take a
11943 function_arg_info instead of a mode, type and named flag.
11944 (s390_call_saved_register_used): Update call accordingly.
11945 * config/sh/sh.c (sh_pass_by_reference): Take a function_arg_info
11946 instead of a mode, type and named flag.
11947 * config/sparc/sparc.c (sparc_pass_by_reference): Likewise.
11948 * config/spu/spu.c (spu_pass_by_reference): Likewise.
11949 * config/tilegx/tilegx.c (tilegx_pass_by_reference): Likewise.
11950 * config/tilepro/tilepro.c (tilepro_pass_by_reference): Likewise.
11951 * config/v850/v850.c (v850_pass_by_reference): Likewise.
11952 * config/visium/visium.c (visium_pass_by_reference): Likewise.
11953
11954 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
11955
11956 * target.def (arg_partial_bytes): Take a function_arg_info instead
11957 of a mode, type and named flag.
11958 * doc/tm.texi: Regenerate.
11959 * target.h (function_arg_info): Declare.
11960 * calls.h (function_arg_info): New class.
11961 * targhooks.h (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete.
11962 (hook_int_CUMULATIVE_ARGS_arg_info_0): Declare.
11963 * targhooks.c (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete.
11964 (hook_int_CUMULATIVE_ARGS_arg_info_0): New function.
11965 * calls.c (initialize_argument_information): Update call to
11966 targetm.calls.partial_bytes.
11967 (emit_library_call_value_1): Likewise.
11968 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
11969 * function.c (assign_parm_find_entry_rtl): Likewise.
11970 * config/alpha/alpha.c (alpha_arg_partial_bytes): Take a
11971 function_arg_info instead of a mode, type and named flag.
11972 * config/arc/arc.c (arc_arg_partial_bytes): Likewise.
11973 * config/arm/arm.c (arm_arg_partial_bytes): Likewise.
11974 (cmse_func_args_or_return_in_stack): Update accordingly.
11975 * config/bfin/bfin.c (bfin_arg_partial_bytes): Take a
11976 function_arg_info instead of a mode, type and named flag.
11977 * config/cris/cris.c (cris_arg_partial_bytes): Likewise.
11978 * config/csky/csky.c (csky_arg_partial_bytes): Likewise.
11979 * config/epiphany/epiphany.c (epiphany_arg_partial_bytes): Likewise.
11980 * config/fr30/fr30.c: Include calls.h.
11981 (fr30_arg_partial_bytes): Take a function_arg_info instead of a mode,
11982 type and named flag.
11983 * config/frv/frv.c: Include calls.h.
11984 (frv_arg_partial_bytes): Take a function_arg_info instead of a mode,
11985 type and named flag.
11986 * config/ft32/ft32.c (ft32_arg_partial_bytes): Likewise.
11987 * config/gcn/gcn.c (gcn_arg_partial_bytes): Likewise.
11988 * config/ia64/ia64.c (ia64_arg_partial_bytes): Likewise.
11989 * config/iq2000/iq2000.c (iq2000_arg_partial_bytes): Likewise.
11990 * config/m32r/m32r.c (m32r_arg_partial_bytes): Likewise.
11991 * config/mcore/mcore.c (mcore_arg_partial_bytes): Likewise.
11992 * config/microblaze/microblaze.c (function_arg_partial_bytes):
11993 Likewise.
11994 * config/mips/mips.c (mips_arg_partial_bytes): Likewise.
11995 * config/mn10300/mn10300.c (mn10300_arg_partial_bytes): Likewise.
11996 * config/moxie/moxie.c (moxie_arg_partial_bytes): Likewise.
11997 * config/msp430/msp430.c (msp430_arg_partial_bytes): Likewise.
11998 * config/nds32/nds32.c (nds32_arg_partial_bytes): Likewise.
11999 * config/nios2/nios2.c (nios2_arg_partial_bytes): Likewise.
12000 * config/pa/pa.c (pa_arg_partial_bytes): Likewise.
12001 * config/pru/pru.c (pru_arg_partial_bytes): Likewise.
12002 * config/riscv/riscv.c (riscv_arg_partial_bytes): Likewise.
12003 * config/rs6000/rs6000-internal.h (rs6000_arg_partial_bytes): Likewise.
12004 * config/rs6000/rs6000-call.c (rs6000_arg_partial_bytes): Likewise.
12005 (rs6000_parm_needs_stack): Update call accordingly.
12006 * config/sh/sh.c (sh_arg_partial_bytes): Take a
12007 function_arg_info instead of a mode, type and named flag.
12008 * config/sparc/sparc.c (sparc_arg_partial_bytes): Likewise.
12009 * config/v850/v850.c (v850_arg_partial_bytes): Likewise.
12010
12011 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
12012
12013 * calls.h (must_pass_va_arg_in_stack): Declare.
12014 * calls.c (must_pass_va_arg_in_stack): New function.
12015 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use it.
12016 * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
12017 * config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr):
12018 Likewise.
12019 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
12020
12021 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
12022
12023 * calls.h (pass_va_arg_by_reference): Declare.
12024 * calls.c (pass_va_arg_by_reference): New function.
12025 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Use it.
12026 * config/alpha/alpha.c (alpha_gimplify_va_arg): Likewise.
12027 * config/gcn/gcn.c (gcn_gimplify_va_arg_expr): Likewise.
12028 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
12029 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
12030 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Likewise.
12031 (mips_gimplify_va_arg_expr): Likewise.
12032 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Likewise.
12033 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
12034 * config/rs6000/rs6000-call.c (rs6000_gimplify_va_arg): Likewise.
12035 * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
12036 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
12037 * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
12038 * config/tilegx/tilegx.c (tilegx_gimplify_va_arg_expr): Likewise.
12039 * config/tilepro/tilepro.c (tilepro_gimplify_va_arg_expr): Likewise.
12040 * config/visium/visium.c (visium_gimplify_va_arg): Likewise.
12041 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
12042 * targhooks.c (std_gimplify_va_arg_expr): Likewise.
12043
12044 2019-08-20 Richard Biener <rguenther@suse.de>
12045
12046 PR target/91498
12047 * config/i386/i386-features.c (general_scalar_chain::convert_op):
12048 Use (vec_merge (vec_duplicate..)) style vector from scalar move.
12049 (convert_scalars_to_vector): Add timode_p parameter and use it
12050 to guard TImode-only operation.
12051 (pass_stv::gate): Adjust so STV runs twice for TARGET_64BIT.
12052 (pass_stv::execute): Pass down timode_p.
12053
12054 2019-08-20 Lili Cui <lili.cui@intel.com>
12055
12056 * common/config/i386/i386-common.c
12057 (processor_names): Add tigerlake and cooperlake.
12058 (processor_alias_table): Add tigerlake and cooperlake.
12059 * config.gcc: Add -march=tigerlake and cooperlake.
12060 * config/i386/driver-i386.c
12061 (host_detect_local_cpu): Detect tigerlake and cooperlake.
12062 Add "has_avx" to classify processor.
12063 * config/i386/i386-builtins.c (processor_model) :
12064 Add M_INTEL_COREI7_TIGERLAKE and M_INTEL_COREI7_COOPERLAKE.
12065 (arch_names_table): Add tigerlake and cooperlake.
12066 (get_builtin_code_for_version): Handle PROCESSOR_TIGERLAKE
12067 and PROCESSOR_COOPERLAKE.
12068 * config/i386/i386-c.c
12069 (ix86_target_macros_internal): Handle tigerlake and cooperlake.
12070 * config/i386/i386-options.c
12071 (m_TIGERLAKE): Define.
12072 (m_COOPERLAKE): Ditto.
12073 (m_CORE_AVX512): Ditto.
12074 (processor_cost_table): Add cascadelake.
12075 (ix86_option_override_internal): Hadle PTA_MOVDIRI, PTA_MOVDIR64B.
12076 * config/i386/i386.h
12077 (ix86_size_cost): Define TARGET_TIGERLAKE and TARGET_COOPERLAKE.
12078 (processor_type): Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE.
12079 (PTA_MOVDIRI): Ditto.
12080 (PTA_MOVDIR64B): Ditto.
12081 (PTA_COOPERLAKE): Ditto.
12082 (PTA_TIGERLAKE): Ditto.
12083 (processor_type): Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE.
12084 * doc/extend.texi: Add tigerlake and cooperlake.
12085 * doc/invoke.texi: Add tigerlake and cooperlake.
12086
12087 2019-08-20 Gerald Pfeifer <gerald@pfeifer.com>
12088
12089 * doc/install.texi (Specific, alpha): Remove note to use
12090 binutils 2.11.2 or later.
12091
12092 2019-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
12093
12094 PR middle-end/89544
12095 * function.c (assign_parm_find_stack_rtl): Use larger alignment
12096 when possible.
12097
12098 2019-08-19 Joel Hutton <Joel.Hutton@arm.com>
12099
12100 * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow2_recip): New prototype
12101 * config/aarch64/aarch64.c (aarch64_fpconst_pow2_recip): New function
12102 * config/aarch64/aarch64.md (*aarch64_<su_optab>cvtf<fcvt_target><GPF:mode>2_mult): New pattern
12103 (*aarch64_<su_optab>cvtf<fcvt_iesize><GPF:mode>2_mult): New pattern
12104 * config/aarch64/constraints.md (Dt): New constraint
12105 * config/aarch64/predicates.md (aarch64_fpconst_pow2_recip): New predicate
12106
12107 2019-08-19 Richard Biener <rguenther@suse.de>
12108
12109 PR tree-optimization/91403
12110 * tree-scalar-evolution.c (follow_ssa_edge_binary): Inline
12111 cases we can handle with tail-recursion...
12112 (follow_ssa_edge_expr): ... here. Do so.
12113
12114 2019-08-19 Kito Cheng <kito.cheng@sifive.com>
12115
12116 PR target/91441
12117 * toplev.c (process_options): Check TARGET_ASAN_SHADOW_OFFSET is
12118 implemented for -fsanitize=kernel-address, and merge check logic
12119 with -fsanitize=address.
12120
12121 2019-08-18 Iain Sandoe <iain@sandoe.co.uk>
12122
12123 * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts
12124 for cpu and machine. Factor 64/32b builtins.
12125
12126 2019-08-18 Gerald Pfeifer <gerald@pfeifer.com>
12127
12128 * doc/install.texi (Specific, bfin): blackfin.uclinux.org is
12129 gone, point to sourceforge.net.
12130
12131 2019-08-17 Gerald Pfeifer <gerald@pfeifer.com>
12132
12133 * doc/ux.texi (User Experience Guidelines): Update reference.
12134
12135 2019-08-17 Gerald Pfeifer <gerald@pfeifer.com>
12136
12137 * doc/include/gpl_v3.texi (Copying): Adjust the link to "Why
12138 not LGPL".
12139
12140 2019-08-16 Eric Botcazou <ebotcazou@adacore.com>
12141
12142 * tree-sra.c (build_reconstructed_reference): Return NULL_TREE instead
12143 of NULL. Add guard for broken VIEW_CONVERT_EXPRs.
12144
12145 2019-08-16 Martin Sebor <msebor@redhat.com>
12146
12147 * tree.def (TYPE_SIZE): Clarify.
12148 * tree.h (TYPE_SIZE, TYPE_SIZE_UNIT, DECL_SIZE): Add comments.
12149
12150 2019-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
12151
12152 PR tree-optimization/91109
12153 * lra-int.h (lra_need_for_scratch_reg_p): Declare.
12154 * lra.c (lra): Use lra_need_for_scratch_reg_p.
12155 * lra-spills.c (lra_need_for_scratch_reg_p): New function.
12156
12157 2019-08-16 Uroš Bizjak <ubizjak@gmail.com>
12158
12159 * config/i386/mmx.md (mmxdoublemode): New mode attribute.
12160 (mmx_uavg<mode>3): Macroize expaner from mmx_uavgv8qi3 and
12161 mmx_uavgv4hi3 using MMXMODE12 mode iterator.
12162 (uavg<mode>3_ceil): New expander.
12163 * config/i386/sse.md (uavg<mode>3_ceil): Use ssedoublemode
12164 mode iterator when creating CONST1_RTX.
12165 (<sse2_avx2>_uavg<mode>3<mask_name>): Ditto.
12166 (*<sse2_avx2>_uavg<mode>3<mask_name>): Use ssedoublemode
12167 mode iterator for const1_operand predicate.
12168
12169 2019-08-16 Richard Biener <rguenther@suse.de>
12170
12171 * tree-scalar-evolution.c (follow_ssa_edge_expr): Declare.
12172 (follow_ssa_edge_binary): Call follow_ssa_edge_expr instead of
12173 follow_ssa_edge.
12174 (follow_ssa_edge_in_condition_phi_branch): Likewise.
12175 (analyze_evolution_in_loop): Likewise.
12176 (follow_ssa_edge, follow_ssa_edge_in_rhs): Inline into ...
12177 (follow_ssa_edge_expr): ... here. Refactor code.
12178
12179 2019-08-16 Richard Biener <rguenther@suse.de>
12180
12181 PR target/91469
12182 * config/i386/i386-features.c
12183 (general_scalar_chain::replace_with_subreg): Stop at memory operands.
12184
12185 2019-08-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12186
12187 PR other/91255
12188 * gensupport.c (has_subst_attribute): Error out on set_attr_alternative
12189 only if subst_name matches curr_attr string.
12190
12191 2019-08-16 Richard Biener <rguenther@suse.de>
12192
12193 * tree-ssa-forwprop.c (simplify_builtin_call): Do not remove
12194 stmt at gsi_p, instead replace it with a NOP removed later.
12195 (pass_forwprop::execute): Fully propagate lattice, DCE stmts
12196 that became dead because of that.
12197
12198 2019-08-16 Aldy Hernandez <aldyh@redhat.com>
12199
12200 * gimple-ssa-evrp-analyze.c (record_ranges_from_phis): Skip PHIs
12201 for which we can't represent a range.
12202 * ipa-cp.c (ipcp_vr_lattice::set_to_bottom): Pass type to
12203 set_varying.
12204 * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
12205 Set VR_UNDEFINED if type is not supported.
12206 * tree-ssanames.c (get_range_info): Pass type to set_varying.
12207 * tree-vrp.c (value_range_base::check): Assert that a varying has
12208 min/max set.
12209 (value_range_base::equal_p): Early bail for undefines.
12210 (value_range_base::set_varying): Accept a type.
12211 (value_range::set_varying): Same.
12212 (value_range_base::type): VARYING can have a type, while UNDEFINE
12213 is typeless.
12214 (value_range_base::dump): Print type for VARYING nodes.
12215 (value_range_base::set): Add type to VARYING.
12216 (extract_range_from_multiplicative_op): Pass type to set_varying.
12217 (extract_range_from_binary_expr): Same.
12218 (value_range_base::intersect_helper): Same.
12219 (value_range_base::union_helper): Same.
12220 (value_range_base::normalize_symbolics): Same.
12221 (determine_value_range_1): Same.
12222 * tree-vrp.h (class value_range_base): Add type to set_varying.
12223 Add prototype for dump(void).
12224 Add prototype for supports_type_p.
12225 (class value_range): Add type to set_varying.
12226 Add prototype for dump(void).
12227 * vr-values.c (set_value_range_to_truthvalue): Pass type to
12228 set_varying.
12229 (vr_values::get_lattice_entry): Set varying even if propagation
12230 finished.
12231 Pass type to set_varying.
12232 (vr_values::get_value_range): Remove vr_const_varying.
12233 Reallocate the lattice if needed.
12234 (vr_values::update_value_range): Pass type to set_varying.
12235 (vr_values::extract_range_for_var_from_comparison_expr): Same.
12236 (vr_values::extract_range_from_binary_expr): Same.
12237 (vr_values::extract_range_from_unary_expr): Same.
12238 (vr_values::extract_range_from_cond_expr): Same.
12239 (vr_values::check_for_binary_op_overflow): Same.
12240 (vr_values::extract_range_basic): Same.
12241 (vr_values::extract_range_from_assignment): Same.
12242 (vr_values::vr_values): Increase size of num_vr_values.
12243 (vr_values::extract_range_from_phi_node): Pass type to
12244 set_varying.
12245
12246 2019-08-15 H.J. Lu <hongjiu.lu@intel.com>
12247
12248 PR target/90878
12249 * config/i386/i386.c (inline_memory_move_cost): Use hard_register
12250 for costs of hard register moves.
12251 (ix86_register_move_cost): Likewise.
12252 * config/i386/i386.h (processor_costs): Move costs of hard
12253 register moves to hard_register. Add int_load, int_store,
12254 xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse,
12255 sse_load, sse_store, sse_unaligned_load and sse_unaligned_store
12256 for costs of RTL expressions.
12257 * config/i386/x86-tune-costs.h: Move costs of hard register
12258 moves to hard_register. Duplicate int_load, int_store,
12259 xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse,
12260 sse_load, sse_store for costs of RTL expressions.
12261
12262 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12263
12264 * target.def (setup_incoming_vararg_bounds): Remove.
12265 * doc/tm.texi.in (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Remove.
12266 * doc/tm.texi: Regenerate.
12267 * targhooks.c (default_setup_incoming_vararg_bounds): Delete.
12268 * targhooks.h (default_setup_incoming_vararg_bounds): Likewise.
12269 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
12270 (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
12271
12272 2019-08-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
12273
12274 MSP430: Fix lines over 80 characters long in
12275 config/msp430/*.{c,h} files
12276
12277 * config/msp430/driver-msp430.c (msp430_select_cpu): Fix format
12278 specifier in string.
12279 (msp430_select_hwmult_lib): Split line more than 80 characters long.
12280 * config/msp430/msp430-devices.c (msp430_extract_mcu_data): Remove
12281 redundant old comment.
12282 * config/msp430/msp430-protos.h (msp430_output_aligned_decl_common):
12283 Split line more than 80 characters long.
12284 * config/msp430/msp430.c (msp430_option_override): Likewise.
12285 (msp430_return_in_memory): Likewise.
12286 (msp430_gimplify_va_arg_expr): Likewise.
12287 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise.
12288 (msp430_legitimate_constant): Likewise.
12289 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Likewise.
12290 (msp430_attr): Likewise.
12291 (msp430_data_attr): Likewise.
12292 (msp430_start_function): Likewise.
12293 (gen_prefix): Likewise.
12294 (msp430_init_sections): Likewise.
12295 (msp430_select_section): Likewise.
12296 (msp430_function_section): Likewise.
12297 (msp430_unique_section): Likewise.
12298 (msp430_output_aligned_decl_common): Likewise.
12299 (msp430_do_not_relax_short_jumps): Likewise.
12300 (msp430_init_builtins): Likewise.
12301 (msp430_expand_delay_cycles): Likewise.
12302 (msp430_expand_prologue): Likewise.
12303 (msp430_expand_epilogue): Likewise.
12304 (msp430_expand_helper): Likewise.
12305 (msp430_split_movsi): Likewise.
12306 (msp430_print_operand): Likewise.
12307 (msp430_return_addr_rtx): Likewise.
12308 (msp430x_extendhisi): Likewise.
12309 * config/msp430/msp430.h (STARTFILE_SPEC): Likewise.
12310 (ASM_SPEC): Likewise.
12311 Remove very obvious comments.
12312 (LIB_SPEC): Split line more than 80 characters long.
12313 (EH_RETURN_HANDLER_RTX): Likewise.
12314 (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
12315
12316 2019-08-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
12317
12318 MSP430: Fix whitespace errors and incorrect indentation in
12319 config/msp430/*.{c,h} files
12320
12321 * config/msp430/driver-msp430.c (msp430_select_cpu): Fix indentation.
12322 (msp430_select_hwmult_lib): Likewise.
12323 * config/msp430/msp430-devices.c (parse_devices_csv_1): Likewise.
12324 (msp430_extract_mcu_data): Likewise.
12325 (struct t_msp430_mcu_data): Likewise.
12326 * config/msp430/msp430.c (struct machine_function): Remove whitespace
12327 before left square bracket.
12328 (msp430_option_override): Fix indentation.
12329 (msp430_hard_regno_nregs_with_padding): Likewise.
12330 (msp430_initial_elimination_offset): Likewise.
12331 (msp430_special_register_convention_p): Remove whitespace before left
12332 square bracket and after exclamation mark.
12333 (msp430_evaluate_arg): Likewise.
12334 (msp430_callee_copies): Fix indentation.
12335 (msp430_gimplify_va_arg_expr): Likewise.
12336 (msp430_function_arg_advance): Remove whitespace before left square
12337 bracket.
12338 (reg_ok_for_addr): Likewise.
12339 (msp430_preserve_reg_p): Likewise.
12340 (msp430_compute_frame_info): Likewise.
12341 (msp430_asm_output_addr_const_extra): Add space between function name
12342 and open parenthesis.
12343 (has_section_name): Fix indentation.
12344 (msp430_attr): Remove trailing whitespace.
12345 (msp430_section_attr): Likewise.
12346 (msp430_data_attr): Likewise.
12347 (struct msp430_attribute_table): Fix comment and whitespace.
12348 (msp430_start_function): Remove whitespace before left square bracket.
12349 Add space between function name and open parenthesis.
12350 (msp430_select_section): Remove trailing whitespace.
12351 (msp430_section_type_flags): Remove trailing whitespace.
12352 (msp430_unique_section): Remove space before closing parenthesis.
12353 (msp430_output_aligned_decl_common): Change 8 spaces to a tab.
12354 (msp430_builtins): Remove whitespace before left square bracket.
12355 (msp430_init_builtins): Fix indentation.
12356 (msp430_expand_prologue): Remove whitespace before left square bracket.
12357 Remove space before closing parenthesis.
12358 (msp430_expand_epilogue): Remove whitespace before left square bracket.
12359 (msp430_split_movsi): Remove space before closing parenthesis.
12360 (helper_function_name_mappings): Fix indentation.
12361 (msp430_use_f5_series_hwmult): Fix whitespace.
12362 (use_32bit_hwmult): Likewise.
12363 (msp430_no_hwmult): Likewise.
12364 (msp430_output_labelref): Remove whitespace before left square bracket.
12365 (msp430_print_operand_raw): Likewise.
12366 (msp430_print_operand_addr): Likewise.
12367 (msp430_print_operand): Add two spaces after '.' in comment.
12368 Fix trailing whitespace.
12369 (msp430x_extendhisi): Fix indentation.
12370 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Change 8 spaces to
12371 tab.
12372 (PC_REGNUM): Likewise.
12373 (STACK_POINTER_REGNUM): Likewise.
12374 (CC_REGNUM): Likewise.
12375
12376 2019-08-15 Richard Biener <rguenther@suse.de>
12377
12378 PR target/91454
12379 * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): New
12380 helper.
12381 (general_scalar_chain::make_vector_copies): Use it.
12382
12383 2019-08-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
12384
12385 * function.c (assign_parm_setup_reg): Handle misaligned stack arguments.
12386
12387 2019-08-15 Martin Liska <mliska@suse.cz>
12388
12389 * tree-ssa-dce.c (propagate_necessity): We can't reach now
12390 operators with no arguments.
12391 (eliminate_unnecessary_stmts): Likewise here.
12392
12393 2019-08-15 Uroš Bizjak <ubizjak@gmail.com>
12394
12395 * config/i386/i386-features.c (general_scalar_chain::convert_insn)
12396 <case COMPARE>: Revert 2019-08-14 change.
12397 (convertible_comparison_p): Revert 2019-08-14 change. Return false
12398 for (TARGET_64BIT || mode != DImode).
12399
12400 2019-08-15 Aldy Hernandez <aldyh@redhat.com>
12401
12402 * tree-vrp.c (value_range_base::set): Merge in code from
12403 value_range_base::set_and_canonicalize.
12404 Enforce canonicalization at set time.
12405 Normalize [MIN, MAX] into VARYING and ~[MIN, MAX] into UNDEFINED.
12406 (value_range_base::set_undefined): Inline call to set().
12407 (value_range_base::set_varying): Same.
12408 (value_range_base::singleton_p): Handle VR_ANTI_RANGEs.
12409 (vrp_val_max): New argument handle_pointers.
12410 (vrp_val_min): Same.
12411 (ranges_from_anti_range): Same.
12412 (extract_range_into_wide_ints): Use tree argument instead of sign
12413 and precision.
12414 (extract_range_from_multiplicative_op): Take in tree type instead
12415 of precision and sign. Adapt function for canonicalized ranges.
12416 (extract_range_from_binary_expr): Pass type to
12417 extract_range_from_multiplicative_op.
12418 Adapt for canonicalized ranges.
12419 (extract_range_from_unary_expr): Same.
12420 (value_range_base::intersect_helper): Adjust for canonicalized
12421 ranges.
12422 (value_range_base::union_helper): Same.
12423 (value_range_base::normalize_symbolics): New.
12424 * tree-vrp.h (class value_range_base): Remove
12425 set_and_canonicalize.
12426 New prototype for normalize_symbolics.
12427 (class value_range): Remove set_and_canonicalize.
12428 (vrp_val_min): Adjust prototype.
12429 (vrp_val_max): Same.
12430 * vr-values.c
12431 (vr_values::extract_range_for_var_from_comparison_expr): Call set
12432 instead of set_and_canonicalize.
12433
12434 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12435
12436 PR middle-end/91444
12437 * tree-vect-stmts.c (vectorizable_call): Check that the function
12438 is a BUILT_IN_MD function before passing it to
12439 targetm.vectorize.builtin_md_vectorized_function.
12440
12441 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12442
12443 * config/aarch64/aarch64-protos.h (aarch64_sve_mode_p): Declare.
12444 * config/aarch64/aarch64.c (aarch64_sve_mode_p): New function.
12445 (aarch64_select_early_remat_modes): Use it.
12446
12447 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12448
12449 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Return
12450 16 for SVE predicates even if they are fixed-length.
12451
12452 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12453
12454 * config/aarch64/aarch64-sve.md (and<PRED_ALL:mode>3): Make the
12455 operand order match the MOV /Z alias.
12456
12457 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12458
12459 * config/aarch64/aarch64.c (aarch64_output_sve_cnt_immediate): Take
12460 the vector pattern as an aarch64_svpattern argument. Update the
12461 overloaded caller accordingly.
12462 (aarch64_output_sve_scalar_inc_dec): Update call accordingly.
12463 (aarch64_output_sve_vector_inc_dec): Likewise.
12464
12465 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12466
12467 * config/aarch64/aarch64.c (aarch64_add_offset): In the fallback
12468 multiplication case, try to compute VG * (lowest set bit) directly
12469 rather than always basing the multiplication on VG. Use
12470 expand_mult for the multiplication if we can.
12471
12472 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12473
12474 * config/aarch64/aarch64-protos.h
12475 (aarch64_sve_scalar_inc_dec_immediate_p): Declare.
12476 (aarch64_sve_inc_dec_immediate_p): Rename to...
12477 (aarch64_sve_vector_inc_dec_immediate_p): ...this.
12478 (aarch64_output_sve_addvl_addpl): Take a single rtx argument.
12479 (aarch64_output_sve_scalar_inc_dec): Declare.
12480 (aarch64_output_sve_inc_dec_immediate): Rename to...
12481 (aarch64_output_sve_vector_inc_dec): ...this.
12482 * config/aarch64/aarch64.c (aarch64_sve_scalar_inc_dec_immediate_p)
12483 (aarch64_output_sve_scalar_inc_dec): New functions.
12484 (aarch64_output_sve_addvl_addpl): Remove the base and offset
12485 arguments. Only handle true ADDVL and ADDPL instructions;
12486 don't emit an INC or DEC.
12487 (aarch64_sve_inc_dec_immediate_p): Rename to...
12488 (aarch64_sve_vector_inc_dec_immediate_p): ...this.
12489 (aarch64_output_sve_inc_dec_immediate): Rename to...
12490 (aarch64_output_sve_vector_inc_dec): ...this. Update call to
12491 aarch64_sve_vector_inc_dec_immediate_p.
12492 * config/aarch64/predicates.md (aarch64_sve_scalar_inc_dec_immediate)
12493 (aarch64_sve_plus_immediate): New predicates.
12494 (aarch64_pluslong_operand): Accept aarch64_sve_plus_immediate
12495 rather than aarch64_sve_addvl_addpl_immediate.
12496 (aarch64_sve_inc_dec_immediate): Rename to...
12497 (aarch64_sve_vector_inc_dec_immediate): ...this. Update call to
12498 aarch64_sve_vector_inc_dec_immediate_p.
12499 (aarch64_sve_add_operand): Update accordingly.
12500 * config/aarch64/constraints.md (Uai): New constraint.
12501 (vsi): Update call to aarch64_sve_vector_inc_dec_immediate_p.
12502 * config/aarch64/aarch64.md (add<GPI:mode>3): Don't force the second
12503 operand into a register if it satisfies aarch64_sve_plus_immediate.
12504 (*add<GPI:mode>3_aarch64, *add<GPI:mode>3_poly_1): Add an alternative
12505 for Uai. Update calls to aarch64_output_sve_addvl_addpl.
12506 * config/aarch64/aarch64-sve.md (add<mode>3): Call
12507 aarch64_output_sve_vector_inc_dec instead of
12508 aarch64_output_sve_inc_dec_immediate.
12509
12510 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12511
12512 * config/aarch64/iterators.md (UNSPEC_REVB, UNSPEC_REVH)
12513 (UNSPEC_REVW): New constants.
12514 (elem_bits): New mode attribute.
12515 (SVE_INT_UNARY): New int iterator.
12516 (optab): Handle UNSPEC_REV[BHW].
12517 (sve_int_op): New int attribute.
12518 (min_elem_bits): Handle VNx16QI and the predicate modes.
12519 * config/aarch64/aarch64-sve.md (*aarch64_sve_rev64<mode>)
12520 (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Delete.
12521 (@aarch64_pred_<SVE_INT_UNARY:optab><SVE_I:mode>): New pattern.
12522 * config/aarch64/aarch64.c (aarch64_sve_data_mode): New function.
12523 (aarch64_sve_int_mode, aarch64_sve_rev_unspec): Likewise.
12524 (aarch64_split_sve_subreg_move): Use UNSPEC_REV[BHW] instead of
12525 unspecs based on the total width of the reversed data.
12526 (aarch64_evpc_rev_local): Likewise (for SVE only). Use a
12527 reinterpret followed by a subreg on big-endian targets.
12528
12529 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12530 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
12531
12532 * config/aarch64/aarch64-sve.md
12533 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Add /z
12534 alternatives in which one of the inputs is in the same register
12535 as the output.
12536
12537 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12538
12539 * config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_ext)
12540 (*aarch64_sve_ext<mode>): Add MOVPRFX alternatives.
12541
12542 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12543
12544 * config/aarch64/aarch64-sve.md (*sub<SVE_F:mode>3): Remove immediate
12545 FADD and FSUB alternatives. Add a MOVPRFX alternative for FSUBR.
12546
12547 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12548 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
12549
12550 * config/aarch64/aarch64-sve.md (add<SVE_I:mode>3, sub<SVE_I:mode>3)
12551 (<LOGICAL:optab><SVE_I:mode>3, *add<SVE_F:mode>3, *mul<SVE_F:mode>3)
12552 (*fabd<SVE_F:mode>3): Add more MOVPRFX alternatives.
12553
12554 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12555 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12556
12557 * config/aarch64/aarch64-sve.md (*v<ASHIFT:optab><SVE_I:mode>3):
12558 Add an alternative that uses reversed shifts.
12559
12560 2019-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12561
12562 * config/aarch64/aarch64-cores.def (cortex-a76): Use neoversen1 tuning
12563 struct.
12564
12565 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12566
12567 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Add
12568 a commutativity marker.
12569
12570 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12571 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
12572
12573 * config/aarch64/aarch64-protos.h (aarch64_prepare_sve_int_fma)
12574 (aarch64_prepare_sve_cond_int_fma): Declare.
12575 * config/aarch64/aarch64.c (aarch64_convert_mult_to_shift)
12576 (aarch64_prepare_sve_int_fma): New functions.
12577 (aarch64_prepare_sve_cond_int_fma): Likewise.
12578 * config/aarch64/aarch64-sve.md
12579 (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Add a "@" marker.
12580 (fma<SVE_I:mode>4, cond_fma<SVE_I:mode>, *cond_fma<SVE_I:mode>_2)
12581 (*cond_fma<SVE_I:mode>_4, *cond_fma<SVE_I:mode>_any, fnma<SVE_I:mode>4)
12582 (cond_fnma<SVE_I:mode>, *cond_fnma<SVE_I:mode>_2)
12583 (*cond_fnma<SVE_I:mode>_4, *cond_fnma<SVE_I:mode>_any): New patterns.
12584 (*madd<mode>): Rename to...
12585 (*fma<mode>4): ...this.
12586 (*msub<mode>): Rename to...
12587 (*fnma<mode>4): ...this.
12588
12589 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12590 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
12591
12592 * config/aarch64/aarch64.c (aarch64_print_vector_float_operand):
12593 Print 2.0 naturally.
12594 (aarch64_sve_float_mul_immediate_p): Return true for 2.0.
12595 * config/aarch64/predicates.md
12596 (aarch64_sve_float_negated_arith_immediate): New predicate,
12597 renamed from aarch64_sve_float_arith_with_sub_immediate.
12598 (aarch64_sve_float_arith_with_sub_immediate): Test for both
12599 positive and negative constants.
12600 (aarch64_sve_float_arith_with_sub_operand): Redefine as a register
12601 or an aarch64_sve_float_arith_with_sub_immediate.
12602 * config/aarch64/constraints.md (vsN): Use
12603 aarch64_sve_float_negated_arith_immediate.
12604 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_I1): New int
12605 iterator.
12606 (sve_pred_fp_rhs2_immediate): New int attribute.
12607 * config/aarch64/aarch64-sve.md
12608 (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>): Use
12609 sve_pred_fp_rhs1_operand and sve_pred_fp_rhs2_operand.
12610 (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_2_const)
12611 (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_any_const)
12612 (*cond_add<SVE_F:mode>_2_const, *cond_add<SVE_F:mode>_any_const)
12613 (*cond_sub<mode>_3_const, *cond_sub<mode>_any_const): New patterns.
12614
12615 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12616 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
12617
12618 * config/aarch64/aarch64-sve.md (*aarch64_cond_abd<SVE_F:mode>_2)
12619 (*aarch64_cond_abd<SVE_F:mode>_3)
12620 (*aarch64_cond_abd<SVE_F:mode>_any): New patterns.
12621
12622 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12623 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
12624
12625 * config/aarch64/aarch64-sve.md (*aarch64_cond_<su>abd<mode>_2)
12626 (*aarch64_cond_<su>abd<mode>_any): New patterns.
12627
12628 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12629 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12630
12631 * internal-fn.def (IFN_COND_SHL, IFN_COND_SHR): New internal functions.
12632 * internal-fn.c (FOR_EACH_CODE_MAPPING): Handle shifts.
12633 * match.pd (UNCOND_BINARY, COND_BINARY): Likewise.
12634 * optabs.def (cond_ashl_optab, cond_ashr_optab, cond_lshr_optab): New
12635 optabs.
12636 * optabs.h (create_convert_operand_from): Expand comment.
12637 * optabs.c (maybe_legitimize_operand): Allow implicit broadcasts
12638 when mapping scalar rtxes to vector operands.
12639 * config/aarch64/iterators.md (SVE_INT_BINARY): Add ashift,
12640 ashiftrt and lshiftrt.
12641 (sve_int_op, sve_int_op_rev, sve_pred_int_rhs2_operand): Handle them.
12642 * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_const)
12643 (*cond_<optab><mode>_any_const): New patterns.
12644
12645 2019-08-15 Martin Liska <mliska@suse.cz>
12646
12647 PR ipa/91438
12648 * cgraph.c (cgraph_node::remove): When setting
12649 n->origin = NULL for all nested functions, reset
12650 also next_nested.
12651
12652 2019-08-15 Martin Liska <mliska@suse.cz>
12653
12654 * cgraph.c (cgraph_node::verify_node): Verify origin, nested
12655 and next_nested.
12656
12657 2019-08-15 Martin Liska <mliska@suse.cz>
12658
12659 PR ipa/91404
12660 * passes.c (order): Remove.
12661 (uid_hash_t): Likewise).
12662 (remove_cgraph_node_from_order): Remove from set
12663 of pointers (cgraph_node *).
12664 (insert_cgraph_node_to_order): New.
12665 (duplicate_cgraph_node_to_order): New.
12666 (do_per_function_toporder): Register all 3 cgraph hooks.
12667 Skip removed_nodes now as we know about all of them.
12668
12669 2019-08-14 Uroš Bizjak <ubizjak@gmail.com>
12670
12671 * config/i386/i386-expand.c (ix86_expand_vector_init_one_nonzero)
12672 <case E_V8QImode>: Use vector_set path for
12673 TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
12674 (ix86_expand_vector_init_one_var) <case E_V8QImode>:
12675 Do not widen for TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
12676
12677 2019-08-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
12678
12679 * builtins.c (expand_builtin_init_descriptor): Set memory alignment.
12680
12681 2019-08-14 Martin Sebor <msebor@redhat.com>
12682
12683 PR tree-optimization/91294
12684 * tree-ssa-strlen.c (handle_store): Avoid treating lower bound of
12685 source length as exact.
12686
12687 2019-08-14 Christophe Lyon <christophe.lyon@linaro.org>
12688
12689 * doc/extend.texi: Add "noinit" attribute documentation.
12690 * doc/sourcebuild.texi: Add noinit effective target documentation.
12691 * varasm.c (default_section_type_flags): Add support for "noinit"
12692 section.
12693 (default_elf_select_section): Add support for "noinit" attribute.
12694 * config/msp430/msp430.c (msp430_attribute_table): Remove
12695 "noinit" entry.
12696
12697 2019-08-14 Richard Biener <rguenther@suse.de>
12698 Uroš Bizjak <ubizjak@gmail.com>
12699
12700 PR target/91154
12701 * config/i386/i386-features.h (scalar_chain::scalar_chain): Add
12702 mode arguments.
12703 (scalar_chain::smode): New member.
12704 (scalar_chain::vmode): Likewise.
12705 (dimode_scalar_chain): Rename to...
12706 (general_scalar_chain): ... this.
12707 (general_scalar_chain::general_scalar_chain): Take mode arguments.
12708 (timode_scalar_chain::timode_scalar_chain): Initialize scalar_chain
12709 base with TImode and V1TImode.
12710 * config/i386/i386-features.c (scalar_chain::scalar_chain): Adjust.
12711 (general_scalar_chain::vector_const_cost): Adjust for SImode
12712 chains.
12713 (general_scalar_chain::compute_convert_gain): Likewise. Add
12714 {S,U}{MIN,MAX} support.
12715 (general_scalar_chain::replace_with_subreg): Use vmode/smode.
12716 (general_scalar_chain::make_vector_copies): Likewise. Handle
12717 non-DImode chains appropriately.
12718 (general_scalar_chain::convert_reg): Likewise.
12719 (general_scalar_chain::convert_op): Likewise.
12720 (general_scalar_chain::convert_insn): Likewise. Add
12721 fatal_insn_not_found if the result is not recognized.
12722 (convertible_comparison_p): Pass in the scalar mode and use that.
12723 (general_scalar_to_vector_candidate_p): Likewise. Rename from
12724 dimode_scalar_to_vector_candidate_p. Add {S,U}{MIN,MAX} support.
12725 (scalar_to_vector_candidate_p): Remove by inlining into single
12726 caller.
12727 (general_remove_non_convertible_regs): Rename from
12728 dimode_remove_non_convertible_regs.
12729 (remove_non_convertible_regs): Remove by inlining into single caller.
12730 (convert_scalars_to_vector): Handle SImode and DImode chains
12731 in addition to TImode chains.
12732 * config/i386/i386.md (<maxmin><MAXMIN_IMODE>3): New expander.
12733 (*<maxmin><MAXMIN_IMODE>3_1): New insn-and-split.
12734 (*<maxmin>di3_doubleword): Likewise.
12735
12736 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
12737 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
12738
12739 * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2)
12740 (*cond_bic<mode>_any): New patterns.
12741
12742 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
12743
12744 * config/aarch64/aarch64.c (aarch64_print_operand): Allow %e to
12745 take the equivalent mask, as well as a bit count.
12746 * config/aarch64/predicates.md (aarch64_sve_uxtb_immediate)
12747 (aarch64_sve_uxth_immediate, aarch64_sve_uxt_immediate)
12748 (aarch64_sve_pred_and_operand): New predicates.
12749 * config/aarch64/iterators.md (sve_pred_int_rhs2_operand): New
12750 code attribute.
12751 * config/aarch64/aarch64-sve.md
12752 (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Use it.
12753 (*cond_uxt<mode>_2, *cond_uxt<mode>_any): New patterns.
12754
12755 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
12756
12757 * config/aarch64/aarch64-sve.md
12758 (*cond_<SVE_COND_FCVTI:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>)
12759 (*cond_<SVE_COND_ICVTF:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>):
12760 New patterns.
12761
12762 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
12763 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
12764
12765 * config/aarch64/aarch64-sve.md
12766 (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_2): New pattern.
12767 (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_any): Likewise.
12768
12769 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
12770 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
12771
12772 * config/aarch64/aarch64-sve.md
12773 (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_2): New pattern.
12774 (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_any): Likewise.
12775
12776 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
12777
12778 * config/aarch64/iterators.md (SVE_COND_FP_ABS_CMP): New iterator.
12779 * config/aarch64/aarch64-sve.md (*aarch64_pred_fac<cmp_op><mode>):
12780 New pattern.
12781
12782 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
12783 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
12784
12785 * config/aarch64/aarch64-sve.md (*aarch64_sel_dup<mode>): New pattern.
12786
12787 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
12788 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
12789
12790 * config/aarch64/aarch64.c (aarch64_bit_representation): New function.
12791 (aarch64_print_vector_float_operand): Also handle 8-bit floats.
12792 (aarch64_print_operand): Add support for %I.
12793 (aarch64_sve_dup_immediate_p): Handle scalars as well as vectors.
12794 Bitcast floating-point constants to the corresponding integer constant.
12795 (aarch64_float_const_representable_p): Handle vectors as well
12796 as scalars.
12797 (aarch64_expand_sve_vcond): Make sure that the operands are valid
12798 for the new vcond_mask_<mode><vpred> expander.
12799 * config/aarch64/predicates.md (aarch64_sve_dup_immediate): Also
12800 test aarch64_float_const_representable_p.
12801 (aarch64_sve_reg_or_dup_imm): New predicate.
12802 * config/aarch64/aarch64-sve.md (vec_extract<vpred><Vel>): Use
12803 gen_vcond_mask_<mode><vpred> instead of
12804 gen_aarch64_sve_dup<mode>_const.
12805 (vcond_mask_<mode><vpred>): Turn into a define_expand that
12806 accepts aarch64_sve_reg_or_dup_imm and aarch64_simd_reg_or_zero
12807 for operands 1 and 2 respectively. Force operand 2 into a
12808 register if operand 1 is a register. Fold old define_insn...
12809 (aarch64_sve_dup<mode>_const): ...and this define_insn...
12810 (*vcond_mask_<mode><vpred>): ...into this new pattern. Handle
12811 floating-point constants that can be moved as integers. Add
12812 alternatives for MOV /M and FMOV /M.
12813 (vcond<mode><v_int_equiv>, vcondu<mode><v_int_equiv>)
12814 (vcond<mode><v_fp_equiv>): Accept nonmemory_operand for operands
12815 1 and 2 respectively.
12816 * config/aarch64/constraints.md (Ufc): Handle vectors as well
12817 as scalars.
12818 (vss): New constraint.
12819
12820 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
12821
12822 * config/aarch64/predicates.md (aarch64_sve_float_maxmin_immediate)
12823 (aarch64_sve_float_maxmin_operand): New predicates.
12824 * config/aarch64/constraints.md (vsB): New constraint.
12825 (vsM): Fix typo.
12826 * config/aarch64/iterators.md (sve_pred_fp_rhs2_operand): Use
12827 aarch64_sve_float_maxmin_operand for UNSPEC_COND_FMAXNM and
12828 UNSPEC_COND_FMINNM.
12829 * config/aarch64/aarch64-sve.md (<maxmin_uns><SVE_F:mode>3):
12830 Use aarch64_sve_float_maxmin_operand for operand 2.
12831 (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Likewise.
12832 Add alternatives for the constant forms.
12833
12834 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
12835
12836 * config/aarch64/constraints.md (vsb): New constraint.
12837 (vsm): Generalize description.
12838 * config/aarch64/iterators.md (SVE_INT_BINARY_IMM): New code
12839 iterator.
12840 (sve_imm_con): Handle smax, smin, umax and umin.
12841 (sve_imm_prefix): New code attribute.
12842 * config/aarch64/predicates.md (aarch64_sve_vsb_immediate)
12843 (aarch64_sve_vsb_operand): New predicates.
12844 (aarch64_sve_mul_immediate): Rename to...
12845 (aarch64_sve_vsm_immediate): ...this.
12846 (aarch64_sve_mul_operand): Rename to...
12847 (aarch64_sve_vsm_operand): ...this.
12848 * config/aarch64/aarch64-sve.md (mul<mode>3): Generalize to...
12849 (<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...this.
12850 (*mul<mode>3, *post_ra_mul<mode>3): Generalize to...
12851 (*<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3)
12852 (*post_ra_<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...these and
12853 add movprfx support for the immediate alternatives.
12854 (<su><maxmin><mode>3, *<su><maxmin><mode>3): Delete in favor
12855 of the above.
12856 (*<SVE_INT_BINARY_SD:optab><SVE_SDI:mode>3): Fix incorrect predicate
12857 for operand 3.
12858
12859 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
12860
12861 * config/aarch64/predicates.md (aarch64_simd_imm_one): New predicate.
12862 * config/aarch64/aarch64-sve.md (*cnot<mode>): New pattern.
12863 (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
12864
12865 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
12866
12867 * config/aarch64/iterators.md (SVE_INT_UNARY): Add clrsb and clz.
12868 (optab, sve_int_op): Handle them.
12869 * config/aarch64/aarch64-sve.md: Expand comment.
12870
12871 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
12872
12873 * config/aarch64/predicates.md (const_1_to_3_operand): New predicate.
12874 * config/aarch64/aarch64-sve.md (*aarch64_adr_uxtw)
12875 (*aarch64_adr<mode>_shift, *aarch64_adr_shift_uxtw): New patterns.
12876
12877 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
12878
12879 * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_eor)
12880 (aarch64_expand_sve_const_pred_trn): New functions.
12881 (aarch64_expand_sve_const_pred_1): Add a recurse_p parameter and
12882 use the above functions when the parameter is true.
12883 (aarch64_expand_sve_const_pred): Update call accordingly.
12884 * config/aarch64/aarch64-sve.md (*aarch64_sve_<perm_insn><mode>):
12885 Rename to...
12886 (@aarch64_sve_<perm_insn><mode>): ...this.
12887
12888 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
12889
12890 * config/aarch64/aarch64-protos.h (aarch64_sve_same_pred_for_ptest_p):
12891 Declare.
12892 * config/aarch64/aarch64.c (aarch64_sve_same_pred_for_ptest_p)
12893 (aarch64_sve_emit_int_cmp): New functions.
12894 (aarch64_convert_sve_data_to_pred): Use aarch64_sve_emit_int_cmp.
12895 (aarch64_sve_cmp_operand_p, aarch64_emit_sve_ptrue_op_cc): Delete.
12896 (aarch64_expand_sve_vec_cmp_int): Use aarch64_sve_emit_int_cmp.
12897 * config/aarch64/aarch64.md (UNSPEC_MERGE_PTRUE): Delete.
12898 (UNSPEC_PRED_Z): New unspec.
12899 (set_clobber_cc_nzc): Delete.
12900 * config/aarch64/aarch64-sve.md: Add a block comment about
12901 UNSPEC_PRED_Z.
12902 (*cmp<SVE_INT_CMP:cmp_op><mode>): Rename to...
12903 (@aarch64_pred_cmp<SVE_INT_CMP:cmp_op><mode>): ...this, replacing
12904 the old pattern with that name. Use UNSPEC_PRED_Z instead of
12905 UNSPEC_MERGE_PTRUE.
12906 (*cmp<SVE_INT_CMP:cmp_op><mode>_cc): Use UNSPEC_PRED_Z instead of
12907 UNSPEC_MERGE_PTRUE. Use aarch64_sve_same_pred_for_ptest_p to
12908 check for compatible predicates.
12909 (*cmp<cmp_op><SVE_INT_CMP:mode>_ptest): Likewise.
12910 (*cmp<cmp_op><mode>_and): Match a known-ptrue UNSPEC_PRED_Z instead
12911 of UNSPEC_MERGE_PTRUE. Split into the new form of predicated
12912 comparisons above.
12913
12914 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
12915
12916 * config/aarch64/aarch64.md (UNSPEC_PRED_X): New unspec.
12917 * config/aarch64/aarch64-sve.md: Add a section describing it.
12918 (@aarch64_pred_mov<mode>, @aarch64_pred_mov<mode>)
12919 (<SVE_INT_UNARY:optab><mode>2, *<SVE_INT_UNARY:optab><mode>2)
12920 (aarch64_<su>abd<mode>_3, mul<SVE_I:mode>3, *mul<SVE_I:mode>3)
12921 (<su>mul<mode>3_highpart, *<su>mul<mode>3_highpart)
12922 (<SVE_INT_BINARY:optab><mode>3, *<SVE_INT_BINARY:optab><mode>3)
12923 (*bic<mode>3, v<ASHIFT:optab><mode>3, *v<ASHIFT:optab><mode>3)
12924 (<su><maxmin><mode>3, *<su><maxmin><mode>3, *madd<SVE_I:mode>)
12925 (*msub<SVE_I:mode>3, *aarch64_sve_rev64<mode>)
12926 (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Use
12927 UNSPEC_PRED_X instead of UNSPEC_MERGE_PTRUE.
12928 * config/aarch64/aarch64-sve2.md (<u>avg<mode>3_floor)
12929 (<u>avg<mode>3_ceil, *<sur>h<addsub><mode>): Likewise.
12930 * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move)
12931 (aarch64_evpc_rev_local): Update accordingly.
12932
12933 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
12934
12935 * config/aarch64/iterators.md (VNx4SI_ONLY, VNx2DF_ONLY): New mode
12936 iterators.
12937 (SVE_BHSI, SVE_SDI): Tweak comment.
12938 (SVE_HSDI): Likewise. Fix definition.
12939 (SVE_SDF): New mode iterator.
12940 (elem_bits): New mode attribute.
12941 (SVE_COND_FCVT): New int iterator.
12942 * config/aarch64/aarch64-sve.md
12943 (*<SVE_COND_ICVTF:optab>v16hsf<SVE_HSDI:mode>2)
12944 (*<SVE_COND_ICVTF:optab>vnx4sf<SVE_SDI:mode>2)
12945 (*<SVE_COND_ICVTF:optab>vnx2df<SVE_SDI:mode>2): Merge into...
12946 (*aarch64_sve_<SVE_COND_ICVTF:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>)
12947 (*aarch64_sve_<SVE_COND_ICVTF:optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
12948 ...these new patterns.
12949 (*<SVE_COND_FCVTI:optab><SVE_HSDI:mode>vnx8hf2)
12950 (*<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx4sf2)
12951 (aarch64_sve_<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx2df2):
12952 Merge into...
12953 (*aarch64_sve_<SVE_COND_FCVTI:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>)
12954 (aarch64_sve_<SVE_COND_FCVTI:optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>):
12955 ...these new patterns.
12956 (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Update accordingly.
12957 (*trunc<Vwide><SVE_SDF:mode>2): Replace with...
12958 (*aarch64_sve_<SVE_COND_FCVT:optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>):
12959 ...this new pattern.
12960 (aarch64_sve_extend<SVE_HSDF:mode><Vwide>2): Replace with...
12961 (aarch64_sve_<SVE_COND_FCVT:optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>):
12962 ...this new pattern.
12963 (vec_unpacks_<perm_hilo>_<mode>): Update accordingly.
12964
12965 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
12966
12967 * config/aarch64/aarch64.md (UNSPEC_FLOAT_CONVERT): Delete.
12968 * config/aarch64/iterators.md (UNSPEC_COND_FCVT, UNSPEC_COND_FCVTZS)
12969 (UNSPEC_COND_FCVTZU, UNSPEC_COND_SCVTF, UNSPEC_COND_UCVTF): New
12970 unspecs.
12971 (optab, su): Handle them.
12972 (SVE_COND_FCVTI, SVE_COND_ICVTF): New int iterators.
12973 * config/aarch64/aarch64-sve.md
12974 (<fix_trunc_optab><SVE_F:mode><v_int_equiv>2): Replace with...
12975 (<SVE_COND_FCVTI:optab><SVE_F:mode><v_int_equiv>2): ...this.
12976 (*<fix_trunc_optab>v16hsf<:SVE_HSDImode>2): Replace with...
12977 (*<SVE_COND_FCVTI:optab>v16hsf<SVE_F:mode>2): ...this.
12978 (*<fix_trunc_optab>vnx4sf<SVE_SDI:mode>2): Replace with...
12979 (*<SVE_COND_FCVTI:optab>vnx4sf<SVE_SDI:mode>2): ...this.
12980 (*<fix_trunc_optab>vnx2df<SVE_SDI:mode>2): Replace with...
12981 (*<SVE_COND_FCVTI:optab>vnx2df<SVE_SDI:mode>2): ...this.
12982 (vec_pack_<su>fix_trunc_vnx2df): Use SVE_COND_FCVTI instead of
12983 FIXUORS.
12984 (<FLOATUORS:optab><v_int_equiv><SVE_F:mode>2): Replace with...
12985 (<SVE_COND_ICVTF:optab><v_int_equiv><SVE_F:mode>2): ...this.
12986 (*<FLOATUORS:optab><SVE_HSDI:mode>vnx8hf2): Replace with...
12987 (*<SVE_COND_ICVTF:optab><SVE_HSDI:mode>vnx8hf2): ...this.
12988 (*<FLOATUORS:optab><SVE_SDI:mode>vnx4sf2): Replace with...
12989 (*<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx4sf2): ...this.
12990 (aarch64_sve_<FLOATUORS:optab><SVE_SDI:mode>vnx2df2): Replace with...
12991 (aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2): ...this.
12992 (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Pass a GP strictness
12993 operand to aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2.
12994 (vec_pack_trunc_<SVE_HSF:Vwide>, *trunc<Vwide><SVE_HSF:mode>2)
12995 (aarch64_sve_extend<mode><Vwide>2): Use UNSPEC_COND_FCVT instead
12996 of UNSPEC_FLOAT_CONVERT.
12997 (vec_unpacks_<perm_hilo>_<mode>): Pass a GP strictness operand to
12998 aarch64_sve_extend<mode><Vwide>2.
12999
13000 2019-08-14 Richard Biener <rguenther@suse.de>
13001
13002 PR target/91154
13003 * config/i386/i386-features.c
13004 (dimode_scalar_chain::compute_convert_gain): Compute and dump
13005 individual instruction gain. Fix reg-reg copy GRP cost. Use
13006 ix86_cost->sse_op for vector instruction costs.
13007
13008 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13009
13010 * config/aarch64/iterators.md (UNSPEC_COND_FCMUO): New unspec.
13011 (cmp_op): Handle it.
13012 (SVE_COND_FP_CMP): Rename to...
13013 (SVE_COND_FP_CMP_I0): ...this.
13014 (SVE_FP_CMP): Remove.
13015 * config/aarch64/aarch64-sve.md
13016 (*fcm<SVE_FP_CMP:cmp_op><SVE_F:mode>): Replace with...
13017 (*fcm<SVE_COND_FP_CMP_I0:cmp_op><SVE_F:mode>): ...this new pattern,
13018 using unspecs to represent the comparison.
13019 (*fcmuo<SVE_F:mode>): Use UNSPEC_COND_FCMUO.
13020 (*fcm<cmp_op><mode>_and_combine, *fcmuo<mode>_and_combine): Update
13021 accordingly.
13022 * config/aarch64/aarch64.c (aarch64_emit_sve_ptrue_op): Delete.
13023 (aarch64_unspec_cond_code): Move after integer code. Handle
13024 UNORDERED.
13025 (aarch64_emit_sve_predicated_cond): Replace with...
13026 (aarch64_emit_sve_fp_cond): ...this new function.
13027 (aarch64_emit_sve_or_conds): Replace with...
13028 (aarch64_emit_sve_or_fp_conds): ...this new function.
13029 (aarch64_emit_sve_inverted_cond): Replace with...
13030 (aarch64_emit_sve_invert_fp_cond): ...this new function.
13031 (aarch64_expand_sve_vec_cmp_float): Update accordingly.
13032
13033 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13034
13035 * config/aarch64/iterators.md (SVE_HSD): New mode iterator.
13036 (V_FP_EQUIV, v_fp_equiv): Handle VNx8HI and VNx8HF.
13037 * config/aarch64/aarch64-sve.md (vcond<mode><v_fp_equiv>): Use
13038 SVE_HSD instead of SVE_SD.
13039
13040 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13041 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
13042
13043 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_REG): New int
13044 iterator.
13045 (sve_pred_fp_rhs1_operand, sve_pred_fp_rhs1_operand): New int
13046 attributes.
13047 * config/aarch64/aarch64-sve.md (add<SVE_F:mode>3, sub<SVE_F:mode>3)
13048 (mul<SVE_F:mode>3, div<SVE_F:mode>3)
13049 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Merge into...
13050 (<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this new expander.
13051 (*div<SVE_F:mode>3): Generalize to...
13052 (*<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this.
13053
13054 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13055 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
13056
13057 * config/aarch64/aarch64.md (SVE_RELAXED_GP, SVE_STRICT_GP): New
13058 constants.
13059 * config/aarch64/predicates.md (aarch64_sve_gp_strictness): New
13060 predicate.
13061 * config/aarch64/aarch64-protos.h (aarch64_sve_pred_dominates_p):
13062 Declare.
13063 * config/aarch64/aarch64.c (aarch64_sve_pred_dominates_p): New
13064 function.
13065 * config/aarch64/aarch64-sve.md: Add a block comment about the
13066 handling of predicated FP operations.
13067 (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2, add<SVE_F:mode>3)
13068 (sub<SVE_F:mode>3, mul<SVE_F:mode>3, div<SVE_F:mode>3)
13069 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3)
13070 (<SVE_COND_FP_MAXMIN_PUBLIC:maxmin_uns><SVE_F:mode>3)
13071 (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): Add an SVE_RELAXED_GP
13072 operand.
13073 (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>)
13074 (cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>): Add an SVE_STRICT_GP
13075 operand.
13076 (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2)
13077 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_2)
13078 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_3)
13079 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_any)
13080 (*fabd<SVE_F:mode>3, *div<SVE_F:mode>3)
13081 (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3)
13082 (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4)
13083 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_2)
13084 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_4)
13085 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Match the
13086 strictness operands. Use aarch64_sve_pred_dominates_p to check
13087 whether the predicate on the conditional operation is suitable
13088 for merging. Split patterns into the canonical equal-predicate form.
13089 (*add<SVE_F:mode>3, *sub<SVE_F:mode>3, *mul<SVE_F:mode>3): Likewise.
13090 Restrict the unpredicated alternatives to SVE_RELAXED_GP.
13091
13092 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13093 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
13094
13095 * config/aarch64/aarch64-sve.md (add<mode>3, *add<mode>3)
13096 (sub<mode>3, *sub<mode>3, *fabd<mode>3, mul<mode>3, *mul<mode>3)
13097 (div<mode>3, *div<mode>3): Use SVE_COND_FP_* unspecs instead of
13098 rtx codes.
13099 (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_3)
13100 (*cond_<optab><mode>_any): Add the predicate to the SVE_COND_FP_*
13101 unspecs.
13102
13103 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13104 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
13105
13106 * config/aarch64/aarch64-sve.md (bic<mode>3): Rename to...
13107 (*bic<SVE_I:mode>3): ...this. Match the form that an SVE inverse
13108 actually has, rather than relying on REG_EQUAL notes.
13109 Make the insn operand order match the SVE operand order.
13110 (*<nlogical><PRED_ALL:mode>3): Make the insn operand order match
13111 the SVE operand order.
13112
13113 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13114
13115 * config/aarch64/aarch64.c (aarch64_target_reg): New function.
13116 (aarch64_emit_set_immediate): Likewise.
13117 (aarch64_ptrue_reg): Build a VNx16BI constant and then bitcast it.
13118 (aarch64_pfalse_reg): Likewise.
13119 (aarch64_convert_sve_data_to_pred): New function.
13120 (aarch64_sve_move_pred_via_while): Take an optional target register
13121 and the required register mode.
13122 (aarch64_expand_sve_const_pred_1): New function.
13123 (aarch64_expand_sve_const_pred): Likewise.
13124 (aarch64_expand_mov_immediate): Build an all-true predicate
13125 if the significant bits of the immediate are all true. Use
13126 aarch64_expand_sve_const_pred for all compile-time predicate constants.
13127 (aarch64_mov_operand_p): Force predicate constants to be VNx16BI
13128 before register allocation.
13129 * config/aarch64/aarch64-sve.md (*vec_duplicate<mode>_reg): Use
13130 a VNx16BI PTRUE when splitting the memory alternative.
13131 (vec_duplicate<mode>): Update accordingly.
13132 (*pred_cmp<cmp_op><mode>): Rename to...
13133 (@aarch64_pred_cmp<cmp_op><mode>): ...this.
13134
13135 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
13136
13137 * config/aarch64/aarch64-protos.h (aarch64_ptrue_all): Declare.
13138 * config/aarch64/aarch64.c (aarch64_ptrue_all): New function.
13139 * config/aarch64/aarch64.md (UNSPEC_PTEST_PTRUE): Delete.
13140 (UNSPEC_PTEST): New unspec.
13141 (SVE_MAYBE_NOT_PTRUE, SVE_KNOWN_PTRUE): New constants.
13142 * config/aarch64/iterators.md (data_bytes): New mode attribute.
13143 * config/aarch64/predicates.md (aarch64_sve_ptrue_flag): New predicate.
13144 * config/aarch64/aarch64-sve.md: Add a new section describing the
13145 handling of UNSPEC_PTEST.
13146 (pred_<LOGICAL:optab><PRED_ALL:mode>3): Rename to...
13147 (@aarch64_pred_<LOGICAL:optab><PRED_ALL:mode>_z): ...this.
13148 (ptest_ptrue<mode>): Replace with...
13149 (aarch64_ptest<mode>): ...this new pattern.
13150 (cbranch<mode>4): Update after above changes.
13151 (*<LOGICAL:optab><PRED_ALL:mode>3_cc): Use UNSPEC_PTEST instead of
13152 UNSPEC_PTEST_PTRUE.
13153 (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_cc): Likewise.
13154 (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_ptest): Likewise.
13155 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): Likewise.
13156
13157 2019-08-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
13158
13159 PR lto/91287
13160 * builtins.c (builtin_with_linkage_p): New function.
13161 * builtins.h (builtin_with_linkage_p): New function.
13162 * symtab.c (write_symbol): Remove redundant assert.
13163 * lto-streamer-out.c (symtab_node::output_to_lto_symbol_table_p):
13164 Remove FIXME and use builtin_with_linkage_p.
13165
13166 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
13167
13168 PR middle-end/91421
13169 * tree-core.h (function_decl::function_code): Change type to
13170 unsigned int.
13171 * tree.h (DECL_FUNCTION_CODE): Rename old definition to...
13172 (DECL_UNCHECKED_FUNCTION_CODE): ...this.
13173 (DECL_BUILT_IN_CLASS): Make an rvalue macro only.
13174 (DECL_FUNCTION_CODE): New function. Assert that the built-in class
13175 is BUILT_IN_NORMAL.
13176 (DECL_MD_FUNCTION_CODE, DECL_FE_FUNCTION_CODE): New functions.
13177 (set_decl_built_in_function, copy_decl_built_in_function): Likewise.
13178 (fndecl_built_in_p): Change the type of the "name" argument to
13179 unsigned int.
13180 * builtins.c (expand_builtin): Move DECL_FUNCTION_CODE use
13181 after check for DECL_BUILT_IN_CLASS.
13182 * cgraphclones.c (build_function_decl_skip_args): Use
13183 set_decl_built_in_function.
13184 * ipa-param-manipulation.c (ipa_modify_formal_parameters): Likewise.
13185 * ipa-split.c (split_function): Likewise.
13186 * langhooks.c (add_builtin_function_common): Likewise.
13187 * omp-simd-clone.c (simd_clone_create): Likewise.
13188 * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise.
13189 * config/darwin.c (darwin_init_cfstring_builtins): Likewise.
13190 (darwin_fold_builtin): Use DECL_MD_FUNCTION_CODE instead of
13191 DECL_FUNCTION_CODE.
13192 * fold-const.c (operand_equal_p): Compare DECL_UNCHECKED_FUNCTION_CODE
13193 instead of DECL_FUNCTION_CODE.
13194 * lto-streamer-out.c (hash_tree): Use DECL_UNCHECKED_FUNCTION_CODE
13195 instead of DECL_FUNCTION_CODE.
13196 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise.
13197 * print-tree.c (print_node): Use DECL_MD_FUNCTION_CODE when
13198 printing DECL_BUILT_IN_MD. Handle DECL_BUILT_IN_FRONTEND.
13199 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin)
13200 (aarch64_fold_builtin, aarch64_gimple_fold_builtin): Use
13201 DECL_MD_FUNCTION_CODE instead of DECL_FUNCTION_CODE.
13202 * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise.
13203 * config/alpha/alpha.c (alpha_expand_builtin, alpha_fold_builtin):
13204 (alpha_gimple_fold_builtin): Likewise.
13205 * config/arc/arc.c (arc_expand_builtin): Likewise.
13206 * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
13207 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
13208 * config/avr/avr.c (avr_expand_builtin, avr_fold_builtin): Likewise.
13209 * config/bfin/bfin.c (bfin_expand_builtin): Likewise.
13210 * config/c6x/c6x.c (c6x_expand_builtin): Likewise.
13211 * config/frv/frv.c (frv_expand_builtin): Likewise.
13212 * config/gcn/gcn.c (gcn_expand_builtin_1): Likewise.
13213 (gcn_expand_builtin): Likewise.
13214 * config/i386/i386-builtins.c (ix86_builtin_reciprocal): Likewise.
13215 (fold_builtin_cpu): Likewise.
13216 * config/i386/i386-expand.c (ix86_expand_builtin): Likewise.
13217 * config/i386/i386.c (ix86_fold_builtin): Likewise.
13218 (ix86_gimple_fold_builtin): Likewise.
13219 * config/ia64/ia64.c (ia64_fold_builtin): Likewise.
13220 (ia64_expand_builtin): Likewise.
13221 * config/iq2000/iq2000.c (iq2000_expand_builtin): Likewise.
13222 * config/mips/mips.c (mips_expand_builtin): Likewise.
13223 * config/msp430/msp430.c (msp430_expand_builtin): Likewise.
13224 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
13225 * config/nios2/nios2.c (nios2_expand_builtin): Likewise.
13226 * config/nvptx/nvptx.c (nvptx_expand_builtin): Likewise.
13227 * config/pa/pa.c (pa_expand_builtin): Likewise.
13228 * config/pru/pru.c (pru_expand_builtin): Likewise.
13229 * config/riscv/riscv-builtins.c (riscv_expand_builtin): Likewise.
13230 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13231 Likewise.
13232 * config/rs6000/rs6000-call.c (htm_expand_builtin): Likewise.
13233 (altivec_expand_dst_builtin, altivec_expand_builtin): Likewise.
13234 (rs6000_gimple_fold_builtin, rs6000_expand_builtin): Likewise.
13235 * config/rs6000/rs6000.c (rs6000_builtin_md_vectorized_function)
13236 (rs6000_builtin_reciprocal): Likewise.
13237 * config/rx/rx.c (rx_expand_builtin): Likewise.
13238 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
13239 * config/s390/s390.c (s390_expand_builtin): Likewise.
13240 * config/sh/sh.c (sh_expand_builtin): Likewise.
13241 * config/sparc/sparc.c (sparc_expand_builtin): Likewise.
13242 (sparc_fold_builtin): Likewise.
13243 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
13244 * config/spu/spu.c (spu_expand_builtin): Likewise.
13245 * config/stormy16/stormy16.c (xstormy16_expand_builtin): Likewise.
13246 * config/tilegx/tilegx.c (tilegx_expand_builtin): Likewise.
13247 * config/tilepro/tilepro.c (tilepro_expand_builtin): Likewise.
13248 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
13249 (xtensa_expand_builtin): Likewise.
13250
13251 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
13252
13253 PR middle-end/91421
13254 * attribs.c (decl_attributes): Check the DECL_BUILT_IN_CLASS
13255 before the DECL_FUNCTION_CODE.
13256 * calls.c (maybe_warn_alloc_args_overflow): Use fndecl_built_in_p
13257 to check for a BUILT_IN_ALLOCA call.
13258 * ipa-cp.c (ipa_get_indirect_edge_target_1): Likewise for
13259 BUILT_IN_UNREACHABLE. Don't check for a FUNCTION_TYPE.
13260 * ipa-devirt.c (possible_polymorphic_call_target_p): Likewise.
13261 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
13262 * gimple-ssa-isolate-paths.c (is_addr_local): Check specifically
13263 for BUILT_IN_NORMAL functions.
13264 * trans-mem.c (expand_block_edges): Use gimple_call_builtin_p to
13265 test for BUILT_IN_TM_ABORT.
13266 * tree-ssa-ccp.c (optimize_stack_restore): Use fndecl_built_in_p
13267 to check for a BUILT_IN_STACK_RESTORE call.
13268 (optimize_stdarg_builtin): Remove redundant check for GIMPLE_CALL.
13269 * tree-ssa-threadedge.c
13270 (record_temporary_equivalences_from_stmts_at_dest): Check for a
13271 BUILT_IN_NORMAL decl before checking its DECL_FUNCTION_CODE.
13272 * tree-vect-patterns.c (vect_recog_pow_pattern): Use a positive
13273 test for a BUILT_IN_NORMAL call instead of a negative test for
13274 an internal function call.
13275
13276 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
13277
13278 * tree.h (build_vector_a_then_b): Declare.
13279 * tree.c (build_vector_a_then_b): New function.
13280 * fold-const-call.c (fold_while_ult): Likewise.
13281 (fold_const_call): Use it to handle IFN_WHILE_ULT.
13282 * config/aarch64/aarch64-protos.h (AARCH64_FOR_SVPATTERN): New macro.
13283 (aarch64_svpattern): New enum.
13284 * config/aarch64/aarch64-sve.md (mov<PRED_ALL:mode>): Pass
13285 constants through aarch64_expand_mov_immediate.
13286 (*aarch64_sve_mov<PRED_ALL:mode>): Use aarch64_mov_operand rather
13287 than general_operand as the predicate for operand 1.
13288 (while_ult<GPI:mode><PRED_ALL:mode>): Add a '@' marker.
13289 * config/aarch64/aarch64.c (simd_immediate_info::PTRUE): New
13290 insn_type.
13291 (simd_immediate_info::simd_immediate_info): New overload that
13292 takes a scalar_int_mode and an svpattern.
13293 (simd_immediate_info::u): Add a "pattern" field.
13294 (svpattern_token): New function.
13295 (aarch64_get_sve_pred_bits, aarch64_widest_sve_pred_elt_size)
13296 (aarch64_partial_ptrue_length, aarch64_svpattern_for_vl)
13297 (aarch64_sve_move_pred_via_while): New functions.
13298 (aarch64_expand_mov_immediate): Try using
13299 aarch64_sve_move_pred_via_while for predicates that contain N ones
13300 followed by M zeros but that do not correspond to a VLnnn pattern.
13301 (aarch64_sve_pred_valid_immediate): New function.
13302 (aarch64_simd_valid_immediate): Use it instead of dealing directly
13303 with PTRUE and PFALSE.
13304 (aarch64_output_sve_mov_immediate): Handle new simd_immediate_info
13305 forms.
13306
13307 2019-08-13 Iain Sandoe <iain@sandoe.co.uk>
13308
13309 * config/darwin.c (machopic_indirect_call_target): Rename symbol stub
13310 flag.
13311 (darwin_override_options): Likewise.
13312 * config/darwin.h: Likewise.
13313 * config/darwin.opt: Likewise.
13314 * config/i386/i386.c (output_pic_addr_const): Likewise.
13315 * config/rs6000/darwin.h: Likewise.
13316 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise.
13317 * config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ...
13318 ... this TARGET_MACHO_SYMBOL_STUBS.
13319 (FUNCTION_PROFILER):Likewise.
13320 * config/i386/i386.h: Likewise.
13321
13322 2019-08-13 Uroš Bizjak <ubizjak@gmail.com>
13323
13324 * config/i386/i386-expand.c (ix86_expand_vector_extract)
13325 <case E_V2SImode>: Use vec_extr path for
13326 TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
13327 <case E_V8QImode>: Ditto.
13328 * config/i386/mmx.md (*mmx_pextrw_zext): Rename from mmx_pextrw.
13329 Use SWI48 mode iterator. Use %k to output operand 0.
13330 (*mmx_pextrw): New insn pattern.
13331 (*mmx_pextrb): Ditto.
13332 (*mmx_pextrb_zext): Ditto.
13333
13334 2019-08-13 Jonathan Wakely <jwakely@redhat.com>
13335
13336 * target.def (libc_has_function, libc_has_fast_function): Improve
13337 documentation strings.
13338 * doc/tm.texi: Regenerate.
13339
13340 2019-08-13 Caroline Tice <cmtice@google.com>
13341
13342 PR other/91396
13343 * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Only add the
13344 vtv_end.o or vtv_end_preinit.o files if !static.
13345
13346 2019-08-13 Olivier Hainque <hainque@adacore.com>
13347
13348 * rtl.h (tablejump_casesi_pattern): Move declaration to proper spot.
13349
13350 2019-08-13 Olivier Hainque <hainque@adacore.com>
13351
13352 * rtlanal.c (tablejump_casesi_pattern): New function, to
13353 determine if a tablejump insn is a casesi dispatcher. Extracted
13354 from patch_jump_insn.
13355 * rtl.h (tablejump_casesi_pattern): Declare.
13356 * cfgrtl.c (patch_jump_insn): Use it.
13357 * dwarf2cfi.c (create_trace_edges): Use it.
13358
13359 2019-08-13 Wilco Dijkstra <wdijkstr@arm.com>
13360
13361 PR target/81800
13362 * config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF
13363 operand is larger than a long int.
13364
13365 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
13366
13367 * machmode.h (opt_mode::else_mode): New function.
13368 (opt_mode::else_blk): Use it.
13369 * config/aarch64/aarch64-protos.h (aarch64_vq_mode): Declare.
13370 (aarch64_full_sve_mode, aarch64_sve_ld1rq_operand_p): Likewise.
13371 (aarch64_gen_stepped_int_parallel): Likewise.
13372 (aarch64_stepped_int_parallel_p): Likewise.
13373 (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate
13374 argument.
13375 * config/aarch64/aarch64.c
13376 (aarch64_expand_sve_widened_duplicate): Delete.
13377 (aarch64_expand_sve_dupq, aarch64_expand_sve_ld1rq): New functions.
13378 (aarch64_expand_sve_const_vector): Rewrite to handle more cases.
13379 (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate
13380 argument. Use early returns in the !CONST_INT_P handling.
13381 Pass all SVE data vectors to aarch64_expand_sve_const_vector rather
13382 than handling some inline.
13383 (aarch64_full_sve_mode, aarch64_vq_mode): New functions, split out
13384 from...
13385 (aarch64_simd_container_mode): ...here.
13386 (aarch64_gen_stepped_int_parallel, aarch64_stepped_int_parallel_p)
13387 (aarch64_sve_ld1rq_operand_p): New functions.
13388 * config/aarch64/predicates.md (descending_int_parallel)
13389 (aarch64_sve_ld1rq_operand): New predicates.
13390 * config/aarch64/constraints.md (UtQ): New constraint.
13391 * config/aarch64/aarch64.md (UNSPEC_REINTERPRET): New unspec.
13392 * config/aarch64/aarch64-sve.md (mov<SVE_ALL:mode>): Remove the
13393 gen_vec_duplicate from call to aarch64_expand_mov_immediate.
13394 (@aarch64_sve_reinterpret<mode>): New expander.
13395 (*aarch64_sve_reinterpret<mode>): New pattern.
13396 (@aarch64_vec_duplicate_vq<mode>_le): New pattern.
13397 (@aarch64_vec_duplicate_vq<mode>_be): Likewise.
13398 (*sve_ld1rq<Vesize>): Replace with...
13399 (@aarch64_sve_ld1rq<mode>): ...this new pattern.
13400
13401 2019-08-13 Wilco Dijkstra <wdijkstr@arm.com>
13402
13403 * config/aarch64/aarch64.c (generic_tunings): Set function alignment to
13404 16:12.
13405
13406 2019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
13407
13408 * config/msp430/driver-msp430.c (msp430_set_driver_var): New.
13409 * config/msp430/msp430-devices.c (canonicalize_path_dirsep): New.
13410 (msp430_check_path_for_devices): New.
13411 (parse_devices_csv_1): New.
13412 (parse_devices_csv): New.
13413 (msp430_extract_mcu_data): Try to find devices.csv and search for the
13414 MCU data in devices.csv before using the hard-coded data.
13415 Warn if devices.csv isn't found and the MCU wasn't found in the
13416 hard-coded data either.
13417 * config/msp430/msp430.h (DRIVER_SELF_SPECS): Call
13418 msp430_set_driver_var for -mno-warn-devices-csv and -mdevices-csv-loc.
13419 Search for devices.csv on -I and -L paths.
13420 (EXTRA_SPEC_FUNCTIONS): Add msp430_check_path_for_devices and
13421 msp430_set_driver_var.
13422 * config/msp430/msp430.opt: Add -mwarn-devices-csv and
13423 -mdevices-csv-loc=.
13424 * doc/invoke.texi (-mmcu): Document that -I and -L paths are
13425 searched for devices.csv.
13426 (mwarn-devices-csv): Document option.
13427
13428 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
13429
13430 * config/aarch64/aarch64-protos.h (aarch64_output_ptrue): Delete.
13431 * config/aarch64/aarch64-sve.md (*aarch64_sve_mov<PRED_ALL:mode>):
13432 Use a single Dn alternative instead of separate Dz and Dm
13433 alternatives. Use aarch64_output_sve_move_immediate.
13434 * config/aarch64/aarch64.c (aarch64_sve_element_int_mode): New
13435 function.
13436 (aarch64_simd_valid_immediate): Fill in the simd_immediate_info
13437 for predicates too.
13438 (aarch64_output_sve_mov_immediate): Handle predicate modes.
13439 (aarch64_output_ptrue): Delete.
13440
13441 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
13442
13443 * config/aarch64/aarch64.c (simd_immediate_info::insn_type): Add
13444 INDEX.
13445 (simd_immediate_info::value, simd_immediate_info::step)
13446 (simd_immediate_info::modifier, simd_immediate_info::shift): Replace
13447 with...
13448 (simd_immediate_info::u): ...this new union.
13449 (simd_immediate_info::simd_immediate_info): Update accordingly.
13450 (aarch64_output_simd_mov_immediate): Likewise.
13451 (aarch64_output_sve_mov_immediate): Likewise.
13452
13453 2019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
13454
13455 * config.gcc (msp430*-*-*): Add msp430-devices.o to extra_objs and
13456 extra_gcc_objs.
13457 * config/msp430/driver-msp430.c: Remove msp430_mcu_data.
13458 (msp430_select_cpu): New spec function.
13459 (msp430_select_hwmult_lib): Use msp430_extract_mcu_data to extract
13460 MCU data.
13461 * config/msp430/msp430-devices.c: New file.
13462 * config/msp430/msp430-devices.h: New file.
13463 * config/msp430/msp430.c: Remove msp430_mcu_data.
13464 (msp430_option_override): Use msp430_extract_mcu_data to extract
13465 MCU data.
13466 (msp430_use_f5_series_hwmult): Likewise.
13467 (use_32bit_hwmult): Likewise.
13468 (msp430_no_hwmult): Likewise.
13469 * config/msp430/msp430.h (ASM_SPEC): Don't pass -mmcu to the
13470 assembler.
13471 (DRIVER_SELF_SPECS): Call msp430_select_cpu if -mmcu is used without
13472 and -mcpu option.
13473 (EXTRA_SPEC_FUNCTIONS): Add msp430_select_cpu.
13474 * config/msp430/t-msp430: Add rule to build msp430-devices.o.
13475 Remove hard-coded MCU multilib data.
13476
13477 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
13478
13479 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Switch
13480 based on the mode instead of testing properties of it.
13481
13482 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
13483
13484 * doc/md.texi: Document the x and y constraints for AArch64.
13485 * config/aarch64/aarch64.h (FP_LO8_REGNUM_P): New macro.
13486 (FP_LO8_REGS): New reg_class.
13487 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add an entry for FP_LO8_REGS.
13488 * config/aarch64/aarch64.c (aarch64_hard_regno_nregs)
13489 (aarch64_regno_regclass, aarch64_class_max_nregs): Handle FP_LO8_REGS.
13490 * config/aarch64/predicates.md (aarch64_simd_register): Use
13491 FP_REGNUM_P instead of checking the classes manually.
13492 * config/aarch64/constraints.md (y): New constraint.
13493
13494 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
13495
13496 * config/aarch64/iterators.md (perm_insn): Include the "1"/"2" suffix.
13497 (perm_hilo): Remove UNSPEC_ZIP*, UNSEPC_TRN* and UNSPEC_UZP*.
13498 * config/aarch64/aarch64-simd.md
13499 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Rename to..
13500 (aarch64_<PERMUTE:perm_insn><mode>): ...this and remove perm_hilo
13501 from the asm template.
13502 * config/aarch64/aarch64-sve.md
13503 (aarch64_<perm_insn><perm_hilo><PRED_ALL:mode>): Rename to..
13504 (aarch64_<perm_insn><PRED_ALL:mode>): ...this and remove perm_hilo
13505 from the asm template.
13506 (aarch64_<perm_insn><perm_hilo><SVE_ALL:mode>): Rename to..
13507 (aarch64_<perm_insn><SVE_ALL:mode>): ...this and remove perm_hilo
13508 from the asm template.
13509 * config/aarch64/aarch64-simd-builtins.def: Update comment.
13510
13511 2019-08-13 Martin Liska <mliska@suse.cz>
13512
13513 * value-prof.c (gimple_ic_transform): Add new line.
13514 Print details with MSG_NOTE.
13515
13516 2019-08-13 Martin Liska <mliska@suse.cz>
13517
13518 * doc/invoke.texi: Document automatic detection of jobserver.
13519 * lto-wrapper.c (run_gcc): Detect jobserver always.
13520
13521 2019-08-13 Uroš Bizjak <ubizjak@gmail.com>
13522
13523 * config/i386/i386-expand.c (ix86_expand_vector_set)
13524 <case E_V2SImode>: Use vec_merge path for
13525 TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
13526 <case E_V8QImode>: Ditto.
13527 * config/i386/mmx.md (*mmx_pinsrd): New insn pattern.
13528 (*mmx_pinsrb): Ditto.
13529
13530 2019-08-12 Jakub Jelinek <jakub@redhat.com>
13531
13532 PR target/83250
13533 PR target/91340
13534 * config/i386/avxintrin.h (_mm256_zextpd128_pd256,
13535 _mm256_zextps128_ps256, _mm256_zextsi128_si256): New intrinsics.
13536 * config/i386/avx512fintrin.h (_mm512_zextpd128_pd512,
13537 _mm512_zextps128_ps512, _mm512_zextsi128_si512, _mm512_zextpd256_pd512,
13538 _mm512_zextps256_ps512, _mm512_zextsi256_si512): Likewise.
13539
13540 2019-08-12 Richard Biener <rguenther@suse.de>
13541
13542 PR lto/91375
13543 * tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on
13544 flag_devirtualize.
13545
13546 2019-08-12 Richard Biener <rguenther@suse.de>
13547
13548 PR driver/91130
13549 * lto-wrapper.c (get_options_from_collect_gcc_options): Remove
13550 lang_mask option, always use CL_DRIVER.
13551 (get_options_from_collect_gcc_options): Adjust.
13552 (find_and_merge_options): Likewise.
13553 (run_gcc): Likewise.
13554
13555 2019-08-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13556
13557 * ipa-predicate.c (add_condition): Restore inverted test.
13558
13559 2019-08-10 Jakub Jelinek <jakub@redhat.com>
13560
13561 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DEVICE_TYPE.
13562 (enum omp_clause_device_type_kind): New enum.
13563 (struct tree_omp_clause): Add subcode.device_type_kind.
13564 * tree.h (OMP_CLAUSE_DEVICE_TYPE_KIND): Define.
13565 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries
13566 for device_type clause.
13567 (walk_tree_1): Handle OMP_CLAUSE_DEVICE_TYPE.
13568 * tree-pretty-print.c (dump_omp_clause): Likewise.
13569
13570 PR target/91408
13571 * config/i386/mmx.md (usadv8qi): Use register_operand instead of
13572 vector_operand.
13573
13574 2019-08-09 Vladimir Makarov <vmakarov@redhat.com>
13575
13576 * reload1.c (finish_spills): Do not check ira_conflicts_p when
13577 handling spilled pseudos.
13578
13579 2019-08-09 Richard Earnshaw <rearnsha@arm.com>
13580
13581 PR target/91386
13582 * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Use copy_rtx
13583 to preserve the contents of the original insns.
13584
13585 2019-08-09 Richard Earnshaw <rearnsha@arm.com>
13586
13587 * config/arm/arm.md (addsi3_compare_op1): Add 16-bit thumb-2 variants.
13588 (addsi3_compare_op2): Likewise.
13589
13590 2019-08-09 Martin Liska <mliska@suse.cz>
13591
13592 * alias.c (alias_ptr_types_compatible_p): Strengten
13593 type comparison in LTO mode.
13594
13595 2019-08-09 Richard Sandiford <richard.sandiford@arm.com>
13596
13597 PR middle-end/90313
13598 * tree-tailcall.c (find_tail_calls): Reject calls that might
13599 read from an escaped RESULT_DECL.
13600
13601 2019-08-09 Martin Liska <mliska@suse.cz>
13602
13603 * doc/invoke.texi: Document the option value.
13604 * lto-wrapper.c (run_gcc): Set auto_parallel
13605 only with -flto=auto.
13606
13607 2019-08-09 Martin Liska <mliska@suse.cz>
13608
13609 * opts.c (common_handle_option): Error for an invalid argument
13610 to -flto=.
13611
13612 2019-08-09 Martin Liska <mliska@suse.cz>
13613
13614 * ipa-icf.c (sem_function::merge): Define AUTO_DUMP_SCOPE and
13615 use dump_printf to report optimization.
13616 (sem_variable::merge): Likwise.
13617 (sem_item_optimizer::merge_classes): Use dump_printf to report
13618 ICF hits.
13619
13620 2019-08-09 Martin Liska <mliska@suse.cz>
13621
13622 * value-prof.c (gimple_divmod_fixed_value_transform):
13623 Use dump_printf_loc.
13624 (gimple_mod_pow2_value_transform): Likewise.
13625 (gimple_mod_subtract_transform): Likewise.
13626 (init_node_map): Likewise.
13627 (gimple_ic_transform): Likewise.
13628 (gimple_stringops_transform): Likewise.
13629
13630 2019-08-08 Mihailo Stojanovic <mistojanovic@wavecomp.com>
13631
13632 * doc/extend.texi: Add const qualifier to ld intrinsics.
13633
13634 2019-08-08 Segher Boessenkool <segher@kernel.crashing.org>
13635
13636 * config/rs6000/dfp.md (D64_D128): Rename to ...
13637 (DDTD): ... this, throughout.
13638 (dfp_suffix): Rename to ...
13639 (q): ... this, throughout.
13640
13641 2019-08-08 Segher Boessenkool <segher@kernel.crashing.org>
13642
13643 * config/rs6000/dfp.md (D64_D128): Move earlier in the file.
13644 (dfp_suffix): Ditto.
13645 (adddd3, addtd3): Merge to ...
13646 (add<mode>3 for D64_D128): ... this.
13647 (subdd3, subtd3): Merge to ...
13648 (sub<mode>3 for D64_D128): ... this.
13649 (muldd3, multd3): Merge to ...
13650 (mul<mode>3 for D64_D128): ... this.
13651 (divdd3, divtd3): Merge to ...
13652 (div<mode>3 for D64_D128): ... this.
13653 (*cmpdd_internal1, *cmptd_internal1): Merge to ...
13654 (*cmp<mode>_internal1 for D64_D128): ... this.
13655 (ftruncdd2, ftrunctd2): Merge to ...
13656 (ftrunc<mode>2 for D64_D128): ... this.
13657 (fixdddi2, fixtddi2): Merge to ...
13658 (fix<mode>di2 for D64_D128): ... this.
13659
13660 2019-08-08 Jim Wilson <jimw@sifive.com>
13661
13662 PR target/91229
13663 * config/riscv/riscv.c (riscv_flatten_aggregate_field): New arg
13664 ignore_zero_width_bit_field_p. Skip zero size bitfields when true.
13665 Pass into recursive call.
13666 (riscv_flatten_aggregate_argument): New arg. Pass to
13667 riscv_flatten_aggregate_field.
13668 (riscv_pass_aggregate_in_fpr_pair_p): New local warned. Call
13669 riscv_flatten_aggregate_argument twice, with false and true as last
13670 arg. Process result twice. Compare results and warn if different.
13671 (riscv_pass_aggregate_in_fpr_and_gpr_p): Likewise.
13672
13673 2019-08-08 Martin Liska <mliska@suse.cz>
13674
13675 PR bootstrap/91352
13676 * gcc.c (driver::detect_jobserver): Use is_valid_fd.
13677 * lto-wrapper.c (jobserver_active_p): Likewise.
13678
13679 2019-08-08 Martin Liska <mliska@suse.cz>
13680
13681 * cgraphclones.c (set_new_clone_decl_and_node_flags): Drop
13682 IS_OPERATOR_NEW and IS_OPERATOR_DELETE.
13683 (create_version_clone_with_body): Likewise.
13684
13685 2019-08-08 Jakub Jelinek <jakub@redhat.com>
13686
13687 * gimplify.c (omp_add_variable): Use GOVD_PRIVATE | GOVD_EXPLICIT
13688 for VLA helper variables on target data even if not GOVD_FIRSTPRIVATE.
13689 (gimplify_scan_omp_clauses): For OMP_CLAUSE_USE_DEVICE_* use just
13690 GOVD_EXPLICIT flags.
13691 (gimplify_omp_workshare): For OMP_TARGET_DATA move all
13692 OMP_CLAUSE_USE_DEVICE_* clauses to the end of clauses chain.
13693 * omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_USE_DEVICE_*
13694 call install_var_field with mask 11 instead of 3.
13695 (lower_omp_target): For OMP_CLAUSE_USE_DEVICE_* use pass
13696 (splay_tree_key) &DECL_UID (var) to build_sender_ref instead of var.
13697
13698 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
13699
13700 * config/aarch64/constraints.md (Z): Handle floating-point zeros too.
13701 * config/aarch64/predicates.md (aarch64_reg_or_zero): Likewise.
13702
13703 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
13704
13705 * config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): Add
13706 MOVPRFX alternatives. Make the GPR alternatives more expensive
13707 than the FPR ones.
13708
13709 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
13710
13711 * config/aarch64/aarch64-sve.md (fold_extract_last_<mode>):
13712 Disparage the GPR alternative relative to the FPR one.
13713 Fix handling of 8-bit and 16-bit FPR values.
13714
13715 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
13716
13717 * config/aarch64/iterators.md (BITWISEV): Delete.
13718 (SVE_INT_REDUCTION, SVE_FP_REDUCTION): New int iterators.
13719 (optab): Handle UNSPEC_UMAXV, UNSPEC_UMINV, UNSPEC_SMAXV,
13720 UNSPEC_SMINV, UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV,
13721 UNSPEC_FMINNMV, UNSPEC_FMINV.
13722 (bit_reduc_op): Delete.
13723 (sve_int_op): New int attribute.
13724 (sve_fp_op): Handle UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV,
13725 UNSPEC_FMINNMV, UNSPEC_FMINV.
13726 * config/aarch64/aarch64-sve.md
13727 (reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>)
13728 (*reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>)
13729 (reduc_<BITWISEV:optab>_scal_<SVE_I:mode>)
13730 (*reduc_<BITWISEV:optab>_scal_<SVE_I:mode>): Merge into...
13731 (reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>)
13732 (*reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>): ...these
13733 new patterns.
13734 (reduc_plus_scal_<SVE_F:mode>, *reduc_plus_scal_<SVE_I:mode>)
13735 (reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>)
13736 (*reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>): Merge into...
13737 (reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>)
13738 (*reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>): ...these
13739 new patterns.
13740
13741 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
13742
13743 * config/aarch64/aarch64-sve.md (fma<mode>4, *fma<mode>4)
13744 (fnma<mode>4, *fnma<mode>4, fnms<mode>4, *fnms<mode>4)
13745 (fms<mode>4, *fms<mode>4): Replace with...
13746 (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4)
13747 (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): ...these new patterns.
13748 Use unspecs instead of rtx codes.
13749 (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_4)
13750 (*cond_<optab><mode>_any): Add the predicate to SVE_COND_FP_TERNARY.
13751
13752 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
13753
13754 * config/aarch64/iterators.md (SVE_COND_FP_MAXMIN_PUBLIC): New
13755 int iterator.
13756 (maxmin_uns_op): Handle UNSPEC_COND_FMAXNM and UNSPEC_COND_FMINNM.
13757 * config/aarch64/aarch64-sve.md
13758 (<FMAXMIN:su><FMAXMIN:maxmin><SVE_F:mode>3): Rename to...
13759 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): ...this and
13760 use a single unspec for the rhs.
13761 (*<su><maxmin><mode>3): Delete.
13762 (<maxmin_uns><SVE_F:mode>3): Use a single unspec for the rhs.
13763
13764 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
13765
13766 * config/aarch64/iterators.md (UNSPEC_COND_FABS, UNSPEC_COND_FNEG)
13767 (UNSPEC_COND_FRINTA, UNSPEC_COND_FRINTI, UNSPEC_COND_FRINTM)
13768 (UNSPEC_COND_FRINTN, UNSPEC_COND_FRINTP, UNSPEC_COND_FRINTX)
13769 (UNSPEC_COND_FRINTZ, UNSPEC_COND_FSQRT): New unspecs.
13770 (optab, sve_fp_op): Handle them.
13771 (SVE_FP_UNARY): Delete.
13772 (optab): Remove sqrt entry.
13773 (sve_fp_op): Remove neg, abs and sqrt entries.
13774 (SVE_COND_FP_UNARY): New int iterator.
13775 * config/aarch64/aarch64-sve.md (<frint_pattern><mode>2)
13776 (*<frint_pattern><mode>2): Delete.
13777 (<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with...
13778 (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this.
13779 (*<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with...
13780 (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this.
13781
13782 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
13783
13784 * config/aarch64/aarch64-sve.md (*pred_fold_left_plus_<mode>): Delete.
13785
13786 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
13787
13788 * config/aarch64/iterators.md (UNSPEC_COND_ADD): Rename to...
13789 (UNSPEC_COND_FADD): ...this.
13790 (UNSPEC_COND_SUB): Rename to...
13791 (UNSPEC_COND_FSUB): ...this.
13792 (UNSPEC_COND_MUL): Rename to...
13793 (UNSPEC_COND_FMUL): ...this.
13794 (UNSPEC_COND_DIV): Rename to...
13795 (UNSPEC_COND_FDIV): ...this.
13796 (UNSPEC_COND_MAX): Rename to...
13797 (UNSPEC_COND_FMAXNM): ...this.
13798 (UNSPEC_COND_MIN): Rename to...
13799 (UNSPEC_COND_FMINNM): ...this.
13800 (UNSPEC_COND_LT): Rename to...
13801 (UNSPEC_COND_FCMLT): ...this.
13802 (UNSPEC_COND_LE): Rename to...
13803 (UNSPEC_COND_FCMLE): ...this.
13804 (UNSPEC_COND_EQ): Rename to...
13805 (UNSPEC_COND_FCMEQ): ...this.
13806 (UNSPEC_COND_NE): Rename to...
13807 (UNSPEC_COND_FCMNE): ...this.
13808 (UNSPEC_COND_GE): Rename to...
13809 (UNSPEC_COND_FCMGE): ...this.
13810 (UNSPEC_COND_GT): Rename to...
13811 (UNSPEC_COND_FCMGT): ...this.
13812 (SVE_COND_FP_BINARY, SVE_COND_FP_CMP, optab, cmp_op, sve_fp_op)
13813 (sve_fp_op_rev): Update accordingly.
13814 * config/aarch64/aarch64.c (aarch64_unspec_cond_code): Likewise.
13815
13816 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
13817
13818 * config/aarch64/aarch64-sve.md: Reorganize contents and add
13819 banner comments.
13820 * config/aarch64/check-sve-md.awk: New file.
13821 * config/aarch64/t-aarch64 (s-check-sve-md): New rule.
13822 (insn-conditions.md): Depend on it.
13823
13824 2019-08-07 Uroš Bizjak <ubizjak@gmail.com>
13825
13826 PR target/91385
13827 * config/i386/sse.md (*negsi2_1_zext): Simplify insn pattern.
13828 (*negsi2_cmpz_zext): Ditto.
13829
13830 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
13831
13832 * config/aarch64/iterators.md (commutative): Remove.
13833
13834 2019-08-07 Richard Earnshaw <rearnsha@arm.com>
13835
13836 PR driver/91130
13837 * lto-wrapper.c (find_and_merge_options): Use CL_DRIVER when
13838 processing COLLECT_GCC_OPTIONS.
13839 (run_gcc): Likewise.
13840
13841 2019-08-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
13842
13843 PR tree-optimization/91109
13844 * lra-remat.c (update_scratch_ops): Remove assignment of the
13845 hard register.
13846
13847 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
13848
13849 * data-streamer.h (streamer_write_poly_uint64): Declare.
13850 (streamer_read_poly_uint64): Likewise.
13851 * data-streamer-in.c (streamer_read_poly_uint64): New function.
13852 * data-streamer-out.c (streamer_write_poly_uint64): Likewise.
13853 * ipa-predicate.h (condition::size): Turn into a poly_int64.
13854 (add_condition): Take a poly_int64 size.
13855 * ipa-predicate.c (add_condition): Likewise.
13856 * ipa-prop.h (ipa_load_from_parm_agg): Take a poly_int64 size pointer.
13857 * ipa-prop.c (ipa_load_from_parm_agg): Likewise.
13858 (ipcp_modif_dom_walker::before_dom_children): Update accordingly.
13859 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Handle
13860 condition::size as a poly_int64.
13861 (unmodified_parm_1): Take a poly_int64 size pointer.
13862 (unmodified_parm): Likewise.
13863 (unmodified_parm_or_parm_agg_item): Likewise.
13864 (set_cond_stmt_execution_predicate): Update accordingly.
13865 (set_switch_stmt_execution_predicate): Likewise.
13866 (will_be_nonconstant_expr_predicate): Likewise.
13867 (will_be_nonconstant_predicate): Likewise.
13868 (inline_read_section): Stream condition::size as a poly_int.
13869 (ipa_fn_summary_write): Likewise.
13870
13871 2019-08-07 Martin Liska <mliska@suse.cz>
13872
13873 * fold-const.c (twoval_comparison_p): Replace int
13874 with bool as a return type.
13875 (simple_operand_p): Likewise.
13876 (operand_equal_p): Replace int with bool as a return type.
13877 * fold-const.h (operand_equal_p): Likewise.
13878
13879 2019-08-07 Jakub Jelinek <jakub@redhat.com>
13880
13881 * tree-core.h (enum omp_clause_code): Adjust OMP_CLAUSE_USE_DEVICE_PTR
13882 OpenMP description. Add OMP_CLAUSE_USE_DEVICE_ADDR clause.
13883 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries
13884 for OMP_CLAUSE_USE_DEVICE_ADDR clause.
13885 (walk_tree_1): Handle OMP_CLAUSE_USE_DEVICE_ADDR.
13886 * tree-pretty-print.c (dump_omp_clause): Likewise.
13887 * tree-nested.c (convert_nonlocal_omp_clauses,
13888 convert_local_omp_clauses): Likewise.
13889 * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses):
13890 Likewise.
13891 * omp-low.c (scan_sharing_clauses, lower_omp_target): Likewise.
13892 Treat OMP_CLAUSE_USE_DEVICE_ADDR like OMP_CLAUSE_USE_DEVICE_PTR
13893 clause with array or reference to array types, no matter what type
13894 except for reference it has.
13895
13896 2019-08-07 Kewen Lin <linkw@gcc.gnu.org>
13897
13898 * config/rs6000/vector.md (vrotr<mode>3): New define_expand.
13899
13900 2019-08-07 Kito Cheng <kito.cheng@sifive.com>
13901
13902 * config/riscv/multilib-generator: (canonical_order): Add 'g'.
13903 (arch_canonicalize): Support rv32g and rv64g and fix error
13904 handling.
13905
13906 2019-08-06 Martin Liska <mliska@suse.cz>
13907
13908 * cgraph.c (cgraph_node::dump): Dump DECL_IS_OPERATOR_NEW_P
13909 and DECL_IS_OPERATOR_DELETE_P.
13910
13911 2019-08-06 Jakub Jelinek <jakub@redhat.com>
13912
13913 * tree.h (OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV): Rename to ...
13914 (OMP_CLAUSE_LASTPRIVATE_LOOP_IV): ... this. Adjust comment.
13915 * gimplify.c (gimple_add_tmp_var): In SIMD contexts, turn addressable
13916 new vars into GOVD_PRIVATE rather than GOVD_LOCAL.
13917 (gimplify_omp_for): Don't do C++ random access iterator clause
13918 adjustments on combined constructs from OMP_LOOP. For OMP_LOOP,
13919 don't predetermine the artificial iterator in case of C++ random
13920 access iterators as lastprivate, but private. For OMP_LOOP, force
13921 bind expr around simd body and force for_pre_body before the
13922 construct. Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV instead of
13923 OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV.
13924 (gimplify_omp_loop): Add firstprivate clauses on OMP_PARALLEL for
13925 diff var of C++ random access iterators. Handle
13926 OMP_CLAUSE_FIRSTPRIVATE. For OMP_CLAUSE_LASTPRIVATE_LOOP_IV, if
13927 not outermost also add OMP_CLAUSE_FIRSTPRIVATE, and in both cases
13928 clear OMP_CLAUSE_LASTPRIVATE_LOOP_IV on the lastprivate clause
13929 on the OMP_FOR and OMP_DISTRIBUTE constructs if any.
13930 * omp-low.c (lower_rec_input_clauses): For
13931 OMP_CLAUSE_LASTPRIVATE_LOOP_IV on simd copy construct the private
13932 variables instead of default constructing them.
13933 (lower_lastprivate_clauses): Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV
13934 instead of OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV and move the
13935 is_taskloop_ctx check from the assert to the guarding condition.
13936
13937 2019-08-06 Kito Cheng <kito.cheng@sifive.com>
13938
13939 * config/riscv/multilib-generator: (canonical_order): New.
13940 (arch_canonicalize): Dito.
13941 Apply arch_canonicalize for alts.
13942
13943 2019-08-05 Martin Sebor <msebor@redhat.com>
13944
13945 * doc/extend.texi (Common Variable Attributes): Document alias
13946 attribute.
13947
13948 2019-08-05 Marek Polacek <polacek@redhat.com>
13949
13950 PR c++/91338 - Implement P1161R3: Deprecate a[b,c].
13951 * doc/invoke.texi: Document -Wcomma-subscript.
13952
13953 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
13954
13955 * tree-core.h (tree_function_decl): Make function_code an
13956 independent field. Group the remaining bitfields into bytes
13957 and move decl_type so that it contines to be at a byte boundary.
13958 Leave 12 bits for future expansion.
13959
13960 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
13961
13962 * gimple-fold.c (gimple_fold_mask_load_store_mem_ref)
13963 (gimple_fold_mask_load, gimple_fold_mask_store): New functions.
13964 (gimple_fold_call): Use them to fold IFN_MASK_LOAD and
13965 IFN_MASK_STORE.
13966
13967 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
13968
13969 * gimple.h (gimple_move_vops): Declare.
13970 * gimple.c (gimple_move_vops): New function
13971 * gimple-fold.c (replace_call_with_call_and_fold)
13972 (gimple_fold_builtin_memory_op, gimple_fold_builtin_memset)
13973 (gimple_fold_builtin_stpcpy, fold_builtin_atomic_compare_exchange)
13974 (gimple_fold_call): Use it.
13975 * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise.
13976 * tree-call-cdce.c (use_internal_fn): Likewise.
13977 * tree-if-conv.c (predicate_load_or_store): Likewise.
13978 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
13979 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
13980 * tree-ssa-propagate.c (finish_update_gimple_call): Likewise.
13981 (update_call_from_tree): Likewise.
13982 * tree-vect-stmts.c (vectorizable_load): Likewise.
13983 * tree-vectorizer.c (adjust_simduid_builtins): Likewise.
13984
13985 2019-08-05 Martin Liska <mliska@suse.cz>
13986
13987 PR c++/91334
13988 * tree-ssa-dce.c (propagate_necessity): Handle new operators
13989 with not arguments.
13990 (eliminate_unnecessary_stmts): Likewise.
13991
13992 2019-08-05 Richard Biener <rguenther@suse.de>
13993
13994 PR middle-end/91169
13995 * fold-const.c (get_array_ctor_element_at_index): Create
13996 offset_ints according to the sign of the index type and treat
13997 that as signed if it is obviously so.
13998
13999 2019-08-05 Jakub Jelinek <jakub@redhat.com>
14000
14001 PR target/91341
14002 * config/i386/avxintrin.h (_mm256_loadu2_m128, _mm256_storeu2_m128,
14003 _mm256_loadu2_m128d, _mm256_storeu2_m128d, _mm256_loadu2_m128i,
14004 _mm256_storeu2_m128i): New function.
14005
14006 2019-08-05 Kito Cheng <kito.cheng@sifive.com>
14007
14008 * config/riscv/riscv.c (riscv_promote_function_mode): New.
14009 (TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode.
14010
14011 2019-08-05 Alan Modra <amodra@gmail.com>
14012
14013 PR target/91349
14014 * config/rs6000/freebsd64.h (CPLUSPLUS_CPP_SPEC),
14015 (LINK_GCC_C_SEQUENCE_SPEC): Undef.
14016
14017 2019-08-04 Gerald Pfeifer <gerald@pfeifer.com>
14018
14019 * doc/install.texi (Prerequisites): Remove reference to Tcl 8.6
14020 bug that was fixed in Tcl 8.6.1.
14021
14022 2019-08-02 Michael Meissner <meissner@linux.ibm.com>
14023
14024 * config/rs6000/future.md: New file.
14025 * config/rs6000/rs6000.md: Include future.md.
14026 * config/rs6000/t-rs6000 (MD_INCLUDES): Add future.md.
14027
14028 2019-08-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
14029
14030 * function.c (assign_parm_adjust_stack_rtl): Revise STRICT_ALIGNMENT
14031 check to use targetm.slow_unaligned_access instead.
14032
14033 * function.c (assign_param_data_one): Remove unused data members.
14034
14035 2019-08-02 Steve Ellcey <sellcey@marvell.com>
14036
14037 * omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to
14038 build_distinct_type_copy.
14039 (simd_clone_adjust_argument_types): Ditto.
14040 (simd_clone_adjust): Call build_distinct_type_copy here.
14041 (expand_simd_clones): Ditto.
14042
14043 2019-08-02 Uroš Bizjak <ubizjak@gmail.com>
14044
14045 PR target/91201
14046 * config/i386/sse.md (*vec_extractv16qi_zext): New insn pattern.
14047
14048 2019-08-02 Alexander Monakov <amonakov@ispras.ru>
14049
14050 * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Simplify casts
14051 from 'const void *'.
14052 (sort_locs_in_loop_postorder_cmp): Likewise.
14053
14054 2019-08-02 Eric Botcazou <ebotcazou@adacore.com>
14055
14056 * doc/invoke.texi (hot-bb-count-fraction): Rework description.
14057 (hot-bb-count-ws-permille): Likewise.
14058 (hot-bb-frequency-fraction): Likewise.
14059 (unlikely-bb-count-fraction): Likewise.
14060 * params.def (hot-bb-count-fraction): Rework description.
14061 (hot-bb-count-ws-permille): Likewise.
14062 (hot-bb-frequency-fraction): Likewise.
14063 (unlikely-bb-count-fraction): Likewise. Remove min and max values.
14064 * predict.c (get_hot_bb_threshold): Deal with 0 HOT_BB_COUNT_FRACTION.
14065
14066 2019-08-02 Uroš Bizjak <ubizjak@gmail.com>
14067
14068 PR target/91323
14069 * config/i386/i386-expand.c (ix86_unordered_fp_compare) <case LTGT>:
14070 Return false.
14071
14072 2019-08-02 Richard Biener <rguenther@suse.de>
14073
14074 * vec.h (vec::sort): Add gcc_qsort_r support.
14075 (vec::bsearch): Add an overload with gcc_qsort_r style callbacks.
14076 * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Adjust
14077 to gcc_qsort_r style callback.
14078 (sort_locs_in_loop_postorder_cmp): Likewise.
14079 (analyze_memory_references): Use gcc_sort_r interfaces.
14080 (find_ref_loc_in_loop_cmp): Use new bsearch overload.
14081
14082 2019-08-02 Martin Liska <mliska@suse.cz>
14083
14084 PR lto/91313
14085 * gcc.c (driver::maybe_run_linker): Call detect_jobserver
14086 to detect working job server.
14087 (driver::detect_jobserver): Test whether jobserver
14088 is active from GCC driver. That will prevent situation where
14089 GCC is invoked from a LD plugin and the linker already uses
14090 file descriptors suggested by make. That leads to a wrong
14091 detection.
14092 * gcc.h (driver): Add detect_jobserver.
14093 * lto-wrapper.c (jobserver_active_p): Simplify sscanf by
14094 not scanning for --jobserver-auth prefix.
14095
14096 2019-08-02 Jakub Jelinek <jakub@redhat.com>
14097
14098 PR tree-optimization/91201
14099 * config/i386/i386-expand.c (ix86_expand_vector_extract): For elt == 0
14100 V16QImode extraction without sse4.1 try to use V4SImode lowpart
14101 extraction.
14102
14103 2019-08-01 Martin Sebor <msebor@redhat.com>
14104
14105 PR c++/90947
14106 * tree.c (type_initializer_zero_p): Define.
14107 * tree.h (type_initializer_zero_p): New function.
14108
14109 2019-08-01 Eric Botcazou <ebotcazou@adacore.com>
14110
14111 * cfgrtl.c (relink_block_chain): Add line returns in dump file.
14112
14113 2019-08-01 Eric Botcazou <ebotcazou@adacore.com>
14114
14115 * cgraph.h (cgraph_edge::maybe_hot_p): Tweak comment.
14116 * cgraph.c (cgraph_edge::maybe_hot_p): Likewise. Remove useless test.
14117 * predict.c (maybe_hot_count_p): Likewise.
14118 (maybe_hot_bb_p): Tweak comment.
14119 (maybe_hot_edge_p): Likewise.
14120 (probably_never_executed): Likewise. Minor tweak.
14121 (probably_never_executed_bb_p): Likewise.
14122 (unlikely_executed_edge_p): Likewise.
14123 (probably_never_executed_edge_p): Likewise.
14124 (optimize_function_for_size_p): Likewise.
14125 (optimize_function_for_speed_p): Likewise.
14126 (function_optimization_type): Likewise.
14127 (optimize_bb_for_size_p): Likewise.
14128 (optimize_bb_for_speed_p): Likewise.
14129 (bb_optimization_type): Likewise.
14130 (optimize_edge_for_size_p): Likewise.
14131 (optimize_edge_for_speed_p): Likewise.
14132 (optimize_insn_for_size_p): Likewise.
14133 (optimize_insn_for_speed_p): Likewise.
14134 (optimize_loop_for_size_p): Likewise.
14135 (optimize_loop_for_speed_p): Likewise.
14136 (optimize_loop_nest_for_speed_p): Likewise.
14137 (optimize_loop_nest_for_size_p): Likewise.
14138 (predictable_edge_p): Likewise.
14139 (handle_missing_profiles): Minor tweak.
14140
14141 2019-08-01 Michael Meissner <meissner@linux.ibm.com>
14142
14143 * config/rs6000/predicates.md (pcrel_external_address): Update
14144 comment.
14145
14146 2019-08-01 Uroš Bizjak <ubizjak@gmail.com>
14147
14148 PR target/85693
14149 * config/i386/mmx.md (usadv8qi): New expander.
14150
14151 2019-08-01 Matthew Beliveau <mbelivea@redhat.com>
14152
14153 PR c++/90590
14154 * c-warn.c (c_do_switch_warnings): Suppress warning for enumerators
14155 with reserved names that are in a system header.
14156
14157 2019-08-01 Uroš Bizjak <ubizjak@gmail.com>
14158
14159 * config/i386/mmx.md (vec_extractv2si_0): Add (r,x) alternative.
14160 (*vec_extractv2si_0_zext_sse4): New insn pattern.
14161 (*vec_extractv2si_0_zext): Ditto.
14162 (*vec_extractv2si_1): Add (rm,x) alternative.
14163 (*vec_extractv2si_1_zext): New insn pattern.
14164 (*vec_extractv2si_zext_mem): Add "TARGET_MMX || TARGET_MMX_WITH_SSE"
14165 insn constraint.
14166
14167 2019-08-01 Richard Biener <rguenther@suse.de>
14168
14169 * domwalk.c (bb_postorder): Remove static variable.
14170 (cmp_bb_postorder): Adjust.
14171 (sort_bbs_postorder): Adjust and use gcc_sort_r.
14172 (dom_walker::walk): Adjust.
14173
14174 2019-08-01 Alexander Monakov <amonakov@ispras.ru>
14175
14176 * sort.cc (sort_r_ctx): New struct.
14177 (reorder23): Make templated on context type.
14178 (reorder45): Ditto.
14179 (cmp1): Ditto. Adjust signature.
14180 (netsort): Ditto.
14181 (mergesort): Ditto.
14182 [CHECKING_P] (cmp2to3): New static function. Use it...
14183 (gcc_qsort) [CHECKING_P]: ...here.
14184 (gcc_sort_r): New function.
14185 * system.h (sort_r_cmp_fn): New function typedef.
14186 (qsort_chk): Adjust signature.
14187 (gcc_sort_r): Declare.
14188 * vec.c (qsort_chk_error): Adjust.
14189 (qsort_chk): Adjust.
14190
14191 2019-08-01 Richard Biener <rguenther@suse.de>
14192
14193 * tree-ssa-pre.c (has_abnormal_preds): Remove global var.
14194 (compute_antic): Localize it here.
14195
14196 2019-07-31 Maxim Blinov <maxim.blinov@embecosm.com>
14197
14198 * common/config/riscv/riscv-common.c: Check -march string ends
14199 with null.
14200
14201 2019-07-31 Alexander Monakov <amonakov@ispras.ru>
14202
14203 * ipa-devirt.c (type_warning_cmp): Make static.
14204 (decl_warning_cmp): Ditto.
14205
14206 2019-07-31 Peter Bergner <bergner@linux.ibm.com>
14207
14208 PR target/91050
14209 * config/rs6000/rs6000.opt (mdejagnu-cpu=): Delete option.
14210 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
14211 use of deleted rs6000_dejagnu_cpu_index variable.
14212 * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Define.
14213 (SUBTARGET_DRIVER_SELF_SPECS): Likewise.
14214 * config/darwin.h (DRIVER_SELF_SPECS): Rename from this ...
14215 (SUBTARGET_DRIVER_SELF_SPECS): ...to this.
14216 * config/i386/i386.h (DRIVER_SELF_SPECS): Define.
14217 (SUBTARGET_DRIVER_SELF_SPECS): Likewise.
14218
14219 2019-07-31 Richard Biener <rguenther@suse.de>
14220
14221 PR tree-optimization/91280
14222 * tree-ssa-structalias.c (get_constraint_for_component_ref):
14223 Decompose MEM_REF manually for offset handling.
14224
14225 2019-07-31 Richard Biener <rguenther@suse.de>
14226
14227 PR tree-optimization/91293
14228 * tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands
14229 of reduction stmts.
14230
14231 2019-07-31 Matt Thomas <matt@3am-software.com>
14232 Nick Hudson <nick@nthcliff.demon.co.uk>
14233 Matthew Green <mrg@eterna.com.au>
14234 Maya Rashish <coypu@sdf.org>
14235
14236 * config.gcc (hppa*-*-netbsd*): New target.
14237 * config/pa/pa-netbsd.h: New file.
14238 * config/pa/pa32-netbsd.h: New file.
14239
14240 2019-07-31 Jakub Jelinek <jakub@redhat.com>
14241
14242 PR tree-optimization/91201
14243 * config/i386/mmx.md (reduc_plus_scal_v8qi): New expander.
14244
14245 2019-07-31 Andrew Stubbs <ams@codesourcery.com>
14246
14247 * config/gcn/gcn-valu.md
14248 (scatter<mode>_insn_1offset<exec_scatter>): Remove s_waitcnt.
14249 (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise.
14250 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
14251 * config/gcn/gcn.c (gcn_md_reorg): Add delayeduse and reads to
14252 struct ilist. Add nops for delayeduse insns.
14253 * config/gcn/gcn.md (delayeduse): New attribute.
14254 (*movbi): Remove s_waitcnt from stores.
14255 (*mov<mode>_insn): Likewise.
14256 (*movti_insn): Likewise. Add delayeduse attribute.
14257 (sync_compare_and_swap<mode>_insn): Add delayeduse attribute.
14258 (atomic_store<mode>): Remove or adjust s_waitcnt.
14259
14260 2019-07-31 Richard Biener <rguenther@suse.de>
14261
14262 * vr-values.h (vr_values::swap_vr_value): New.
14263 (vr_values::free_value_range): likewise.
14264 * vr-values.c (vr_values::swap_vr_value): Implement.
14265 * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::pop_value_range):
14266 Do not return a range or take a var.
14267 (evrp_range_analyzer::stack): Change back to recording a non-const
14268 value_range *.
14269 * gimple-ssa-evrp-analyze.c
14270 (evrp_range_analyzer::record_ranges_from_stmt): Free unused
14271 value-range.
14272 (evrp_range_analyzer::pop_to_marker): Adjust.
14273 (evrp_range_analyzer::push_value_range): Use new swap_vr_value.
14274 (evrp_range_analyzer::pop_value_range): Likewise. Free the
14275 no longer needed value-range.
14276
14277 2019-07-31 Martin Liska <mliska@suse.cz>
14278
14279 * tree-ssa-dce.c (propagate_necessity): Delete operator can
14280 have size and (or) alignment as 2nd and later arguments.
14281 Mark all of them as necessary.
14282
14283 2019-07-31 Richard Biener <rguenther@suse.de>
14284
14285 PR tree-optimization/91178
14286 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
14287 Use tail-recursion.
14288
14289 2019-07-31 Jakub Jelinek <jakub@redhat.com>
14290
14291 PR tree-optimization/91201
14292 * config/i386/sse.md (reduc_plus_scal_v16qi): New expander.
14293 (REDUC_PLUS_MODE): Add V32QImode for TARGET_AVX and V64QImode for
14294 TARGET_AVX512F.
14295 (reduc_plus_scal_<mode>): Improve formatting by introducing
14296 a temporary.
14297
14298 2019-07-31 Sudakshina Das <sudi.das@arm.com>
14299
14300 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): Add
14301 AARCH64_TME_BUILTIN_TSTART, AARCH64_TME_BUILTIN_TCOMMIT,
14302 AARCH64_TME_BUILTIN_TTEST and AARCH64_TME_BUILTIN_TCANCEL.
14303 (aarch64_init_tme_builtins): New.
14304 (aarch64_init_builtins): Call aarch64_init_tme_builtins.
14305 (aarch64_expand_builtin_tme): New.
14306 (aarch64_expand_builtin): Handle TME builtins.
14307 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
14308 __ARM_FEATURE_TME when enabled.
14309 * config/aarch64/aarch64-option-extensions.def: Add "tme".
14310 * config/aarch64/aarch64.h (AARCH64_FL_TME, AARCH64_ISA_TME): New.
14311 (TARGET_TME): New.
14312 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_TTEST.
14313 (define_c_enum "unspecv"): Add UNSPECV_TSTART, UNSPECV_TCOMMIT and
14314 UNSPECV_TCANCEL.
14315 (tstart, ttest, tcommit, tcancel): New instructions.
14316 * config/aarch64/arm_acle.h (__tstart, __tcommit): New.
14317 (__tcancel, __ttest): New.
14318 (_TMFAILURE_REASON, _TMFAILURE_RTRY, _TMFAILURE_CNCL): New macro.
14319 (_TMFAILURE_MEM, _TMFAILURE_IMP, _TMFAILURE_ERR): Likewise.
14320 (_TMFAILURE_SIZE, _TMFAILURE_NEST, _TMFAILURE_DBG): Likewise.
14321 (_TMFAILURE_INT, _TMFAILURE_TRIVIAL): Likewise.
14322 * config/arm/types.md: Add new tme type attr.
14323 * doc/invoke.texi: Document "tme".
14324
14325 2019-07-31 Joel Hutton <Joel.Hutton@arm.com>
14326
14327 * config/arm/arm_cmse.h (cmse_nonsecure_caller): Add
14328 warn_unused_result attribute.
14329 (cmse_check_address_range): Add warn_unused_result attribute.
14330
14331 2019-07-31 Richard Biener <rguenther@suse.de>
14332
14333 PR tree-optimization/91257
14334 * tree-vrp.c (union_ranges): Unify equality and less tests
14335 by using compare_values. Re-order cheap tests first.
14336
14337 2019-07-31 Jakub Jelinek <jakub@redhat.com>
14338
14339 PR middle-end/91301
14340 * gimplify.c (gimplify_omp_for): If for class iterator on
14341 distribute parallel for there is no data sharing clause
14342 on inner_for_stmt, look for private clause on combined
14343 parallel too and if found, move it to inner_for_stmt.
14344
14345 2019-07-31 Richard Sandiford <richard.sandiford@arm.com>
14346
14347 * lra-int.h (lra_operand_data): Remove early_clobber field.
14348 (lra_insn_reg): Likewise.
14349 * lra.c (debug_operand_data): Update accordingly.
14350 (setup_operand_alternative): Likewise.
14351 (new_insn_reg): Likewise. Remove early_clobber parameter.
14352 (collect_non_operand_hard_regs): Update call accordingly.
14353 Don't assign to lra_insn_reg::early_clobber.
14354 (add_regs_to_insn_regno_info): Remove early_clobber parameter
14355 and update calls to new_insn_reg.
14356 (lra_update_insn_regno_info): Update calls accordingly.
14357 * lra-constraints.c (update_and_check_small_class_inputs): Take the
14358 alternative number as a parameter and test whether the operand
14359 is earlyclobbered in that particular alternative.
14360 (process_alt_operands): Update call accordingly. Use per-alternative
14361 checks for earyclobber here too.
14362 * lra-lives.c (reg_early_clobber_p): Check early_clobber_alts
14363 against zero for IRA_UNKNOWN_ALT.
14364
14365 2019-07-30 Uroš Bizjak <ubizjak@gmail.com>
14366
14367 * config/alpha/alpha.c (alpha_option_override): Quote a C type.
14368
14369 2019-07-30 Wilco Dijkstra <wdijkstr@arm.com>
14370
14371 * config/arm/thumb2.md (thumb2_movsi_insn): Adjust literal offset.
14372 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
14373
14374 2019-07-30 Martin Liska <mliska@suse.cz>
14375
14376 PR ipa/89330
14377 * cgraph.c (cgraph_edge::make_direct): Use
14378 edge->indirect_unknown_callee as edge->resolve_speculation can
14379 deallocate edge which is this pointer.
14380
14381 2019-07-30 Richard Biener <rguenther@suse.de>
14382
14383 PR tree-optimization/91257
14384 * bitmap.c (bitmap_ior_and_compl_into): Open-code.
14385
14386 2019-07-30 Martin Liska <mliska@suse.cz>
14387
14388 * doc/invoke.texi: Document new behavior.
14389 * lto-wrapper.c (cpuset_popcount): New function
14390 is a copy of libgomp/config/linux/proc.c.
14391 (init_num_threads): Likewise.
14392 (run_gcc): Automatically detect core count for -flto.
14393 (jobserver_active_p): New function.
14394
14395 2019-07-30 Richard Biener <rguenther@suse.de>
14396
14397 PR tree-optimization/91257
14398 * bitmap.h (bitmap_ior_into_and_free): Declare.
14399 * bitmap.c (bitmap_list_unlink_element): Add defaulted param
14400 whether to add the unliked element to the freelist.
14401 (bitmap_list_insert_element_after): Add defaulted param for
14402 an already allocated element.
14403 (bitmap_ior_into_and_free): New function.
14404 * tree-ssa-structalias.c (condense_visit): Reduce the
14405 ponts-to and edge bitmaps of the SCC members in a
14406 logarithmic fashion rather than all to one.
14407
14408 2019-07-30 Richard Sandiford <richard.sandiford@arm.com>
14409
14410 * tree-ssa-math-opts.c (convert_mult_to_fma): Add a mul_cond
14411 parameter. When nonnull, make sure that the addition or subtraction
14412 has the same condition.
14413 (math_opts_dom_walker::after_dom_children): Try convert_mult_to_fma
14414 for CFN_COND_MUL too.
14415
14416 2019-07-30 Richard Biener <rguenther@suse.de>
14417
14418 PR tree-optimization/91291
14419 * tree-ssa-sccvn.c (rpo_elim::eliminate_push_avail): Ignore
14420 constant values.
14421
14422 2019-07-30 Jakub Jelinek <jakub@redhat.com>
14423
14424 PR middle-end/91216
14425 * omp-low.c (global_nonaddressable_vars): New variable.
14426 (use_pointer_for_field): For global decls, if they are non-addressable,
14427 remember it in the global_nonaddressable_vars bitmap, if they are
14428 addressable and in the global_nonaddressable_vars bitmap, ignore their
14429 TREE_ADDRESSABLE bit.
14430 (omp_copy_decl_2): Clear TREE_ADDRESSABLE also on private copies of
14431 vars in global_nonaddressable_vars bitmap.
14432 (execute_lower_omp): Free global_nonaddressable_vars bitmap.
14433
14434 PR target/91150
14435 * config/i386/i386-expand.c (expand_vec_perm_blend): Change mask type
14436 from unsigned to unsigned HOST_WIDE_INT. For E_V64QImode cast
14437 comparison to unsigned HOST_WIDE_INT before shifting it left.
14438
14439 2019-07-30 Uroš Bizjak <ubizjak@gmail.com>
14440
14441 * config/i386/i386.md (movstrict<mode>): Use register_operand
14442 predicate for operand 0. Add expander condition. Assert that
14443 operand 0 is a SUBREG RTX.
14444 (*movstrict<mode>_1): Use register_operand predicate for operand 0.
14445 Update operand constraints and insn condition.
14446 (zero_extend<mode>si2_and): Do not call gen_movstrict<mode>.
14447 (zero_extendqihi2_and): Do not call gen_movstrictqi.
14448 (*setcc_qi_slp): Use register_operand predicate for operand 0.
14449 Update operand 0 constraints.
14450 (setcc_qi_slp splitters): Use register_operand predicate for operand 0.
14451
14452 2019-07-29 Jozef Lawrynowicz <jozef.l@mittosystems.com>
14453
14454 * config/msp430/msp430.h (DRIVER_SELF_SPECS): Define and emit errors
14455 when -m{code,data}-region are used without -mlarge.
14456 * config/msp430/msp430.c (msp430_option_override): Error when a
14457 non-default code or data region is used without -mlarge.
14458 (msp430_section_attr): Emit a warning and do not add upper/lower/either
14459 attributes when they are used without -mlarge.
14460
14461 2019-07-29 Jozef Lawrynowicz <jozef.l@mittosystems.com>
14462
14463 PR target/70320
14464 * config/msp430/msp430.h: Define ADDITIONAL_REGISTER_NAMES.
14465
14466 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
14467
14468 PR middle-end/91242
14469 * wide-int.h (generic_wide_int::sext_elt): New function.
14470 * inchash.h (hash::add_wide_int): Use it instead of elt.
14471
14472 2019-07-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14473
14474 * config/arm/arm-builtins.c (acle_builtin_data): Expand VAR1 to
14475 CODE_FOR_arm_##.
14476 * config/arm/arm.md (<crc_variant>): Rename to...
14477 (arm_<crc_variant>): ... This.
14478 (<cdp>): Rename to...
14479 (arm_<cdp>): ... This.
14480 (<ldc>): Rename to...
14481 (arm_<ldc>): ... This.
14482 (<stc>): Rename to...
14483 (arm_<stc>): ... This.
14484 (<mcr>): Rename to...
14485 (arm_<mcr>): ... This.
14486 (<mrc>): Rename to...
14487 (arm_<mrc>): ... This.
14488 (<mcrr>): Rename to...
14489 (arm_<mcrr>): ... This.
14490 (<mrrc>): Rename to...
14491 (arm_<mrrc>): ... This.
14492
14493 2019-07-29 Richard Biener <rguenther@suse.de>
14494
14495 PR tree-optimization/91257
14496 * tree-ssa-sccvn.h (struct vn_avail): New.
14497 (struct vn_ssa_aux): Add avail member.
14498 * tree-ssa-sccvn.c (class rpo_elim): Remove m_rpo_avail
14499 member, add m_avail_freelist one.
14500 (rpo_elim::~rpo_elim): Remove.
14501 (rpo_elim::eliminate_avail): Adjust to new avail tracking
14502 data structure.
14503 (rpo_elim::eliminate_push_avail): Likewise.
14504 (do_unwind): Likewise.
14505 (do_rpo_vn): Likewise.
14506
14507 2019-07-29 Richard Biener <rguenther@suse.de>
14508
14509 PR tree-optimization/91257
14510 * tree-vrp.c (operand_less_p): Avoid dispatching to fold for
14511 most cases, instead call compare_values which handles the
14512 symbolic ranges we handle specially.
14513 (compare_values_warnv): Do not call operand_less_p but open-code
14514 the effective fold calls. Avoid converting so much.
14515
14516 2019-07-29 Martin Liska <mliska@suse.cz>
14517
14518 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not
14519 remove LHS of operator new call. It's handled latter.
14520
14521 2019-07-29 Richard Biener <rguenther@suse.de>
14522
14523 PR tree-optimization/91267
14524 * vr-values.c (vr_values::update_value_range): Add early return
14525 for effectively VARYING lattice entry.
14526
14527 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
14528
14529 PR debug/86638
14530 * tree-ssa-dce.c (keep_all_vdefs_p): New function.
14531 (mark_stmt_if_obviously_necessary): Mark all stmts with vdefs as
14532 necessary if keep_all_vdefs_p is true.
14533 (mark_aliased_reaching_defs_necessary): Add a gcc_checking_assert
14534 that keep_all_vdefs_p is false.
14535 (mark_all_reaching_defs_necessary): Likewise.
14536 (propagate_necessity): Skip the vuse scan if keep_all_vdefs_p is true.
14537
14538 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
14539
14540 * common.opt (Og): Change the initial value of flag_dse to 0.
14541 * opts.c (default_options_table): Move OPT_ftree_dse from
14542 OPT_LEVELS_1_PLUS to OPT_LEVELS_1_PLUS_NOT_DEBUG. Also add
14543 OPT_fdse to OPT_LEVELS_1_PLUS_NOT_DEBUG. Put the OPT_ftree_pta
14544 entry before the OPT_ftree_sra entry.
14545 * doc/invoke.texi (Og): Add -fdse and -ftree-dse to the list
14546 of flags disabled by Og.
14547
14548 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
14549
14550 * tree-cfg.c (execute_fixup_cfg): Don't delete stores to write-only
14551 variables for -Og.
14552
14553 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
14554
14555 * doc/sourcebuild.texi (check-function-bodies): Document.
14556
14557 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
14558
14559 * simplify-rtx.c (simplify_const_unary_operation): Fold a
14560 VEC_DUPLICATE of a fixed-length vector even if the result
14561 is variable-length. Likewise fold a duplicate of a
14562 variable-length vector if the variable-length vector is
14563 itself a duplicate of a fixed-length sequence.
14564 (test_vector_ops_duplicate): Test more cases.
14565
14566 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
14567
14568 * vector-builder.h (vector_builder): Add a shape template parameter.
14569 (vector_builder::new_unary_operation): New function, generalizing
14570 the old tree_vector_builder function.
14571 (vector_builder::new_binary_operation): Likewise.
14572 (vector_builder::binary_encoded_nelts): Likewise.
14573 * int-vector-builder.h (int_vector_builder): Update template
14574 parameters to vector_builder.
14575 (int_vector_builder::shape_nelts): New function.
14576 * rtx-vector-builder.h (rtx_vector_builder): Update template
14577 parameters to vector_builder.
14578 (rtx_vector_builder::shape_nelts): New function.
14579 (rtx_vector_builder::nelts_of): Likewise.
14580 (rtx_vector_builder::npatterns_of): Likewise.
14581 (rtx_vector_builder::nelts_per_pattern_of): Likewise.
14582 * tree-vector-builder.h (tree_vector_builder): Update template
14583 parameters to vector_builder.
14584 (tree_vector_builder::shape_nelts): New function.
14585 (tree_vector_builder::nelts_of): Likewise.
14586 (tree_vector_builder::npatterns_of): Likewise.
14587 (tree_vector_builder::nelts_per_pattern_of): Likewise.
14588 * tree-vector-builder.c (tree_vector_builder::new_unary_operation)
14589 (tree_vector_builder::new_binary_operation): Delete.
14590 (tree_vector_builder::binary_encoded_nelts): Likewise.
14591 * simplify-rtx.c: Include rtx-vector-builder.h.
14592 (distributes_over_addition_p): New function.
14593 (simplify_const_unary_operation)
14594 (simplify_const_binary_operation): Generalize handling of vector
14595 constants to include variable-length vectors.
14596 (test_vector_ops_series): Add more tests.
14597
14598 2019-07-28 Jan Hubicka <hubicka@ucw.cz>
14599
14600 PR lto/91222
14601 * ipa-devirt.c (warn_types_mismatch): Compare indentifiers
14602 than INDENTIFIER_POINTER.
14603
14604 2019-07-28 Martin Liska <mliska@suse.cz>
14605
14606 PR ipa/89330
14607 * cgraph.c (symbol_table::create_edge): Always allocate
14608 a cgraph_edge.
14609 (symbol_table::free_edge): Store summary_id to
14610 edge_released_summary_ids if != -1;
14611 * cgraph.h (NEXT_FREE_NODE): Remove.
14612 (SET_NEXT_FREE_NODE): Likewise.
14613 (NEXT_FREE_EDGE): Likewise.
14614 (symbol_table::release_symbol): Store summary_id to
14615 cgraph_released_summary_ids if != -1;
14616 (symbol_table::allocate_cgraph_symbol): Always allocate
14617 a cgraph_node.
14618
14619 2019-07-28 Alan Modra <amodra@gmail.com>
14620
14621 * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
14622 gen_sibcall.
14623
14624 2019-07-28 Alan Modra <amodra@gmail.com>
14625
14626 PR target/91135
14627 * config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Don't
14628 define.
14629 * config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Invoke
14630 GNU_USER_TARGET_OS_CPP_BUILTINS for aixdesc abi.
14631 (GNU_USER_TARGET_D_OS_VERSIONS): Don't define.
14632
14633 2019-07-28 Alan Modra <amodra@gmail.com>
14634
14635 PR target/91050
14636 * config/rs6000/sysv4.h (ASM_DEFAULT_SPEC): Modify if -m64.
14637 * config/rs6000/default64.h (ASM_DEFAULT_SPEC): Define.
14638 * config/rs6000/freebsd64.h (ASM_DEFAULT_SPEC): Don't define.
14639 * config/rs6000/linux64.h (ASM_DEFAULT_SPEC): Likewise.
14640 * config/rs6000/rtems.h (ASM_DEFAULT_SPEC): Likewise.
14641 * config/rs6000/rs6000.h (ASM_DEFAULT_EXTRA): Define and use
14642 in asm_default spec.
14643 * config/rs6000/eabialtivec.h (ASM_DEFAULT_EXTRA): Redefine.
14644 * config/rs6000/linuxaltivec.h (ASM_DEFAULT_EXTRA): Redefine.
14645
14646 2019-07-28 Gerald Pfeifer <gerald@pfeifer.com>
14647
14648 * doc/include/gpl_v3.texi (Copying): Use https for www.gnu.org.
14649
14650 2019-07-26 Tamar Christina <tamar.christina@arm.com>
14651
14652 PR target/89517
14653 * config.gcc: Relax parsing of AARCH64_OPT_EXTENSION.
14654 * config/aarch64/aarch64-option-extensions.def: Add new comments
14655 and restore easier to read options.
14656
14657 2019-07-26 Tamar Christina <tamar.christina@arm.com>
14658
14659 * convert.c (convert_to_real_1): Move part of conversion code...
14660 * match.pd: ...To here.
14661
14662 2019-07-26 Martin Jambor <mjambor@suse.cz>
14663
14664 PR ipa/89330
14665 * ipa-inline-transform.c (check_speculations_1): New function.
14666 (push_all_edges_in_set_to_vec): Likewise.
14667 (check_speculations): Use check_speculations_1, new parameter
14668 new_edges.
14669 (inline_call): Pass new_edges to check_speculations.
14670 * ipa-inline.c (add_new_edges_to_heap): Assert edge_callee is not
14671 NULL.
14672 (speculation_useful_p): Early return true if edge is inlined, remove
14673 later checks for inline_failed.
14674
14675 2019-07-25 Vladimir Makarov <vmakarov@redhat.com>
14676
14677 PR rtl-optimization/91223
14678 * lra-constraints.c (process_alt_operands): Fail for unsuccessful
14679 matching with INOUT operand.
14680
14681 2019-07-25 Eric Botcazou <ebotcazou@adacore.com>
14682
14683 * stmt.c (expand_case): Try to narrow the index type if it's larger
14684 than a word. Tidy up.
14685
14686 2019-07-25 Eric Botcazou <ebotcazou@adacore.com>
14687
14688 * cif-code.def (NEVER_CALL): New code.
14689 * ipa-inline.c (want_inline_small_function_p): Fix formatting issues.
14690 Set the failure to CIF_NEVER_CALL if the IPA count is zero.
14691
14692 2019-07-25 Wilco Dijkstra <wdijkstr@arm.com>
14693
14694 * config/arm/thumb2.md (thumb2_movsi_insn): Fix load/store low reg.
14695 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
14696
14697 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
14698
14699 * ipa-devirt.c (add_type_duplicate): Fix return value.
14700
14701 2019-07-25 Richard Biener <rguenther@suse.de>
14702
14703 * tree-vrp.c (extract_range_from_multiplicative_op): Add
14704 type parameter and use it instead of guessing expression
14705 type from the first operand.
14706 (extract_range_from_binary_expr): Pass expr_type down.
14707
14708 2019-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14709
14710 * config/arm/arm.md (SATrev): Change to code attribute.
14711 (*satsi_<SAT:code>): Adjust for the above.
14712 (*satsi_<SAT:code>_shift): Likewise.
14713
14714 2019-07-25 Richard Biener <rguenther@suse.de>
14715
14716 * gimple-loop-versioning.cc (loop_versioning::prune_loop_conditions):
14717 Make value_range * temporary const.
14718 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
14719 Likewise.
14720 (evrp_range_analyzer::record_ranges_from_): Likewise.
14721 (evrp_range_analyzer::pop_value_range): Return a const value_range *,
14722 deal with having recorded a const one.
14723 * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::get_value_range):
14724 Return a const value_range *.
14725 (evrp_range_analyzer::pop_value_range): Likewise.
14726 (evrp_range_analyzer::stack): Record const value_range *s.
14727 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
14728 Adjust.
14729 * gimple-ssa-sprintf.c (get_int_range): Likewise.
14730 (format_integer): Likewise.
14731 (sprintf_dom_walker::handle_gimple_call): Likewise.
14732 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise.
14733 * tree-vrp.c (vrp_prop::set_def_to_varying): Add.
14734 (vrp_prop::get_value_range): Adjust.
14735 (vrp_prop::vrp_initialize): Use set_def_to_varying instead of
14736 modifying the lattice in-place.
14737 (vrp_prop::visit_stmt): Likewise.
14738 * vr-values.c (vr_values::get_lattice_entry): New private method.
14739 (vr_values::get_value_range): Wrap it and return a const
14740 value_range *.
14741 (vr_values::set_def_to_varying): New.
14742 (vr_values::set_defs_to_varying): Use it.
14743 (vr_values::update_value_range): Likewise.
14744 (vr_values::vrp_stmt_computes_nonzero): Adjust.
14745 (values::op_with_constant_singleton_va): Likewise.
14746 (vr_values::extract_range_for_var_from_co): Likewise.
14747 (vr_values::extract_range_from_ssa_name): Likewise.
14748 (vr_values::extract_range_from_cond_expr): Likewise.
14749 (vr_values::extract_range_basic): Likewise.
14750 (compare_ranges): Take const value_range *, adjust.
14751 (compare_range_with_value): Likewise.
14752 (vrp_valueize): Adjust.
14753 (vrp_valueize_1): Likewise.
14754 (vr_values::get_vr_for_comparison): Return a const value_range *.
14755 (vr_values::compare_name_with_value): Adjust.
14756 (vr_values::compare_names): Likewise.
14757 (vr_values::vrp_evaluate_conditional_warnv_with_ops_using_ranges):
14758 Likewise.
14759 (vr_values::vrp_evaluate_conditional): Likewise.
14760 (find_case_label_ranges): Take a const value_range *.
14761 (vr_values::vrp_visit_switch_stmt): Adjust.
14762 (vr_values::extract_range_from_phi_node): Likewise.
14763 (vr_values::simplify_div_or_mod_using_ran): Likewise.
14764 (vr_values::simplify_abs_using_ranges): Likewise.
14765 (test_for_singularity): Take a const value_range *.
14766 (range_fits_type_p): Likewise.
14767 (vr_values::simplify_cond_using_ranges_1): Adjust.
14768 (vr_values::simplify_cond_using_ranges_2): Likewise.
14769 (vr_values::simplify_switch_using_ranges): Likewise.
14770 (vr_values::simplify_float_conversion_usi): Likewise.
14771 (vr_values::two_valued_val_range_p): Likewise.
14772 * vr-values.h (vr_values::get_value_range): Return a const
14773 value_range *.
14774 (vr_values::set_def_to_varying): New.
14775 (vr_values::get_lattice_entry): New private method.
14776 (vr_values::get_vr_for_comparison): Return a const value_range *.
14777
14778 2019-07-25 Martin Liska <mliska@suse.cz>
14779 Dominik Infuhr <dominik.infuehr@theobroma-systems.com>
14780
14781 PR c++/23383
14782 * common.opt: Add -fallocation-dce
14783 * gimple.c (gimple_call_operator_delete_p): New.
14784 * gimple.h (gimple_call_operator_delete_p): Likewise.
14785 * tree-core.h (enum function_decl_type): Add OPERATOR_DELETE.
14786 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Handle
14787 DECL_IS_OPERATOR_DELETE_P.
14788 (mark_all_reaching_defs_necessary_1): Likewise.
14789 (propagate_necessity): Likewise.
14790 (eliminate_unnecessary_stmts): Handle
14791 gimple_call_operator_delete_p.
14792 * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
14793 Add packing of OPERATOR_DELETE.
14794 * tree-streamer-out.c (pack_ts_function_decl_value_fields):
14795 Similarly here.
14796 * tree.h (DECL_IS_OPERATOR_DELETE_P): New.
14797 (DECL_SET_IS_OPERATOR_DELETE): New.
14798 (DECL_IS_REPLACEABLE_OPERATOR_NEW_P): Likewise.
14799
14800 2019-07-25 Martin Liska <mliska@suse.cz>
14801
14802 * calls.c (maybe_warn_alloc_args_overflow): Use new macros
14803 (e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P).
14804 * coverage.c (coverage_begin_function): Likewise.
14805 * fold-const.c (tree_expr_nonzero_warnv_p): Likewise.
14806 * gimple.c (gimple_call_nonnull_result_p): Likewise.
14807 * ipa-icf.c (sem_item::compare_referenced_symbol_properties): Likewise.
14808 (sem_item::hash_referenced_symbol_properties): Likewise.
14809 * lto-streamer-out.c (hash_tree): Likewise.
14810 * predict.c (expr_expected_value_1): Likewise.
14811 * tree-inline.c (expand_call_inline): Likewise.
14812 * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise.
14813 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise.
14814 * tree-core.h (enum function_decl_type): New enum.
14815 (struct tree_function_decl): Remove operator_new_flag and lambda_function.
14816 * tree.h (FUNCTION_DECL_DECL_TYPE): New.
14817 (set_function_decl_type): Likewise.
14818 (DECL_IS_OPERATOR_NEW_P): New.
14819 (DECL_SET_IS_OPERATOR_NEW): Likewise.
14820 (DECL_LAMBDA_FUNCTION): Likewise.
14821 (DECL_LAMBDA_FUNCTION_P): Likewise.
14822 (DECL_IS_OPERATOR_NEW): Remove.
14823 (DECL_SET_LAMBDA_FUNCTION): Likewise.
14824
14825 2019-07-25 Xiong Hu Luo <luoxhu@linux.ibm.com>
14826
14827 * ipa-profile.c (get_most_common_single_value): Use
14828 get_nth_most_common_value.
14829 * profile.c (sort_hist_value): New function.
14830 (compute_value_histograms): Call sort_hist_value to sort the
14831 values after loading from disk.
14832 * value-prof.c (get_most_common_single_value): Rename to ...
14833 get_nth_most_common_value. Add input params n, return
14834 the n_th value and count.
14835 (gimple_divmod_fixed_value_transform): Use
14836 get_nth_most_common_value.
14837 (gimple_ic_transform): Likewise.
14838 (gimple_stringops_transform): Likewise.
14839 * value-prof.h (get_most_common_single_value): Add input params
14840 n, default to 0.
14841
14842 2019-07-25 Richard Biener <rguenther@suse.de>
14843
14844 PR tree-optimization/91236
14845 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
14846 size of CONSTRUCTOR write. Fix buffer size we pass to
14847 native_encode_expr.
14848
14849 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
14850
14851 * config.gcc (msp430*-*-*): Fix non-GNU style in r273774.
14852 * config/msp430/msp430.h (ENDFILE_SPEC): Fix non-GNU style in
14853 r273773.
14854
14855 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
14856
14857 * config.gcc (msp430*-*-*): Enable initfini_array by default unless
14858 explicitly disabled with --disable-initfini-array.
14859
14860 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
14861
14862 * config/msp430/msp430.h (ENDFILE_SPEC): Wrap uses of crtn*.o in
14863 if-exists.
14864
14865 2019-07-24 Martin Sebor <msebor@redhat.com>
14866
14867 PR tree-optimization/91183
14868 PR tree-optimization/86688
14869 * builtins.c (compute_objsize): Handle MEM_REF.
14870 * tree-ssa-strlen.c (class ssa_name_limit_t): New.
14871 (get_min_string_length): Remove.
14872 (count_nonzero_bytes): New function.
14873 (handle_char_store): Rename...
14874 (handle_store): to this. Handle multibyte stores via integer types.
14875 (strlen_check_and_optimize_stmt): Adjust conditional and the called
14876 function name.
14877
14878 2019-07-24 Martin Sebor <msebor@redhat.com>
14879
14880 PR driver/80545
14881 * diagnostic.c (diagnostic_classify_diagnostic): Use lang_mask.
14882 (diagnostic_report_diagnostic): Same.
14883 * diagnostic.h (diagnostic_context::option_enabled): Add an argument.
14884 (diagnostic_context::lang_mask): New data member.
14885 * ipa-pure-const.c (suggest_attribute): Use
14886 lang_hooks.option_lang_mask ().
14887 * opts-common.c (option_enabled): Handle new argument.
14888 (get_option_state): Pass an additional argument.
14889 * opts.c (print_filtered_help): Print supported languages for
14890 unsupported options. Adjust printing of current state.
14891 * opts.h (option_enabled): Add argument.
14892 * toplev.c (print_switch_values): Use lang_mask.
14893 (general_init): Set global_dc->lang_mask.
14894
14895 2019-07-24 Iain Sandoe <iain@sandoe.co.uk>
14896
14897 PR bootstrap/87030
14898 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749.
14899
14900 2019-07-24 Giuliano Belinassi <giuliano.belinassi@usp.br>
14901
14902 * cgraphunit.c (symbol_table::compile): Start and stop
14903 TV_CGRAPH_IPA_PASSES and TV_CGRAPH_FUNC_EXPANSION timers.
14904 * timevar.def (TV_CGRAPH_IPA_PASSES, TV_CGRAPH_FUNC_EXPANSION): New.
14905
14906 2019-07-24 Oliver Browne <oliverbrowne62@gmail.com>
14907
14908 * gimplify.c (flag_instrument_functions_exclude_p): Include
14909 namespace/class information in the printable name.
14910 * opts.c (add_comma_separated_to_vector): Add NUL terminator
14911 to tokens entered into the vector.
14912
14913 2019-07-24 Eric Botcazou <ebotcazou@adacore.com>
14914
14915 * tree-nested.c (build_simple_mem_ref_notrap): New function.
14916 (get_static_chain): Call it instead of build_simple_mem_ref.
14917 (get_frame_field): Likewise.
14918 (get_nonlocal_debug_decl): Likewise.
14919 (convert_nonlocal_reference_op): Likewise.
14920
14921 2019-07-24 Claudiu Zissulescu <claziss@synopsys.com>
14922
14923 * config/arc/arc-protos.h (arc_output_function_epilogue): Delete
14924 declaration.
14925 (arc_compute_frame_size): Millicode is disabled when compiling
14926 ISR.
14927 (arc_return_address_register): Likewise.
14928 (arc_compute_function_type): Likewise.
14929 (arc_compute_frame_size): Likewise.
14930 (secondary_reload_info): Likewise.
14931 (arc_get_unalign): Likewise.
14932 (arc_can_use_return_insn): Declare.
14933 * config/arc/arc.c (AUX_LP_START): Define
14934 (AUX_LP_END): Likewise.
14935 (arc_frame_info): Update gmask member to 64-bit datum.
14936 (GMASK_LEN): Update.
14937 (arc_compute_function_type): Make it static, move it forward.
14938 (arc_must_save_register): Update, consider the extra regs.
14939 (arc_compute_millicode_save_restore_regs): Update to use the 64
14940 bit gmask.
14941 (arc_compute_frame_size): Likewise.
14942 (arc_enter_leave_p): Likewise.
14943 (arc_save_callee_saves): Likewise.
14944 (arc_restore_callee_saves): Likewise.
14945 (arc_save_callee_enter): Likewise.
14946 (arc_restore_callee_leave): Likewise.
14947 (arc_save_callee_milli): Likewise.
14948 (arc_restore_callee_milli): Likewise.
14949 (arc_expand_prologue): Add new interrupt handling.
14950 (arc_return_address_register): Make it static, move it forward.
14951 (arc_expand_epilogue): Add new interrupt handling.
14952 (arc_get_unalign): Delete.
14953 (arc_epilogue_uses): Make sure we do not remove the extra
14954 saved/restored registers when interrupt.
14955 (arc_can_use_return_insn): New function.
14956 (push_reg): Likewise.
14957 (pop_reg): Likewise.
14958 (arc_save_callee_saves): Add ZOL and FPX aux registers saving
14959 procedures.
14960 (arc_restore_callee_saves): Likewise, but restoring.
14961 * config/arc/arc.md (VUNSPEC_ARC_ARC600_RTIE): Define.
14962 (R33_REG): Likewise.
14963 (R34_REG): Likewise.
14964 (R35_REG): Likewise.
14965 (R36_REG): Likewise.
14966 (R37_REG): Likewise.
14967 (R38_REG): Likewise.
14968 (R39_REG): Likewise.
14969 (R45_REG): Likewise.
14970 (R46_REG): Likewise.
14971 (R47_REG): Likewise.
14972 (R48_REG): Likewise.
14973 (R49_REG): Likewise.
14974 (R50_REG): Likewise.
14975 (R51_REG): Likewise.
14976 (R52_REG): Likewise.
14977 (R53_REG): Likewise.
14978 (R54_REG): Likewise.
14979 (R55_REG): Likewise.
14980 (R56_REG): Likewise.
14981 (R58_REG): Likewise.
14982 (type): Add rtie attribute.
14983 (in_call_delay_slot): Use RETURN_ADDR_REGNUM.
14984 (movsi_insn): Accept moves to lp_count.
14985 (rtie): Update pattern.
14986 (simple_return): Simplify it, don't use this pattern as a return
14987 from an interrupt.
14988 (arc600_rtie): New pattern.
14989 (p_return_i): Clean up.
14990 (return): Likewise.
14991 * config/arc/builtins.def (rtie): Only available for non ARC6xx
14992 family CPUs.
14993 * config/arc/predicates.md (move_src_operand): Consider lp_count
14994 as a register.
14995
14996 2019-07-24 Andreas Krebbel <krebbel@linux.ibm.com>
14997
14998 * config/s390/predicates.md (addv_const_operand): New predicate.
14999 * config/s390/s390-modes.def (CCO): New condition code mode.
15000 * config/s390/s390.c (s390_match_ccmode_set): Handle E_CCOmode.
15001 (s390_branch_condition_mask): Likewise.
15002 * config/s390/s390.md ("addv<mode>4", "subv<mode>4")
15003 ("mulv<mode>4"): New expanders.
15004 ("*addv<mode>3_ccoverflow", "*addv<mode>3_ccoverflow_const")
15005 ("*subv<mode>3_ccoverflow", "*mulv<mode>3_ccoverflow"): New
15006 pattern definitions.
15007
15008 2019-07-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
15009
15010 PR middle-end/91166
15011 * match.pd (vec_perm_expr(v, v, mask) -> v): New pattern.
15012 (define_predicates): Add entry for uniform_vector_p.
15013 (vec_same_elem_p): New match pattern.
15014
15015 2019-07-24 Iain Sandoe <iain@sandoe.co.uk>
15016
15017 PR bootstrap/87030
15018 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here...
15019 * config/i386/darwin32-biarch.h .. to here.
15020 * config/i386/darwin64-biarch.h: Adjust comments.
15021 * config/rs6000/darwin32-biarch.h: Likewise.
15022 * config/rs6000/darwin64-biarch.h: Likewise.
15023 * config.gcc: Missed commit from r273746
15024 (*-*-darwin*): Don't include CPU t-darwin here.
15025 (i[34567]86-*-darwin*): Adjust to use biarch files. Produce
15026 an error message if i686-darwin configuration is attempted for
15027 Darwin >= 18.
15028
15029 2019-07-23 Iain Sandoe <iain@sandoe.co.uk>
15030
15031 PR bootstrap/87030
15032 * config.gcc (*-*-darwin*): Don't include CPU t-darwin here.
15033 (i[34567]86-*-darwin*): Adjust to use biarch files. Produce
15034 an error message if i686-darwin configuration is attempted for
15035 Darwin >= 18.
15036 (x86_64-*-darwin*): Switch to single multilib for Darwin >= 18.
15037 (powerpc-*-darwin*): Use biarch files where needed.
15038 (powerpc64-*-darwin*): Likewise.
15039 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file.
15040 (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
15041 arch case.
15042 * config/i386/darwin32-biarch.h: New.
15043 * config/i386/darwin64.h: Rename.
15044 * config/i386/darwin64-biarch.h: To this.
15045 * config/i386/t-darwin: Rename.
15046 * config/i386/t-darwin32-biarch: To this.
15047 * config/i386/t-darwin64: Rename.
15048 * config/i386/t-darwin64-biarch: To this.
15049 * config/rs6000/darwin32-biarch.h: New.
15050 * config/rs6000/darwin64.h: Rename.
15051 * config/rs6000/darwin64-biarch.h: To this.
15052 (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
15053 arch case.
15054 * config/rs6000/t-darwin8: Rename.
15055 * config/rs6000/t-darwin32-biarch: To this.
15056 * config/rs6000/t-darwin64 Rename.
15057 * config/rs6000/t-darwin64-biarch: To this.
15058
15059 2019-07-23 Martin Sebor <msebor@redhat.com>
15060
15061 * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Revert r273311.
15062
15063 2019-07-23 Vladislav Ivanishin <vlad@ispras.ru>
15064
15065 * gdbinit.in (reload-gdbhooks): New command with an attached doc string.
15066 (rh): New alias for it.
15067
15068 2019-07-23 Vladislav Ivanishin <vlad@ispras.ru>
15069
15070 * gdbhooks.py: Pass replace=True to
15071 gdb.printing.register_pretty_printer.
15072
15073 2019-07-23 Richard Biener <rguenther@suse.de>
15074
15075 PR debug/91231
15076 * lto-streamer-in.c (input_function): Drop inline-entry markers
15077 that ended up with an unknown location block.
15078
15079 2019-07-23 Richard Biener <rguenther@suse.de>
15080
15081 PR tree-optimization/83518
15082 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle aggregate
15083 init from a constant even when partial defs are already recorded.
15084
15085 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
15086
15087 * i386-common.c: Use PROCESSOR_ZNVER2 scheduler for znver2.
15088 * config/i386/znver1.md: Enable patterns for znver2 and add store
15089 variants which use extra AGU unit.
15090
15091 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
15092
15093 * config/i386/i386-options.c (ix86_option_override_internal): Default
15094 PARAM_AVOID_FMA_MAX_BITS to 256 for znver2.
15095 * config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS): Set
15096 for ZNVER2.
15097
15098 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
15099
15100 * config/i386/x86-tune-costs.h (znver2_memcpy): Update.
15101 (znver2_costs): Update 256 bit SSE costs and multiplication.
15102
15103 2019-07-23 Jan Beulich <jbeulich@suse.com>
15104
15105 * config/i386/sse.md (<avx512>_cvtmask2<ssemodesuffix><mode>):
15106 Require only AVX512F.
15107 (*<avx512>_cvtmask2<ssemodesuffix><mode>): Likewise. Add
15108 alternative expanding to vpternlog.
15109
15110 2019-07-23 Martin Liska <mliska@suse.cz>
15111
15112 * dwarf2out.c (gen_producer_string): Canonize -flto=N
15113 to -flto in dwarf producer string.
15114
15115 2019-07-23 Richard Biener <rguenther@suse.de>
15116
15117 * tree-cfg.c (label_for_bb): Remove global var.
15118 (main_block_label): Take label_for_bb as argument.
15119 (cleanup_dead_labels_eh): Likewise, adjust.
15120 (cleanup_dead_labels): Adjust.
15121
15122 2019-07-22 Paul A. Clarke <pc@us.ibm.com>
15123
15124 * doc/extend.texi (Basic PowerPC Built-in Functions Available on all
15125 Configurations): Add documentation for __builtin_mtfsf.
15126
15127 2019-07-22 Ilia Diachkov <ilia.diachkov@optimitech.com>
15128
15129 * config/riscv/riscv-opts.h (struct riscv_align_data): New.
15130 * config/riscv/riscv.c (riscv_constant_alignment): Use
15131 riscv_align_data_type.
15132 * config/riscv/riscv.h (RISCV_EXPAND_ALIGNMENT): New.
15133 (DATA_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT.
15134 (LOCAL_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT.
15135 * config/riscv/riscv.opt (malign-data): New.
15136 * doc/invoke.texi (RISC-V Options): Document -malign-data=.
15137
15138 2019-07-02 Giuliano Belinassi <giuliano.belinassi@usp.br>
15139
15140 * cgraph.c (dump_graphviz): New function.
15141 * cgraph.h (dump_graphviz): New function.
15142 * symtab.c (dump_graphviz): New function.
15143
15144 2019-07-22 Sylvia Taylor <sylvia.taylor@arm.com>
15145
15146 * config/aarch64/aarch64-simd.md
15147 (*aarch64_simd_sra<mode>): New.
15148 * config/aarch64/iterators.md
15149 (SHIFTRT): New iterator.
15150 (sra_op): New attribute.
15151
15152 2019-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com>
15153
15154 * config/msp430/msp430.c (msp430_preserve_reg_p): Don't save
15155 callee-saved regs R4->R10 in an interrupt function that calls another
15156 function.
15157
15158 2019-07-22 Paul A. Clarke <pc@us.ibm.com>
15159
15160 * config/rs6000/smmintrin.h (_mm_blend_epi16): New.
15161 (_mm_blendv_epi8): New.
15162
15163 2019-07-22 Richard Biener <rguenther@suse.de>
15164
15165 PR tree-optimization/91221
15166 * tree-ssa-sccvn.c (vn_reference_lookup_3): Appropriately
15167 restrict partial-def handling of empty constructors and
15168 memset to refs with known offset.
15169
15170 2019-07-22 Jan Beulich <jbeulich@suse.com>
15171
15172 * config/i386/sse.md (ternlogsuffix): New.
15173 (one_cmpl<mode>2): Don't force CONSTM1_RTX into a register when
15174 AVX512F is in use.
15175 (<mask_codefor>one_cmpl<mode>2<mask_name>): New.
15176
15177 2019-07-22 Martin Liska <mliska@suse.cz>
15178
15179 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Update
15180 comment.
15181 * toplev.c (compile_file): Do not emit __gnu_lto_v1 symbol.
15182
15183 2019-07-22 Martin Liska <mliska@suse.cz>
15184
15185 * lto-section-in.c (lto_get_section_data):
15186 Use new function get_compression.
15187 * lto-streamer-out.c (produce_lto_section): Use
15188 set_compression to encode compression algorithm.
15189 * lto-streamer.h (struct lto_section): Do not
15190 use bitfields in the format.
15191
15192 2019-07-22 Martin Liska <mliska@suse.cz>
15193
15194 PR driver/91172
15195 * opts-common.c (decode_cmdline_option): Decode
15196 argument of -Werror and check it for a wrong language.
15197 * opts-global.c (complain_wrong_lang): Remove such case.
15198
15199 2019-07-22 Claudiu Zissulescu <claziss@synopsys.com>
15200
15201 * config/arc/arc.c (prepare_move_operands): Always use an
15202 intermediate register when storing a TLS symbols.
15203
15204 2019-07-22 Stafford Horne <shorne@gmail.com>
15205
15206 * config/or1k/or1k.c (or1k_expand_compare): Check for int before
15207 force_reg.
15208
15209 2019-07-22 Stafford Horne <shorne@gmail.com>
15210
15211 * config.gcc (or1k*-*-*): Add mhard-float, mdouble-float, msoft-float
15212 and munordered-float validations.
15213 * config/or1k/constraints.md (d): New register constraint.
15214 * config/or1k/predicates.md (fp_comparison_operator): New.
15215 * config/or1k/or1k.c (or1k_print_operand): Add support for printing 'd'
15216 operands.
15217 (or1k_expand_compare): Normalize unordered comparisons.
15218 * config/or1k/or1k.h (reg_class): Define DOUBLE_REGS.
15219 (REG_CLASS_NAMES): Add "DOUBLE_REGS".
15220 (REG_CLASS_CONTENTS): Add contents for DOUBLE_REGS.
15221 * config/or1k/or1k.md (type): Add fpu.
15222 (fpu): New instruction reservation.
15223 (F, f, fr, fi, FI, FOP, fop): New.
15224 (<fop><F:mode>3): New ALU instruction definition.
15225 (float<fi><F:mode>2): New conversion instruction definition.
15226 (fix_trunc<F:mode><fi>2): New conversion instruction definition.
15227 (fpcmpcc): New code iterator.
15228 (*sf_fp_insn): New instruction definition.
15229 (cstore<F:mode>4): New expand definition.
15230 (cbranch<F:mode>4): New expand definition.
15231 * config/or1k/or1k.opt (msoft-float, mhard-float, mdouble-float,
15232 munordered-float): New options.
15233 * doc/invoke.texi: Document msoft-float, mhard-float, mdouble-float and
15234 munordered-float.
15235
15236 2019-07-22 Stafford Horne <shorne@gmail.com>
15237
15238 * config.gcc (or1k*-*-*): Add mrori and mror to validation.
15239 * doc/invoke.texi (OpenRISC Options): Add mrori option, rewrite all
15240 documenation to be more clear.
15241 * config/or1k/elf.opt (mboard=, mnewlib): Rewrite documentation to be
15242 more clear.
15243 * config/or1k/or1k.opt (mrori): New option.
15244 (mhard-div, msoft-div, mhard-mul, msoft-mul, mcmov, mror, msext,
15245 msfimm, mshftimm): Rewrite documentation to be more clear.
15246 * config/or1k/or1k.md (insn_support): Add ror and rori.
15247 (enabled): Add conditions for ror and rori.
15248 (rotrsi3): Replace condition for shftimm with ror and rori.
15249
15250 2019-07-22 Stafford Horne <shorne@gmail.com>
15251
15252 PR target/90363
15253 * config/or1k/or1k.md (zero_extend<mode>si2): Update predicate.
15254 (extend<mode>si2): Update predicate.
15255 * config/or1k/predicates.md (volatile_mem_operand): New.
15256 (reg_or_mem_operand): New.
15257
15258 2019-07-21 Iain Sandoe <iain@sandoe.co.uk>
15259
15260 * config/rs6000/rs6000.c (TARGET_NO_PROTOTYPE): Move from here...
15261 * config/rs6000/rs6000-call.c: ... to here.
15262
15263 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
15264
15265 * config/rs6000/predicates.md (offsettable_mem_operand): Allow volatile
15266 memory.
15267
15268 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
15269
15270 * config/rs6000/predicates.md (input_operand): Allow volatile memory.
15271
15272 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
15273
15274 * config/rs6000/predicates.md (lwa_operand): Allow volatile memory.
15275
15276 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
15277
15278 * config/rs6000/predicates.md (volatile_mem_operand): Modernize syntax.
15279 (any_memory_operand): New predicate.
15280 (reg_or_mem_operand): Use it.
15281
15282 2019-07-20 Jakub Jelinek <jakub@redhat.com>
15283
15284 PR target/91204
15285 * optabs.c (expand_unop): As fallback, expand ~op0 as op0 ^ -1.
15286
15287 2019-07-20 John David Anglin <danglin@gcc.gnu.org>
15288
15289 * config/pa/pa.h (hppa_profile_hook): Delete declaration.
15290 * config/pa/pa-protos.h (hppa_profile_hook): Add declaration.
15291
15292 2019-07-20 Jakub Jelinek <jakub@redhat.com>
15293
15294 * tree.def (OMP_LOOP): New tree code.
15295 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_BIND.
15296 (enum omp_clause_bind_kind): New enum.
15297 (struct tree_omp_clause): Add subcode.bind_kind.
15298 * tree.h (OMP_LOOP_CHECK): Rename to ...
15299 (OMP_LOOPING_CHECK): ... this.
15300 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
15301 OMP_FOR_INCR, OMP_FOR_PRE_BODY, OMP_FOR_ORIG_DECLS): Use
15302 OMP_LOOPING_CHECK instead of OMP_LOOP_CHECK.
15303 (OMP_CLAUSE_BIND_KIND): Define.
15304 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
15305 bind clause entries.
15306 (walk_tree_1): Handle OMP_CLAUSE_BIND.
15307 * tree-pretty-print.c (dump_omp_clause): Likewise.
15308 (dump_generic_node): Handle OMP_LOOP.
15309 * gimplify.c (enum omp_region_type): Add ORT_IMPLICIT_TARGET.
15310 (in_omp_construct): New variable.
15311 (is_gimple_stmt): Handle OMP_LOOP.
15312 (gimplify_scan_omp_clauses): For lastprivate don't set
15313 check_non_private if code == OMP_LOOP. For reduction clause
15314 on OMP_LOOP combined with parallel or teams propagate as shared
15315 on the combined construct. Handle OMP_CLAUSE_BIND.
15316 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_BIND.
15317 (gimplify_omp_for): Pass OMP_LOOP instead of OMP_{FOR,DISTRIBUTE}
15318 for constructs from a loop construct to gimplify_scan_omp_clauses.
15319 Don't predetermine iterator linear on OMP_SIMD from loop construct.
15320 (replace_reduction_placeholders, gimplify_omp_loop): New functions.
15321 (gimplify_omp_workshare): Use ORT_IMPLICIT_TARGET instead of trying
15322 to match the implicit ORT_TARGET construct around whole body.
15323 Temporarily clear in_omp_construct when processing body.
15324 (gimplify_expr): Handle OMP_LOOP. For OMP_MASTER, OMP_TASKGROUP
15325 etc. temporarily set in_omp_construct when processing body.
15326 (gimplify_body): Create ORT_IMPLICIT_TARGET instead of ORT_TARGET.
15327 * omp-low.c (struct omp_context): Add loop_p.
15328 (build_outer_var_ref): Treat ctx->loop_p similarly to simd construct
15329 in that the original var might be private.
15330 (scan_sharing_clauses): Handle OMP_CLAUSE_BIND.
15331 (check_omp_nesting_restrictions): Adjust nesting restrictions for
15332 addition of loop construct.
15333 (scan_omp_1_stmt): Allow setjmp inside of loop construct.
15334
15335 * omp-low.c (lower_rec_input_clauses): Don't force simd arrays for
15336 lastprivate non-addressable iterator of a collapse(1) simd.
15337
15338 2019-07-17 Bill Seurer <seurer@linux.vnet.ibm.com>
15339
15340 * config/rs6000/rs6000-call.c (HAVE_AS_GNU_ATTRIBUTE): define value
15341 as in rs6000.c.
15342
15343 2019-07-19 Iain Sandoe <iain@sandoe.co.uk>
15344
15345 * config/darwin.h (DRIVER_SELF_SPECS): Ignore X and Mach specs which
15346 refer to default conditions. Warn for the 'y' spec which is ignored
15347 by current linkers.
15348
15349 2019-07-19 Bill Seurer <seurer@linux.vnet.ibm.com>
15350
15351 * config/rs6000/rs6000.c (builtin_description, cpu_is_info,
15352 cpu_supports_info, builtin_hash_struct, builtin_hasher,
15353 builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info,
15354 rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate,
15355 rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest,
15356 init_cumulative_args, rs6000_promote_function_mode,
15357 rs6000_must_pass_in_stack, is_complex_IBM_long_double,
15358 abi_v4_pass_in_fpr, rs6000_function_arg_padding,
15359 rs6000_function_arg_boundary, rs6000_parm_offset,
15360 rs6000_parm_start, rs6000_arg_size,
15361 rs6000_darwin64_record_arg_advance_flush,
15362 rs6000_darwin64_record_arg_advance_recurse,
15363 rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1,
15364 rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush,
15365 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
15366 rs6000_mixed_function_arg, rs6000_psave_function_arg,
15367 rs6000_finish_function_arg, rs6000_function_arg,
15368 rs6000_arg_partial_bytes, rs6000_pass_by_reference,
15369 rs6000_parm_needs_stack, rs6000_function_parms_need_stack,
15370 rs6000_reg_parm_stack_space, rs6000_move_block_from_reg,
15371 setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start,
15372 rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst,
15373 bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg,
15374 bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name,
15375 rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin,
15376 rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin,
15377 rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin,
15378 altivec_expand_abs_builtin, rs6000_expand_binop_builtin,
15379 altivec_expand_predicate_builtin, swap_endian_selector_for_mode,
15380 altivec_expand_lv_builtin, altivec_expand_stxvl_builtin,
15381 altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode,
15382 htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin,
15383 altivec_expand_dst_builtin, altivec_expand_vec_init_builtin,
15384 get_element_number, altivec_expand_vec_set_builtin,
15385 altivec_expand_vec_ext_builtin, altivec_expand_builtin,
15386 rs6000_builtin_is_supported_p, rs6000_invalid_builtin,
15387 rs6000_fold_builtin, rs6000_builtin_valid_without_lhs,
15388 fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper,
15389 fold_mergeeo_helper, rs6000_gimple_fold_builtin,
15390 rs6000_expand_builtin, rs6000_vector_type,
15391 rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins,
15392 htm_init_builtins, builtin_function_type, rs6000_common_init_builtins,
15393 rs6000_internal_arg_pointer, rs6000_output_mi_thunk): Move
15394 to rs6000-call.c.
15395 * config/rs6000/rs6000-call.c (builtin_description, cpu_is_info,
15396 cpu_supports_info, builtin_hash_struct, builtin_hasher,
15397 builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info,
15398 rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate,
15399 rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest,
15400 init_cumulative_args, rs6000_promote_function_mode,
15401 rs6000_must_pass_in_stack, is_complex_IBM_long_double,
15402 abi_v4_pass_in_fpr, rs6000_function_arg_padding,
15403 rs6000_function_arg_boundary, rs6000_parm_offset,
15404 rs6000_parm_start, rs6000_arg_size,
15405 rs6000_darwin64_record_arg_advance_flush,
15406 rs6000_darwin64_record_arg_advance_recurse,
15407 rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1,
15408 rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush,
15409 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
15410 rs6000_mixed_function_arg, rs6000_psave_function_arg,
15411 rs6000_finish_function_arg, rs6000_function_arg,
15412 rs6000_arg_partial_bytes, rs6000_pass_by_reference,
15413 rs6000_parm_needs_stack, rs6000_function_parms_need_stack,
15414 rs6000_reg_parm_stack_space, rs6000_move_block_from_reg,
15415 setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start,
15416 rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst,
15417 bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg,
15418 bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name,
15419 rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin,
15420 rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin,
15421 rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin,
15422 altivec_expand_abs_builtin, rs6000_expand_binop_builtin,
15423 altivec_expand_predicate_builtin, swap_endian_selector_for_mode,
15424 altivec_expand_lv_builtin, altivec_expand_stxvl_builtin,
15425 altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode,
15426 htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin,
15427 altivec_expand_dst_builtin, altivec_expand_vec_init_builtin,
15428 get_element_number, altivec_expand_vec_set_builtin,
15429 altivec_expand_vec_ext_builtin, altivec_expand_builtin,
15430 rs6000_builtin_is_supported_p, rs6000_invalid_builtin,
15431 rs6000_fold_builtin, rs6000_builtin_valid_without_lhs,
15432 fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper,
15433 fold_mergeeo_helper, rs6000_gimple_fold_builtin,
15434 rs6000_expand_builtin, rs6000_vector_type,
15435 rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins,
15436 htm_init_builtins, builtin_function_type, rs6000_common_init_builtins,
15437 rs6000_internal_arg_pointer, rs6000_output_mi_thunk: Move
15438 to here from rs6000.c.
15439 * config/rs6000/rs6000-internal.h: (rs6000_darwin64_struct_check_p,
15440 rs6000_discover_homogeneous_aggregate, rs6000_output_mi_thunk,
15441 rs6000_output_addr_const_extra, rs6000_gimple_fold_builtin,
15442 rs6000_invalid_builtin, rs6000_build_builtin_va_list, rs6000_va_start,
15443 rs6000_gimplify_va_arg, rs6000_promote_function_mode,
15444 rs6000_return_in_memory, rs6000_return_in_msb,
15445 rs6000_pass_by_reference, setup_incoming_varargs,
15446 rs6000_function_arg_boundary, rs6000_must_pass_in_stack,
15447 rs6000_arg_partial_bytes, rs6000_function_arg_advance,
15448 rs6000_function_arg_padding, rs6000_function_arg,
15449 rs6000_darwin64_record_arg, rs6000_internal_arg_pointer,
15450 rs6000_init_builtins, rs6000_builtin_decl, rs6000_expand_builtin,
15451 rs6000_fold_builtin, rs6000_passes_ieee128, rs6000_passes_float,
15452 rs6000_passes_long_double, rs6000_passes_vector,
15453 rs6000_returns_struct, cpu_builtin_p, tree builtin_mode_to_type,
15454 altivec_builtin_mask_for_load) Add declarations.
15455 * config/rs6000/t-rs6000: Add new source file rs6000-call.c.
15456 * config/config.gcc: Add new source file rs6000-call.c to garbage
15457 collector and extra_objs.
15458
15459 2019-07-19 Jeff Law <law@redhat.com>
15460
15461 PR tree-optimization/86061
15462 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle
15463 strncpy. Drop some trivial dead code.
15464 (maybe_trim_memstar_call): Handle strncpy.
15465
15466 2019-07-19 Richard Biener <rguenther@suse.de>
15467
15468 PR tree-optimization/91211
15469 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
15470 memset encoding size.
15471
15472 2019-07-19 Uroš Bizjak <ubizjak@gmail.com>
15473
15474 PR target/91204
15475 * config/i386/mmx.md (one_cmpl<mode>2): New expander.
15476
15477 2019-07-19 Jan Hubicka <hubicka@ucw.cz>
15478
15479 PR ipa/91194
15480 * ipa-inline.c (recursive_inlining): Fix limits check.
15481
15482 2019-07-19 Richard Biener <rguenther@suse.de>
15483
15484 PR tree-optimization/91200
15485 * tree-ssa-phiopt.c (cond_store_replacement): Check we have
15486 no PHI nodes in middle-bb.
15487
15488 2019-07-19 Richard Sandiford <richard.sandiford@arm.com>
15489
15490 * doc/invoke.texi: Rename the AArch64 +bitperm extension flag
15491 to +sve-bitperm.
15492 * config/aarch64/aarch64-option-extensions.def: Likewise.
15493
15494 2019-07-19 Jakub Jelinek <jakub@redhat.com>
15495
15496 PR middle-end/91190
15497 * function.c (insert_temp_slot_address): Store into the hash table
15498 a copy of address to avoid RTL sharing issues.
15499
15500 2019-07-19 Richard Biener <rguenther@suse.de>
15501
15502 PR tree-optimization/91207
15503 Revert
15504 2019-07-17 Richard Biener <rguenther@suse.de>
15505
15506 PR tree-optimization/91178
15507 * tree-vect-stmts.c (get_group_load_store_type): For SLP
15508 loads with a gap larger than the vector size always use
15509 VMAT_STRIDED_SLP.
15510 (vectorizable_load): For VMAT_STRIDED_SLP with a permutation
15511 avoid loading vectors that are only contained in the gap
15512 and thus are not needed.
15513
15514 2019-07-18 Uroš Bizjak <ubizjak@gmail.com>
15515
15516 * config/i386/i386.md (*addqi_2_slp): Remove.
15517 (*<code>qi_2_slp): Ditto.
15518
15519 2019-07-18 Michael Meissner <meissner@linux.ibm.com>
15520
15521 * config/rs6000/predicates.md (prefixed_mem_operand): Call
15522 rs6000_prefixed_address_mode_p instead of rs6000_prefixed_address.
15523 * config/rs6000/rs6000-protos.h (rs6000_prefixed_address_mode_p):
15524 Rename function from rs6000_prefixed_address.
15525 * config/rs6000/aix.h (TARGET_HAS_TOC): Rename TARGET_TOC to
15526 TARGET_HAS_TOC.
15527 (TARGET_TOC): Likewise.
15528 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
15529 rs6000.h.
15530 * config/rs6000/darwin.h (TARGET_HAS_TOC): Rename TARGET_TOC to
15531 TARGET_HAS_TOC.
15532 (TARGET_TOC): Likewise.
15533 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
15534 rs6000.h.
15535 * config/rs6000/linux64.h (TARGET_HAS_TOC): Rename TARGET_TOC to
15536 TARGET_HAS_TOC.
15537 (TARGET_TOC): Likewise.
15538 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
15539 check to require -mcmodel=medium for pc-relative addressing.
15540 (create_TOC_reference): Add assertion for TARGET_TOC.
15541 (rs6000_legitimize_address): Use TARGET_NO_TOC_OR_PCREL instead of
15542 TARGET_NO_TOC.
15543 (rs6000_emit_move): Likewise.
15544 (TOC_alias_set): Rename TOC alias set static variable from 'set'
15545 to 'TOC_alias_set'.
15546 (get_TOC_alias_set): Likewise.
15547 (output_toc): Use TARGET_NO_TOC_OR_PCREL instead of
15548 TARGET_NO_TOC.
15549 (rs6000_can_eliminate): Likewise.
15550 (rs6000_prefixed_address_mode_p): Rename function from
15551 rs6000_prefixed_address.
15552 * config/rs6000/rs6000.h (TARGET_TOC): Define in terms of
15553 TARGET_HAS_TOC and not pc-relative.
15554 (TARGET_NO_TOC_OR_PCREL): New macro to replace TARGET_NO_TOC.
15555 * config/rs6000/sysv4.h (TARGET_HAS_TOC): Rename TARGET_TOC to
15556 TARGET_HAS_TOC.
15557 (TARGET_TOC): Likewise.
15558 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
15559 rs6000.h.
15560
15561 2019-07-18 Uroš Bizjak <ubizjak@gmail.com>
15562
15563 PR target/91188
15564 * config/i386/i386.md (*addqi_1_slp): Use register_operand predicate
15565 for operand 0. Do not use (match_dup) to match operand 1 with
15566 operand 0. Add check in insn constraint that either input operand
15567 matches operand 0. Use SWI12 mode iterator to also handle
15568 HImode operands.
15569 (*and<mode>_1_slp): Ditto.
15570 (*<code>qi_1_slp): Ditto.
15571 (*sub<mode>_1_slp): Use register_operand predicate for operand 0.
15572 Do not use (match_dup) to match operand 1 with operand 0. Add
15573 check in insn constraint that operand 1 matches operand 0.
15574 Use SWI12 mode iterator to also handle HImode operands.
15575 (*ashl<mode>3_1_slp): Ditto.
15576 (*<shift_insn><mode>3_1_slp): Ditto.
15577 (*<rotate_insn><mode>3_1_slp): Ditto.
15578
15579 2019-07-18 Sylvia Taylor <sylvia.taylor@arm.com>
15580
15581 * config/arm/arm-builtins.c
15582 (arm_expand_ternop_builtin): Remove explicit sha1 builtin handling.
15583 (arm_expand_unop_builtin): Likewise.
15584 * config/arm/crypto.md
15585 (crypto_sha1h): Convert from define_insn to define_expand.
15586 (crypto_<crypto_pattern>): Likewise.
15587 (crypto_sha1h_lb): New define_insn.
15588 (crypto_<crypto_pattern>_lb): Likewise.
15589
15590 2019-07-18 Sylvia Taylor <sylvia.taylor@arm.com>
15591
15592 PR target/90317
15593 * config/arm/arm_neon.h (vsha1h_u32): Refactor.
15594 (vsha1cq_u32): Likewise.
15595 (vsha1pq_u32): Likewise.
15596 (vsha1mq_u32): Likewise.
15597 * config/arm/crypto.md (crypto_sha1h): Remove zero extend, correct
15598 vec select.
15599 (crypto_sha1c): Correct vec select.
15600 (crypto_sha1m): Likewise.
15601 (crypto_sha1p): Likewise.
15602
15603 2019-07-18 Richard Earnshaw <rearnsha@arm.com>
15604
15605 * config/arm/predicates.md (arm_borrow_operation): New predicate.
15606 * config/arm/arm.c (subdi3_compare1): Use CCmode for the split.
15607 (arm_subdi3, subdi_di_zesidi, subdi_di_sesidi): Likewise.
15608 (subdi_zesidi_zesidi): Likewise.
15609 (negdi2_compare, negdi2_insn): Likewise.
15610 (negdi_extensidi): Likewise.
15611 (negdi_zero_extendsidi): Likewise.
15612 (arm_cmpdi_insn): Likewise.
15613 (subsi3_carryin): Use arm_borrow_operation.
15614 (subsi3_carryin_const): Likewise.
15615 (subsi3_carryin_const0): Likewise.
15616 (subsi3_carryin_compare): Likewise.
15617 (subsi3_carryin_compare_const): Likewise.
15618 (subsi3_carryin_compare_const0): Likewise.
15619 (subsi3_carryin_shift): Likewise.
15620 (rsbsi3_carryin_shift): Likewise.
15621 (negsi2_carryin_compare): Likewise.
15622
15623 2019-07-18 Bin Cheng <bin.cheng@linux.alibaba.com>
15624
15625 PR tree-optimization/91137
15626 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field.
15627 (tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize):
15628 Init, use and fini the above new field.
15629 (determine_base_object_1): New function.
15630 (determine_base_object): Reimplement using walk_tree.
15631
15632 2019-07-18 Richard Sandiford <richard.sandiford@arm.com>
15633
15634 * basic-block.h (CLEANUP_FORCE_FAST_DCE): New macro.
15635 * cfgcleanup.c (cleanup_cfg): Call run_fast_dce if
15636 CLEANUP_FORCE_FAST_DCE is set.
15637 * ifcvt.c (rest_of_handle_if_conversion): Pass
15638 CLEANUP_FORCE_FAST_DCE to the final cleanup_cfg call if
15639 if-conversion succeeded.
15640
15641 2019-07-18 Richard Biener <rguenther@suse.de>
15642
15643 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Refactor
15644 branches to make code less indented.
15645
15646 2019-07-17 Alexandre Oliva <oliva@adacore.com>
15647
15648 PR middle-end/81824
15649 * attribs.c (decls_mismatched_attributes): Simplify the logic
15650 that avoids duplicates and false positives.
15651
15652 2019-07-17 John David Anglin <danglin@gcc.gnu.org>
15653
15654 * config/pa/pa.c (pa_som_asm_init_sections): Don't force all constant
15655 data into data section when generating PIC code.
15656 (pa_select_section): Use pa_reloc_rw_mask() to qualify relocs.
15657 (pa_reloc_rw_mask): Return 3 when generating PIC code and when
15658 generating code for SOM targets earlier than HP-UX 11. Otherwise,
15659 return 2 for SOM and 0 for other targets.
15660
15661 2019-07-17 Jeff Law <law@redhat.com>
15662
15663 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Fix formatting.
15664 (dse_walker::dse_optimize_stmt): Likewise. Add missing return to
15665 avoid unexpected switch statement fallthru.
15666
15667 2019-07-17 Uroš Bizjak <ubizjak@gmail.com>
15668
15669 * config/i386/i386.md (*add<dwi>3_doubleword):
15670 Remove redundant constraints.
15671 (*add<mode>_1): Ditto.
15672 (*addhi_1): Ditto.
15673 (*addqi_1): Ditto.
15674 (*addqi_1_slp): Ditto.
15675 (*add<mode>_2): Ditto.
15676 (*addv<mode>4): Ditto.
15677 (*sub<dwi>3_doubleword): Ditto.
15678 (*sub<mode>_1): Ditto.
15679 (*subqi_1_slp): Ditto.
15680 (*sub<mode>_2): Ditto.
15681 (*subv<mode>4): Ditto.
15682 (*sub<mode>_3): Ditto.
15683 (@add<mode>3_carry): Ditto.
15684 (@sub<mode>3_carry): Ditto.
15685 (*add<mode>3_cc_overflow_1): Ditto.
15686 (*add<mode>3_zext_cc_overflow_2): Ditto.
15687 (*anddi_1): Ditto.
15688 (*and<mode>_1): Ditto.
15689 (*andqi_1): Ditto.
15690 (*andqi_1_slp): Ditto.
15691 (*anddi_2): Ditto.
15692 (*andqi_2_maybe_si): Ditto.
15693 (*and<mode>_2): Ditto.
15694 (*andqi_2_slp): Ditto.
15695 (*<code><mode>_1): Ditto.
15696 (*<code>qi_1): Ditto.
15697 (*<code>qi_1_slp): Ditto.
15698 (*<code><mode>_2): Ditto.
15699 (*<code>qi_2_slp): Ditto.
15700
15701 2019-07-17 Jan Hubicka <hubicka@ucw.cz>
15702
15703 * alias.c (record_component_aliases): Do not simplify pointed-to
15704 types of ODR types.
15705
15706 2019-07-17 Uroš Bizjak <ubizjak@gmail.com>
15707
15708 * config/i386/i386.md (*andqi_2_maybe_si): Handle potential
15709 partial reg stall on alternative 2.
15710
15711 2019-07-17 Richard Biener <rguenther@suse.de>
15712
15713 PR tree-optimization/91178
15714 * tree-ssa.c (release_defs_bitset): Iterate from higher to
15715 lower SSA names to avoid quadratic behavior in the common case.
15716 * tree-data-ref.c (split_constant_offset): Add limit argument
15717 and pass it down. Initialize it from PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
15718 (split_constant_offset_1): Add limit argument and use it to
15719 limit SSA def walking. Optimize the common plus/minus case.
15720
15721 2019-07-17 Richard Biener <rguenther@suse.de>
15722
15723 PR tree-optimization/91178
15724 * tree-vect-stmts.c (get_group_load_store_type): For SLP
15725 loads with a gap larger than the vector size always use
15726 VMAT_STRIDED_SLP.
15727 (vectorizable_load): For VMAT_STRIDED_SLP with a permutation
15728 avoid loading vectors that are only contained in the gap
15729 and thus are not needed.
15730
15731 2019-07-17 Richard Biener <rguenther@suse.de>
15732
15733 PR tree-optimization/91180
15734 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix offset
15735 computation for memset partial defs.
15736
15737 2019-07-17 Jakub Jelinek <jakub@redhat.com>
15738
15739 * gimple.h (enum gf_mask): Remove GF_OMP_FOR_SIMD, change
15740 GF_OMP_FOR_KIND_SIMD to a value serially after other kinds,
15741 divide GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_COMBINED,
15742 GF_OMP_FOR_COMBINED_INTO, GF_OMP_FOR_GRID_PHONY,
15743 GF_OMP_FOR_GRID_INTRA_GROUP and GF_OMP_FOR_GRID_GROUP_ITER by two.
15744 * omp-grid.c (grid_process_grid_body,
15745 grid_eliminate_combined_simd_part): Use GF_OMP_FOR_KIND_SIMD instead
15746 of GF_OMP_FOR_SIMD, don't test & GF_OMP_FOR_SIMD but
15747 == GF_OMP_FOR_KIND_SIMD.
15748 * omp-low.c (build_outer_var_ref, scan_sharing_clauses,
15749 check_omp_nesting_restrictions, scan_omp_1_stmt,
15750 lower_rec_input_clauses, lower_lastprivate_conditional_clauses,
15751 lower_lastprivate_clauses, lower_reduction_clauses, lower_omp_scan,
15752 omp_find_scan): Likewise.
15753 * omp-expand.c (expand_omp_for): Likewise.
15754 * omp-general.c (omp_extract_for_data): Likewise.
15755
15756 PR tree-optimization/91157
15757 * tree-vect-generic.c (expand_vector_comparison): Handle lhs being
15758 a vector boolean with scalar mode.
15759 (expand_vector_condition): Handle first operand being a vector boolean
15760 with scalar mode.
15761 (expand_vector_operations_1): For comparisons, don't bail out early
15762 if the return type is vector boolean with scalar mode, but comparison
15763 operand type is not.
15764
15765 2019-07-17 Richard Biener <rguenther@suse.de>
15766
15767 PR tree-optimization/91181
15768 * tree-vect-slp.c (vect_build_slp_tree_1): Do not compare
15769 IFN_LOADs as calls.
15770
15771 2019-07-16 Uroš Bizjak <ubizjak@gmail.com>
15772
15773 * config/i386/i386.md (*testdi_1): Match CCZmode for
15774 constants that might have the SImode sign bit set.
15775 (*testqi_1_maybe_si): Remove "!" constraint modifier.
15776 Use correct constraints for pentium pairing.
15777 (*test<mode>_1): Ditto.
15778
15779 2019-07-16 Jeff Law <law@redhat.com>
15780
15781 PR rtl-optimization/91173
15782 * tree-ssa-address.c (addr_for_mem_ref): If the base is an
15783 SSA_NAME with a constant value, fold its value into the offset
15784 and clear the base before calling gen_addr_rtx.
15785
15786 2019-07-16 Jakub Jelinek <jakub@redhat.com>
15787
15788 PR rtl-optimization/91164
15789 * dse.c (rest_of_handle_dse): If dead edges have been purged,
15790 invalidate dominance info.
15791
15792 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
15793
15794 * read-md.h (md_reader::record_potential_iterator_use): Add a
15795 file_location parameter.
15796 * read-rtl.c (attribute_use::loc): New field.
15797 (map_attr_string): Take a file_location parameter. Report cases
15798 in which attributes map to multiple distinct values.
15799 (apply_attribute_uses): Update call accordingly.
15800 (md_reader::handle_overloaded_name): Likewise.
15801 (md_reader::apply_iterator_to_string): Likewise. Skip empty
15802 nonnull strings.
15803 (record_attribute_use): Take a file_location parameter.
15804 Initialize attribute_use::loc.
15805 (md_reader::record_potential_iterator_use): Take a file_location
15806 parameter. Update call to record_attribute_use.
15807 (rtx_reader::rtx_alloc_for_name): Update call accordingly.
15808 (rtx_reader::read_rtx_code): Likewise.
15809 (rtx_reader::read_rtx_operand): Likewise. Record a location
15810 for implicitly-expanded empty strings.
15811
15812 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
15813
15814 * read-md.h (md_reader::ptr_loc): Moved from read-md.c.
15815 Use file_location instead of separate fields.
15816 (md_reader::set_md_ptr_loc): Take a file_location instead of a
15817 separate filename and line number.
15818 * read-md.c (ptr_loc): As above.
15819 (md_reader::copy_md_ptr_loc): Update for new ptr_loc layout.
15820 (md_reader::fprint_md_ptr_loc): Likewise.
15821 (md_reader::set_md_ptr_loc): Likewise. Take a file_location
15822 instead of a separate filename and line number.
15823 (md_reader::read_string): Update call accordingly.
15824
15825 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
15826
15827 * config/rs6000/rs6000.md (*mov<mode>_update1): Explicitly
15828 use <SFDF:mode>, <SFDF:MODE>, <SFDF:Ff> and <SFDF:bits> rather than
15829 leaving the choice between SFDF and P implicit.
15830 (*mov<mode>_update2): Likewise.
15831 (*cmp<IBM128:mode>_internal2): Explicitly use <IBM128:MODE>
15832 rather than leaving the choice betweem IBM128 and GPR implicit.
15833 (*fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Explicitly use
15834 <IEEE128:MODE> rather than leaving the choice between IEEE128 and
15835 QHSI implicit.
15836 (AltiVec define_peephole2s): Explicitly use <ALTIVEC_DFORM:MODE>
15837 rather than leaving the choice between ALTIVEC_DFORM and P implicit.
15838 * config/rs6000/vsx.md
15839 (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>)
15840 (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Explicitly
15841 use <FL_CONV:VSisa> rather than leaving the choice between FL_CONV
15842 and VSX_EXTRACT_I implicit.
15843
15844 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
15845
15846 * config/mips/micromips.md (*movep<MOVEP1:mode><MOVEP2:mode>):
15847 Explicitly use <MOVEP1:MODE> for the mode attribute.
15848
15849 2019-07-16 Jan Hubicka <hubicka@ucw.cz>
15850
15851 PR bootstrap/91176
15852 * ipa-fnsummary.c (analyze_function_body): Skip debug stmts
15853
15854 2019-07-15 Segher Boessenkool <segher@kernel.crashing.org>
15855
15856 PR target/91050
15857 * config/rs6000/rs6000.c (rs6000_file_start): Never skip emitting a
15858 .machine directive.
15859
15860 2019-07-15 Uroš Bizjak <ubizjak@gmail.com>
15861
15862 * config/i386/i386.md (@test<mode>_ccno_1):
15863 Rename from test<mode>_ccno_1.
15864 (*testdi_1): Remove redundant alternatives. Remove modrm attribute.
15865 (*testqi_1_maybe_si): Remove modrm attribute.
15866 (*test<mode>_1): Ditto.
15867 * config/i386/i386-expand.c (ix86_split_idivmod): Use
15868 gen_test_ccno_1 and gen_extend_insn.
15869
15870 2019-07-15 Jan Hubicka <hubicka@ucw.cz>
15871
15872 * tree-ssa-alias.c (aliasing_component_refs_walk): Initialize same_p
15873 to 0.
15874
15875 2019-07-15 Richard Biener <rguenther@suse.de>
15876
15877 PR middle-end/91162
15878 * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
15879 node make sure to replace all uses with something valid.
15880
15881 2019-07-15 Kewen Lin <linkw@gcc.gnu.org>
15882
15883 PR tree-optimization/88497
15884 * tree-ssa-reassoc.c (reassociate_bb): Swap the positions of
15885 GIMPLE_BINARY_RHS check and gimple_visited_p check, call new
15886 function undistribute_bitref_for_vector.
15887 (undistribute_bitref_for_vector): New function.
15888 (cleanup_vinfo_map): Likewise.
15889 (sort_by_mach_mode): Likewise.
15890
15891 2019-07-14 Uroš Bizjak <ubizjak@gmail.com>
15892
15893 * config/i386/i386.md (nonmemory_szext_operand): New mode attribute.
15894 (test<mode>_ccno_1): Macroize insn pattern from testsi_ccno_1
15895 and testdi_ccno_1 using SWI48 mode attribute.
15896 (*testdi_1): Use x86_64_szext_nonmemory_operand instead of
15897 x86_64_szext_general_operand.
15898 (*testqi_1_maybe_si): Use nonmemory_operand instead of general_operand.
15899 (*test<mode>_1): Use nonmemory_szext_operand mode attribute
15900 instead of genera_operand mode attribute.
15901
15902 2019-07-14 Vladislav Ivanishin <vlad@ispras.ru>
15903
15904 * gdbhooks.py (DumpFn.invoke): Add explicit casts of return values of
15905 fopen and fclose to their respective types.
15906 (DotFn.invoke): Ditto.
15907
15908 2019-07-14 Jan Hubicka <hubicka@ucw.cz>
15909
15910 * ipa-fnsummary.c (ipa_dump_hints): Do not dump array_index.
15911 (ipa_fn_summary::~ipa_fn_summary): Do not destroy array_index.
15912 (ipa_fn_summary_t::duplicate): Do not duplicate array_index.
15913 (array_index_predicate): Remove.
15914 (analyze_function_body): Account cost for variable ofsetted array
15915 indexing.
15916 (estimate_node_size_and_time): Do not compute array index hint.
15917 (ipa_merge_fn_summary_after_inlining): Do not merge array index hint.
15918 (inline_read_section): Do not read array index hint.
15919 (ipa_fn_summary_write): Do not write array index hint.
15920 * doc/invoke.texi (ipa-cp-array-index-hint-bonus): Remove.
15921 * ipa-cp.c (hint_time_bonus): Remove.
15922 * ipa-fnsummary.h (ipa_hints_vals): Remove array_index.
15923 (ipa_fnsummary): Remove array_index.
15924 * ipa-inline.c (want_inline_small_function_p): Do not use
15925 array_index.
15926 (edge_badness): Likewise.
15927 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): Remove.
15928
15929 2019-07-14 Segher Boessenkool <segher@kernel.crashing.org>
15930
15931 PR target/91148
15932 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Remove
15933 superfluous "builtin function" phrasing.
15934
15935 2019-07-13 Jan Hubicka <hubicka@ucw.cz>
15936
15937 * tree-ssa-alias.c (component_ref_to_zero_sized_trailing_array_p):
15938 Break out from ...
15939 (aliasing_component_refs_walk): Break out from ...
15940 (aliasing_component_refs_p): ... here.
15941
15942 2019-07-13 Segher Boessenkool <segher@kernel.crashing.org>
15943
15944 PR target/91148
15945 * config/rs6000/rs6000.c (rs6000_invalid_builtin): Remove superfluous
15946 "builtin function" phrasing.
15947
15948 2019-07-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
15949
15950 PR target/90723
15951 * recog.h (temporary_volatile_ok): New class.
15952 * config/aarch64/aarch64.c (aarch64_emit_sve_pred_move): Set
15953 volatile_ok temporarily to true using temporary_volatile_ok.
15954 * expr.c (emit_block_move_via_cpymem): Likewise.
15955 * optabs.c (maybe_legitimize_operand): Likewise.
15956
15957 2019-07-13 Jakub Jelinek <jakub@redhat.com>
15958
15959 * gimplify.c (struct gimplify_omp_ctx): Add order_concurrent member.
15960 (omp_notice_threadprivate_variable): Diagnose threadprivate variable
15961 uses inside of order(concurrent) constructs.
15962 (gimplify_scan_omp_clauses): Set ctx->order_concurrent if
15963 OMP_CLAUSE_ORDER is seen.
15964 * omp-low.c (struct omp_context): Add order_concurrent member.
15965 (scan_sharing_clauses): Set ctx->order_concurrent if
15966 OMP_CLAUSE_ORDER is seen.
15967 (check_omp_nesting_restrictions): Diagnose ordered or atomic inside
15968 of simd order(concurrent). Diagnose constructs not allowed inside of
15969 for order(concurrent).
15970 (setjmp_or_longjmp_p): Add a context and TREE_PUBLIC check to avoid
15971 complaining about static double setjmp (double); or class static
15972 methods or non-global namespace setjmps.
15973 (omp_runtime_api_call): New function.
15974 (scan_omp_1_stmt): Diagnose OpenMP runtime API calls inside of
15975 order(concurrent) loops.
15976
15977 2019-07-12 Martin Sebor <msebor@redhat.com>
15978
15979 * doc/invoke.texi (ssa-name-def-chain-limit): Document new --param.
15980 * params.def (PARAM_SSA_NAME_DEF_CHAIN_LIMIT): Add new --param.
15981 * tree-vrp.c (vrp_prop::check_mem_ref): Use
15982 PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
15983
15984 2019-07-12 Jan Hubicka <jh@suse.cz>
15985
15986 * tree-ssa-alias.c (same_tmr_indexing_p): Break out from ...
15987 (indirect_refs_may_alias_p): ... here.
15988 (nonoverlapping_component_refs_since_match_p): Support also non-trivial
15989 mem refs in the access paths.
15990
15991 2019-07-12 Jiangning Liu <jiangning.liu@amperecomputing.com>
15992
15993 PR tree-optimization/89430
15994 * tree-ssa-phiopt.c (cond_store_replacement): Support conditional
15995 store elimination for local variable without address escape.
15996
15997 2019-07-12 Jeff Law <law@redhat.com>
15998
15999 * config/c6x/c6x.c (c6x_section_type): Clear SECTION_NOTYPE
16000 for the ".far" section.
16001
16002 2019-07-12 Richard Biener <rguenther@suse.de>
16003
16004 PR tree-optimization/91145
16005 * tree-vect-slp.c (vect_build_slp_tree_2): Fix reduction
16006 chain check.
16007
16008 2019-07-12 Alexandre Oliva <oliva@adacore.com>
16009
16010 * tree-eh.c (honor_protect_cleanup_actions): Use outer_
16011 rather than this_state as the lowering context for the ELSE
16012 seq in a GIMPLE_EH_ELSE.
16013
16014 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
16015
16016 * vector-builder.h (vector_builder::elt): Allow already-supplied
16017 elements to be read back before building is complete.
16018
16019 2019-07-12 Eric Botcazou <ebotcazou@adacore.com>
16020
16021 PR rtl-optimization/91136
16022 * df-core.c (ACCESSING REFS): Fix typos in comment.
16023 * resource.c (mark_target_live_reg): Add artificial defs that occur at
16024 the beginning of the block to the initial set of live registers.
16025
16026 2019-07-12 Richard Biener <rguenther@suse.de>
16027
16028 * fold-const.h (get_array_ctor_element_at_index): Adjust.
16029 * fold-const.c (get_array_ctor_element_at_index): Add
16030 ctor_idx output parameter informing the caller where in
16031 the constructor the element was (not) found. Add early exit
16032 for when the ctor is sorted.
16033 * gimple-fold.c (fold_array_ctor_reference): Support constant
16034 folding across multiple array elements.
16035
16036 2019-07-12 Eric Botcazou <ebotcazou@adacore.com>
16037
16038 * cfgexpand.c (expand_gimple_stmt_1) <GIMPLE_RETURN>: If the statement
16039 doesn't have location, set the current location to the function's end.
16040
16041 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
16042
16043 * config/aarch64/aarch64.md (*compare_condjump<mode>)
16044 (loadwb_pair<GPI:mode>_<P:mode>, loadwb_pair<GPF:mode>_<P:mode>)
16045 (storewb_pair<GPI:mode>_<P:mode>, storewb_pair<GPF:mode>_<P:mode>)
16046 (*ands<mode>_compare0): Fix ambiguous uses of .md attributes.
16047 * config/aarch64/aarch64-simd.md
16048 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
16049 (*aarch64_get_lane_zero_extend<GPI:mode><VDQQH:mode>): Likewise.
16050 * config/aarch64/aarch64-sve.md
16051 (while_ult<GPI:mode><PRED_ALL:mode>): Likewise.
16052 (*cond_<optab><mode>_any): Fix SVE_I/SVE_SDI typo.
16053
16054 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
16055
16056 * doc/md.texi: Document that @ patterns can have different
16057 numbers of operands.
16058 * genemit.c (handle_overloaded_gen): Handle this case.
16059 * genopinit.c (handle_overloaded_gen): Likewise.
16060 * gensupport.c (replace_operands_with_dups): Iterate over
16061 the new rtx's format rather than the old one's.
16062
16063 2019-07-12 Jakub Jelinek <jakub@redhat.com>
16064
16065 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_ORDER.
16066 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
16067 order clause entries.
16068 (walk_tree_1): Handle OMP_CLAUSE_ORDER.
16069 * tree-pretty-print.c (dump_omp_clause): Likewise.
16070 * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses):
16071 Likewise.
16072 * omp-low.c (scan_sharing_clauses): Likewise.
16073 * tree-nested.c (convert_nonlocal_omp_clauses,
16074 convert_local_omp_clauses): Likewise.
16075
16076 2019-07-12 Kewen Lin <linkw@gcc.gnu.org>
16077
16078 * cfgrtl.c (print_rtl_with_bb): Emit a hint if the
16079 fallthrough target of current basic block isn't the placed
16080 right next.
16081
16082 2019-07-11 Sunil K Pandey <sunil.k.pandey@intel.com>
16083
16084 PR target/90980
16085 * config/i386/avx512fintrin.h (_mm512_loadu_epi64): New.
16086 (_mm512_storeu_epi64): Likewise.
16087 (_mm512_loadu_epi32): Likewise.
16088 (_mm512_storeu_epi32): Likewise.
16089 * config/i386/avx512vlintrin.h (_mm256_storeu_epi64): New.
16090 (_mm_storeu_epi64): Likewise.
16091 (_mm256_storeu_epi32): Likewise.
16092 (_mm_storeu_epi32): Likewise.
16093
16094 2019-07-11 Segher Boessenkool <segher@kernel.crashing.org>
16095
16096 * config/rs6000/rs6000-logue.c: Add Modula-2 to comment.
16097
16098 2019-07-11 Segher Boessenkool <segher@kernel.crashing.org>
16099
16100 * config/rs6000/rs6000-logue.c (rs6000_output_function_epilogue):
16101 Handle Modula-2.
16102
16103 2019-07-11 Jakub Jelinek <jakub@redhat.com>
16104
16105 PR target/91124
16106 * config/i386/sse.md (sse2_cvtpd2dq<mask_name>): Change into ...
16107 (sse2_cvtpd2dq): ... this. Remove mask substitution macros.
16108 (sse2_cvtpd2dq_mask, sse2_cvtpd2dq_mask_1): New define_insns.
16109 (ufix_notruncv2dfv2si2<mask_name>): Change into ...
16110 (ufix_notruncv2dfv2si2): ... this. Remove mask substitution macros.
16111 (ufix_notruncv2dfv2si2_mask, ufix_notruncv2dfv2si2_mask_1): New
16112 define_insns.
16113 (ufix_truncv2dfv2si2<mask_name>): Change into ...
16114 (ufix_truncv2dfv2si2): ... this. Remove mask substitution macros.
16115 (ufix_truncv2dfv2si2_mask, ufix_truncv2dfv2si2_mask_1): New
16116 define_insns.
16117 (sse2_cvttpd2dq<mask_name>): Change into ...
16118 (sse2_cvttpd2dq): ... this. Remove mask substitution macros.
16119 (sse2_cvttpd2dq_mask, sse2_cvttpd2dq_mask_1): New define_insns.
16120 (*sse2_cvtpd2dq<mask_name>): Change into ...
16121 (*sse2_cvtpd2dq): ... this. Remove mask substitution macros.
16122 Add "C" constraint to const0_operand.
16123 (*sse2_cvtpd2dq_mask, *sse2_cvtpd2dq_mask_1): New define_insns.
16124 (sse2_cvtpd2ps_mask): Adjust expand to match *sse2_cvtpd2ps_mask
16125 changes.
16126
16127 PR target/91124
16128 * config/i386/i386-builtin-types.def
16129 (V32HI_FTYPE_V32HI_V32HI_V32HI_INT,
16130 V16HI_FTYPE_V16HI_V16HI_V16HI_INT, V8HI_FTYPE_V8HI_V8HI_V8HI_INT,
16131 V8SI_FTYPE_V8SI_V8SI_V8SI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT,
16132 V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V16SI_FTYPE_V16SI_V16SI_V16SI_INT,
16133 V2DI_FTYPE_V2DI_V2DI_V2DI_INT, V4SI_FTYPE_V4SI_V4SI_V4SI_INT): Remove.
16134 * config/i386/i386-builtin.def (__builtin_ia32_vpshrdv_v32hi_mask,
16135 __builtin_ia32_vpshrdv_v32hi_maskz, __builtin_ia32_vpshrdv_v16hi_mask,
16136 __builtin_ia32_vpshrdv_v16hi_maskz, __builtin_ia32_vpshrdv_v8hi_mask,
16137 __builtin_ia32_vpshrdv_v8hi_maskz, __builtin_ia32_vpshrdv_v16si_mask,
16138 __builtin_ia32_vpshrdv_v16si_maskz, __builtin_ia32_vpshrdv_v8si_mask,
16139 __builtin_ia32_vpshrdv_v8si_maskz, __builtin_ia32_vpshrdv_v4si_mask,
16140 __builtin_ia32_vpshrdv_v4si_maskz, __builtin_ia32_vpshrdv_v8di_mask,
16141 __builtin_ia32_vpshrdv_v8di_maskz, __builtin_ia32_vpshrdv_v4di_mask,
16142 __builtin_ia32_vpshrdv_v4di_maskz, __builtin_ia32_vpshrdv_v2di_mask,
16143 __builtin_ia32_vpshrdv_v2di_maskz, __builtin_ia32_vpshldv_v32hi_mask,
16144 __builtin_ia32_vpshldv_v32hi_maskz, __builtin_ia32_vpshldv_v16hi_mask,
16145 __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi_mask,
16146 __builtin_ia32_vpshldv_v8hi_maskz, __builtin_ia32_vpshldv_v16si_mask,
16147 __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si_mask,
16148 __builtin_ia32_vpshldv_v8si_maskz, __builtin_ia32_vpshldv_v4si_mask,
16149 __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di_mask,
16150 __builtin_ia32_vpshldv_v8di_maskz, __builtin_ia32_vpshldv_v4di_mask,
16151 __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di_mask,
16152 __builtin_ia32_vpshldv_v2di_maskz, __builtin_ia32_vpdpbusd_v16si_mask,
16153 __builtin_ia32_vpdpbusd_v16si_maskz, __builtin_ia32_vpdpbusd_v8si_mask,
16154 __builtin_ia32_vpdpbusd_v8si_maskz, __builtin_ia32_vpdpbusd_v4si_mask,
16155 __builtin_ia32_vpdpbusd_v4si_maskz,
16156 __builtin_ia32_vpdpbusds_v16si_mask,
16157 __builtin_ia32_vpdpbusds_v16si_maskz,
16158 __builtin_ia32_vpdpbusds_v8si_mask,
16159 __builtin_ia32_vpdpbusds_v8si_maskz,
16160 __builtin_ia32_vpdpbusds_v4si_mask,
16161 __builtin_ia32_vpdpbusds_v4si_maskz,
16162 __builtin_ia32_vpdpwssd_v16si_mask,
16163 __builtin_ia32_vpdpwssd_v16si_maskz, __builtin_ia32_vpdpwssd_v8si_mask,
16164 __builtin_ia32_vpdpwssd_v8si_maskz, __builtin_ia32_vpdpwssd_v4si_mask,
16165 __builtin_ia32_vpdpwssd_v4si_maskz,
16166 __builtin_ia32_vpdpwssds_v16si_mask,
16167 __builtin_ia32_vpdpwssds_v16si_maskz,
16168 __builtin_ia32_vpdpwssds_v8si_mask,
16169 __builtin_ia32_vpdpwssds_v8si_maskz,
16170 __builtin_ia32_vpdpwssds_v4si_mask,
16171 __builtin_ia32_vpdpwssds_v4si_maskz): Use *_USI, *_UHI or *_UQI
16172 suffixed types rather than *_INT.
16173 * config/i386/i386-expand.c (ix86_expand_args_builtin): Don't handle
16174 V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT,
16175 V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT,
16176 V4DI_FTYPE_V4DI_V4DI_V4DI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI_INT,
16177 V16SI_FTYPE_V16SI_V16SI_V16SI_INT, V2DI_FTYPE_V2DI_V2DI_V2DI_INT
16178 and V4SI_FTYPE_V4SI_V4SI_V4SI_INT.
16179
16180 2019-07-11 Aldy Hernandez <aldyh@redhat.com>
16181
16182 * tree-vrp.c (intersect_ranges): If we know the intersection is
16183 empty, there is no need to conservatively add anything else to
16184 the set.
16185
16186 2019-07-11 Richard Biener <rguenther@suse.de>
16187
16188 PR middle-end/91131
16189 * gimplify.c (gimplify_compound_literal_expr): Force a temporary
16190 when the object is volatile and we have not cleared it even though
16191 there are no nonzero elements.
16192
16193 2019-07-10 Michael Meissner <meissner@linux.ibm.com>
16194
16195 * config/rs6000/predicates.md (cint34_operand): Update
16196 SIGNED_34BIT_OFFSET_P call.
16197 (pcrel_address): Update SIGNED_34BIT_OFFSET_P call.
16198 (pcrel_external_address): Update SIGNED_34BIT_OFFSET_P call.
16199 * config/rs6000/rs6000.c (rs6000_prefixed_address): Update
16200 SIGNED_16BIT_OFFSET_P and SIGNED_34BIT_OFFSET_P calls.
16201 * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): Remove EXTRA
16202 argument.
16203 (SIGNED_34BIT_OFFSET_P): Remove EXTRA argument.
16204 (SIGNED_16BIT_OFFSET_EXTRA_P): New macro, like
16205 SIGNED_16BIT_OFFSET_P with an EXTRA argument.
16206 (SIGNED_34BIT_OFFSET_EXTRA_P): New macro, like
16207 SIGNED_34BIT_OFFSET_P with an EXTRA argument.
16208
16209 2019-07-10 Iain Sandoe <iain@sandoe.co.uk>
16210
16211 * config/rs6000/darwin.h (LIB_SPEC): Collate this spec here.
16212 * config/rs6000/darwin7.h (LIB_SPEC): Remove.
16213 * config/rs6000/darwin8.h (LIB_SPEC): Remove.
16214 (DEF_MIN_OSX_VERSION): New.
16215
16216 2019-07-10 Richard Sandiford <richard.sandiford@arm.com>
16217
16218 * fold-const.c (fold_relational_const): Fix folding of
16219 vector-to-scalar NE_EXPRs.
16220 (test_vector_folding): Add more tests.
16221
16222 2019-07-10 Richard Sandiford <richard.sandiford@arm.com>
16223
16224 PR target/91060
16225 * config/arm/iterators.md (V2DI_ONLY): New mode iterator.
16226 * config/arm/neon.md (vec_set<mode>_internal): Add a '@' prefix.
16227 (vec_setv2di_internal): Reexpress as...
16228 (@vec_set<V2DI_ONLY:mode>_internal): ...this.
16229 * config/arm/arm.c (neon_expand_vector_init): Use gen_vec_set_internal
16230 rather than gen_neon_vset_lane<mode>.
16231
16232 2019-07-10 Vladimir Makarov <vmakarov@redhat.com>
16233
16234 PR target/91102
16235 * lra-constraints.c (process_alt_operands): Don't match user
16236 defined regs only if they are early clobbers.
16237
16238 2019-07-10 Marc Glisse <marc.glisse@inria.fr>
16239
16240 * wide-int.h (wi::lshift): Reject negative values for the fast path.
16241
16242 2019-07-10 Richard Biener <rguenther@suse.de>
16243
16244 PR tree-optimization/91126
16245 * tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust
16246 native encoding offset for BYTES_BIG_ENDIAN.
16247 (vn_reference_lookup_3): Likewise.
16248
16249 2019-07-10 Richard Biener <rguenther@suse.de>
16250
16251 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look at valueized
16252 LHS whenever possible.
16253
16254 2019-07-09 Jan Hubicka <hubicka@ucw.cz>
16255
16256 * tree-ssa-alias.c (nonoverlapping_component_refs_p_1): Break out
16257 from ...; work also on duplicated types.
16258 (nonoverlapping_component_refs_since_match): ... here
16259 (ncr_type_uid): Break out from ...
16260 (ncr_compar): ... here; look for TYPE_UID of canonical type if
16261 available.
16262 (nonoverlapping_component_refs_p): Use same_type_for_tbaa to match
16263 the types and nonoverlapping_component_refs_p_1 to disambiguate.
16264
16265 2019-07-09 Martin Sebor <msebor@redhat.com>
16266
16267 PR tree-optimization/90989
16268 * tree-ssa-strlen.c (handle_char_store): Constrain a single character
16269 optimization to just single character stores.
16270
16271 2019-07-09 Joern Rennecke <joern.rennecke@riscy-ip.com>
16272
16273 * tree-vect-stmts.c (vectorizable_comparison) <!slp_node>:
16274 Swap operands only once.
16275
16276 2019-07-09 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
16277
16278 * cfgcleanup.c (old_insns_match_p): Check if used hard regs set is equal
16279 for both call instructions.
16280
16281 2019-07-09 John Darrington <john@darrington.wattle.id.au>
16282
16283 * simplify-rtx.c (simplify_unary_operation_1): Use GET_MODE_PRECISION
16284 rather than GET_MODE_BITSIZE to better handle partial integer modes.
16285
16286 2019-07-09 Michael Meissner <meissner@linux.ibm.com>
16287
16288 * config/rs6000/rs6000-internal.h (create_TOC_reference): Delete.
16289 * config/rs6000/rs6000-logue.c (create_TOC_reference): Move
16290 function from rs6000-logue.c back to rs6000.c.
16291 * config/rs6000/rs6000.c (create_TOC_reference): Likewise.
16292
16293 2019-07-09 Martin Sebor <msebor@redhat.com>
16294
16295 PR c++/61339
16296 * auto-profile.c: Change class-key of PODs to struct and others
16297 to class.
16298 * basic-block.h: Same.
16299 * bitmap.c (bitmap_alloc): Same.
16300 * bitmap.h: Same.
16301 * builtins.c (expand_builtin_prefetch): Same.
16302 (expand_builtin_interclass_mathfn): Same.
16303 (expand_builtin_strlen): Same.
16304 (expand_builtin_mempcpy_args): Same.
16305 (expand_cmpstr): Same.
16306 (expand_builtin___clear_cache): Same.
16307 (expand_ifn_atomic_bit_test_and): Same.
16308 (expand_builtin_thread_pointer): Same.
16309 (expand_builtin_set_thread_pointer): Same.
16310 * caller-save.c (setup_save_areas): Same.
16311 (replace_reg_with_saved_mem): Same.
16312 (insert_restore): Same.
16313 (insert_save): Same.
16314 (add_used_regs): Same.
16315 * cfg.c (get_bb_copy): Same.
16316 (set_loop_copy): Same.
16317 * cfg.h: Same.
16318 * cfganal.h: Same.
16319 * cfgexpand.c (alloc_stack_frame_space): Same.
16320 (add_stack_var): Same.
16321 (add_stack_var_conflict): Same.
16322 (add_scope_conflicts_1): Same.
16323 (update_alias_info_with_stack_vars): Same.
16324 (expand_used_vars): Same.
16325 * cfghooks.c (redirect_edge_and_branch_force): Same.
16326 (delete_basic_block): Same.
16327 (split_edge): Same.
16328 (make_forwarder_block): Same.
16329 (force_nonfallthru): Same.
16330 (duplicate_block): Same.
16331 (lv_flush_pending_stmts): Same.
16332 * cfghooks.h: Same.
16333 * cfgloop.c (flow_loops_cfg_dump): Same.
16334 (flow_loop_nested_p): Same.
16335 (superloop_at_depth): Same.
16336 (get_loop_latch_edges): Same.
16337 (flow_loop_dump): Same.
16338 (flow_loops_dump): Same.
16339 (flow_loops_free): Same.
16340 (flow_loop_nodes_find): Same.
16341 (establish_preds): Same.
16342 (flow_loop_tree_node_add): Same.
16343 (flow_loop_tree_node_remove): Same.
16344 (flow_loops_find): Same.
16345 (find_subloop_latch_edge_by_profile): Same.
16346 (find_subloop_latch_edge_by_ivs): Same.
16347 (mfb_redirect_edges_in_set): Same.
16348 (form_subloop): Same.
16349 (merge_latch_edges): Same.
16350 (disambiguate_multiple_latches): Same.
16351 (disambiguate_loops_with_multiple_latches): Same.
16352 (flow_bb_inside_loop_p): Same.
16353 (glb_enum_p): Same.
16354 (get_loop_body_with_size): Same.
16355 (get_loop_body): Same.
16356 (fill_sons_in_loop): Same.
16357 (get_loop_body_in_dom_order): Same.
16358 (get_loop_body_in_custom_order): Same.
16359 (release_recorded_exits): Same.
16360 (get_loop_exit_edges): Same.
16361 (num_loop_branches): Same.
16362 (remove_bb_from_loops): Same.
16363 (find_common_loop): Same.
16364 (delete_loop): Same.
16365 (cancel_loop): Same.
16366 (verify_loop_structure): Same.
16367 (loop_preheader_edge): Same.
16368 (loop_exit_edge_p): Same.
16369 (single_exit): Same.
16370 (loop_exits_to_bb_p): Same.
16371 (loop_exits_from_bb_p): Same.
16372 (get_loop_location): Same.
16373 (record_niter_bound): Same.
16374 (get_estimated_loop_iterations_int): Same.
16375 (max_stmt_executions_int): Same.
16376 (likely_max_stmt_executions_int): Same.
16377 (get_estimated_loop_iterations): Same.
16378 (get_max_loop_iterations): Same.
16379 (get_max_loop_iterations_int): Same.
16380 (get_likely_max_loop_iterations): Same.
16381 * cfgloop.h (simple_loop_desc): Same.
16382 (get_loop): Same.
16383 (loop_depth): Same.
16384 (loop_outer): Same.
16385 (loop_iterator::next): Same.
16386 (loop_outermost): Same.
16387 * cfgloopanal.c (mark_irreducible_loops): Same.
16388 (num_loop_insns): Same.
16389 (average_num_loop_insns): Same.
16390 (expected_loop_iterations_unbounded): Same.
16391 (expected_loop_iterations): Same.
16392 (mark_loop_exit_edges): Same.
16393 (single_likely_exit): Same.
16394 * cfgloopmanip.c (fix_bb_placement): Same.
16395 (fix_bb_placements): Same.
16396 (remove_path): Same.
16397 (place_new_loop): Same.
16398 (add_loop): Same.
16399 (scale_loop_frequencies): Same.
16400 (scale_loop_profile): Same.
16401 (create_empty_if_region_on_edge): Same.
16402 (create_empty_loop_on_edge): Same.
16403 (loopify): Same.
16404 (unloop): Same.
16405 (fix_loop_placements): Same.
16406 (copy_loop_info): Same.
16407 (duplicate_loop): Same.
16408 (duplicate_subloops): Same.
16409 (loop_redirect_edge): Same.
16410 (can_duplicate_loop_p): Same.
16411 (duplicate_loop_to_header_edge): Same.
16412 (mfb_keep_just): Same.
16413 (has_preds_from_loop): Same.
16414 (create_preheader): Same.
16415 (create_preheaders): Same.
16416 (lv_adjust_loop_entry_edge): Same.
16417 (loop_version): Same.
16418 * cfgloopmanip.h: Same.
16419 * cgraph.h: Same.
16420 * cgraphbuild.c: Same.
16421 * combine.c (make_extraction): Same.
16422 * config/i386/i386-features.c: Same.
16423 * config/i386/i386-features.h: Same.
16424 * config/i386/i386.c (ix86_emit_outlined_ms2sysv_save): Same.
16425 (ix86_emit_outlined_ms2sysv_restore): Same.
16426 (ix86_noce_conversion_profitable_p): Same.
16427 (ix86_init_cost): Same.
16428 (ix86_simd_clone_usable): Same.
16429 * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Add -Wclass-is-pod and
16430 Wstruct-not-pod.
16431 * coretypes.h: Same.
16432 * data-streamer-in.c (string_for_index): Change class-key of PODs
16433 to struct and others to class.
16434 (streamer_read_indexed_string): Same.
16435 (streamer_read_string): Same.
16436 (bp_unpack_indexed_string): Same.
16437 (bp_unpack_string): Same.
16438 (streamer_read_uhwi): Same.
16439 (streamer_read_hwi): Same.
16440 (streamer_read_gcov_count): Same.
16441 (streamer_read_wide_int): Same.
16442 * data-streamer.h (streamer_write_bitpack): Same.
16443 (bp_unpack_value): Same.
16444 (streamer_write_char_stream): Same.
16445 (streamer_write_hwi_in_range): Same.
16446 (streamer_write_record_start): Same.
16447 * ddg.c (create_ddg_dep_from_intra_loop_link): Same.
16448 (add_cross_iteration_register_deps): Same.
16449 (build_intra_loop_deps): Same.
16450 * df-core.c (df_analyze): Same.
16451 (loop_post_order_compute): Same.
16452 (loop_inverted_post_order_compute): Same.
16453 * df-problems.c (df_rd_alloc): Same.
16454 (df_rd_simulate_one_insn): Same.
16455 (df_rd_local_compute): Same.
16456 (df_rd_init_solution): Same.
16457 (df_rd_confluence_n): Same.
16458 (df_rd_transfer_function): Same.
16459 (df_rd_free): Same.
16460 (df_rd_dump_defs_set): Same.
16461 (df_rd_top_dump): Same.
16462 (df_lr_alloc): Same.
16463 (df_lr_reset): Same.
16464 (df_lr_local_compute): Same.
16465 (df_lr_init): Same.
16466 (df_lr_confluence_n): Same.
16467 (df_lr_free): Same.
16468 (df_lr_top_dump): Same.
16469 (df_lr_verify_transfer_functions): Same.
16470 (df_live_alloc): Same.
16471 (df_live_reset): Same.
16472 (df_live_init): Same.
16473 (df_live_confluence_n): Same.
16474 (df_live_finalize): Same.
16475 (df_live_free): Same.
16476 (df_live_top_dump): Same.
16477 (df_live_verify_transfer_functions): Same.
16478 (df_mir_alloc): Same.
16479 (df_mir_reset): Same.
16480 (df_mir_init): Same.
16481 (df_mir_confluence_n): Same.
16482 (df_mir_free): Same.
16483 (df_mir_top_dump): Same.
16484 (df_word_lr_alloc): Same.
16485 (df_word_lr_reset): Same.
16486 (df_word_lr_init): Same.
16487 (df_word_lr_confluence_n): Same.
16488 (df_word_lr_free): Same.
16489 (df_word_lr_top_dump): Same.
16490 (df_md_alloc): Same.
16491 (df_md_simulate_one_insn): Same.
16492 (df_md_reset): Same.
16493 (df_md_init): Same.
16494 (df_md_free): Same.
16495 (df_md_top_dump): Same.
16496 * df-scan.c (df_insn_delete): Same.
16497 (df_insn_rescan): Same.
16498 (df_notes_rescan): Same.
16499 (df_sort_and_compress_mws): Same.
16500 (df_install_mws): Same.
16501 (df_refs_add_to_chains): Same.
16502 (df_ref_create_structure): Same.
16503 (df_ref_record): Same.
16504 (df_def_record_1): Same.
16505 (df_find_hard_reg_defs): Same.
16506 (df_uses_record): Same.
16507 (df_get_conditional_uses): Same.
16508 (df_get_call_refs): Same.
16509 (df_recompute_luids): Same.
16510 (df_get_entry_block_def_set): Same.
16511 (df_entry_block_defs_collect): Same.
16512 (df_get_exit_block_use_set): Same.
16513 (df_exit_block_uses_collect): Same.
16514 (df_mws_verify): Same.
16515 (df_bb_verify): Same.
16516 * df.h (df_scan_get_bb_info): Same.
16517 * doc/tm.texi: Same.
16518 * dse.c (record_store): Same.
16519 * dumpfile.h: Same.
16520 * emit-rtl.c (const_fixed_hasher::equal): Same.
16521 (set_mem_attributes_minus_bitpos): Same.
16522 (change_address): Same.
16523 (adjust_address_1): Same.
16524 (offset_address): Same.
16525 * emit-rtl.h: Same.
16526 * except.c (dw2_build_landing_pads): Same.
16527 (sjlj_emit_dispatch_table): Same.
16528 * explow.c (allocate_dynamic_stack_space): Same.
16529 (emit_stack_probe): Same.
16530 (probe_stack_range): Same.
16531 * expmed.c (store_bit_field_using_insv): Same.
16532 (store_bit_field_1): Same.
16533 (store_integral_bit_field): Same.
16534 (extract_bit_field_using_extv): Same.
16535 (extract_bit_field_1): Same.
16536 (emit_cstore): Same.
16537 * expr.c (emit_block_move_via_cpymem): Same.
16538 (expand_cmpstrn_or_cmpmem): Same.
16539 (set_storage_via_setmem): Same.
16540 (emit_single_push_insn_1): Same.
16541 (expand_assignment): Same.
16542 (store_constructor): Same.
16543 (expand_expr_real_2): Same.
16544 (expand_expr_real_1): Same.
16545 (try_casesi): Same.
16546 * flags.h: Same.
16547 * function.c (try_fit_stack_local): Same.
16548 (assign_stack_local_1): Same.
16549 (assign_stack_local): Same.
16550 (cut_slot_from_list): Same.
16551 (insert_slot_to_list): Same.
16552 (max_slot_level): Same.
16553 (move_slot_to_level): Same.
16554 (temp_address_hasher::equal): Same.
16555 (remove_unused_temp_slot_addresses): Same.
16556 (assign_temp): Same.
16557 (combine_temp_slots): Same.
16558 (update_temp_slot_address): Same.
16559 (preserve_temp_slots): Same.
16560 * function.h: Same.
16561 * fwprop.c: Same.
16562 * gcc-rich-location.h: Same.
16563 * gcov.c: Same.
16564 * genattrtab.c (check_attr_test): Same.
16565 (check_attr_value): Same.
16566 (convert_set_attr_alternative): Same.
16567 (convert_set_attr): Same.
16568 (check_defs): Same.
16569 (copy_boolean): Same.
16570 (get_attr_value): Same.
16571 (expand_delays): Same.
16572 (make_length_attrs): Same.
16573 (min_fn): Same.
16574 (make_alternative_compare): Same.
16575 (simplify_test_exp): Same.
16576 (tests_attr_p): Same.
16577 (get_attr_order): Same.
16578 (clear_struct_flag): Same.
16579 (gen_attr): Same.
16580 (compares_alternatives_p): Same.
16581 (gen_insn): Same.
16582 (gen_delay): Same.
16583 (find_attrs_to_cache): Same.
16584 (write_test_expr): Same.
16585 (walk_attr_value): Same.
16586 (write_attr_get): Same.
16587 (eliminate_known_true): Same.
16588 (write_insn_cases): Same.
16589 (write_attr_case): Same.
16590 (write_attr_valueq): Same.
16591 (write_attr_value): Same.
16592 (write_dummy_eligible_delay): Same.
16593 (next_comma_elt): Same.
16594 (find_attr): Same.
16595 (make_internal_attr): Same.
16596 (copy_rtx_unchanging): Same.
16597 (gen_insn_reserv): Same.
16598 (check_tune_attr): Same.
16599 (make_automaton_attrs): Same.
16600 (handle_arg): Same.
16601 * genextract.c (gen_insn): Same.
16602 (VEC_char_to_string): Same.
16603 * genmatch.c (print_operand): Same.
16604 (lower): Same.
16605 (parser::parse_operation): Same.
16606 (parser::parse_capture): Same.
16607 (parser::parse_c_expr): Same.
16608 (parser::parse_simplify): Same.
16609 (main): Same.
16610 * genoutput.c (output_operand_data): Same.
16611 (output_get_insn_name): Same.
16612 (compare_operands): Same.
16613 (place_operands): Same.
16614 (process_template): Same.
16615 (validate_insn_alternatives): Same.
16616 (validate_insn_operands): Same.
16617 (gen_expand): Same.
16618 (note_constraint): Same.
16619 * genpreds.c (write_one_predicate_function): Same.
16620 (add_constraint): Same.
16621 (process_define_register_constraint): Same.
16622 (write_lookup_constraint_1): Same.
16623 (write_lookup_constraint_array): Same.
16624 (write_insn_constraint_len): Same.
16625 (write_reg_class_for_constraint_1): Same.
16626 (write_constraint_satisfied_p_array): Same.
16627 * genrecog.c (optimize_subroutine_group): Same.
16628 * gensupport.c (process_define_predicate): Same.
16629 (queue_pattern): Same.
16630 (remove_from_queue): Same.
16631 (process_rtx): Same.
16632 (is_predicable): Same.
16633 (change_subst_attribute): Same.
16634 (subst_pattern_match): Same.
16635 (alter_constraints): Same.
16636 (alter_attrs_for_insn): Same.
16637 (shift_output_template): Same.
16638 (alter_output_for_subst_insn): Same.
16639 (process_one_cond_exec): Same.
16640 (subst_dup): Same.
16641 (process_define_cond_exec): Same.
16642 (mnemonic_htab_callback): Same.
16643 (gen_mnemonic_attr): Same.
16644 (read_md_rtx): Same.
16645 * ggc-page.c: Same.
16646 * gimple-loop-interchange.cc (dump_reduction): Same.
16647 (dump_induction): Same.
16648 (loop_cand::~loop_cand): Same.
16649 (free_data_refs_with_aux): Same.
16650 (tree_loop_interchange::interchange_loops): Same.
16651 (tree_loop_interchange::map_inductions_to_loop): Same.
16652 (tree_loop_interchange::move_code_to_inner_loop): Same.
16653 (compute_access_stride): Same.
16654 (compute_access_strides): Same.
16655 (proper_loop_form_for_interchange): Same.
16656 (tree_loop_interchange_compute_ddrs): Same.
16657 (prune_datarefs_not_in_loop): Same.
16658 (prepare_data_references): Same.
16659 (pass_linterchange::execute): Same.
16660 * gimple-loop-jam.c (bb_prevents_fusion_p): Same.
16661 (unroll_jam_possible_p): Same.
16662 (fuse_loops): Same.
16663 (adjust_unroll_factor): Same.
16664 (tree_loop_unroll_and_jam): Same.
16665 * gimple-loop-versioning.cc (loop_versioning::~loop_versioning): Same.
16666 (loop_versioning::expensive_stmt_p): Same.
16667 (loop_versioning::version_for_unity): Same.
16668 (loop_versioning::dump_inner_likelihood): Same.
16669 (loop_versioning::find_per_loop_multiplication): Same.
16670 (loop_versioning::analyze_term_using_scevs): Same.
16671 (loop_versioning::record_address_fragment): Same.
16672 (loop_versioning::analyze_expr): Same.
16673 (loop_versioning::analyze_blocks): Same.
16674 (loop_versioning::prune_conditions): Same.
16675 (loop_versioning::merge_loop_info): Same.
16676 (loop_versioning::add_loop_to_queue): Same.
16677 (loop_versioning::decide_whether_loop_is_versionable): Same.
16678 (loop_versioning::make_versioning_decisions): Same.
16679 (loop_versioning::implement_versioning_decisions): Same.
16680 * gimple-ssa-evrp-analyze.c
16681 (evrp_range_analyzer::record_ranges_from_phis): Same.
16682 * gimple-ssa-store-merging.c (split_store::split_store): Same.
16683 (count_multiple_uses): Same.
16684 (split_group): Same.
16685 (imm_store_chain_info::output_merged_store): Same.
16686 (pass_store_merging::process_store): Same.
16687 * gimple-ssa-strength-reduction.c (slsr_process_phi): Same.
16688 * gimple-ssa-warn-alloca.c (adjusted_warn_limit): Same.
16689 (is_max): Same.
16690 (alloca_call_type): Same.
16691 (pass_walloca::execute): Same.
16692 * gimple-streamer-in.c (input_phi): Same.
16693 (input_gimple_stmt): Same.
16694 * gimple-streamer.h: Same.
16695 * godump.c (go_force_record_alignment): Same.
16696 (go_format_type): Same.
16697 (go_output_type): Same.
16698 (go_output_fndecl): Same.
16699 (go_output_typedef): Same.
16700 (keyword_hash_init): Same.
16701 (find_dummy_types): Same.
16702 * graph.c (draw_cfg_nodes_no_loops): Same.
16703 (draw_cfg_nodes_for_loop): Same.
16704 * hard-reg-set.h (hard_reg_set_iter_next): Same.
16705 * hsa-brig.c: Same.
16706 * hsa-common.h (hsa_internal_fn_hasher::equal): Same.
16707 * hsa-dump.c (dump_hsa_cfun): Same.
16708 * hsa-gen.c (gen_function_def_parameters): Same.
16709 * hsa-regalloc.c (dump_hsa_cfun_regalloc): Same.
16710 * input.c (dump_line_table_statistics): Same.
16711 (test_lexer): Same.
16712 * input.h: Same.
16713 * internal-fn.c (get_multi_vector_move): Same.
16714 (expand_load_lanes_optab_fn): Same.
16715 (expand_GOMP_SIMT_ENTER_ALLOC): Same.
16716 (expand_GOMP_SIMT_EXIT): Same.
16717 (expand_GOMP_SIMT_LAST_LANE): Same.
16718 (expand_GOMP_SIMT_ORDERED_PRED): Same.
16719 (expand_GOMP_SIMT_VOTE_ANY): Same.
16720 (expand_GOMP_SIMT_XCHG_BFLY): Same.
16721 (expand_GOMP_SIMT_XCHG_IDX): Same.
16722 (expand_addsub_overflow): Same.
16723 (expand_neg_overflow): Same.
16724 (expand_mul_overflow): Same.
16725 (expand_call_mem_ref): Same.
16726 (expand_mask_load_optab_fn): Same.
16727 (expand_scatter_store_optab_fn): Same.
16728 (expand_gather_load_optab_fn): Same.
16729 * ipa-cp.c (ipa_get_parm_lattices): Same.
16730 (print_all_lattices): Same.
16731 (ignore_edge_p): Same.
16732 (build_toporder_info): Same.
16733 (free_toporder_info): Same.
16734 (push_node_to_stack): Same.
16735 (ipcp_lattice<valtype>::set_contains_variable): Same.
16736 (set_agg_lats_to_bottom): Same.
16737 (ipcp_bits_lattice::meet_with): Same.
16738 (set_single_call_flag): Same.
16739 (initialize_node_lattices): Same.
16740 (ipa_get_jf_ancestor_result): Same.
16741 (ipcp_verify_propagated_values): Same.
16742 (propagate_scalar_across_jump_function): Same.
16743 (propagate_context_across_jump_function): Same.
16744 (propagate_bits_across_jump_function): Same.
16745 (ipa_vr_operation_and_type_effects): Same.
16746 (propagate_vr_across_jump_function): Same.
16747 (set_check_aggs_by_ref): Same.
16748 (set_chain_of_aglats_contains_variable): Same.
16749 (merge_aggregate_lattices): Same.
16750 (agg_pass_through_permissible_p): Same.
16751 (propagate_aggs_across_jump_function): Same.
16752 (call_passes_through_thunk_p): Same.
16753 (propagate_constants_across_call): Same.
16754 (devirtualization_time_bonus): Same.
16755 (good_cloning_opportunity_p): Same.
16756 (context_independent_aggregate_values): Same.
16757 (gather_context_independent_values): Same.
16758 (perform_estimation_of_a_value): Same.
16759 (estimate_local_effects): Same.
16760 (value_topo_info<valtype>::add_val): Same.
16761 (add_all_node_vals_to_toposort): Same.
16762 (value_topo_info<valtype>::propagate_effects): Same.
16763 (ipcp_propagate_stage): Same.
16764 (ipcp_discover_new_direct_edges): Same.
16765 (same_node_or_its_all_contexts_clone_p): Same.
16766 (cgraph_edge_brings_value_p): Same.
16767 (gather_edges_for_value): Same.
16768 (create_specialized_node): Same.
16769 (find_more_scalar_values_for_callers_subset): Same.
16770 (find_more_contexts_for_caller_subset): Same.
16771 (copy_plats_to_inter): Same.
16772 (intersect_aggregates_with_edge): Same.
16773 (find_aggregate_values_for_callers_subset): Same.
16774 (cgraph_edge_brings_all_agg_vals_for_node): Same.
16775 (decide_about_value): Same.
16776 (decide_whether_version_node): Same.
16777 (spread_undeadness): Same.
16778 (identify_dead_nodes): Same.
16779 (ipcp_store_vr_results): Same.
16780 * ipa-devirt.c (final_warning_record::grow_type_warnings): Same.
16781 * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Same.
16782 (redirect_to_unreachable): Same.
16783 (edge_set_predicate): Same.
16784 (evaluate_conditions_for_known_args): Same.
16785 (evaluate_properties_for_edge): Same.
16786 (ipa_fn_summary_t::duplicate): Same.
16787 (ipa_call_summary_t::duplicate): Same.
16788 (dump_ipa_call_summary): Same.
16789 (ipa_dump_fn_summary): Same.
16790 (eliminated_by_inlining_prob): Same.
16791 (set_cond_stmt_execution_predicate): Same.
16792 (set_switch_stmt_execution_predicate): Same.
16793 (compute_bb_predicates): Same.
16794 (will_be_nonconstant_expr_predicate): Same.
16795 (phi_result_unknown_predicate): Same.
16796 (analyze_function_body): Same.
16797 (compute_fn_summary): Same.
16798 (estimate_edge_devirt_benefit): Same.
16799 (estimate_edge_size_and_time): Same.
16800 (estimate_calls_size_and_time): Same.
16801 (estimate_node_size_and_time): Same.
16802 (remap_edge_change_prob): Same.
16803 (remap_edge_summaries): Same.
16804 (ipa_merge_fn_summary_after_inlining): Same.
16805 (ipa_fn_summary_generate): Same.
16806 (inline_read_section): Same.
16807 (ipa_fn_summary_read): Same.
16808 (ipa_fn_summary_write): Same.
16809 * ipa-fnsummary.h: Same.
16810 * ipa-hsa.c (ipa_hsa_read_section): Same.
16811 * ipa-icf-gimple.c (func_checker::compare_loops): Same.
16812 * ipa-icf.c (sem_function::param_used_p): Same.
16813 * ipa-inline-analysis.c (do_estimate_edge_time): Same.
16814 * ipa-inline.c (edge_badness): Same.
16815 (inline_small_functions): Same.
16816 * ipa-polymorphic-call.c
16817 (ipa_polymorphic_call_context::stream_out): Same.
16818 * ipa-predicate.c (predicate::remap_after_duplication): Same.
16819 (predicate::remap_after_inlining): Same.
16820 (predicate::stream_out): Same.
16821 * ipa-predicate.h: Same.
16822 * ipa-profile.c (ipa_profile_read_summary): Same.
16823 * ipa-prop.c (ipa_get_param_decl_index_1): Same.
16824 (count_formal_params): Same.
16825 (ipa_dump_param): Same.
16826 (ipa_alloc_node_params): Same.
16827 (ipa_print_node_jump_functions_for_edge): Same.
16828 (ipa_print_node_jump_functions): Same.
16829 (ipa_load_from_parm_agg): Same.
16830 (get_ancestor_addr_info): Same.
16831 (ipa_compute_jump_functions_for_edge): Same.
16832 (ipa_analyze_virtual_call_uses): Same.
16833 (ipa_analyze_stmt_uses): Same.
16834 (ipa_analyze_params_uses_in_bb): Same.
16835 (update_jump_functions_after_inlining): Same.
16836 (try_decrement_rdesc_refcount): Same.
16837 (ipa_impossible_devirt_target): Same.
16838 (update_indirect_edges_after_inlining): Same.
16839 (combine_controlled_uses_counters): Same.
16840 (ipa_edge_args_sum_t::duplicate): Same.
16841 (ipa_write_jump_function): Same.
16842 (ipa_write_indirect_edge_info): Same.
16843 (ipa_write_node_info): Same.
16844 (ipa_read_edge_info): Same.
16845 (ipa_prop_read_section): Same.
16846 (read_replacements_section): Same.
16847 * ipa-prop.h (ipa_get_param_count): Same.
16848 (ipa_get_param): Same.
16849 (ipa_get_type): Same.
16850 (ipa_get_param_move_cost): Same.
16851 (ipa_set_param_used): Same.
16852 (ipa_get_controlled_uses): Same.
16853 (ipa_set_controlled_uses): Same.
16854 (ipa_get_cs_argument_count): Same.
16855 * ipa-pure-const.c (analyze_function): Same.
16856 (pure_const_read_summary): Same.
16857 * ipa-ref.h: Same.
16858 * ipa-reference.c (ipa_reference_read_optimization_summary): Same.
16859 * ipa-split.c (test_nonssa_use): Same.
16860 (dump_split_point): Same.
16861 (dominated_by_forbidden): Same.
16862 (split_part_set_ssa_name_p): Same.
16863 (find_split_points): Same.
16864 * ira-build.c (finish_loop_tree_nodes): Same.
16865 (low_pressure_loop_node_p): Same.
16866 * ira-color.c (ira_reuse_stack_slot): Same.
16867 * ira-int.h: Same.
16868 * ira.c (setup_reg_equiv): Same.
16869 (print_insn_chain): Same.
16870 (ira): Same.
16871 * loop-doloop.c (doloop_condition_get): Same.
16872 (add_test): Same.
16873 (record_reg_sets): Same.
16874 (doloop_optimize): Same.
16875 * loop-init.c (loop_optimizer_init): Same.
16876 (fix_loop_structure): Same.
16877 * loop-invariant.c (merge_identical_invariants): Same.
16878 (compute_always_reached): Same.
16879 (find_exits): Same.
16880 (may_assign_reg_p): Same.
16881 (find_invariants_bb): Same.
16882 (find_invariants_body): Same.
16883 (replace_uses): Same.
16884 (can_move_invariant_reg): Same.
16885 (free_inv_motion_data): Same.
16886 (move_single_loop_invariants): Same.
16887 (change_pressure): Same.
16888 (mark_ref_regs): Same.
16889 (calculate_loop_reg_pressure): Same.
16890 * loop-iv.c (biv_entry_hasher::equal): Same.
16891 (iv_extend_to_rtx_code): Same.
16892 (check_iv_ref_table_size): Same.
16893 (clear_iv_info): Same.
16894 (latch_dominating_def): Same.
16895 (iv_get_reaching_def): Same.
16896 (iv_constant): Same.
16897 (iv_subreg): Same.
16898 (iv_extend): Same.
16899 (iv_neg): Same.
16900 (iv_add): Same.
16901 (iv_mult): Same.
16902 (get_biv_step): Same.
16903 (record_iv): Same.
16904 (analyzed_for_bivness_p): Same.
16905 (record_biv): Same.
16906 (iv_analyze_biv): Same.
16907 (iv_analyze_expr): Same.
16908 (iv_analyze_def): Same.
16909 (iv_analyze_op): Same.
16910 (iv_analyze): Same.
16911 (iv_analyze_result): Same.
16912 (biv_p): Same.
16913 (eliminate_implied_conditions): Same.
16914 (simplify_using_initial_values): Same.
16915 (shorten_into_mode): Same.
16916 (canonicalize_iv_subregs): Same.
16917 (determine_max_iter): Same.
16918 (check_simple_exit): Same.
16919 (find_simple_exit): Same.
16920 (get_simple_loop_desc): Same.
16921 * loop-unroll.c (report_unroll): Same.
16922 (decide_unrolling): Same.
16923 (unroll_loops): Same.
16924 (loop_exit_at_end_p): Same.
16925 (decide_unroll_constant_iterations): Same.
16926 (unroll_loop_constant_iterations): Same.
16927 (compare_and_jump_seq): Same.
16928 (unroll_loop_runtime_iterations): Same.
16929 (decide_unroll_stupid): Same.
16930 (unroll_loop_stupid): Same.
16931 (referenced_in_one_insn_in_loop_p): Same.
16932 (reset_debug_uses_in_loop): Same.
16933 (analyze_iv_to_split_insn): Same.
16934 * lra-eliminations.c (lra_debug_elim_table): Same.
16935 (setup_can_eliminate): Same.
16936 (form_sum): Same.
16937 (lra_get_elimination_hard_regno): Same.
16938 (lra_eliminate_regs_1): Same.
16939 (eliminate_regs_in_insn): Same.
16940 (update_reg_eliminate): Same.
16941 (init_elimination): Same.
16942 (lra_eliminate): Same.
16943 * lra-int.h: Same.
16944 * lra-lives.c (initiate_live_solver): Same.
16945 * lra-remat.c (create_remat_bb_data): Same.
16946 * lra-spills.c (lra_spill): Same.
16947 * lra.c (lra_set_insn_recog_data): Same.
16948 (lra_set_used_insn_alternative_by_uid): Same.
16949 (init_reg_info): Same.
16950 (expand_reg_info): Same.
16951 * lto-cgraph.c (output_symtab): Same.
16952 (read_identifier): Same.
16953 (get_alias_symbol): Same.
16954 (input_node): Same.
16955 (input_varpool_node): Same.
16956 (input_ref): Same.
16957 (input_edge): Same.
16958 (input_cgraph_1): Same.
16959 (input_refs): Same.
16960 (input_symtab): Same.
16961 (input_offload_tables): Same.
16962 (output_cgraph_opt_summary): Same.
16963 (input_edge_opt_summary): Same.
16964 (input_cgraph_opt_section): Same.
16965 * lto-section-in.c (lto_free_raw_section_data): Same.
16966 (lto_create_simple_input_block): Same.
16967 (lto_free_function_in_decl_state_for_node): Same.
16968 * lto-streamer-in.c (lto_tag_check_set): Same.
16969 (lto_location_cache::revert_location_cache): Same.
16970 (lto_location_cache::input_location): Same.
16971 (lto_input_location): Same.
16972 (stream_input_location_now): Same.
16973 (lto_input_tree_ref): Same.
16974 (lto_input_eh_catch_list): Same.
16975 (input_eh_region): Same.
16976 (lto_init_eh): Same.
16977 (make_new_block): Same.
16978 (input_cfg): Same.
16979 (fixup_call_stmt_edges): Same.
16980 (input_struct_function_base): Same.
16981 (input_function): Same.
16982 (lto_read_body_or_constructor): Same.
16983 (lto_read_tree_1): Same.
16984 (lto_read_tree): Same.
16985 (lto_input_scc): Same.
16986 (lto_input_tree_1): Same.
16987 (lto_input_toplevel_asms): Same.
16988 (lto_input_mode_table): Same.
16989 (lto_reader_init): Same.
16990 (lto_data_in_create): Same.
16991 * lto-streamer-out.c (output_cfg): Same.
16992 * lto-streamer.h: Same.
16993 * modulo-sched.c (duplicate_insns_of_cycles): Same.
16994 (generate_prolog_epilog): Same.
16995 (mark_loop_unsched): Same.
16996 (dump_insn_location): Same.
16997 (loop_canon_p): Same.
16998 (sms_schedule): Same.
16999 * omp-expand.c (expand_omp_for_ordered_loops): Same.
17000 (expand_omp_for_generic): Same.
17001 (expand_omp_for_static_nochunk): Same.
17002 (expand_omp_for_static_chunk): Same.
17003 (expand_omp_simd): Same.
17004 (expand_omp_taskloop_for_inner): Same.
17005 (expand_oacc_for): Same.
17006 (expand_omp_atomic_pipeline): Same.
17007 (mark_loops_in_oacc_kernels_region): Same.
17008 * omp-offload.c (oacc_xform_loop): Same.
17009 * omp-simd-clone.c (simd_clone_adjust): Same.
17010 * optabs-query.c (get_traditional_extraction_insn): Same.
17011 * optabs.c (expand_vector_broadcast): Same.
17012 (expand_binop_directly): Same.
17013 (expand_twoval_unop): Same.
17014 (expand_twoval_binop): Same.
17015 (expand_unop_direct): Same.
17016 (emit_indirect_jump): Same.
17017 (emit_conditional_move): Same.
17018 (emit_conditional_neg_or_complement): Same.
17019 (emit_conditional_add): Same.
17020 (vector_compare_rtx): Same.
17021 (expand_vec_perm_1): Same.
17022 (expand_vec_perm_const): Same.
17023 (expand_vec_cond_expr): Same.
17024 (expand_vec_series_expr): Same.
17025 (maybe_emit_atomic_exchange): Same.
17026 (maybe_emit_sync_lock_test_and_set): Same.
17027 (expand_atomic_compare_and_swap): Same.
17028 (expand_atomic_load): Same.
17029 (expand_atomic_store): Same.
17030 (maybe_emit_op): Same.
17031 (valid_multiword_target_p): Same.
17032 (create_integer_operand): Same.
17033 (maybe_legitimize_operand_same_code): Same.
17034 (maybe_legitimize_operand): Same.
17035 (create_convert_operand_from_type): Same.
17036 (can_reuse_operands_p): Same.
17037 (maybe_legitimize_operands): Same.
17038 (maybe_gen_insn): Same.
17039 (maybe_expand_insn): Same.
17040 (maybe_expand_jump_insn): Same.
17041 (expand_insn): Same.
17042 * optabs.h (create_expand_operand): Same.
17043 (create_fixed_operand): Same.
17044 (create_output_operand): Same.
17045 (create_input_operand): Same.
17046 (create_convert_operand_to): Same.
17047 (create_convert_operand_from): Same.
17048 * optinfo.h: Same.
17049 * poly-int.h: Same.
17050 * predict.c (optimize_insn_for_speed_p): Same.
17051 (optimize_loop_for_size_p): Same.
17052 (optimize_loop_for_speed_p): Same.
17053 (optimize_loop_nest_for_speed_p): Same.
17054 (get_base_value): Same.
17055 (predicted_by_loop_heuristics_p): Same.
17056 (predict_extra_loop_exits): Same.
17057 (predict_loops): Same.
17058 (predict_paths_for_bb): Same.
17059 (predict_paths_leading_to): Same.
17060 (propagate_freq): Same.
17061 (pass_profile::execute): Same.
17062 * predict.h: Same.
17063 * profile-count.c (profile_count::differs_from_p): Same.
17064 (profile_probability::differs_lot_from_p): Same.
17065 * profile-count.h: Same.
17066 * profile.c (branch_prob): Same.
17067 * regrename.c (free_chain_data): Same.
17068 (mark_conflict): Same.
17069 (create_new_chain): Same.
17070 (merge_overlapping_regs): Same.
17071 (init_rename_info): Same.
17072 (merge_chains): Same.
17073 (regrename_analyze): Same.
17074 (regrename_do_replace): Same.
17075 (scan_rtx_reg): Same.
17076 (record_out_operands): Same.
17077 (build_def_use): Same.
17078 * regrename.h: Same.
17079 * reload.h: Same.
17080 * reload1.c (init_reload): Same.
17081 (maybe_fix_stack_asms): Same.
17082 (copy_reloads): Same.
17083 (count_pseudo): Same.
17084 (count_spilled_pseudo): Same.
17085 (find_reg): Same.
17086 (find_reload_regs): Same.
17087 (select_reload_regs): Same.
17088 (spill_hard_reg): Same.
17089 (fixup_eh_region_note): Same.
17090 (set_reload_reg): Same.
17091 (allocate_reload_reg): Same.
17092 (compute_reload_subreg_offset): Same.
17093 (reload_adjust_reg_for_icode): Same.
17094 (emit_input_reload_insns): Same.
17095 (emit_output_reload_insns): Same.
17096 (do_input_reload): Same.
17097 (inherit_piecemeal_p): Same.
17098 * rtl.h: Same.
17099 * sanopt.c (maybe_get_dominating_check): Same.
17100 (maybe_optimize_ubsan_ptr_ifn): Same.
17101 (can_remove_asan_check): Same.
17102 (maybe_optimize_asan_check_ifn): Same.
17103 (sanopt_optimize_walker): Same.
17104 * sched-deps.c (add_dependence_list): Same.
17105 (chain_to_prev_insn): Same.
17106 (add_insn_mem_dependence): Same.
17107 (create_insn_reg_set): Same.
17108 (maybe_extend_reg_info_p): Same.
17109 (sched_analyze_reg): Same.
17110 (sched_analyze_1): Same.
17111 (get_implicit_reg_pending_clobbers): Same.
17112 (chain_to_prev_insn_p): Same.
17113 (deps_analyze_insn): Same.
17114 (deps_start_bb): Same.
17115 (sched_free_deps): Same.
17116 (init_deps): Same.
17117 (init_deps_reg_last): Same.
17118 (free_deps): Same.
17119 * sched-ebb.c: Same.
17120 * sched-int.h: Same.
17121 * sched-rgn.c (add_branch_dependences): Same.
17122 (concat_insn_mem_list): Same.
17123 (deps_join): Same.
17124 (sched_rgn_compute_dependencies): Same.
17125 * sel-sched-ir.c (reset_target_context): Same.
17126 (copy_deps_context): Same.
17127 (init_id_from_df): Same.
17128 (has_dependence_p): Same.
17129 (change_loops_latches): Same.
17130 (bb_top_order_comparator): Same.
17131 (make_region_from_loop_preheader): Same.
17132 (sel_init_pipelining): Same.
17133 (get_loop_nest_for_rgn): Same.
17134 (make_regions_from_the_rest): Same.
17135 (sel_is_loop_preheader_p): Same.
17136 * sel-sched-ir.h (inner_loop_header_p): Same.
17137 (get_all_loop_exits): Same.
17138 * selftest.h: Same.
17139 * sese.c (sese_build_liveouts): Same.
17140 (sese_insert_phis_for_liveouts): Same.
17141 * sese.h (defined_in_sese_p): Same.
17142 * sreal.c (sreal::stream_out): Same.
17143 * sreal.h: Same.
17144 * streamer-hooks.h: Same.
17145 * target-globals.c (save_target_globals): Same.
17146 * target-globals.h: Same.
17147 * target.def: Same.
17148 * target.h: Same.
17149 * targhooks.c (default_has_ifunc_p): Same.
17150 (default_empty_mask_is_expensive): Same.
17151 (default_init_cost): Same.
17152 * targhooks.h: Same.
17153 * toplev.c: Same.
17154 * tree-affine.c (aff_combination_mult): Same.
17155 (aff_combination_expand): Same.
17156 (aff_combination_constant_multiple_p): Same.
17157 * tree-affine.h: Same.
17158 * tree-cfg.c (build_gimple_cfg): Same.
17159 (replace_loop_annotate_in_block): Same.
17160 (replace_uses_by): Same.
17161 (remove_bb): Same.
17162 (dump_cfg_stats): Same.
17163 (gimple_duplicate_sese_region): Same.
17164 (gimple_duplicate_sese_tail): Same.
17165 (move_block_to_fn): Same.
17166 (replace_block_vars_by_duplicates): Same.
17167 (move_sese_region_to_fn): Same.
17168 (print_loops_bb): Same.
17169 (print_loop): Same.
17170 (print_loops): Same.
17171 (debug): Same.
17172 (debug_loops): Same.
17173 * tree-cfg.h: Same.
17174 * tree-chrec.c (chrec_fold_plus_poly_poly): Same.
17175 (chrec_fold_multiply_poly_poly): Same.
17176 (chrec_evaluate): Same.
17177 (chrec_component_in_loop_num): Same.
17178 (reset_evolution_in_loop): Same.
17179 (is_multivariate_chrec): Same.
17180 (chrec_contains_symbols): Same.
17181 (nb_vars_in_chrec): Same.
17182 (chrec_convert_1): Same.
17183 (chrec_convert_aggressive): Same.
17184 * tree-chrec.h: Same.
17185 * tree-core.h: Same.
17186 * tree-data-ref.c (dump_data_dependence_relation): Same.
17187 (canonicalize_base_object_address): Same.
17188 (data_ref_compare_tree): Same.
17189 (prune_runtime_alias_test_list): Same.
17190 (get_segment_min_max): Same.
17191 (create_intersect_range_checks): Same.
17192 (conflict_fn_no_dependence): Same.
17193 (object_address_invariant_in_loop_p): Same.
17194 (analyze_ziv_subscript): Same.
17195 (analyze_siv_subscript_cst_affine): Same.
17196 (analyze_miv_subscript): Same.
17197 (analyze_overlapping_iterations): Same.
17198 (build_classic_dist_vector_1): Same.
17199 (add_other_self_distances): Same.
17200 (same_access_functions): Same.
17201 (build_classic_dir_vector): Same.
17202 (subscript_dependence_tester_1): Same.
17203 (subscript_dependence_tester): Same.
17204 (access_functions_are_affine_or_constant_p): Same.
17205 (get_references_in_stmt): Same.
17206 (loop_nest_has_data_refs): Same.
17207 (graphite_find_data_references_in_stmt): Same.
17208 (find_data_references_in_bb): Same.
17209 (get_base_for_alignment): Same.
17210 (find_loop_nest_1): Same.
17211 (find_loop_nest): Same.
17212 * tree-data-ref.h (dr_alignment): Same.
17213 (ddr_dependence_level): Same.
17214 * tree-if-conv.c (fold_build_cond_expr): Same.
17215 (add_to_predicate_list): Same.
17216 (add_to_dst_predicate_list): Same.
17217 (phi_convertible_by_degenerating_args): Same.
17218 (idx_within_array_bound): Same.
17219 (all_preds_critical_p): Same.
17220 (pred_blocks_visited_p): Same.
17221 (predicate_bbs): Same.
17222 (build_region): Same.
17223 (if_convertible_loop_p_1): Same.
17224 (is_cond_scalar_reduction): Same.
17225 (predicate_scalar_phi): Same.
17226 (remove_conditions_and_labels): Same.
17227 (combine_blocks): Same.
17228 (version_loop_for_if_conversion): Same.
17229 (versionable_outer_loop_p): Same.
17230 (ifcvt_local_dce): Same.
17231 (tree_if_conversion): Same.
17232 (pass_if_conversion::gate): Same.
17233 * tree-if-conv.h: Same.
17234 * tree-inline.c (maybe_move_debug_stmts_to_successors): Same.
17235 * tree-loop-distribution.c (bb_top_order_cmp): Same.
17236 (free_rdg): Same.
17237 (stmt_has_scalar_dependences_outside_loop): Same.
17238 (copy_loop_before): Same.
17239 (create_bb_after_loop): Same.
17240 (const_with_all_bytes_same): Same.
17241 (generate_memset_builtin): Same.
17242 (generate_memcpy_builtin): Same.
17243 (destroy_loop): Same.
17244 (build_rdg_partition_for_vertex): Same.
17245 (compute_access_range): Same.
17246 (data_ref_segment_size): Same.
17247 (latch_dominated_by_data_ref): Same.
17248 (compute_alias_check_pairs): Same.
17249 (fuse_memset_builtins): Same.
17250 (finalize_partitions): Same.
17251 (find_seed_stmts_for_distribution): Same.
17252 (prepare_perfect_loop_nest): Same.
17253 * tree-parloops.c (lambda_transform_legal_p): Same.
17254 (loop_parallel_p): Same.
17255 (reduc_stmt_res): Same.
17256 (add_field_for_name): Same.
17257 (create_call_for_reduction_1): Same.
17258 (replace_uses_in_bb_by): Same.
17259 (transform_to_exit_first_loop_alt): Same.
17260 (try_transform_to_exit_first_loop_alt): Same.
17261 (transform_to_exit_first_loop): Same.
17262 (num_phis): Same.
17263 (gen_parallel_loop): Same.
17264 (gather_scalar_reductions): Same.
17265 (get_omp_data_i_param): Same.
17266 (try_create_reduction_list): Same.
17267 (oacc_entry_exit_single_gang): Same.
17268 (parallelize_loops): Same.
17269 * tree-pass.h: Same.
17270 * tree-predcom.c (determine_offset): Same.
17271 (last_always_executed_block): Same.
17272 (split_data_refs_to_components): Same.
17273 (suitable_component_p): Same.
17274 (valid_initializer_p): Same.
17275 (find_looparound_phi): Same.
17276 (insert_looparound_copy): Same.
17277 (add_looparound_copies): Same.
17278 (determine_roots_comp): Same.
17279 (predcom_tmp_var): Same.
17280 (initialize_root_vars): Same.
17281 (initialize_root_vars_store_elim_1): Same.
17282 (initialize_root_vars_store_elim_2): Same.
17283 (finalize_eliminated_stores): Same.
17284 (initialize_root_vars_lm): Same.
17285 (remove_stmt): Same.
17286 (determine_unroll_factor): Same.
17287 (execute_pred_commoning_cbck): Same.
17288 (base_names_in_chain_on): Same.
17289 (combine_chains): Same.
17290 (pcom_stmt_dominates_stmt_p): Same.
17291 (try_combine_chains): Same.
17292 (prepare_initializers_chain_store_elim): Same.
17293 (prepare_initializers_chain): Same.
17294 (prepare_initializers): Same.
17295 (prepare_finalizers_chain): Same.
17296 (prepare_finalizers): Same.
17297 (insert_init_seqs): Same.
17298 * tree-scalar-evolution.c (loop_phi_node_p): Same.
17299 (compute_overall_effect_of_inner_loop): Same.
17300 (add_to_evolution_1): Same.
17301 (add_to_evolution): Same.
17302 (follow_ssa_edge_binary): Same.
17303 (follow_ssa_edge_expr): Same.
17304 (backedge_phi_arg_p): Same.
17305 (follow_ssa_edge_in_condition_phi_branch): Same.
17306 (follow_ssa_edge_in_condition_phi): Same.
17307 (follow_ssa_edge_inner_loop_phi): Same.
17308 (follow_ssa_edge): Same.
17309 (analyze_evolution_in_loop): Same.
17310 (analyze_initial_condition): Same.
17311 (interpret_loop_phi): Same.
17312 (interpret_condition_phi): Same.
17313 (interpret_rhs_expr): Same.
17314 (interpret_expr): Same.
17315 (interpret_gimple_assign): Same.
17316 (analyze_scalar_evolution_1): Same.
17317 (analyze_scalar_evolution): Same.
17318 (analyze_scalar_evolution_for_address_of): Same.
17319 (get_instantiated_value_entry): Same.
17320 (loop_closed_phi_def): Same.
17321 (instantiate_scev_name): Same.
17322 (instantiate_scev_poly): Same.
17323 (instantiate_scev_binary): Same.
17324 (instantiate_scev_convert): Same.
17325 (instantiate_scev_not): Same.
17326 (instantiate_scev_r): Same.
17327 (instantiate_scev): Same.
17328 (resolve_mixers): Same.
17329 (initialize_scalar_evolutions_analyzer): Same.
17330 (scev_reset_htab): Same.
17331 (scev_reset): Same.
17332 (derive_simple_iv_with_niters): Same.
17333 (simple_iv_with_niters): Same.
17334 (expression_expensive_p): Same.
17335 (final_value_replacement_loop): Same.
17336 * tree-scalar-evolution.h (block_before_loop): Same.
17337 * tree-ssa-address.h: Same.
17338 * tree-ssa-dce.c (find_obviously_necessary_stmts): Same.
17339 * tree-ssa-dom.c (edge_info::record_simple_equiv): Same.
17340 (record_edge_info): Same.
17341 * tree-ssa-live.c (var_map_base_fini): Same.
17342 (remove_unused_locals): Same.
17343 * tree-ssa-live.h: Same.
17344 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Same.
17345 (pass_ch_vect::execute): Same.
17346 (pass_ch::process_loop_p): Same.
17347 * tree-ssa-loop-im.c (mem_ref_hasher::hash): Same.
17348 (movement_possibility): Same.
17349 (outermost_invariant_loop): Same.
17350 (stmt_cost): Same.
17351 (determine_max_movement): Same.
17352 (invariantness_dom_walker::before_dom_children): Same.
17353 (move_computations): Same.
17354 (may_move_till): Same.
17355 (force_move_till_op): Same.
17356 (force_move_till): Same.
17357 (memref_free): Same.
17358 (record_mem_ref_loc): Same.
17359 (set_ref_stored_in_loop): Same.
17360 (mark_ref_stored): Same.
17361 (sort_bbs_in_loop_postorder_cmp): Same.
17362 (sort_locs_in_loop_postorder_cmp): Same.
17363 (analyze_memory_references): Same.
17364 (mem_refs_may_alias_p): Same.
17365 (find_ref_loc_in_loop_cmp): Same.
17366 (rewrite_mem_ref_loc::operator): Same.
17367 (first_mem_ref_loc_1::operator): Same.
17368 (sm_set_flag_if_changed::operator): Same.
17369 (execute_sm_if_changed_flag_set): Same.
17370 (execute_sm): Same.
17371 (hoist_memory_references): Same.
17372 (ref_always_accessed::operator): Same.
17373 (refs_independent_p): Same.
17374 (record_dep_loop): Same.
17375 (ref_indep_loop_p_1): Same.
17376 (ref_indep_loop_p): Same.
17377 (can_sm_ref_p): Same.
17378 (find_refs_for_sm): Same.
17379 (loop_suitable_for_sm): Same.
17380 (store_motion_loop): Same.
17381 (store_motion): Same.
17382 (fill_always_executed_in): Same.
17383 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Same.
17384 (estimated_unrolled_size): Same.
17385 (loop_edge_to_cancel): Same.
17386 (remove_exits_and_undefined_stmts): Same.
17387 (remove_redundant_iv_tests): Same.
17388 (unloop_loops): Same.
17389 (estimated_peeled_sequence_size): Same.
17390 (try_peel_loop): Same.
17391 (canonicalize_loop_induction_variables): Same.
17392 (canonicalize_induction_variables): Same.
17393 * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher::equal): Same.
17394 (name_info): Same.
17395 (stmt_after_inc_pos): Same.
17396 (contains_abnormal_ssa_name_p): Same.
17397 (niter_for_exit): Same.
17398 (find_bivs): Same.
17399 (mark_bivs): Same.
17400 (find_givs_in_bb): Same.
17401 (find_induction_variables): Same.
17402 (find_interesting_uses_cond): Same.
17403 (outermost_invariant_loop_for_expr): Same.
17404 (idx_find_step): Same.
17405 (add_candidate_1): Same.
17406 (add_iv_candidate_derived_from_uses): Same.
17407 (alloc_use_cost_map): Same.
17408 (prepare_decl_rtl): Same.
17409 (generic_predict_doloop_p): Same.
17410 (computation_cost): Same.
17411 (determine_common_wider_type): Same.
17412 (get_computation_aff_1): Same.
17413 (get_use_type): Same.
17414 (determine_group_iv_cost_address): Same.
17415 (iv_period): Same.
17416 (difference_cannot_overflow_p): Same.
17417 (may_eliminate_iv): Same.
17418 (determine_set_costs): Same.
17419 (cheaper_cost_pair): Same.
17420 (compare_cost_pair): Same.
17421 (iv_ca_cand_for_group): Same.
17422 (iv_ca_recount_cost): Same.
17423 (iv_ca_set_remove_invs): Same.
17424 (iv_ca_set_no_cp): Same.
17425 (iv_ca_set_add_invs): Same.
17426 (iv_ca_set_cp): Same.
17427 (iv_ca_add_group): Same.
17428 (iv_ca_cost): Same.
17429 (iv_ca_compare_deps): Same.
17430 (iv_ca_delta_reverse): Same.
17431 (iv_ca_delta_commit): Same.
17432 (iv_ca_cand_used_p): Same.
17433 (iv_ca_delta_free): Same.
17434 (iv_ca_new): Same.
17435 (iv_ca_free): Same.
17436 (iv_ca_dump): Same.
17437 (iv_ca_extend): Same.
17438 (iv_ca_narrow): Same.
17439 (iv_ca_prune): Same.
17440 (cheaper_cost_with_cand): Same.
17441 (iv_ca_replace): Same.
17442 (try_add_cand_for): Same.
17443 (get_initial_solution): Same.
17444 (try_improve_iv_set): Same.
17445 (find_optimal_iv_set_1): Same.
17446 (create_new_iv): Same.
17447 (rewrite_use_compare): Same.
17448 (remove_unused_ivs): Same.
17449 (determine_scaling_factor): Same.
17450 * tree-ssa-loop-ivopts.h: Same.
17451 * tree-ssa-loop-manip.c (create_iv): Same.
17452 (compute_live_loop_exits): Same.
17453 (add_exit_phi): Same.
17454 (add_exit_phis): Same.
17455 (find_uses_to_rename_use): Same.
17456 (find_uses_to_rename_def): Same.
17457 (find_uses_to_rename_in_loop): Same.
17458 (rewrite_into_loop_closed_ssa): Same.
17459 (check_loop_closed_ssa_bb): Same.
17460 (split_loop_exit_edge): Same.
17461 (ip_end_pos): Same.
17462 (ip_normal_pos): Same.
17463 (copy_phi_node_args): Same.
17464 (gimple_duplicate_loop_to_header_edge): Same.
17465 (can_unroll_loop_p): Same.
17466 (determine_exit_conditions): Same.
17467 (scale_dominated_blocks_in_loop): Same.
17468 (niter_for_unrolled_loop): Same.
17469 (tree_transform_and_unroll_loop): Same.
17470 (rewrite_all_phi_nodes_with_iv): Same.
17471 * tree-ssa-loop-manip.h: Same.
17472 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Same.
17473 (number_of_iterations_ne): Same.
17474 (assert_no_overflow_lt): Same.
17475 (assert_loop_rolls_lt): Same.
17476 (number_of_iterations_lt): Same.
17477 (adjust_cond_for_loop_until_wrap): Same.
17478 (tree_simplify_using_condition): Same.
17479 (simplify_using_initial_conditions): Same.
17480 (simplify_using_outer_evolutions): Same.
17481 (loop_only_exit_p): Same.
17482 (ssa_defined_by_minus_one_stmt_p): Same.
17483 (number_of_iterations_popcount): Same.
17484 (number_of_iterations_exit): Same.
17485 (find_loop_niter): Same.
17486 (finite_loop_p): Same.
17487 (chain_of_csts_start): Same.
17488 (get_val_for): Same.
17489 (loop_niter_by_eval): Same.
17490 (derive_constant_upper_bound_ops): Same.
17491 (do_warn_aggressive_loop_optimizations): Same.
17492 (record_estimate): Same.
17493 (get_cst_init_from_scev): Same.
17494 (record_nonwrapping_iv): Same.
17495 (idx_infer_loop_bounds): Same.
17496 (infer_loop_bounds_from_ref): Same.
17497 (infer_loop_bounds_from_array): Same.
17498 (infer_loop_bounds_from_pointer_arith): Same.
17499 (infer_loop_bounds_from_signedness): Same.
17500 (bound_index): Same.
17501 (discover_iteration_bound_by_body_walk): Same.
17502 (maybe_lower_iteration_bound): Same.
17503 (estimate_numbers_of_iterations): Same.
17504 (estimated_loop_iterations): Same.
17505 (estimated_loop_iterations_int): Same.
17506 (max_loop_iterations): Same.
17507 (max_loop_iterations_int): Same.
17508 (likely_max_loop_iterations): Same.
17509 (likely_max_loop_iterations_int): Same.
17510 (estimated_stmt_executions_int): Same.
17511 (max_stmt_executions): Same.
17512 (likely_max_stmt_executions): Same.
17513 (estimated_stmt_executions): Same.
17514 (stmt_dominates_stmt_p): Same.
17515 (nowrap_type_p): Same.
17516 (loop_exits_before_overflow): Same.
17517 (scev_var_range_cant_overflow): Same.
17518 (scev_probably_wraps_p): Same.
17519 (free_numbers_of_iterations_estimates): Same.
17520 * tree-ssa-loop-niter.h: Same.
17521 * tree-ssa-loop-prefetch.c (release_mem_refs): Same.
17522 (idx_analyze_ref): Same.
17523 (analyze_ref): Same.
17524 (gather_memory_references_ref): Same.
17525 (mark_nontemporal_store): Same.
17526 (emit_mfence_after_loop): Same.
17527 (may_use_storent_in_loop_p): Same.
17528 (mark_nontemporal_stores): Same.
17529 (should_unroll_loop_p): Same.
17530 (volume_of_dist_vector): Same.
17531 (add_subscript_strides): Same.
17532 (self_reuse_distance): Same.
17533 (insn_to_prefetch_ratio_too_small_p): Same.
17534 * tree-ssa-loop-split.c (split_at_bb_p): Same.
17535 (patch_loop_exit): Same.
17536 (find_or_create_guard_phi): Same.
17537 (easy_exit_values): Same.
17538 (connect_loop_phis): Same.
17539 (connect_loops): Same.
17540 (compute_new_first_bound): Same.
17541 (split_loop): Same.
17542 (tree_ssa_split_loops): Same.
17543 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Same.
17544 (is_maybe_undefined): Same.
17545 (tree_may_unswitch_on): Same.
17546 (simplify_using_entry_checks): Same.
17547 (tree_unswitch_single_loop): Same.
17548 (tree_unswitch_loop): Same.
17549 (tree_unswitch_outer_loop): Same.
17550 (empty_bb_without_guard_p): Same.
17551 (used_outside_loop_p): Same.
17552 (get_vop_from_header): Same.
17553 (hoist_guard): Same.
17554 * tree-ssa-loop.c (gate_oacc_kernels): Same.
17555 (get_lsm_tmp_name): Same.
17556 * tree-ssa-loop.h: Same.
17557 * tree-ssa-reassoc.c (add_repeat_to_ops_vec): Same.
17558 (build_and_add_sum): Same.
17559 (no_side_effect_bb): Same.
17560 (get_ops): Same.
17561 (linearize_expr): Same.
17562 (should_break_up_subtract): Same.
17563 (linearize_expr_tree): Same.
17564 * tree-ssa-scopedtables.c: Same.
17565 * tree-ssa-scopedtables.h: Same.
17566 * tree-ssa-structalias.c (condense_visit): Same.
17567 (label_visit): Same.
17568 (dump_pred_graph): Same.
17569 (perform_var_substitution): Same.
17570 (move_complex_constraints): Same.
17571 (remove_preds_and_fake_succs): Same.
17572 * tree-ssa-threadupdate.c (dbds_continue_enumeration_p): Same.
17573 (determine_bb_domination_status): Same.
17574 (duplicate_thread_path): Same.
17575 (thread_through_all_blocks): Same.
17576 * tree-ssa-threadupdate.h: Same.
17577 * tree-streamer-in.c (streamer_read_string_cst): Same.
17578 (input_identifier): Same.
17579 (unpack_ts_type_common_value_fields): Same.
17580 (unpack_ts_block_value_fields): Same.
17581 (unpack_ts_translation_unit_decl_value_fields): Same.
17582 (unpack_ts_omp_clause_value_fields): Same.
17583 (streamer_read_tree_bitfields): Same.
17584 (streamer_alloc_tree): Same.
17585 (lto_input_ts_common_tree_pointers): Same.
17586 (lto_input_ts_vector_tree_pointers): Same.
17587 (lto_input_ts_poly_tree_pointers): Same.
17588 (lto_input_ts_complex_tree_pointers): Same.
17589 (lto_input_ts_decl_minimal_tree_pointers): Same.
17590 (lto_input_ts_decl_common_tree_pointers): Same.
17591 (lto_input_ts_decl_non_common_tree_pointers): Same.
17592 (lto_input_ts_decl_with_vis_tree_pointers): Same.
17593 (lto_input_ts_field_decl_tree_pointers): Same.
17594 (lto_input_ts_function_decl_tree_pointers): Same.
17595 (lto_input_ts_type_common_tree_pointers): Same.
17596 (lto_input_ts_type_non_common_tree_pointers): Same.
17597 (lto_input_ts_list_tree_pointers): Same.
17598 (lto_input_ts_vec_tree_pointers): Same.
17599 (lto_input_ts_exp_tree_pointers): Same.
17600 (lto_input_ts_block_tree_pointers): Same.
17601 (lto_input_ts_binfo_tree_pointers): Same.
17602 (lto_input_ts_constructor_tree_pointers): Same.
17603 (lto_input_ts_omp_clause_tree_pointers): Same.
17604 (streamer_read_tree_body): Same.
17605 * tree-streamer.h: Same.
17606 * tree-switch-conversion.c (bit_test_cluster::is_beneficial): Same.
17607 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Same.
17608 (vect_analyze_possibly_independent_ddr): Same.
17609 (vect_analyze_data_ref_dependence): Same.
17610 (vect_compute_data_ref_alignment): Same.
17611 (vect_enhance_data_refs_alignment): Same.
17612 (vect_analyze_data_ref_access): Same.
17613 (vect_check_gather_scatter): Same.
17614 (vect_find_stmt_data_reference): Same.
17615 (vect_create_addr_base_for_vector_ref): Same.
17616 (vect_setup_realignment): Same.
17617 (vect_supportable_dr_alignment): Same.
17618 * tree-vect-loop-manip.c (rename_variables_in_bb): Same.
17619 (adjust_phi_and_debug_stmts): Same.
17620 (vect_set_loop_mask): Same.
17621 (add_preheader_seq): Same.
17622 (vect_maybe_permute_loop_masks): Same.
17623 (vect_set_loop_masks_directly): Same.
17624 (vect_set_loop_condition_masked): Same.
17625 (vect_set_loop_condition_unmasked): Same.
17626 (slpeel_duplicate_current_defs_from_edges): Same.
17627 (slpeel_add_loop_guard): Same.
17628 (slpeel_can_duplicate_loop_p): Same.
17629 (create_lcssa_for_virtual_phi): Same.
17630 (iv_phi_p): Same.
17631 (vect_update_ivs_after_vectorizer): Same.
17632 (vect_gen_vector_loop_niters_mult_vf): Same.
17633 (slpeel_update_phi_nodes_for_loops): Same.
17634 (slpeel_update_phi_nodes_for_guard1): Same.
17635 (find_guard_arg): Same.
17636 (slpeel_update_phi_nodes_for_guard2): Same.
17637 (slpeel_update_phi_nodes_for_lcssa): Same.
17638 (vect_do_peeling): Same.
17639 (vect_create_cond_for_alias_checks): Same.
17640 (vect_loop_versioning): Same.
17641 * tree-vect-loop.c (vect_determine_vf_for_stmt): Same.
17642 (vect_inner_phi_in_double_reduction_p): Same.
17643 (vect_analyze_scalar_cycles_1): Same.
17644 (vect_fixup_scalar_cycles_with_patterns): Same.
17645 (vect_get_loop_niters): Same.
17646 (bb_in_loop_p): Same.
17647 (vect_get_max_nscalars_per_iter): Same.
17648 (vect_verify_full_masking): Same.
17649 (vect_compute_single_scalar_iteration_cost): Same.
17650 (vect_analyze_loop_form_1): Same.
17651 (vect_analyze_loop_form): Same.
17652 (vect_active_double_reduction_p): Same.
17653 (vect_analyze_loop_operations): Same.
17654 (neutral_op_for_slp_reduction): Same.
17655 (vect_is_simple_reduction): Same.
17656 (vect_model_reduction_cost): Same.
17657 (get_initial_def_for_reduction): Same.
17658 (get_initial_defs_for_reduction): Same.
17659 (vect_create_epilog_for_reduction): Same.
17660 (vectorize_fold_left_reduction): Same.
17661 (vectorizable_reduction): Same.
17662 (vectorizable_induction): Same.
17663 (vectorizable_live_operation): Same.
17664 (loop_niters_no_overflow): Same.
17665 (vect_get_loop_mask): Same.
17666 (vect_transform_loop_stmt): Same.
17667 (vect_transform_loop): Same.
17668 * tree-vect-patterns.c (vect_reassociating_reduction_p): Same.
17669 (vect_determine_precisions): Same.
17670 (vect_pattern_recog_1): Same.
17671 * tree-vect-slp.c (vect_analyze_slp_instance): Same.
17672 * tree-vect-stmts.c (stmt_vectype): Same.
17673 (process_use): Same.
17674 (vect_init_vector_1): Same.
17675 (vect_truncate_gather_scatter_offset): Same.
17676 (get_group_load_store_type): Same.
17677 (vect_build_gather_load_calls): Same.
17678 (vect_get_strided_load_store_ops): Same.
17679 (vectorizable_simd_clone_call): Same.
17680 (vectorizable_store): Same.
17681 (permute_vec_elements): Same.
17682 (vectorizable_load): Same.
17683 (vect_transform_stmt): Same.
17684 (supportable_widening_operation): Same.
17685 * tree-vectorizer.c (vec_info::replace_stmt): Same.
17686 (vec_info::free_stmt_vec_info): Same.
17687 (vect_free_loop_info_assumptions): Same.
17688 (vect_loop_vectorized_call): Same.
17689 (set_uid_loop_bbs): Same.
17690 (vectorize_loops): Same.
17691 * tree-vectorizer.h (STMT_VINFO_BB_VINFO): Same.
17692 * tree.c (add_tree_to_fld_list): Same.
17693 (fld_type_variant_equal_p): Same.
17694 (fld_decl_context): Same.
17695 (fld_incomplete_type_of): Same.
17696 (free_lang_data_in_binfo): Same.
17697 (need_assembler_name_p): Same.
17698 (find_decls_types_r): Same.
17699 (get_eh_types_for_runtime): Same.
17700 (find_decls_types_in_eh_region): Same.
17701 (find_decls_types_in_node): Same.
17702 (assign_assembler_name_if_needed): Same.
17703 * value-prof.c (stream_out_histogram_value): Same.
17704 * value-prof.h: Same.
17705 * var-tracking.c (use_narrower_mode): Same.
17706 (prepare_call_arguments): Same.
17707 (vt_expand_loc_callback): Same.
17708 (resolve_expansions_pending_recursion): Same.
17709 (vt_expand_loc): Same.
17710 * varasm.c (const_hash_1): Same.
17711 (compare_constant): Same.
17712 (tree_output_constant_def): Same.
17713 (simplify_subtraction): Same.
17714 (get_pool_constant): Same.
17715 (output_constant_pool_2): Same.
17716 (output_constant_pool_1): Same.
17717 (mark_constants_in_pattern): Same.
17718 (mark_constant_pool): Same.
17719 (get_section_anchor): Same.
17720 * vr-values.c (compare_range_with_value): Same.
17721 (vr_values::extract_range_from_phi_node): Same.
17722 * vr-values.h: Same.
17723 * web.c (unionfind_union): Same.
17724 * wide-int.h: Same.
17725
17726 2019-07-09 Martin Sebor <msebor@redhat.com>
17727
17728 PR c++/61339
17729 * align.h: Change class-key from class to struct and vice versa
17730 to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod.
17731 * alloc-pool.h: Same.
17732 * asan.c (shadow_mem_size): Same.
17733 * auto-profile.c: Same.
17734 * basic-block.h: Same.
17735 * bitmap.h: Same.
17736 * cfgexpand.c (set_rtl): Same.
17737 (expand_one_stack_var_at): Same.
17738 * cfghooks.h: Same.
17739 * cfgloop.h: Same.
17740 * cgraph.h: Same.
17741 * config/i386/i386.h: Same.
17742 * df-problems.c (df_print_bb_index): Same.
17743 * df-scan.c: Same.
17744 * df.h (df_single_use): Same.
17745 * diagnostic-show-locus.c (layout::print_annotation_line): Same.
17746 (layout::annotation_line_showed_range_p): Same.
17747 (get_printed_columns): Same.
17748 (correction::ensure_terminated): Same.
17749 (line_corrections::~line_corrections): Same.
17750 * dojump.h: Same.
17751 * dse.c: Same.
17752 * dump-context.h: Same.
17753 * dumpfile.h: Same.
17754 * dwarf2out.c: Same.
17755 * edit-context.c: Same.
17756 * fibonacci_heap.c (test_union_of_equal_heaps): Same.
17757 * flags.h: Same.
17758 * function.c (assign_stack_local): Same.
17759 * function.h: Same.
17760 * gcc.c: Same.
17761 * gcov.c (block_info::block_info): Same.
17762 * genattrtab.c: Same.
17763 * genextract.c: Same.
17764 * genmatch.c (comparison_code_p): Same.
17765 (id_base::id_base): Same.
17766 (decision_tree::print): Same.
17767 * genoutput.c: Same.
17768 * genpreds.c (write_one_predicate_function): Same.
17769 * genrecog.c (validate_pattern): Same.
17770 (find_operand_positions): Same.
17771 (optimize_subroutine_group): Same.
17772 (merge_pattern_transition::merge_pattern_transition): Same.
17773 (merge_pattern_info::merge_pattern_info): Same.
17774 (merge_state_result::merge_state_result): Same.
17775 (merge_into_state): Same.
17776 * gensupport.c: Same.
17777 * gensupport.h: Same.
17778 * ggc-common.c (init_ggc_heuristics): Same.
17779 * ggc-tests.c (test_union): Same.
17780 * gimple-loop-interchange.cc (dump_induction): Same.
17781 * gimple-loop-versioning.cc: Same.
17782 * gimple-match.h (gimple_match_cond::any_else): Same.
17783 * gimple-ssa-backprop.c: Same.
17784 * gimple-ssa-sprintf.c: Same.
17785 * gimple-ssa-store-merging.c (store_operand_info::store_operand_info):
17786 Same.
17787 (store_immediate_info::store_immediate_info): Same.
17788 (merged_store_group::apply_stores): Same.
17789 (get_location_for_stmts): Same.
17790 * gimple-ssa-strength-reduction.c: Same.
17791 * gimple-ssa-warn-alloca.c: Same.
17792 * gimple-ssa-warn-restrict.c (pass_wrestrict::execute): Same.
17793 * godump.c (go_type_decl): Same.
17794 * hash-map-tests.c (test_map_of_strings_to_int): Same.
17795 * hash-map.h: Same.
17796 * hash-set-tests.c (test_set_of_strings): Same.
17797 * hsa-brig.c: Same.
17798 * hsa-common.h: Same.
17799 * hsa-gen.c (transformable_switch_to_sbr_p): Same.
17800 * input.c (assert_loceq): Same.
17801 * input.h: Same.
17802 * ipa-cp.c: Same.
17803 * ipa-devirt.c (possible_polymorphic_call_targets_1): Same.
17804 * ipa-fnsummary.h: Same.
17805 * ipa-inline.h: Same.
17806 * ipa-prop.h: Same.
17807 * ipa-split.c (visit_bb): Same.
17808 * ira-int.h (minmax_set_iter_next): Same.
17809 * loop-invariant.c: Same.
17810 * loop-iv.c: Same.
17811 * lra-eliminations.c: Same.
17812 * lra-int.h: Same.
17813 * lra-lives.c (mark_regno_dead): Same.
17814 * lra-remat.c: Same.
17815 * lra-spills.c: Same.
17816 * lto-streamer.h: Same.
17817 * mem-stats.h: Same.
17818 * omp-grid.c (omp_grid_lastprivate_predicate): Same.
17819 * omp-low.c (omp_clause_aligned_alignment): Same.
17820 * optabs-query.h (get_vcond_eq_icode): Same.
17821 * optabs.h: Same.
17822 * opts.c (wrap_help): Same.
17823 * poly-int.h: Same.
17824 * predict.c (predict_paths_leading_to_edge): Same.
17825 * pretty-print.h: Same.
17826 * profile-count.h: Same.
17827 * read-md.h: Same.
17828 * read-rtl-function.c: Same.
17829 * ree.c: Same.
17830 * reginfo.c: Same.
17831 * regrename.c: Same.
17832 * regrename.h: Same.
17833 * reload.h: Same.
17834 * rtl-iter.h: Same.
17835 * rtl.h (costs_add_n_insns): Same.
17836 * sanopt.c: Same.
17837 * sched-int.h: Same.
17838 * sel-sched-ir.h: Same.
17839 * selftest.h: Same.
17840 * sese.h (vec_find): Same.
17841 * stmt.c: Same.
17842 * target-globals.h: Same.
17843 * tree-affine.c (aff_combination_find_elt): Same.
17844 * tree-affine.h: Same.
17845 * tree-data-ref.h: Same.
17846 * tree-outof-ssa.c (ssa_is_replaceable_p): Same.
17847 * tree-predcom.c: Same.
17848 * tree-scalar-evolution.c (find_var_scev_info): Same.
17849 * tree-ssa-alias.h: Same.
17850 * tree-ssa-ccp.c: Same.
17851 * tree-ssa-coalesce.c (ssa_conflicts_dump): Same.
17852 * tree-ssa-loop-im.c (for_all_locs_in_loop): Same.
17853 (rewrite_mem_refs): Same.
17854 (execute_sm_if_changed): Same.
17855 (hoist_memory_references): Same.
17856 * tree-ssa-loop-ivopts.c (operator<=): Same.
17857 * tree-ssa-loop.h: Same.
17858 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Same.
17859 * tree-ssa-structalias.c: Same.
17860 * tree-switch-conversion.h (cluster::cluster): Same.
17861 (simple_cluster::simple_cluster): Same.
17862 * tree-vect-patterns.c (type_conversion_p): Same.
17863 * tree-vectorizer.c (dump_stmt_cost): Same.
17864 * tree-vectorizer.h (loop_vec_info_for_loop): Same.
17865 * tree.c (protected_set_expr_location): Same.
17866 * tree.h (desired_pro_or_demotion_p): Same.
17867 (fndecl_built_in_p): Same.
17868 * unique-ptr-tests.cc: Same.
17869 * var-tracking.c (delete_variable_part): Same.
17870 * varasm.c (assemble_real): Same.
17871 (tree_output_constant_def): Same.
17872 * vec.c: Same.
17873 * wide-int-bitmask.h: Same.
17874 * wide-int.h (decompose): Same.
17875
17876 2019-07-09 Richard Biener <rguenther@suse.de>
17877
17878 PR tree-optimization/91114
17879 * tree-vect-data-refs.c (vect_analyze_data_refs): Failure to
17880 find a vector type isn't fatal.
17881
17882 2019-07-09 Sylvia Taylor <sylvia.taylor@arm.com>
17883
17884 * config/aarch64/aarch64-simd.md
17885 (aarch64_crypto_aes<aes_op>v16qi): Redefine pattern with xor.
17886 (aarch64_crypto_aes<aesmc_op>v16qi): Remove attribute enabled.
17887 (*aarch64_crypto_aes<aes_op>v16qi_xor_combine): Remove both.
17888 (*aarch64_crypto_aese_fused,
17889 *aarch64_crypto_aesd_fused): Update to new definition.
17890 * config/aarch64/aarch64.c
17891 (aarch_macro_fusion_pair_p): Remove aese/aesmc fusion check.
17892
17893 2019-07-09 Richard Biener <rguenther@suse.de>
17894
17895 * gimple-match.h (gimple_match_op::resimplify): New.
17896 (gimple_resimplify1, gimple_resimplify2, gimple_resimplify3,
17897 gimple_resimplify4, gimple_resimplify5): Remove.
17898 * gimple-match-head.c (gimple_resimplify1, gimple_resimplify2,
17899 gimple_resimplify3, gimple_resimplify4, gimple_resimplify5):
17900 Make static.
17901 (gimple_match_op::resimplify): New.
17902 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Valueize
17903 according to availability. Use gimple_match_op::resimplify.
17904
17905 2019-07-09 Eric Botcazou <ebotcazou@adacore.com>
17906
17907 * ira-emit.c (emit_moves): Skip DEBUG_INSNs when setting the location.
17908
17909 2019-07-09 Sylvia Taylor <sylvia.taylor@arm.com>
17910
17911 * config/arm/crypto.md:
17912 (crypto_<crypto_pattern>): Redefine aese/aesd pattern with xor.
17913 (crypto_<crypto_pattern>): Remove attribute enabled for aesmc.
17914 (crypto_<crypto_pattern>): Split CRYPTO_BINARY into 2 patterns.
17915 (*aarch32_crypto_aese_fused, *aarch32_crypto_aesd_fused): New.
17916 * config/arm/arm.c
17917 (aarch_macro_fusion_pair_p): Remove aes/aesmc fusion check.
17918 * config/arm/aarch-common-protos.h
17919 (aarch_crypto_can_dual_issue): Remove.
17920 * config/arm/aarch-common.c
17921 (aarch_crypto_can_dual_issue): Likewise.
17922 * config/arm/exynos-m1.md: Remove aese/aesmc fusion.
17923 * config/arm/cortex-a53.md: Likewise.
17924 * config/arm/cortex-a57.md: Likewise.
17925 * config/arm/iterators.md:
17926 (CRYPTO_BINARY): Redefine.
17927 (CRYPTO_UNARY): Removed.
17928 (CRYPTO_AES, CRYPTO_AESMC): New.
17929
17930 2019-07-09 Richard Biener <rguenther@suse.de>
17931
17932 * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add orig_ref member.
17933 (vn_reference_lookup_3): If the main ref has no access path recorded
17934 but orig_ref has use it to do access-path based disambiguation.
17935 (vn_reference_lookup_pieces): Adjust.
17936 (vn_reference_lookup): Pass down original ref if we valueized.
17937
17938 2019-07-09 Martin Liska <mliska@suse.cz>
17939
17940 * doc/extend.texi: Document influence on loop
17941 optimizers.
17942
17943 2019-07-09 Martin Liska <mliska@suse.cz>
17944
17945 * lto-compress.c (lto_normalized_zstd_level): Do not use
17946 ZSTD_CLEVEL_DEFAULT as it is not default in old releases
17947 of libzstd. One can use 0 as a default compression level.
17948
17949 2019-07-09 Martin Liska <mliska@suse.cz>
17950
17951 * doc/invoke.texi: Add link from -fprofile-dir option.
17952 Use better wording for 'gcno filename'.
17953
17954 2019-07-08 Martin Sebor <msebor@redhat.com>
17955
17956 PR middle-end/71924
17957 PR middle-end/90549
17958 * gimple-ssa-isolate-paths.c (isolate_path): Add attribute. Update
17959 comment.
17960 (args_loc_t): New type.
17961 (args_loc_t, locmap_t): same.
17962 (diag_returned_locals): New function.
17963 (is_addr_local): Same.
17964 (handle_return_addr_local_phi_arg, warn_return_addr_local): Same.
17965 (find_implicit_erroneous_behavior): Call warn_return_addr_local_phi_arg.
17966 (find_explicit_erroneous_behavior): Call warn_return_addr_local.
17967
17968 2019-07-08 Jakub Jelinek <jakub@redhat.com>
17969
17970 * tree-vect-stmts.c (scan_operand_equal_p): Look through MEM_REF
17971 with SSA_NAME address of POINTER_PLUS_EXPR. Handle MULT_EXPR
17972 and casts in offset when different, both through gimple stmts
17973 and through trees. Rewritten using loops to minimize code duplication
17974 for each operand.
17975
17976 2019-07-08 Eric Botcazou <ebotcazou@adacore.com>
17977
17978 * emit-rtl.c (set_insn_locations): New function moved from...
17979 * function.c (set_insn_locations): ...here.
17980 * ira-emit.c (emit_moves): Propagate location of the first instruction
17981 to the inserted move instructions.
17982 * reg-stack.c (compensate_edge): Set the location if the sequence is
17983 inserted on the edge.
17984 * rtl.h (set_insn_locations): Declare.
17985
17986 2019-07-08 Segher Boessenkool <segher@kernel.crashing.org>
17987
17988 * config/rs6000/rs6000.c (rs6000_machine_from_flags): Ignore
17989 OPTION_MASK_PPC_GFXOPT and OPTION_MASK_PPC_GPOPT for selecting the
17990 .machine string.
17991
17992 2019-07-08 Segher Boessenkool <segher@kernel.crashing.org>
17993
17994 PR rtl-optimization/88233
17995 * common.opt (fsplit-wide-types-early): New option.
17996 * common/config/rs6000/rs6000-common.c
17997 (rs6000_option_optimization_table): Add OPT_fsplit_wide_types_early for
17998 OPT_LEVELS_ALL.
17999 * doc/invoke.texi (Optimization Options): Add -fsplit-wide-types-early.
18000 * lower-subreg.c (pass_lower_subreg2::gate): Add test for
18001 flag_split_wide_types_early.
18002 (pass_data_lower_subreg3): New.
18003 (pass_lower_subreg3): New.
18004 (make_pass_lower_subreg3): New.
18005 * passes.def (pass_lower_subreg2): Move after the loop passes.
18006 (pass_lower_subreg3): New, inserted where pass_lower_subreg2 was.
18007 * tree-pass.h (make_pass_lower_subreg2): Move up, to its new place in
18008 the pass pipeline; its previous place is taken by ...
18009 (make_pass_lower_subreg3): ... this.
18010
18011 2019-07-08 Robin Dapp <rdapp@linux.ibm.com>
18012
18013 * config/s390/s390.c (s390_shift_truncation_mask): Define.
18014 (TARGET_SHIFT_TRUNCATION_MASK): Define.
18015
18016 2019-07-08 Robin Dapp <rdapp@linux.ibm.com>
18017
18018 * config/s390/constraints.md: Add new jsc constraint.
18019 * config/s390/predicates.md: New predicates.
18020 * config/s390/s390-protos.h (s390_valid_shift_count): New function.
18021 * config/s390/s390.c (s390_valid_shift_count): New function.
18022 (print_shift_count_operand): Use s390_valid_shift_count.
18023 (print_operand): Likewise.
18024 * config/s390/s390.md: Use new predicate.
18025 * config/s390/subst.md: Remove addr_style_op and masked_op substs.
18026 * config/s390/vector.md: Use new predicate.
18027
18028 2019-07-08 Andrew Waterman <andrew@sifive.com>
18029 Jim Wilson <jimw@sifive.com>
18030
18031 * config/riscv/riscv.md (lshrsi3_zero_extend_3+1): Use operands[1]
18032 bitsize instead of BITS_PER_WORD.
18033
18034 2019-07-08 Martin Liska <mliska@suse.cz>
18035
18036 * collect2.c (defined): Revert to before r254460.
18037 (scan_prog_file): Revert to before r254460.
18038
18039 2019-07-08 Richard Biener <rguenther@suse.de>
18040
18041 PR tree-optimization/83518
18042 * tree-ssa-sccvn.c: Include splay-tree.h.
18043 (struct pd_range, struct pd_data): New.
18044 (struct vn_walk_cb_data): Add data to track partial definitions.
18045 (vn_walk_cb_data::~vn_walk_cb_data): New.
18046 (vn_walk_cb_data::push_partial_def): New.
18047 (pd_tree_alloc, pd_tree_dealloc, pd_range_compare): New.
18048 (vn_reference_lookup_2): When partial defs are registered give up.
18049 (vn_reference_lookup_3): Track partial defs for memset and
18050 constructor zeroing and for defs from constants.
18051
18052 2019-07-08 Richard Sandiford <richard.sandiford@arm.com>
18053
18054 * doc/install.texi (bootstrap-Og): Document.
18055
18056 2019-07-08 Richard Sandiford <richard.sandiford@arm.com>
18057
18058 * config/riscv/pic.md (*local_pic_load_s<mode>)
18059 (*local_pic_load_u<mode>): Explicitly specify the mode iterator
18060 referenced by <mode>, giving...
18061 (*local_pic_load_s<SUBX:mode>, *local_pic_load_u<SUBX:mode>): ...these.
18062 * config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>)
18063 (*slt<u>_<X:mode><GPR:mode>, *sle<u>_<X:mode><GPR:mode>): Explicitly
18064 use <X:MODE> for the mode attribute.
18065
18066 2019-07-07 Jeff Law <law@redhat.com>
18067
18068 PR tree-optimization/91090
18069 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Fix logic error
18070 in handling of ranges to simplify switch statements.
18071
18072 2019-07-07 Iain Sandoe <iain@sandoe.co.uk>
18073
18074 * config/darwin.c (darwin_override_options): Make a final check on PIC
18075 options.
18076
18077 2019-07-07 Iain Sandoe <iain@sandoe.co.uk>
18078
18079 * config/darwin.c (darwin_override_options): Don't jam symbol stubs
18080 on for kernel code.
18081
18082 2019-07-07 Richard Sandiford <richard.sandiford@arm.com>
18083
18084 PR target/91068
18085 * config/mips/mips.md (*mul_acc_si, *mul_acc_si_r3900, *macc)
18086 (*msac, *msac_using_macc, *mul_sub_si): Use "l" for input operands
18087 instead of matching them to "l" output operands.
18088
18089 2019-07-07 Richard Sandiford <richard.sandiford@arm.com>
18090
18091 * config/mips/mips.c (mips_split_move): Zero-initialize addr
18092 and check whether addr.reg is nonnull before using it.
18093
18094 2019-07-06 Jakub Jelinek <jakub@redhat.com>
18095
18096 * omp-low.c (lower_rec_input_clauses): For lastprivate clauses in
18097 ctx->for_simd_scan_phase simd copy the outer var to the privatized
18098 variable(s). For conditional lastprivate look through outer
18099 GIMPLE_OMP_SCAN context.
18100 (lower_omp_1): For conditional lastprivate look through outer
18101 GIMPLE_OMP_SCAN context.
18102
18103 * omp-low.c (struct omp_context): Rename combined_into_simd_safelen0
18104 member to combined_into_simd_safelen1.
18105 (lower_rec_input_clauses, lower_omp_1): Adjust uses.
18106 (lower_lastprivate_clauses): Likewise. For conditional lastprivate
18107 clauses if ctx->combined_into_simd_safelen1 put statements after the
18108 predicate conditionalized block rather than into it.
18109
18110 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
18111
18112 * config/s390/s390.md (*negabs<FP:mode>2_nocc): Use FP for
18113 operand 1.
18114 * config/s390/vx-builtins.md (*vec_cmp<insn_cmp><mode>_cconly):
18115 Make the choice of <mode> explicit, giving...
18116 (*vec_cmp<insn_cmp><VF_HW:mode>_cconly): ...this.
18117
18118 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
18119
18120 * config/i386/i386.md (*fop_<X87MODEF:mode>_3_i387)
18121 (l<rounding_insn><MODEF:mode><SWI48:mode>2): Fix ambiguous uses
18122 of .md attributes.
18123 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask)
18124 (*avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask)
18125 (*avx512pf_scatterpf<mode>df_mask, *avx2_gathersi<mode>)
18126 (*avx2_gathersi<mode>_2, *avx2_gatherdi<mode>)
18127 (*avx2_gatherdi<mode>_2, *avx2_gatherdi<mode>_3): Likewise.
18128 (*avx2_gatherdi<mode>_4, *avx512f_gathersi<mode>): Likewise.
18129 (*avx512f_gathersi<mode>_2, *avx512f_gatherdi<mode>): Likewise.
18130 (*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>): Likewise.
18131 (*avx512f_scatterdi<mode>): Likewise.
18132 (*andnot<mode>3_bcst): Fix VI/VI48_AVX512VL typo.
18133
18134 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
18135
18136 * config/h8300/h8300.md (*push1_h8300hs_<mode>): Explicitly
18137 specify the mode iterator referenced by <mode>, giving...
18138 (*push1_h8300hs_<QHI:mode>): ...this.
18139
18140 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
18141
18142 * config/gcn/gcn-valu.md
18143 (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>): Use
18144 gen_vec_cmp<VEC_1REG_ALT:mode>di rather than (implicitly)
18145 gen_vec_cmp<VEC_1REG_MODE:mode>di. Explicitly use
18146 gen_vcond_mask_<VEC_1REG_MODE:mode>di.
18147 (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Likewise,
18148 but using the _exec comparison patterns.
18149 (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>): Use
18150 gen_vec_cmp<VEC_1REG_INT_ALT:mode>di rather than (implicitly)
18151 gen_vec_cmp<VEC_1REG_INT_MODE:mode>di. Explicitly use
18152 gen_vcond_mask_<VEC_1REG_INT_MODE:mode>di.
18153 (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Likewise,
18154 but using the _exec comparison patterns.
18155
18156 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
18157
18158 * config/arm/sync.md
18159 (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Use
18160 <NARROW:sync_predtab> instead of (implicitly) <CCSI:sync_predtab>.
18161 (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise use
18162 <SIDI:sync_predtab>. Use <SIDI:cas_cmp_operand> and
18163 <SIDI:cas_cmp_str>.
18164
18165 2019-07-06 Jakub Jelinek <jakub@redhat.com>
18166
18167 * omp-low.c (struct omp_context): Add for_simd_scan_phase member.
18168 (maybe_lookup_ctx): Add forward declaration.
18169 (omp_find_scan): Likewise. Walk into body of simd if composited
18170 with worksharing loop.
18171 (scan_omp_simd_scan): New function.
18172 (scan_omp_1_stmt): Call it.
18173 (lower_rec_simd_input_clauses): Don't create rvar nor rvar2 if
18174 ctx->for_simd_scan_phase.
18175 (lower_rec_input_clauses): Do much less work for inscan reductions
18176 in ctx->for_simd_scan_phase is_simd regions.
18177 (lower_omp_scan): Set is_simd also on simd constructs composited
18178 with worksharing loop, unless ctx->for_simd_scan_phase. Never emit
18179 a sorry message. Don't change GIMPLE_OMP_SCAN stmts into nops and
18180 emit their body after in simd constructs composited with worksharing
18181 loop.
18182 (lower_omp_for_scan): Handle worksharing loop composited with simd.
18183
18184 * omp-low.c (omp_find_scan): Make static.
18185 (lower_omp_for_scan): Fix order of merge arguments in input phase of
18186 the second loop, var2 represents the first partial sum and so needs
18187 to go before rprivb[ivar].
18188
18189 2019-07-05 Iain Sandoe <iain@sandoe.co.uk>
18190
18191 * config/rs6000/rs6000-logue.c: Remove unused code.
18192
18193 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
18194
18195 * tree-ssa-loop-manip.c (create_iv): Add missing guard for gsi_end_p.
18196
18197 2019-07-05 Sam Tebbs <sam.tebbs@arm.com>
18198
18199 PR target/90712
18200 * config/aarch64/aarch64.c (aarch64_post_cfi_startproc): Replace thunk
18201 check with a frame laid out check.
18202
18203 2019-07-05 Richard Biener <rguenther@suse.de>
18204
18205 * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize RHS
18206 when comparing against a store with possibly the same value.
18207
18208 2019-07-05 Richard Biener <rguenther@suse.de>
18209
18210 PR tree-optimization/91091
18211 * tree-ssa-alias.h (get_continuation_for_phi): Add tbaa_p parameter.
18212 (walk_non_aliased_vuses): Likewise.
18213 * tree-ssa-alias.c (maybe_skip_until): Pass down tbaa_p.
18214 (get_continuation_for_phi): New tbaa_p parameter and pass
18215 it down.
18216 (walk_non_aliased_vuses): Likewise.
18217 * ipa-prop.c (determine_known_aggregate_parts): Adjust.
18218 * tree-ssa-pre.c (translate_vuse_through_block): Likewise.
18219 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
18220 Likewise.
18221 * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add tbaa_p flag.
18222 (adjust_offsets_for_equal_base_address): New function.
18223 (vn_reference_lookup_3): Use it to catch more base equivalences.
18224 Handle and pass down tbaa_p flag.
18225 (vn_reference_lookup_pieces): Adjust.
18226 (vn_reference_lookup): Remove alias-set altering, instead pass
18227 down false as tbaa_p.
18228
18229 2019-07-05 Richard Biener <rguenther@suse.de>
18230
18231 PR tree-optimization/91091
18232 * tree-ssa-sccvn.c (vn_reference_lookup_3): Overlap of
18233 accesses can happen with -fno-strict-aliasing.
18234
18235 2019-07-05 Jan Hubicka <hubicka@ucw.cz>
18236
18237 * tree-ssa-alias.c (alias_stats): Add
18238 nonoverlapping_component_refs_since_match_p_must_overlap.
18239 (dump_alias_stats): Print it.
18240 (nonoverlapping_component_refs_since_match_p): Add early exit.
18241 (nonoverlapping_component_refs_p): Do not account early exit.
18242
18243 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
18244
18245 * except.c (emit_to_new_bb_before): Make sure to put a location on SEQ.
18246 * tree-eh.c (replace_goto_queue_1) <GIMPLE_GOTO>: Propagate location.
18247 (emit_eh_dispatch): Delete.
18248 (lower_catch): Emit the eh_dispatch manually and set the location of
18249 the first catch statement onto it.
18250 (lower_eh_filter): Emit the eh_dispatch manually and set location.
18251 (lower_eh_dispatch): Propagate location.
18252 * tree-outof-ssa.c (set_location_for_edge): Handle EH edges specially.
18253 (eliminate_build): Likewise.
18254
18255 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
18256
18257 * tree-cfg.c (gimple_make_forwarder_block): Propagate location info on
18258 phi nodes if possible.
18259 * tree-scalar-evolution.c (final_value_replacement_loop): Propagate
18260 location info on the newly created statement.
18261 * tree-ssa-loop-manip.c (create_iv): Propagate location info on the
18262 newly created increment if needed.
18263
18264 2019-07-04 Jakub Jelinek <jakub@redhat.com>
18265
18266 PR middle-end/78884
18267 * gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member.
18268 (gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd
18269 loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE.
18270 (gimplify_adjust_omp_clauses): Add safelen (1) clause if
18271 ctx->add_safelen1 is set.
18272
18273 * omp-expand.c (expand_omp_for_static_nochunk): Don't emit
18274 GOMP_loop_start at the start of second worksharing loop in a scan.
18275 For nowait, don't emit GOMP_loop_end_nowait at the end of first
18276 worksharing loop in a scan even if there are conditional lastprivates,
18277 and do emit GOMP_loop_end_nowait at the end of second worksharing loop.
18278
18279 2019-07-04 Jan Hubicka <jh@suse.cz>
18280
18281 * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p):
18282 Fix check for match in the ref walk.
18283
18284 2019-07-04 Martin Liska <mliska@suse.cz>
18285
18286 * tree-ssa-loop-niter.c
18287 (get_upper_bound_based_on_builtin_expr_with_prob): New function.
18288 (estimate_numbers_of_iterations):
18289 Support __builtin_expect_with_probability for analysis
18290 of # of loop iterations.
18291
18292 2019-07-04 Alexandre Oliva <oliva@adacore.com>
18293
18294 * doc/generic.texi (Cleanups): Document EH_ELSE_EXPR.
18295 * except.c: Likewise.
18296 * expr.c (expand_expr_real_1): Reject it.
18297 * gimplify.c (gimplify_expr): Gimplify it, within
18298 TRY_FINALLY_EXPR.
18299 * tree-dump.c (dequeue_and_dump): Dump it.
18300 * tree-pretty-print.c (dump_generic_node): Likewise.
18301 * tree.c (block_may_fallthru): Handle it.
18302 * tree.def (EH_ELSE_EXPR): Introduce it.
18303 * gimple-pretty-print.c (dump_gimple_try): Dump TRY_FINALLY
18304 with GIMPLE_EH_ELSE as try/finally/else.
18305
18306 2019-07-04 Richard Biener <rguenther@suse.de>
18307
18308 PR ipa/91062
18309 * tree-pass.h (execute_all_ipa_transforms): Add a flag
18310 parameter whether to disable GC collection.
18311 * passes.c (execute_one_ipa_transform_pass): Likewise, and
18312 honor it.
18313 (execute_all_ipa_transforms): Likewise and pass it down.
18314 * cgraph.c (cgraph_node::get_body): Do not invoke garbage
18315 collection from applying IPA transforms.
18316 * cgraphunit.c (cgraph_node::expand): Allow garbage collection
18317 from applying IPA transforms.
18318
18319 2019-07-04 Richard Biener <rguenther@suse.de>
18320
18321 PR tree-optimization/90911
18322 * tree-vectorizer.h (_loop_vec_info::scalar_loop_scaling): New field.
18323 (LOOP_VINFO_SCALAR_LOOP_SCALING): new.
18324 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
18325 scalar_loop_scaling.
18326 (vect_transform_loop): Scale scalar loop profile if needed.
18327 * tree-vect-loop-manip.c (vect_loop_versioning): When re-using
18328 the loop copy from if-conversion adjust edge probabilities
18329 and scale the vectorized loop body profile, queue the scalar
18330 profile for updating after peeling.
18331
18332 2019-07-04 Jan Hubicka <jh@suse.cz>
18333
18334 * tree-ssa-alias.c (decl_refs_may_alias_p): Add size1 and size2
18335 parameters; return early for must-alias.
18336 (indirect_ref_may_alias_decl_p): Likewise; when establishing
18337 outer types match, try nonoverlapping_component_refs
18338 if must-alias is not obvious.
18339 (indirect_refs_may_alias_p): Likewise.
18340 (refs_may_alias_p_2): Likewise.
18341
18342 2019-07-04 Richard Biener <rguenther@suse.de>
18343
18344 * tree-ssa-sccvn.h (vn_reference_lookup): Add last_vuse_ptr
18345 argument.
18346 * tree-ssa-sccvn.c (last_vuse_ptr, vn_walk_kind): Move
18347 globals into...
18348 (struct vn_walk_cb_data): New callback data struct.
18349 (vn_reference_lookup_2): Adjust.
18350 (vn_reference_lookup_3): Likewise.
18351 (vn_reference_lookup_pieces): Likewise.
18352 (vn_reference_lookup): Likewise, get last_vuse_ptr argument.
18353 (visit_reference_op_load): Adjust.
18354
18355 2019-07-04 Jakub Jelinek <jakub@redhat.com>
18356
18357 PR tree-optimization/91063
18358 * tree-vect-stmts.c (vect_init_vector): Call gsi_remove to remove
18359 stmt from stmts sequence before calling vect_init_vector_1.
18360 Formatting fix.
18361
18362 2019-07-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
18363
18364 PR target/88833
18365 * fwprop.c (reg_single_def_p): New function.
18366 (propagate_rtx_1): Add unconditional else inside RTX_EXTRA case.
18367 (forward_propagate_into): New parameter reg_prop_only
18368 with default value false.
18369 Propagate def's src into loop only if SET_SRC and SET_DEST
18370 of def_set have single definitions.
18371 Likewise if reg_prop_only is set to true.
18372 (fwprop): New param fwprop_addr_p.
18373 Integrate fwprop_addr into fwprop.
18374 (fwprop_addr): Remove.
18375 (pass_rtl_fwprop_addr::execute): Call fwprop with arg set
18376 to true.
18377 (pass_rtl_fwprop::execute): Call fwprop with arg set to false.
18378 * simplify-rtx.c (simplify_subreg): Add case for vector comparison.
18379 * config/i386/sse.md (UNSPEC_BLENDV): Adjust pattern.
18380
18381 2019-07-04 Jakub Jelinek <jakub@redhat.com>
18382
18383 * omp-low.c (lower_omp_scan): Call lower_omp on stmt's body
18384 in worksharing loop scans.
18385
18386 PR tree-optimization/91074
18387 * omp-low.c (lower_omp_for_scan): Set DECL_GIMPLE_REG_P on cplx
18388 temporary.
18389
18390 PR rtl-optimization/90756
18391 * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it
18392 for VECTOR_TYPE_P.
18393
18394 2019-07-03 Dennis Zhang <dennis.zhang@arm.com>
18395
18396 * config/aarch64/aarch64.md: Remove redundant constraints from
18397 define_expand but keep some patterns untouched if they are
18398 specially selected by TARGET_SECONDARY_RELOAD hook.
18399 * config/aarch64/aarch64-sve.md: Likewise.
18400 * config/aarch64/atomics.md: Remove redundant constraints from
18401 define_expand.
18402 * config/aarch64/aarch64-simd.md: Likewise.
18403
18404 2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
18405
18406 * config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases.
18407 (RDYNAMIC): Rename to, DARWIN_RDYNAMIC.
18408 (DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker
18409 clauses.
18410 (LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and
18411 DARWIN_NOPIE_SPEC.
18412
18413 2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
18414
18415 * config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin.
18416 (STARTFILE_SPEC): Split crt3 into a separate spec.
18417 (DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec.
18418 (DARWIN_CRT2_SPEC): New.
18419 (DARWIN_CRT3_SPEC): New.
18420 (MIN_LD64_OMIT_STUBS): Revise to 62.1.
18421 * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions.
18422 (DARWIN_CRT3_SPEC): New.
18423
18424 2019-07-03 Michael Meissner <meissner@linux.ibm.com>
18425
18426 * config/rs6000/altivec.md (altivec_mov<mode>, VM2 iterator):
18427 Change the RTL attribute "length" from "4" to "*" to allow the
18428 length attribute to be adjusted automatically for prefixed load,
18429 store, and add immediate instructions.
18430 * config/rs6000/rs6000.md (extendhi<mode>2, EXTHI iterator):
18431 Likewise.
18432 (extendsi<mode>2, EXTSI iterator): Likewise.
18433 (movsi_internal1): Likewise.
18434 (movsi_from_sf): Likewise.
18435 (movdi_from_sf_zero_ext): Likewise.
18436 (mov<mode>_internal): Likewise.
18437 (movcc_internal1, QHI iterator): Likewise.
18438 (mov<mode>_softfloat, FMOVE32 iterator): Likewise.
18439 (movsf_from_si): Likewise.
18440 (mov<mode>_hardfloat32, FMOVE64 iterator): Likewise.
18441 (mov<mode>_softfloat64, FMOVE64 iterator): Likewise.
18442 (mov<mode>, FMOVE128 iterator): Likewise.
18443 (movdi_internal64): Likewise.
18444 * config/rs6000/vsx.md (vsx_le_permute_<mode>, VSX_TI iterator):
18445 Likewise.
18446 (vsx_le_undo_permute_<mode>, VSX_TI iterator): Likewise.
18447 (vsx_mov<mode>_64bit, VSX_M iterator): Likewise.
18448 (vsx_mov<mode>_32bit, VSX_M iterator): Likewise.
18449 (vsx_splat_v4sf): Likewise.
18450
18451 2019-07-03 Mark Wielaard <mark@klomp.org>
18452
18453 PR debug/90981
18454 * dwarf2out.c (add_top_level_skeleton_die_attrs): Only add
18455 DW_AT_addr_base if there is actually a .debug_addr section with
18456 addresses.
18457 (output_addr_table): Add DWARF5 table header generation here after
18458 checking there are actually any addresses from...
18459 (dwarf2out_finish): ...here.
18460
18461 2019-07-03 Richard Biener <rguenther@suse.de>
18462
18463 PR middle-end/91069
18464 * match.pd (vec_perm -> bit_insert): Fix element read from
18465 first vector.
18466
18467 2019-07-03 Martin Liska <mliska@suse.cz>
18468
18469 * dbgcnt.def (DEBUG_COUNTER): Add match debug counter.
18470 * genmatch.c (dt_simplify::gen_1): Generate dbgcnt
18471 condition.
18472 * generic-match-head.c: Include dbgcnt.h.
18473 * gimple-match-head.c: Likewise.
18474
18475 2019-07-03 Martin Liska <mliska@suse.cz>
18476
18477 * gcov-counter.def (GCOV_COUNTER_V_SINGLE): Remove.
18478 (GCOV_COUNTER_V_TOPN): New.
18479 (GCOV_COUNTER_V_INDIR): Use _topn.
18480 * gcov-io.h (GCOV_DISK_SINGLE_VALUES): Remove.
18481 (GCOV_TOPN_VALUES): New.
18482 (GCOV_SINGLE_VALUE_COUNTERS): Remove.
18483 (GCOV_TOPN_VALUES_COUNTERS): New.
18484 * profile.c (instrument_values): Use HIST_TYPE_TOPN_VALUES.
18485 * tree-profile.c:
18486 (gimple_init_gcov_profiler): Rename variables from one_value
18487 to topn_values.
18488 (gimple_gen_one_value_profiler): Remove.
18489 (gimple_gen_topn_values_profiler): New function.
18490 * value-prof.c (dump_histogram_value): Use TOPN_VALUES
18491 names instead of SINGLE_VALUE.
18492 (stream_out_histogram_value): Likewise.
18493 (stream_in_histogram_value): Likewise.
18494 (get_most_common_single_value): Likewise.
18495 (gimple_divmod_fixed_value_transform): Likewise.
18496 (gimple_stringops_transform): Likewise.
18497 (gimple_divmod_values_to_profile): Likewise.
18498 (gimple_stringops_values_to_profile): Likewise.
18499 (gimple_find_values_to_profile): Likewise.
18500 * value-prof.h (enum hist_type): Rename to TOPN.
18501 (gimple_gen_one_value_profiler): Remove.
18502 (gimple_gen_topn_values_profiler): New.
18503
18504 2019-07-03 Eric Botcazou <ebotcazou@adacore.com>
18505
18506 * dwarf2out.c (add_scalar_info): Add back refererence to existing DIE
18507 if it has the DW_AT_data_member_location attribute.
18508
18509 2019-07-03 Richard Biener <rguenther@suse.de>
18510
18511 * gimple-pretty-print.c (dump_ternary_rhs): Fix BIT_INSERT_EXPR
18512 dumping.
18513
18514 2019-07-03 Sylvia Taylor <sylvia.taylor@arm.com>
18515
18516 * config/aarch64/aarch64.md (FP_REGNUM): New constant.
18517 (tlsdesc_small_advsimd_<mode>): Add use of FP_REGNUM.
18518 (tlsdesc_small_sve_<mode>): Likewise.
18519
18520 2019-07-03 Martin Liska <mliska@suse.cz>
18521
18522 * Makefile.in: Define ZSTD_LIB.
18523 * common.opt: Adjust compression level
18524 to support also zstd levels.
18525 * config.in: Regenerate.
18526 * configure: Likewise.
18527 * configure.ac: Add --with-zstd and --with-zstd-include options
18528 and detect ZSTD.
18529 * doc/install.texi: Mention zstd dependency.
18530 * gcc.c: Print supported LTO compression algorithms.
18531 * lto-compress.c (lto_normalized_zstd_level): Likewise.
18532 (lto_compression_zstd): Likewise.
18533 (lto_uncompression_zstd): Likewise.
18534 (lto_end_compression): Dispatch in between zlib and zstd.
18535 (lto_compression_zlib): Mark with ATTRIBUTE_UNUSED.
18536 (lto_uncompression_zlib): Make it static.
18537 * lto-compress.h (lto_end_uncompression): Fix GNU coding style.
18538 * lto-section-in.c (lto_get_section_data): Pass info
18539 about used compression.
18540 * lto-streamer-out.c: By default use zstd when possible.
18541 * timevar.def (TV_IPA_LTO_DECOMPRESS): Rename to decompression
18542 (TV_IPA_LTO_COMPRESS): Likewise for compression.
18543
18544 2019-07-03 Martin Liska <mliska@suse.cz>
18545
18546 * lto-section-in.c (lto_get_section_data): Add "lto" section.
18547 * lto-section-out.c (lto_destroy_simple_output_block): Never
18548 compress LTO_section_lto section.
18549 * lto-streamer-out.c (produce_asm): Do not set major_version
18550 and minor_version.
18551 (lto_output_toplevel_asms): Likewise.
18552 (produce_lto_section): New function.
18553 (lto_output): Call produce_lto_section.
18554 (lto_write_mode_table): Do not set major_version and
18555 minor_version.
18556 (produce_asm_for_decls): Likewise.
18557 * lto-streamer.h (enum lto_section_type): Add LTO_section_lto
18558 type.
18559 (struct lto_header): Remove.
18560 (struct lto_section): New struct.
18561 (struct lto_simple_header): Do not inherit from lto_header.
18562 (struct lto_file_decl_data): Add lto_section_header field.
18563
18564 2019-07-03 Martin Liska <mliska@suse.cz>
18565
18566 * lra-eliminations.c (eliminate_regs_in_insn): Remove
18567 dead assignemts.
18568 * reg-stack.c (check_asm_stack_operands): Likewise.
18569 * tree-ssa-structalias.c (create_function_info_for): Likewise.
18570 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
18571 * config/i386/i386-expand.c (ix86_expand_sse2_mulvxdi3): Use
18572 force_expand_binop.
18573
18574 2019-07-03 Martin Liska <mliska@suse.cz>
18575
18576 PR tree-optimization/90892
18577 * builtins.c (inline_expand_builtin_string_cmp): Handle '\0'
18578 in string constants.
18579
18580 2019-07-03 Martin Liska <mliska@suse.cz>
18581
18582 PR middle-end/90899
18583 * multiple_target.c (create_dispatcher_calls): Add to comdat
18584 group only if set for ifunc.
18585
18586 2019-07-03 Martin Liska <mliska@suse.cz>
18587
18588 PR target/88056
18589 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
18590 Define local_object_name in outer scope in order to handle
18591 use-after-scope issue.
18592
18593 2019-07-03 Martin Liska <mliska@suse.cz>
18594
18595 * common.opt: Add fprofile-note.
18596 * coverage.c (coverage_init): Append the option
18597 to bbg_file_name.
18598 * doc/invoke.texi: Document -fprofile-note.
18599
18600 2019-07-03 Jakub Jelinek <jakub@redhat.com>
18601
18602 PR tree-optimization/91033
18603 * tree-vectorizer.h (vect_mark_stmts_to_be_vectorized,
18604 vect_analyze_data_refs): Add bool * arguments.
18605 * tree-vect-data-refs.c (vect_analyze_data_refs): Add fatal argument,
18606 if failure is due to scatter/gather, set *fatal to false if non-NULL.
18607 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
18608 * tree-vect-loop.c (vect_analyze_loop_2): Adjust
18609 vect_mark_stmts_to_be_vectorized and vect_analyze_data_refs callers.
18610 * tree-vect-slp.c (vect_slp_analyze_bb_1): Adjust
18611 vect_analyze_data_refs caller.
18612
18613 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__SCANTEMP_
18614 clause.
18615 * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__SCANTEMP_ instead of
18616 OMP_CLAUSE__CONDTEMP_ as range's upper bound.
18617 (OMP_CLAUSE__SCANTEMP__ALLOC, OMP_CLAUSE__SCANTEMP__CONTROL): Define.
18618 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
18619 OMP_CLAUSE__SCANTEMP_ entry.
18620 (walk_tree_1): Handle OMP_CLAUSE__SCANTEMP_.
18621 * tree-pretty-print.c (dump_omp_clause): Likewise.
18622 * tree-nested.c (convert_nonlocal_omp_clauses,
18623 convert_local_omp_clauses): Likewise.
18624 * omp-general.h (struct omp_for_data): Add have_scantemp and
18625 have_nonctrl_scantemp members.
18626 * omp-general.c (omp_extract_for_data): Initialize them.
18627 * omp-low.c (struct omp_context): Add scan_exclusive member.
18628 (scan_omp_1_stmt): Don't unnecessarily mask gimple_omp_for_kind
18629 result again with GF_OMP_FOR_KIND_MASK. Initialize also
18630 ctx->scan_exclusive.
18631 (lower_rec_simd_input_clauses): Use ctx->scan_exclusive instead
18632 of !ctx->scan_inclusive.
18633 (lower_rec_input_clauses): Simplify gimplification of dtors using
18634 gimplify_and_add. For non-is_simd test OMP_CLAUSE_REDUCTION_INSCAN
18635 rather than rvarp. Handle OMP_CLAUSE_REDUCTION_INSCAN in worksharing
18636 loops. Don't add barrier for reduction_omp_orig_ref if
18637 ctx->scan_??xclusive.
18638 (lower_reduction_clauses): Don't do anything for ctx->scan_??xclusive.
18639 (lower_omp_scan): Use ctx->scan_exclusive instead
18640 of !ctx->scan_inclusive. Handle worksharing loops with inscan
18641 reductions. Use new_vard != new_var instead of repeated
18642 omp_is_reference calls.
18643 (omp_find_scan, lower_omp_for_scan): New functions.
18644 (lower_omp_for): Call lower_omp_for_scan for worksharing loops with
18645 inscan reductions.
18646 * omp-expand.c (expand_omp_scantemp_alloc): New function.
18647 (expand_omp_for_static_nochunk): Handle fd->have_nonctrl_scantemp
18648 and fd->have_scantemp.
18649
18650 * gimplify.c (gimplify_scan_omp_clauses): For inscan reductions
18651 on worksharing loop propagate it as shared clause to containing
18652 combined parallel.
18653
18654 * omp-expand.c (expand_omp_for_static_nochunk,
18655 expand_omp_for_static_chunk): For nowait worksharing loop with
18656 conditional lastprivate clause(s), emit GOMP_loop_end_nowait call
18657 at the end.
18658
18659 2019-07-02 qing zhao <qing.zhao@oracle.com>
18660
18661 PR preprocessor/90581
18662 * doc/cppopts.texi: Add document for -fmax-include-depth.
18663 * doc/invoke.texi (Preprocessor Options): List -fmax-include-depth.
18664
18665 2019-07-02 Uroš Bizjak <ubizjak@gmail.com>
18666
18667 * config/i386/mmx.md (mmx_pack<s_trunsuffix>swb):
18668 Use TARGET_SSE2 && SSE_REGNO_P in split condition.
18669 (mmx_packssdw): Ditto.
18670 (mmx_punpckhbw): Ditto.
18671 (mmx_punpcklbw): Ditto.
18672 (mmx_punpckhwd): Ditto.
18673 (mmx_punpcklwd): Ditto.
18674 (mmx_punpckhdq): Ditto.
18675 (mmx_punpckldq): Ditto.
18676 (*vec_dupv4hi): Ditto.
18677 (*vec_dupv2si): Ditto.
18678 (mmx_pmovmskb): Ditto.
18679 * config/i386/sse.md (sse_cvtpi2ps): Use
18680 TARGET_SSE2 && SSE_REG_P in split condition.
18681 (ssse3_ph<plusminus_mnemonic>wv4hi3): Use
18682 TARGET_SSSE3 && SSE_REGNO_P in split condition.
18683 (ssse3_ph<plusminus_mnemonic>dv2si3): Ditto.
18684 (ssse3_pshufbv8qi3): Ditto.
18685 (ssse3_palignrdi): Ditto.
18686
18687 2019-07-02 Andrew Stubbs <ams@codesourcery.com>
18688
18689 * config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn
18690 with inlined save and restore.
18691
18692 2019-07-02 Eric Botcazou <ebotcazou@adacore.com>
18693
18694 * cfgexpand.c (pass_expand::execute): Deal specially with instructions
18695 to be inserted on single successor edge of the entry block. Then call
18696 commit_edge_insertions instead of inserting the instructions manually.
18697 * cfgrtl.c (commit_edge_insertions): Do not verify flow info during
18698 RTL expansion and rebuild jump labels chain.
18699
18700 2019-07-02 Richard Biener <rguenther@suse.de>
18701
18702 * tree-core.h (enum tree_index): Add TI_CHREC_DONT_KNOW and
18703 TI_CHREC_KNOWN.
18704 * tree.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
18705 Define here.
18706 * tree.c (build_common_tree_nodes): Initialize them.
18707 * tree-chrec.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
18708 Make declarations comments.
18709 * tree-scalar-evolution.c (chrec_not_analyzed_yet, chrec_dont_know,
18710 chrec_known): Remove definitions.
18711 (initialize_scalar_evolutions_analyzer): Remove.
18712 (scev_initialize): Do not call initialize_scalar_evolutions_analyzer.
18713 * tree-streamer.c (preload_common_nodes): Do not preload
18714 TI_CHREC_DONT_KNOW or TI_CHREC_KNOWN.
18715
18716 2019-07-02 Jan Hubicka <jh@suse.cz>
18717
18718 * tree-ssa-alias.c (aliasing_component_refs_p): Remove forgotten
18719 sanity check.
18720
18721 2019-07-02 Jan Hubicka <jh@suse.cz>
18722
18723 * tree-ssa-alias.c (nonoverlapping_component_refs_for_decl_p): Rename
18724 to ..
18725 (nonoverlapping_component_refs_since_match_p): ... this one;
18726 handle also non-decl bases; return -1 if search gave up.
18727 (alias_stats): Rename nonoverlapping_component_refs_of_decl_p_may_alias,
18728 nonoverlapping_component_refs_of_decl_p_no_alias to
18729 nonoverlapping_component_refs_since_match_p_may_alias,
18730 nonoverlapping_component_refs_since_match_p_no_alias.
18731 (dump_alias_stats): Update dumping.
18732 (aliasing_matching_component_refs_p): Break out from ...;
18733 dispatch to nonoverlapping_component_refs_for_decl_p
18734 and nonoverlapping_component_refs_since_match_p.
18735 (aliasing_component_refs_p): ... here; call
18736 nonoverlapping_component_refs_p in scenarios where we can not
18737 precisely determine base match.
18738 (decl_refs_may_alias_p): Use
18739 nonoverlapping_component_refs_since_match_p.
18740 (indirect_ref_may_alias_decl_p): Do not call
18741 nonoverlapping_component_refs_p.
18742 (indirect_refs_may_alias_p): Likewise.
18743
18744 2019-07-02 Jan Hubicka <jh@suse.cz>
18745
18746 * tree-inline.c (remap_gimple_stmt): Do not subtitute handled components
18747 to clobber of return value.
18748
18749 2019-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18750
18751 * config/arm/cortex-a57.md (cortex_a57_neon_type): Use neon_arith_basic
18752 for is_neon_type instructions that have not already been categorized.
18753
18754 2019-07-02 Richard Biener <rguenther@suse.de>
18755
18756 PR tree-optimization/58483
18757 * tree-ssa-scopedtables.c (avail_expr_hash): Use OEP_ADDRESS_OF
18758 for MEM_REF base hashing.
18759 (equal_mem_array_ref_p): Likewise for base comparison.
18760
18761 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
18762
18763 * config/rs6000/rs6000.md (signbit<mode>2_dm): Make this a
18764 parameterized name.
18765 (signbit<mode>2): Use that name. Simplify.
18766
18767 2019-07-01 Joern Rennecke <joern.rennecke@riscy-ip.com>
18768
18769 PR middle-end/66726
18770 * tree-ssa-phiopt.c (factor_out_conditional_conversion):
18771 Tune heuristic from PR71016 to allow MIN / MAX.
18772
18773 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
18774
18775 * config/rs6000/rs6000.md (ieee_128bit_vsx_abs<mode>2): Make this a
18776 parameterized name.
18777 (abs<mode>2): Use that name. Simplify.
18778
18779 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
18780
18781 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2): Make this a
18782 parameterized name.
18783 (neg<mode>2): Use that name. Simplify.
18784
18785 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
18786
18787 * config/rs6000/rs6000.md (abs<mode>2_hw): Make this a parameterized
18788 name.
18789 (abs<mode>2): Use that name. Simplify.
18790
18791 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
18792
18793 * config/rs6000/rs6000.md (neg<mode>2_hw): Make this a parameterized
18794 name.
18795 (neg<mode>2): Use that name. Simplify.
18796
18797 2019-07-01 Uroš Bizjak <ubizjak@gmail.com>
18798
18799 * config/i386/i386.md ("isa" attribute): Add sse_noavx.
18800 ("enabled" attribute): Handle sse_noavx isa attribute.
18801 * config/i386/mmx.md (*vec_dupv2sf): Add "isa" attribute.
18802 Use TARGET_SSE && SSE_REGNO_P in split condition.
18803 (*vec_dupv2sf): Ditto.
18804
18805 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
18806
18807 * config/rs6000/rs6000.md (extenddf<mode>2): Make this a parameterized
18808 name.
18809 (floatsi<mode>2): Use that name. Simplify.
18810
18811 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
18812
18813 * config/rs6000/rs6000.md (extenddf<mode>2_fprs): Make this a
18814 parameterized name.
18815 (extenddf<mode>2_vsx): Make this a parameterized name.
18816 (extenddf<mode>2): Use those names. Simplify.
18817
18818 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
18819
18820 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Make this a parameterized
18821 name.
18822 (eh_return): Use that name. Simplify.
18823
18824 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
18825
18826 * config/rs6000/rs6000.md (ctr<mode>): Make this a parameterized name.
18827 (doloop_end): Use that name. Simplify.
18828
18829 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
18830
18831 * config/rs6000/rs6000.md (indirect_jump<mode>_nospec): Make this a
18832 parameterized name.
18833 (indirect_jump): Use that name. Simplify.
18834
18835 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
18836
18837 * config/rs6000/rs6000.md (abs<mode>2_internal): Make this a
18838 parameterized name.
18839 (abs<mode>2): Use that name. Simplify.
18840
18841 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
18842
18843 * config/rs6000/rs6000.md (fix_trunc<mode>si2_fprs): Make this a
18844 parameterized name.
18845 (fix_trunc<mode>si2): Use that name. Simplify.
18846
18847 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
18848
18849 * config/rs6000/rs6000.md (neg<mode>2): Make this a parameterized name.
18850 (allocate_stack): Use that name. Simplify.
18851
18852 2019-07-01 Martin Sebor <msebor@redhat.com>
18853
18854 PR middle-end/90923
18855 * hash-map.h (hash_map::put): On insertion invoke element ctor.
18856 (hash_map::get_or_insert): Same. Reformat comment.
18857 * hash-set.h (hash_set::add): On insertion invoke element ctor.
18858 * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): New.
18859 * hash-set-tests.c (test_map_of_type_with_ctor_and_dtor): New.
18860 * hash-table.h (hash_table::operator=): Prevent copy assignment.
18861 (hash_table::hash_table (const hash_table&)): Use copy ctor
18862 instead of assignment to copy elements.
18863
18864 2019-07-01 Wilco Dijkstra <wdijkstr@arm.com>
18865 John David Anglin <danglin@gcc.gnu.org>
18866
18867 PR target/90963
18868 * config/pa/pa.md (builtin_longjmp): Restore hard_frame_pointer_rtx
18869 using saved frame pointer.
18870
18871 2019-07-01 Eric Botcazou <ebotcazou@adacore.com>
18872
18873 PR middle-end/64242
18874 * config/sparc/sparc.md (nonlocal_goto): Restore frame pointer last.
18875 Add frame clobber and schedule blockage.
18876
18877 2019-07-01 Sandra Loosemore <sandra@codesourcery.com>
18878
18879 * doc/invoke.texi (Link Options): Further editorial changes to
18880 -flinker-output docs.
18881
18882 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
18883
18884 * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem):
18885 Load both operands of a PLUS into registers separately.
18886
18887 2019-07-01 Andreas Krebbel <krebbel@linux.ibm.com>
18888
18889 * config/s390/vector.md: Fix shift count operand printing.
18890
18891 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
18892
18893 * ira-lives.c (process_bb_node_lives): Use ira_setup_alts.
18894
18895 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
18896
18897 * ira.c (ira_get_dup_out_num): Don't punt for earlyclobbers.
18898 Use recog_data to test for an output operand.
18899
18900 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
18901
18902 * ira.c (ira_setup_alts): If any valid alternatives have zero cost,
18903 exclude any others that are disparaged or that are bound to need
18904 a reload or spill.
18905 (ira_get_dup_out_num): Expand comment.
18906
18907 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
18908
18909 * ira.c (ira_setup_alts): Use preprocess_constraints to get the
18910 constraint string for each operand/alternative combo. Only handle
18911 '%' at the start of constraint strings, and look for it outside
18912 the main loop.
18913
18914 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
18915
18916 * ira-int.h (ira_setup_alts, ira_get_dup_out_num): Use
18917 alternative_mask instead of HARD_REG_SET to represent a
18918 bitmask of alternatives.
18919 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
18920 * ira-conflicts.c (add_insn_allocno_copies): Likewise.
18921
18922 2019-07-01 Martin Liska <mliska@suse.cz>
18923
18924 * edit-context.c (test_applying_fixits_unreadable_file): Do not
18925 use () for a constructor call.
18926 (test_applying_fixits_line_out_of_range): Likewise.
18927 * ggc-page.c (alloc_page): Use (void *) for %p printf format
18928 argument.
18929 (free_page): Likewise.
18930
18931 2019-07-01 Vladislav Ivanishin <vlad@ispras.ru>
18932
18933 * gdbhooks.py (GdbPrettyPrinters.add_printer_for_types): Reorder
18934 parameter names to match usage (no functional change).
18935 (GdbPrettyPrinters.add_printer_for_regex): Ditto.
18936
18937 2019-07-01 Richard Biener <rguenther@suse.de>
18938
18939 * tree-ssa-sccvn.c (class pass_fre): Add may_iterate
18940 pass parameter.
18941 (pass_fre::execute): Honor it.
18942 * passes.def: Adjust pass_fre invocations to allow iterating,
18943 add non-iterating pass_fre before late threading/dom.
18944
18945 2019-07-01 Richard Biener <rguenther@suse.de>
18946
18947 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Adjust
18948 TARGET_MEM_REF handling to also handle address-taken ones.
18949
18950 2019-07-01 Hongtao Liu <hongtao.liu@intel.com>
18951
18952 * doc/sourcebuild.texi (Effective-Target Keywords, Other
18953 hardware attributes): Document avx512vp2intersect.
18954
18955 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
18956
18957 * config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2.
18958 (abs<mode>2): New expander.
18959 * config/i386/i386-builtin.def (__builtin_ia32_pabsb):
18960 Use CODE_FOR_ssse3_absv8qi2.
18961 (__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2.
18962 (__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2.
18963
18964 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
18965
18966 * config/i386/i386.md (mmx_isa): Rename x64, x64_noavx and x64_avx
18967 to sse, sse_noavx and avx. Update all uses.
18968
18969 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
18970
18971 * config/i386/mmx.md (sse_movntq): Add "isa" attribute.
18972 (*mmx_<plusminus_insn><mode>3): Ditto.
18973 (*mmx_mulv4hi3"): Ditto.
18974 (*mmx_smulv4hi3_highpart): Ditto.
18975 (*mmx_umulv4hi3_highpart): Ditto.
18976 (*mmx_pmaddwd): Ditto.
18977 (*sse2_umulv1siv1di3): Ditto.
18978 (*mmx_<code>v4hi3): Ditto.
18979 (*mmx_<code>v8qi3): Ditto.
18980 (mmx_ashr<mode>3): Ditto.
18981 ("mmx_<shift_insn><mode>3): Ditto.
18982 (*mmx_eq<mode>3): Ditto.
18983 (mmx_gt<mode>3): Ditto.
18984 (mmx_andnot<mode>3): Ditto.
18985 (*mmx_<code><mode>3): Ditto.
18986 (*mmx_pinsrw): Ditto.
18987 (*mmx_pextrw): Ditto.
18988 (mmx_pshufw_1): Ditto.
18989 (*mmx_uavgv8qi3): Ditto.
18990 (*mmx_uavgv4hi3): Ditto.
18991 ("mmx_psadbw): Ditto.
18992 * config/i386/sse.md (sse_cvtps2pi): Ditto.
18993 (sse_cvttps2pi): Ditto.
18994 (ssse3_pmaddubsw): Ditto.
18995 (*ssse3_pmulhrswv4hi3): Ditto.
18996 (ssse3_psign<mode>3): Ditto.
18997
18998 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
18999
19000 * expr.c (expand_expr_real_1) <BIT_FIELD_REF>: Apply the big-endian
19001 adjustment for bit-fields to all aggregate types.
19002
19003 2019-06-28 Michael Meissner <meissner@linux.ibm.com>
19004
19005 * config/rs6000/predicates.md (pcrel_address): Use
19006 SYMBOL_REF_LOCAL_P to determine if a label is local.
19007 (pcrel_external_address): New predicate.
19008 (non_prefixed_mem_operand): Delete, predicate not used.
19009 * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL_P): Delete, we now use
19010 SYMBOL_REF_LOCAL_P to determine if we can use pc-relative
19011 addressing.
19012 (SYMBOL_REF_PCREL_P): Likewise.
19013
19014 PR target/91009
19015 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Add non-VSX
19016 alternative.
19017 (floatsi<mode>2_lfiwax_mem): Add non-VSX alternative.
19018 (floatunssi<mode>2_lfiwzx): Add non-VSX alternative.
19019 (floatunssi<mode>2_lfiwzx_mem): Add non-VSX alternative.
19020
19021 2019-06-28 Iain Sandoe <iain@sandoe.co.uk>
19022
19023 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove
19024 override on extra_headers.
19025
19026 2019-06-28 Iain Sandoe <iain@sandoe.co.uk>
19027
19028 * config/darwin-c.c (pop_field_alignment): Quote #pragma options.
19029 * config/darwin-driver.c (darwin_default_min_version): Remove newline
19030 from warning.
19031 (darwin_driver_init): Likewise.
19032
19033 2019-06-28 Jan Beulich <jbeulich@suse.com>
19034
19035 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
19036 vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>):
19037 Eliminate redundant alternative.
19038
19039 2019-06-28 Jan Beulich <jbeulich@suse.com>
19040
19041 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
19042 vgf2p8affineqb_<mode><mask_name>): Drop % constraint modifier.
19043 Use vector_operand.
19044
19045 2019-06-28 Claudiu Zissulescu <claziss@synopsys.com>
19046
19047 * config/arc/arc.c (arc_rtx_costs): All short instructions are
19048 having a lower cost regardless of the speed option.
19049
19050 2019-06-28 Jan Beulich <jbeulich@suse.com>
19051
19052 * config/i386/sse.md (sse2_cvtpd2pi, sse2_cvttpd2pi): Use
19053 vector_operand plus, on both alternatives, "Bm" constraint.
19054
19055 2019-06-28 Dennis Zhang <dennis.zhang@arm.com>
19056
19057 * config/arm/arm.md: Remove redundant constraints from
19058 define_expand but leave reload_inm and reload_outm patterns
19059 untouched since they need special constraints to work.
19060 * config/arm/arm-fixed.md: Remove redundant constraints from
19061 define_expand.
19062 * config/arm/iwmmxt.md: Likewise.
19063 * config/arm/neon.md: Likewise.
19064 * config/arm/sync.md: Likewise.
19065 * config/arm/thumb1.md: Likewise.
19066 * config/arm/vec-common.md: Likewise.
19067
19068 2019-06-27 Ilia Diachkov <ilia.diachkov@optimitech.com>
19069
19070 * doc/install.texi: Document --disable-tm-clone-registry.
19071
19072 2019-06-27 Jakub Jelinek <jakub@redhat.com>
19073
19074 PR c++/91024
19075 * gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT
19076 statements.
19077
19078 PR tree-optimization/91010
19079 * tree-vect-stmts.c (scan_operand_equal_p): If offset1 == offset2,
19080 return true. Otherwise, don't call operand_equal_p if offset1 or
19081 offset2 is NULL and just return false.
19082
19083 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
19084
19085 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
19086 user-specified float mode choice for kernel mode code.
19087
19088 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
19089
19090 * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the
19091 spec.
19092
19093 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
19094
19095 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
19096 use longcall for 64b code.
19097
19098 2019-06-27 Aaron Sawdey <acsawdey@linux.ibm.com>
19099
19100 * builtins.c (get_memory_rtx): Fix comment.
19101 * optabs.def (movmem_optab): Change to cpymem_optab.
19102 * expr.c (emit_block_move_via_cpymem): Change movmem to cpymem.
19103 (emit_block_move_hints): Change movmem to cpymem.
19104 * defaults.h: Change movmem to cpymem.
19105 * targhooks.c (get_move_ratio): Change movmem to cpymem.
19106 (default_use_by_pieces_infrastructure_p): Ditto.
19107 * config/aarch64/aarch64-protos.h: Change movmem to cpymem.
19108 * config/aarch64/aarch64.c (aarch64_expand_movmem): Change movmem
19109 to cpymem.
19110 * config/aarch64/aarch64.h: Change movmem to cpymem.
19111 * config/aarch64/aarch64.md (movmemdi): Change name to cpymemdi.
19112 * config/alpha/alpha.h: Change movmem to cpymem in comment.
19113 * config/alpha/alpha.md (movmemqi, movmemdi, *movmemdi_1): Change
19114 movmem to cpymem.
19115 * config/arc/arc-protos.h: Change movmem to cpymem.
19116 * config/arc/arc.c (arc_expand_movmem): Change movmem to cpymem.
19117 * config/arc/arc.h: Change movmem to cpymem in comment.
19118 * config/arc/arc.md (movmemsi): Change movmem to cpymem.
19119 * config/arm/arm-protos.h: Change movmem to cpymem in names.
19120 * config/arm/arm.c (arm_movmemqi_unaligned, arm_gen_movmemqi,
19121 gen_movmem_ldrd_strd, thumb_expand_movmemqi) Change movmem to cpymem.
19122 * config/arm/arm.md (movmemqi): Change movmem to cpymem.
19123 * config/arm/thumb1.md (movmem12b, movmem8b): Change movmem to cpymem.
19124 * config/avr/avr-protos.h: Change movmem to cpymem.
19125 * config/avr/avr.c (avr_adjust_insn_length, avr_emit_movmemhi,
19126 avr_out_movmem): Change movmem to cpymem.
19127 * config/avr/avr.md (movmemhi, movmem_<mode>, movmemx_<mode>):
19128 Change movmem to cpymem.
19129 * config/bfin/bfin-protos.h: Change movmem to cpymem.
19130 * config/bfin/bfin.c (single_move_for_movmem, bfin_expand_movmem):
19131 Change movmem to cpymem.
19132 * config/bfin/bfin.h: Change movmem to cpymem in comment.
19133 * config/bfin/bfin.md (movmemsi): Change name to cpymemsi.
19134 * config/c6x/c6x-protos.h: Change movmem to cpymem.
19135 * config/c6x/c6x.c (c6x_expand_movmem): Change movmem to cpymem.
19136 * config/c6x/c6x.md (movmemsi): Change name to cpymemsi.
19137 * config/frv/frv.md (movmemsi): Change name to cpymemsi.
19138 * config/ft32/ft32.md (movmemsi): Change name to cpymemsi.
19139 * config/h8300/h8300.md (movmemsi): Change name to cpymemsi.
19140 * config/i386/i386-expand.c (expand_set_or_movmem_via_loop,
19141 expand_set_or_movmem_via_rep, expand_movmem_epilogue,
19142 expand_setmem_epilogue_via_loop, expand_set_or_cpymem_prologue,
19143 expand_small_cpymem_or_setmem,
19144 expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves,
19145 expand_set_or_cpymem_constant_prologue,
19146 ix86_expand_set_or_cpymem): Change movmem to cpymem.
19147 * config/i386/i386-protos.h: Change movmem to cpymem.
19148 * config/i386/i386.h: Change movmem to cpymem in comment.
19149 * config/i386/i386.md (movmem<mode>): Change name to cpymem.
19150 (setmem<mode>): Change expansion function name.
19151 * config/lm32/lm32.md (movmemsi): Change name to cpymemsi.
19152 * config/m32c/blkmov.md (movmemhi, movmemhi_bhi_op, movmemhi_bpsi_op,
19153 movmemhi_whi_op, movmemhi_wpsi_op): Change movmem to cpymem.
19154 * config/m32c/m32c-protos.h: Change movmem to cpymem.
19155 * config/m32c/m32c.c (m32c_expand_movmemhi): Change movmem to cpymem.
19156 * config/m32r/m32r.c (m32r_expand_block_move): Change movmem to cpymem.
19157 * config/m32r/m32r.md (movmemsi, movmemsi_internal): Change movmem
19158 to cpymem.
19159 * config/mcore/mcore.md (movmemsi): Change name to cpymemsi.
19160 * config/microblaze/microblaze.c: Change movmem to cpymem in comment.
19161 * config/microblaze/microblaze.md (movmemsi): Change name to cpymemsi.
19162 * config/mips/mips.c (mips_use_by_pieces_infrastructure_p):
19163 Change movmem to cpymem.
19164 * config/mips/mips.h: Change movmem to cpymem.
19165 * config/mips/mips.md (movmemsi): Change name to cpymemsi.
19166 * config/nds32/nds32-memory-manipulation.c
19167 (nds32_expand_movmemsi_loop_unknown_size,
19168 nds32_expand_movmemsi_loop_known_size, nds32_expand_movmemsi_loop,
19169 nds32_expand_movmemsi_unroll,
19170 nds32_expand_movmemsi): Change movmem to cpymem.
19171 * config/nds32/nds32-multiple.md (movmemsi): Change name to cpymemsi.
19172 * config/nds32/nds32-protos.h: Change movmem to cpymem.
19173 * config/pa/pa.c (compute_movmem_length): Change movmem to cpymem.
19174 (pa_adjust_insn_length): Change call to compute_movmem_length.
19175 * config/pa/pa.md (movmemsi, movmemsi_prereload, movmemsi_postreload,
19176 movmemdi, movmemdi_prereload,
19177 movmemdi_postreload): Change movmem to cpymem.
19178 * config/pdp11/pdp11.md (movmemhi, movmemhi1,
19179 movmemhi_nocc, UNSPEC_MOVMEM): Change movmem to cpymem.
19180 * config/riscv/riscv.c: Change movmem to cpymem in comment.
19181 * config/riscv/riscv.h: Change movmem to cpymem.
19182 * config/riscv/riscv.md: (movmemsi) Change name to cpymemsi.
19183 * config/rs6000/rs6000.md: (movmemsi) Change name to cpymemsi.
19184 * config/rx/rx.md: (UNSPEC_MOVMEM, movmemsi, rx_movmem): Change
19185 movmem to cpymem.
19186 * config/s390/s390-protos.h: Change movmem to cpymem.
19187 * config/s390/s390.c (s390_expand_movmem, s390_expand_setmem,
19188 s390_expand_insv): Change movmem to cpymem.
19189 * config/s390/s390.md (movmem<mode>, movmem_short, *movmem_short,
19190 movmem_long, *movmem_long, *movmem_long_31z): Change movmem to cpymem.
19191 * config/sh/sh.md (movmemsi): Change name to cpymemsi.
19192 * config/sparc/sparc.h: Change movmem to cpymem in comment.
19193 * config/vax/vax-protos.h (vax_output_movmemsi): Remove prototype
19194 for nonexistent function.
19195 * config/vax/vax.h: Change movmem to cpymem in comment.
19196 * config/vax/vax.md (movmemhi, movmemhi1): Change movmem to cpymem.
19197 * config/visium/visium.h: Change movmem to cpymem in comment.
19198 * config/visium/visium.md (movmemsi): Change name to cpymemsi.
19199 * config/xtensa/xtensa.md (movmemsi): Change name to cpymemsi.
19200 * doc/md.texi: Change movmem to cpymem and update description to match.
19201 * doc/rtl.texi: Change movmem to cpymem.
19202 * target.def (use_by_pieces_infrastructure_p): Change movmem to cpymem.
19203 * doc/tm.texi: Regenerate.
19204
19205 2019-06-27 Bill Schmidt <wschmidt@linux.ibm.com>
19206
19207 * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
19208 -fvariable-expansion-in-unroller by default.
19209 * doc/invoke.texi (-fvariable-expansion-in-unroller): Document new
19210 default for Power.
19211
19212 2019-06-27 David Edelsohn <dje.gcc@gmail.com>
19213
19214 Revert
19215 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
19216 * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
19217
19218 * config.gcc(rs6000-*-*): Define target_gtfiles.
19219
19220 2019-06-27 Jan Hubicka <jh@suse.cz>
19221
19222 * ipa-devirt.c (odr_type_d): Add tbaa_enabled flag.
19223 (add_type_duplicate): When odr hash is not allocated, to nothing.
19224 (odr_based_tbaa_p): New function.
19225 (set_type_canonical_for_odr_type): New function.
19226 * ipa-utils.h (enable_odr_based_tbaa, odr_based_tbaa_p,
19227 set_type_canonical_for_odr_type): New.
19228 * tree.c (gimple_canonical_types_compatible_p): ODR types with
19229 ODR based TBAA are not equivalent to non-ODR types.
19230
19231 2019-06-27 Martin Liska <mliska@suse.cz>
19232
19233 PR tree-optimization/90974
19234 PR rtl-optimization/90975
19235 PR rtl-optimization/90976
19236 PR target/91016
19237 PR tree-optimization/91017
19238 * config/i386/i386-expand.c (ix86_expand_rounddf_32): Remove
19239 unused tmp.
19240 * lra.c (lra_set_insn_recog_data): Remove a leftover from
19241 initial commit of IRA.
19242 * optabs.c (expand_twoval_binop): Use xop0 and xop1 instead
19243 of op0 and op1.
19244 * tree-vect-loop.c (vect_create_epilog_for_reduction):
19245 Remove unused mode1.
19246 * tree-vect-stmts.c (vectorizable_call): Remove dead assignment
19247 to new_stmt_info.
19248
19249 2019-06-27 Jakub Jelinek <jakub@redhat.com>
19250
19251 PR target/90991
19252 * config/i386/sse.md (avx_vec_concat<mode>): Use nonimmediate_operand
19253 instead of register_operand for operands[1], add m to its constraints
19254 if operands[2] uses "C" constraint. Ensure in condition that if
19255 operands[2] is not 0, then operands[1] is not a MEM. For last two
19256 alternatives, use unaligned loads instead of aligned if operands[1] is
19257 misaligned_operand.
19258
19259 2019-06-27 Martin Liska <mliska@suse.cz>
19260
19261 * asan.c (asan_emit_allocas_unpoison): Remove obviously
19262 dead assignments.
19263 * bt-load.c (move_btr_def): Likewise.
19264 * builtins.c (expand_builtin_apply_args_1): Likewise.
19265 (expand_builtin_apply): Likewise.
19266 * cfgexpand.c (expand_asm_stmt): Likewise.
19267 (construct_init_block): Likewise.
19268 * cfghooks.c (verify_flow_info): Likewise.
19269 * cfgloopmanip.c (remove_path): Likewise.
19270 * cfgrtl.c (rtl_verify_bb_layout): Likewise.
19271 * cgraph.c (cgraph_node::set_pure_flag): Likewise.
19272 * combine.c (simplify_if_then_else): Likewise.
19273 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
19274 (choose_basereg): Likewise.
19275 (ix86_expand_prologue): Likewise.
19276 (ix86_preferred_output_reload_class): Likewise.
19277 * cselib.c (cselib_record_sets): Likewise.
19278 * df-scan.c (df_scan_alloc): Likewise.
19279 * dojump.c (do_jump_by_parts_greater_rtx): Likewise.
19280 * early-remat.c (early_remat::record_equiv_candidates): Likewise.
19281 * emit-rtl.c (try_split): Likewise.
19282 * graphite-scop-detection.c (assign_parameter_index_in_region):
19283 Likewise.
19284 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
19285 * ira-color.c (setup_profitable_hard_regs): Likewise.
19286 * ira.c (rtx_moveable_p): Likewise.
19287 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
19288 * read-rtl.c (read_subst_mapping): Likewise.
19289 * regrename.c (scan_rtx): Likewise.
19290 * reorg.c (fill_slots_from_thread): Likewise.
19291 * tree-inline.c (tree_function_versioning): Likewise.
19292 * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
19293 * tree-ssa-sink.c (statement_sink_location): Likewise.
19294 * tree-ssa-threadedge.c (thread_across_edge): Likewise.
19295 * tree-vect-loop.c (vect_get_loop_niters): Likewise.
19296 (vect_create_epilog_for_reduction): Likewise.
19297 * tree.c (build_nonstandard_integer_type): Likewise.
19298
19299 2019-06-27 Richard Biener <rguenther@suse.de>
19300
19301 * tree-ssa-sccvn.c (vn_reference_lookup_3): Encode valueized RHS.
19302
19303 2019-06-27 Jun Ma <JunMa@linux.alibaba.com>
19304
19305 PR tree-optimization/89772
19306 * gimple-fold.c (gimple_fold_builtin_memchr): consider trailing nuls in
19307 out-of-bound accesses checking.
19308
19309 2019-06-27 Martin Liska <mliska@suse.cz>
19310
19311 PR tree-optimization/91014
19312 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Bail out
19313 when LHS is NULL_TREE.
19314
19315 2019-06-27 Martin Liska <mliska@suse.cz>
19316
19317 * symbol-summary.h (traverse): Pass
19318 argument a to the call of callback.
19319 (gt_ggc_mx): Mark arguments as unused.
19320 (gt_pch_nx): Likewise.
19321
19322 2019-06-27 Kewen Lin <linkw@gcc.gnu.org>
19323
19324 PR target/62147
19325 * loop-iv.c (find_simple_exit): Call finite_loop_p to update
19326 finiteness.
19327
19328 2019-06-26 Jeff Law <law@redhat.com>
19329
19330 PR tree-optimization/90883
19331 * tree-ssa-dse.c (delete_dead_or_redundant_call): Fix signature.
19332 (delete_dead_or_redundant_assignment): Likewise.
19333
19334 PR tree-optimization/90883
19335 * tree-ssa-alias.c (stmt_kills_ref_p): Handle BUILT_IN_CALLOC.
19336 * tree-ssa-dse.c: Update various comments to distinguish between
19337 dead and redundant stores.
19338 (initialize_ao_ref_for_dse): Handle BUILT_IN_CALLOC.
19339 (dse_optimize_redundant_stores): New function.
19340 (delete_dead_or_redundant_call): Renamed from delete_dead_call.
19341 Distinguish between dead and redundant calls in dump output. All
19342 callers updated.
19343 (delete_dead_or_redundant_assignment): Similarly for assignments.
19344 (dse_optimize_stmt): Handle _CHK variants. For statements which
19345 store 0 into multiple memory locations, try to prove a subsequent
19346 store is redundant.
19347
19348 2019-06-26 Uroš Bizjak <ubizjak@gmail.com>
19349
19350 PR target/89021
19351 * config/i386/i386.c (ix86_autovectorize_vector_sizes):
19352 Autovectorize 8-byte vectors for TARGET_MMX_WITH_SSE.
19353
19354 2019-06-26 Iain Sandoe <iain@sandoe.co.uk>
19355
19356 * config/rs6000/rs6000-internal.h (branch_island): New typedef.
19357 (branch_islands): New extern.
19358 * config/rs6000/rs6000-logue.c (macho_branch_islands): Moved from
19359 * config/rs6000/rs6000.c: .. here.
19360
19361 2019-06-26 Iain Sandoe <iain@sandoe.co.uk>
19362
19363 * config.gcc (powerpc*-*-linux*): Move target_gtfiles from here..
19364 (powerpc*-*-*) ... to here.
19365
19366 2019-06-26 Jeff Law <law@redhat.com>
19367
19368 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle _chk variants of
19369 memcpy, memmove and memset builtins.
19370 (maybe_trim_memstar_call): Likewise.
19371
19372 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
19373
19374 * config/rs6000/rs6000-logue.c: Add #ifndef TARGET_PROFILE_KERNEL.
19375
19376 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
19377
19378 * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
19379
19380 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
19381
19382 * config/rs6000/rs6000-internal.h (rs6000_keep_leaf_when_profiled): New
19383 declaration.
19384 * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Remove
19385 "static".
19386 * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Delete
19387 declaration.
19388
19389 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
19390
19391 * config/rs6000/rs6000.c: Fix previous commit, it missed some changes.
19392
19393 2019-06-26 Richard Biener <rguenther@suse.de>
19394
19395 PR ipa/90982
19396 * tree-inline.c (remap_ssa_name): Copy SSA range info.
19397
19398 2019-06-26 Richard Biener <rguenther@suse.de>
19399
19400 * lto-streamer.h (lto_bitmap_alloc): Remove.
19401 (lto_bitmap_free): Likewise.
19402 * lto-streamer.c (lto_bitmap_alloc): Remove.
19403 (lto_bitmap_free): Likewise.
19404 (lto_obstack): Likewise.
19405 (lto_obstack_initialized): Likewise.
19406 * lto-streamer-out.c (lto_output): Use own obstack for local
19407 bitmap, free it consistently.
19408
19409 2019-06-26 Jakub Jelinek <jakub@redhat.com>
19410
19411 PR target/90991
19412 * config/i386/sse.md
19413 (*<extract_type>_vinsert<shuffletype><extract_suf>_0): Use vmovupd,
19414 vmovups, vmovdqu, vmovdqu32 or vmovdqu64 instead of the aligned
19415 insns if operands[2] is misaligned_operand.
19416
19417 2019-06-26 Li Jia He <helijia@linux.ibm.com>
19418
19419 * config/rs6000/rs6000.h (TARGET_MADDLD): Remove the restriction of
19420 TARGET_POWERPC64.
19421 * config/rs6000/rs6000.md (maddld): Change maddld match_operand from DI
19422 to GPR.
19423
19424 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
19425
19426 * doc/invoke.texi (Warning Options): Fix some @opindex syntax.
19427
19428 2019-06-26 Martin Liska <mliska@suse.cz>
19429
19430 PR tree-optimization/90973
19431 * tree-vect-loop.c (vect_get_known_peeling_cost): Use
19432 epilogue_cost_vec instead of prologue_cost_vec for
19433 a epilogue cost.
19434
19435 2019-06-26 Martin Liska <mliska@suse.cz>
19436
19437 * bb-reorder.c (connect_better_edge_p): Add missing else
19438 statement in the middle of if-else statements.
19439
19440 2019-06-25 Hongtao Liu <hongtao.liu@intel.com>
19441 H.J. Lu <hongjiu.lu@intel.com>
19442 Olga Makhotina <olga.makhotina@intel.com>
19443
19444 * common/config/i386/i386-common.c
19445 (OPTION_MASK_ISA_AVX512VP2INTERSECT_SET,
19446 OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET): New macros.
19447 (OPTION_MASK_ISA2_AVX512F_UNSET): Add
19448 OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET.
19449 (ix86_handle_option): Handle -mavx512vp2intersect.
19450 * config/i386/avx512vp2intersectintrin.h: New.
19451 * config/i386/avx512vp2intersectvlintrin.h: New.
19452 * config/i386/cpuid.h (bit_AVX512VP2INTERSECT): New.
19453 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
19454 AVX512VP2INTERSECT.
19455 * config/i386/i386-builtin-types.def: Add new types.
19456 * config/i386/i386-builtin.def: Add new builtins.
19457 * config/i386/i386-builtins.c: (enum processor_features): Add
19458 F_AVX512VP2INTERSECT.
19459 (static const _isa_names_table isa_names_table): Ditto.
19460 * config/i386/i386-c.c (ix86_target_macros_internal): Define
19461 __AVX512VP2INTERSECT__.
19462 * config/i386/i386-expand.c (ix86_expand_builtin): Expand
19463 IX86_BUILTIN_2INTERSECTD512, IX86_BUILTIN_2INTERSECTQ512,
19464 IX86_BUILTIN_2INTERSECTD256, IX86_BUILTIN_2INTERSECTQ256,
19465 IX86_BUILTIN_2INTERSECTD128, IX86_BUILTIN_2INTERSECTQ128.
19466 * config/i386/i386-modes.def (P2QI, P2HI): New modes.
19467 * config/i386/i386-options.c (ix86_target_string): Add
19468 -mavx512vp2intersect.
19469 (ix86_option_override_internal): Handle AVX512VP2INTERSECT.
19470 * config/i386/i386.c (ix86_hard_regno_nregs): Allocate two regs for
19471 P2HImode and P2QImode.
19472 (ix86_hard_regno_mode_ok): Register pair only starts at even hardreg
19473 number for P2QImode and P2HImode.
19474 (ix86_regmode_natural_size): New function.
19475 * config/i386/i386.h (TARGET_AVX512VP2INTERSECT,
19476 TARGET_AVX512VP2INTERSECT_P, PTA_AVX512VP2INTERSECT
19477 REGMODE_NATURAL_SIZE, MASK_PAIR_REGNO_P): New.
19478 * config/i386/i386-protos.h (ix86_regmode_natural_size): Declare
19479 * config/i386/i386.opt: Add -mavx512vp2intersect.
19480 * config/i386/immintrin.h: Include avx512vp2intersectintrin.h and
19481 avx512vp2intersectvlintrin.h.
19482 * config/i386/sse.md (define_c_enum "unspec"): Add UNSPEC_VP2INTERSECT.
19483 (define_mode_iterator VI48_AVX512VP2VL): New.
19484 (avx512vp2intersect_2intersect<mode>,
19485 avx512vp2intersect_2intersectv16si): New define_insn patterns.
19486 * config.gcc: Add avx512vp2intersectvlintrin.h and
19487 avx512vp2intersectintrin.h to extra_headers.
19488 * doc/invoke.texi: Document -mavx512vp2intersect.
19489
19490 2019-06-25 Iain Sandoe <iain@sandoe.co.uk>
19491
19492 * config/rs6000/darwin.h (ENDFILE_SPEC): New.
19493
19494 2019-06-25 Bill Seurer <seurer@linux.vnet.ibm.com>
19495
19496 * config/rs6000/rs6000.c (stack_info, rs6000_pic_labelno,
19497 savres_routine_syms, savres_routine_name, morestack_ref,
19498 rs6000_init_machine_status, save_reg_p, first_reg_to_save,
19499 first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
19500 compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
19501 rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
19502 rs6000_return_addr, rs6000_decl_ok_for_sibcall,
19503 rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
19504 rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
19505 create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
19506 rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
19507 get_stack_clash_protection_probe_interval,
19508 get_stack_clash_protection_guard_size,
19509 rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
19510 rs6000_emit_probe_stack_range, output_probe_stack_range_1,
19511 interesting_frame_related_regno, output_probe_stack_range_stack_clash,
19512 output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
19513 gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
19514 gen_frame_mem_offset, rs6000_savres_routine_name,
19515 rs6000_savres_routine_sym, rs6000_emit_stack_reset,
19516 ptr_regno_for_savres, rs6000_emit_savres_rtx,
19517 rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
19518 rs6000_global_entry_point_prologue_needed_p,
19519 rs6000_get_separate_components, rs6000_components_for_bb,
19520 rs6000_disqualify_components, rs6000_emit_prologue_components,
19521 rs6000_emit_epilogue_components, rs6000_set_handled_components,
19522 emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
19523 rs6000_output_savres_externs, rs6000_output_function_prologue,
19524 rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
19525 load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
19526 offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
19527 rs6000_output_function_epilogue, gen_add3_const,
19528 rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
19529 rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
19530 to rs6000-logue.c.
19531 (machine_function): Moved to rs6000.h.
19532 (rs6000_stack_t, ALTIVEC_REG_BIT, quad_address_offset_p) Moved to
19533 rs6000-internal.h.
19534 * config/rs6000/rs6000-logue.c(stack_info, rs6000_pic_labelno,
19535 savres_routine_syms, savres_routine_name, morestack_ref,
19536 rs6000_init_machine_status, save_reg_p, first_reg_to_save,
19537 first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
19538 compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
19539 rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
19540 rs6000_return_addr, rs6000_decl_ok_for_sibcall,
19541 rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
19542 rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
19543 create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
19544 rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
19545 get_stack_clash_protection_probe_interval,
19546 get_stack_clash_protection_guard_size,
19547 rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
19548 rs6000_emit_probe_stack_range, output_probe_stack_range_1,
19549 interesting_frame_related_regno, output_probe_stack_range_stack_clash,
19550 output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
19551 gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
19552 gen_frame_mem_offset, rs6000_savres_routine_name,
19553 rs6000_savres_routine_sym, rs6000_emit_stack_reset,
19554 ptr_regno_for_savres, rs6000_emit_savres_rtx,
19555 rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
19556 rs6000_global_entry_point_prologue_needed_p,
19557 rs6000_get_separate_components, rs6000_components_for_bb,
19558 rs6000_disqualify_components, rs6000_emit_prologue_components,
19559 rs6000_emit_epilogue_components, rs6000_set_handled_components,
19560 emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
19561 rs6000_output_savres_externs, rs6000_output_function_prologue,
19562 rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
19563 load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
19564 offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
19565 rs6000_output_function_epilogue, gen_add3_const,
19566 rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
19567 rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
19568 to here from rs6000.c.
19569 * config/rs6000/rs6000.h (machine_function): Moved to here from rs6000.c.
19570 * config/rs6000/rs6000-internal.h: (rs6000_stack_t, ALTIVEC_REG_BIT,
19571 quad_address_offset_p) Moved to here from rs6000.c.
19572 * config/rs6000/t-rs6000: Add new source file rs6000-logue.c.
19573 * config/config.gcc: Add new source file rs6000-logue.c to garbage
19574 collector.
19575
19576 2019-06-25 Martin Liska <mliska@suse.cz>
19577
19578 * hash-table.c (hashtab_chk_error): Move here from ...
19579 * hash-table.h (hashtab_chk_error): ... here.
19580
19581 2019-06-25 Martin Liska <mliska@suse.cz>
19582
19583 PR tree-optimization/90978
19584 * df-scan.c (df_update_entry_block_defs): Remove dead else
19585 branch.
19586 (df_update_exit_block_uses): Likewise.
19587
19588 2019-06-25 Kwok Cheung Yeung <kcy@codesourcery.com>
19589 Andrew Stubbs <ams@codesourcery.com>
19590
19591 * config.gcc (thread_file): Set to gcn for AMD GCN.
19592 * config/gcn/gcn.c (gcn_emutls_var_init): New function.
19593 (TARGET_EMUTLS_VAR_INIT): New hook.
19594
19595 2019-06-25 Martin Jambor <mjambor@suse.cz>
19596
19597 PR ipa/90939
19598 * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert.
19599
19600 2019-06-25 Richard Biener <rguenther@suse.de>
19601
19602 PR tree-optimization/90930
19603 * tree-ssa-reassoc.c (reassociate_bb): Only rewrite expression
19604 into parallel form in the last pass instance.
19605
19606 2019-06-25 Claudiu Zissulescu <claziss@synopsys.com>
19607
19608 * config/arc/arc.c (arc_symbol_binds_local_p): New function.
19609 (arc_legitimize_pic_address): Simplify and cleanup the function.
19610 (SYMBOLIC_CONST): Remove.
19611 (prepare_pic_move): Likewise.
19612 (prepare_move_operands): Handle complex mov cases here.
19613 (arc_legitimize_address_0): Remove call to
19614 arc_legitimize_pic_address.
19615 (arc_legitimize_address): Remove call to
19616 arc_legitimize_tls_address.
19617 * config/arc/arc.md (movqi_insn): Allow Cm3 match.
19618 (movhi_insn): Likewise.
19619
19620 2019-06-25 Jozef Lawrynowicz <jozef.l@mittosystems.com>
19621
19622 * config/msp430/msp430.h: Use __int20__ for SIZE_TYPE and
19623 PTRDIFF_TYPE.
19624 * gimple-ssa-sprintf.c (build_intmax_type_nodes): Accept "__intN__"
19625 format of "__intN" types for UINTMAX_TYPE.
19626 * stor-layout.c (initialize_sizetypes): Accept "__intN__"
19627 format of "__intN" types for SIZETYPE.
19628 * tree.c (build_common_tree_nodes): Accept "__intN__"
19629 format of "__intN" types for SIZE_TYPE and PTRDIFF_TYPE.
19630 * doc/invoke.texi: Document that __intN__ disables pedantic
19631 warnings.
19632
19633 2019-06-25 Jan Hubicka <jh@suse.cz>
19634
19635 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Check that
19636 base2_alias_set is non-zero before doing TBAA based disambiguation.
19637
19638 2019-06-25 Martin Liska <mliska@suse.cz>
19639
19640 PR tree-optimization/90973
19641 * tree-vect-loop.c (vect_get_known_peeling_cost): Sum retval
19642 of prologue and epilogue.
19643
19644 2019-06-24 Jan Hubicka <jh@suse.cz>
19645
19646 * ipa-utils.h (type_with_linkage_p): Verify that type is
19647 CXX_ODR_P.
19648 (odr_type_p): Remove extra return.
19649 * lto-streamer-out.c (hash_tree): Hash TYPE_CXX_ODR_P;
19650 hash STRING_FLAG only for arrays and integers.
19651 * tree-stremaer-in.c (unpack_ts_type_common_value_fields):
19652 Update analogously.
19653 * tree-streamer-out.c (pack_ts_type_common_value_fields):
19654 Likewise.
19655 * print-tree.c (print_node): Print cxx-odr-p
19656 and string-flag.
19657 * tree.c (need_assembler_name_p): Also check that type
19658 is CXX_ODR_TYPE_P
19659 (verify_type_variant): Update verification of SRING_FLAG;
19660 also check CXX_ODR_P.
19661 * tree.h (ARRAY_OR_INTEGER_TYPE_CHECK): New macro.
19662 (TYPE_STRING_FLAG): Use it.
19663 (TYPE_CXX_ODR_P): New macro.
19664 * dwarf2out.c (gen_array_type_die): First check that type
19665 is an array and then test string flag.
19666
19667 2019-06-24 Richard Biener <rguenther@suse.de>
19668
19669 PR tree-optimization/90972
19670 * tree-vect-stmts.c (vect_init_vector): Handle CONSTANT_CLASS_P
19671 in common code, dealing with STRING_CST properly.
19672
19673 2019-06-24 Richard Biener <rguenther@suse.de>
19674
19675 PR tree-optimization/90930
19676 PR tree-optimization/90316
19677 * tree-ssa-alias.c (walk_non_aliased_vuses): Add missing
19678 decrement of limit.
19679
19680 2019-06-24 Martin Sebor <msebor@redhat.com>
19681
19682 * tree-pretty-print.h: Remove unnecessary punctuation characters
19683 from a diagnostic.
19684 * tree-ssa.c (release_defs_bitset): Correct preprocessor conditional.
19685
19686 2019-06-24 Jonathan Wakely <jwakely@redhat.com>
19687
19688 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG)
19689 (FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, LDBL_HAS_SUBNORM, FLT_TRUE_MIN)
19690 (DBL_TRUE_MIN, LDBL_TRUE_MIN): Also define for C++17.
19691
19692 2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
19693
19694 * config/rs6000/darwin.h: Handle GCC target pragma.
19695
19696 2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
19697
19698 * config/rs6000/darwin.h: (__PPC__, __PPC64__): New.
19699
19700 2019-06-22 Jeff Law <law@redhat.com>
19701
19702 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
19703
19704 2019-06-22 Jan Hubicka <jh@suse.cz>
19705
19706 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Do not
19707 give up on bitfields; continue searching for different refs
19708 appearing later.
19709
19710 2019-06-21 Jakub Jelinek <jakub@redhat.com>
19711
19712 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
19713 even zero DR_OFFSET, but DR_BASE_ADDRESS of POINTER_PLUS_EXPR
19714 containing the offset as possible simd lane access. Look through
19715 widening conversion. Move the
19716 TREE_CODE (DR_INIT (newdr)) == INTEGER_CST test earlier and reindent.
19717
19718 2019-06-21 Richard Biener <rguenther@suse.de>
19719
19720 PR tree-optimization/90930
19721 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited
19722 flag on new stmts to avoid re-processing them.
19723
19724 2019-06-21 Matthew Beliveau <mbelivea@redhat.com>
19725
19726 PR c++/90875 - added -Wswitch-outside-range option
19727 * doc/invoke.texi (Wswitch-outside-range): Document.
19728
19729 2019-06-21 Jeff Law <law@redhat.com>
19730
19731 PR tree-optimization/90949
19732 * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info.
19733 * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state.
19734
19735 2019-06-21 Richard Biener <rguenther@suse.de>
19736
19737 PR debug/90914
19738 * dwarf2out.c (prune_unused_types_walk): Always consider
19739 function-local extern declarations as used.
19740
19741 2019-06-21 Richard Biener <rguenther@suse.de>
19742
19743 PR tree-optimization/90913
19744 * tree-vect-loop-manip.c (vect_loop_versioning): Do not re-use
19745 the scalar variant of if-conversion versioning.
19746
19747 2019-06-21 Jakub Jelinek <jakub@redhat.com>
19748
19749 * omp-low.c (lower_rec_simd_input_clauses): Add rvar2 argument,
19750 create another "omp scan inscan exclusive" array if
19751 !ctx->scan_inclusive.
19752 (lower_rec_input_clauses): Handle exclusive scan inscan reductions.
19753 (lower_omp_scan): Likewise.
19754 * tree-vectorizer.h (struct _stmt_vec_info): Use 3-bit instead of
19755 2-bit bitfield for simd_lane_access_p member.
19756 * tree-vect-data-refs.c (vect_analyze_data_refs): Also handle
19757 aux == (void *)-4 as simd lane access.
19758 * tree-vect-stmts.c (check_scan_store): Handle exclusive scan. Update
19759 comment with permutations to show the canonical permutation order.
19760 (vectorizable_scan_store): Handle exclusive scan.
19761 (vectorizable_store): Call vectorizable_scan_store even for
19762 STMT_VINFO_SIMD_LANE_ACCESS_P > 3.
19763
19764 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
19765 "omp simd array" arrays with one byte elements.
19766
19767 2019-06-20 Uroš Bizjak <ubizjak@gmail.com>
19768
19769 * config/alpha/alpha.md (@unaligned_store<mode>):
19770 Rename from unaligned_store<mode>.
19771 (@reload_in<mode>_aligned): Rename from reload_in<mode>_aligned.
19772 * config/alpha/sync.md (@load_locked_<mode>): Rename
19773 from load_locked_<mode>.
19774 (@store_conditional_<mode>): Rename from store_conditional_<mode>.
19775 (@atomic_compare_and_swap<mode>_1): Rename
19776 from atomic_compare_and_swap<mode>_1.
19777 (@atomic_exchange<mode>_1): Rename from atomic_exchange<mode>_1.
19778 * config/alpha/alpha.c (alpha_expand_mov_nobwx):
19779 Use gen_reload_in_aligned and gen_unaligned_store.
19780 (emit_load_locked): Remove.
19781 (emit_store_conditional): Ditto.
19782 (alpha_split_atomic_op): Use gen_load_locked and gen_store_conditional.
19783 (alpha_split_compare_and_swap): Ditto.
19784 (alpha_expand_compare_and_swap_12): Use gen_atomic_compare_and_swap_1.
19785 (alpha_split_compare_and_swap_12): Use gen_load_locked
19786 and gen_store_conditional.
19787 (alpha_split_atomic_exchange): Ditto.
19788 (alpha_expand_atomic_exchange_12): Use gen_atomic_exchange_1.
19789 (alpha_split_atomic_exchange_12): Use gen_load_locked
19790 and gen_store_conditional.
19791
19792 2019-06-20 Richard Earnshaw <rearnsha@arm.com>
19793
19794 * config/aarch64/aarch64-errata.h: New file.
19795 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Delete.
19796 (CA53_ERR_843419_SPEC): Delete.
19797 (LINK_SPEC): Use AARCH64_ERRATA_LINK_SPEC instead of above.
19798 * config/aarch64/aarch64-linux.h: Likewise.
19799 * config/aarch64/aarch64-netbsd.h: Likewise.
19800 * config/aarch64/aarch64-freebsd.h: Likewise.
19801
19802 2019-06-20 Marek Polacek <polacek@redhat.com>
19803
19804 * config/sh/sh.c (sh2a_function_vector_p): Use get_attribute_name.
19805
19806 2019-06-20 Michael Meissner <meissner@linux.ibm.com>
19807
19808 * config/rs6000/rs6000.md (isa attribute): Add support for
19809 for a future processor.
19810
19811 2019-06-20 H.J. Lu <hongjiu.lu@intel.com>
19812
19813 PR target/54855
19814 * config/i386/i386-expand.c (ix86_expand_vector_set): Generate
19815 standard scalar operation pattern for V2DF.
19816 * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3): New.
19817 (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise.
19818 (*ieee_<ieee_maxmin><mode>3): Likewise.
19819 (vec_setv2df_0): Likewise.
19820
19821 2019-06-20 Jan Hubicka <jh@suse.cz>
19822
19823 * tree-ssa-alias.c (aliasing_component_refs_p): Remove ref2_is_decl
19824 parameter; it has no use in gimple memory model.
19825 (indirect_ref_may_alias_decl_p): Update.
19826
19827 2019-06-20 Martin Liska <mliska@suse.cz>
19828
19829 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): Decrease
19830 to 10.
19831
19832 2019-06-20 Jakub Jelinek <jakub@redhat.com>
19833
19834 * tree-vect-stmts.c (enum scan_store_kind): New type.
19835 (scan_store_can_perm_p): Change last argument from int * to
19836 vec<enum scan_store_kind> *, record precisely which permutations
19837 need whole vector left shift or that plus VEC_COND_EXPR.
19838 (vectorizable_scan_store): Adjust caller, use whole vector left shift
19839 and additional VEC_COND_EXPR only for those iterations that need it.
19840
19841 2019-06-20 Alexandre Oliva <oliva@adacore.com>
19842
19843 * config.gcc: Fix ARM --with-fpu checking and error message.
19844
19845 2019-06-19 Marek Polacek <polacek@redhat.com>
19846
19847 PR c++/60364 - noreturn after first decl not diagnosed.
19848 * attribs.c (get_attribute_namespace): No longer static.
19849 (decl_attributes): Avoid shadowing. Preserve the C++11 form for C++11
19850 attributes.
19851 (attr_noreturn_exclusions): Make it extern.
19852 * attribs.h (get_attribute_namespace): Declare.
19853 * tree-inline.c (function_attribute_inlinable_p): Use
19854 get_attribute_name.
19855
19856 2019-06-19 Martin Sebor <msebor@redhat.com>
19857
19858 PR tree-optimization/90626
19859 * tree-ssa-strlen.c (strxcmp_unequal): Fix typos.
19860
19861 PR tree-optimization/90626
19862 * tree-ssa-strlen.c (strxcmp_unequal): New function.
19863 (handle_builtin_string_cmp): Call it.
19864
19865 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
19866
19867 * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC
19868 and DARWIN_NOPIE_SPEC.
19869 (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC.
19870 (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h.
19871 (DARWIN_NOPIE_SPEC): Collate from darwin10.h.
19872 (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h
19873 (DARWIN_EXPORT_DYNAMIC): Delete.
19874 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind
19875 and pie options processing to darwin.h.
19876 * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h
19877
19878 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
19879
19880 * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors
19881 in computing the number of options to be moved.
19882
19883 2019-06-19 Maya Rashish <coypu@sdf.org>
19884
19885 * config/arm/netbsd-elf.h (SYSARCH_ARM_SYNC_ICACHE): New definition.
19886 (CLEAR_INSN_CACHE) Use it.
19887
19888 2019-06-19 Uroš Bizjak <ubizjak@gmail.com>
19889
19890 * config/i386/i386.md (cmpstrnsi): Remove dead code.
19891
19892 2019-06-19 Wilco Dijkstra <wdijkstr@arm.com>
19893
19894 PR middle-end/84521
19895 * builtins.c (expand_builtin_setjmp_setup): Save
19896 hard_frame_pointer_rtx.
19897 (expand_builtin_setjmp_receiver): Do not emit sfp = fp move since we
19898 restore fp.
19899 * function.c (expand_function_start): Save hard_frame_pointer_rtx for
19900 non-local goto.
19901 * lra-eliminations.c (eliminate_regs_in_insn): Remove sfp = fp
19902 elimination code.
19903 (remove_reg_equal_offset_note): Remove unused function.
19904 * reload1.c (eliminate_regs_in_insn): Remove sfp = hfp elimination
19905 code.
19906 * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
19907 (arc_builtin_setjmp_frame_value): Remove function.
19908 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
19909 (avr_builtin_setjmp_frame_value): Remove function.
19910 * config/i386/i386.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
19911 (ix86_builtin_setjmp_frame_value): Remove function.
19912 * config/pa/pa.md (nonlocal_goto): Remove FP adjustment.
19913 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
19914 (sparc_builtin_setjmp_frame_value): Remove function.
19915 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
19916 (vax_builtin_setjmp_frame_value): Remove function.
19917 * config/xtensa/xtensa.c (xtensa_frame_pointer_required): Force frame
19918 pointer if has_nonlocal_label.
19919
19920 2019-06-19 Jakub Jelinek <jakub@redhat.com>
19921
19922 * doc/md.texi: Document vec_shl_<mode> pattern.
19923 * optabs.def (vec_shl_optab): New optab.
19924 * optabs.c (shift_amt_for_vec_perm_mask): Add shift_optab
19925 argument, if == vec_shl_optab, check for left whole vector shift
19926 pattern rather than right shift.
19927 (expand_vec_perm_const): Add vec_shl_optab support.
19928 * optabs-query.c (can_vec_perm_var_p): Mention also vec_shl optab
19929 in the comment.
19930 * tree-vect-generic.c (lower_vec_perm): Support permutations which
19931 can be handled by vec_shl_optab.
19932 * tree-vect-stmts.c (scan_store_can_perm_p): New function.
19933 (check_scan_store): Use it.
19934 (vectorizable_scan_store): If target can't do normal permutations,
19935 try to use whole vector left shifts and if needed a VEC_COND_EXPR
19936 after it.
19937 * config/i386/sse.md (vec_shl_<mode>): New expander.
19938
19939 * omp-low.c (lower_rec_input_clauses): Handle references properly
19940 in inscan clauses.
19941 (lower_omp_scan): Likewise.
19942
19943 2019-06-19 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
19944
19945 * tree-ssa-address.c (preferred_mem_scale_factor): Handle when
19946 mem_mode is BLKmode.
19947
19948 2019-06-18 Max Filippov <jcmvbkbc@gmail.com>
19949
19950 PR target/90922
19951 * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack
19952 pointer adjustment for the case of no callee-saved registers and
19953 stack frame bigger than 128 bytes.
19954
19955 2019-06-18 Thomas Schwinge <thomas@codesourcery.com>
19956
19957 PR middle-end/90862
19958 * omp-low.c (check_omp_nesting_restrictions): Handle
19959 GF_OMP_TARGET_KIND_OACC_DECLARE.
19960
19961 2019-06-18 Uroš Bizjak <ubizjak@gmail.com>
19962
19963 * config/i386/i386.md (@cmp<mode>_1): Rename from cmp<mode>_1.
19964 (@add<mode>3_carry): Rename from add<mode>3_carry.
19965 (@sub<mode>3_carry_ccc): Rename from sub<mode>3_carry_ccc.
19966 (@sub<mode>3_carry_ccgz): Rename form sub<mode>3_carry_ccgz.
19967 (@copysign<mode>3_const): Rename from copysign<mode>3_const.
19968 (@copysign<mode>3_var): Rename from copysign<mode>3_var.
19969 (@xorsign<mode>3_1): Rename from xorsign<mode>3_1.
19970 (@x86_shift<mode>_adj_1): Rename from x86_shift<mode>_adj_1.
19971 (@x86_shift<mode>_adj_2): Rename from x86_shift<mode>_adj_2.
19972 (@x86_shift<mode>_adj_3): Rename from x86_shift<mode>_adj_3.
19973 (cmpstrnsi): Use gen_cmp_1.
19974 (lwp_slwpcb): Use gen_lwp_slwpcb_1.
19975 (@lwp_slwpcb<mode>_1): Rename from lwp_slwpcb<mode>_1.
19976 (@umonitor_<mode>): Rename from umonitor_<mode>.
19977 * config/i386/i386-expand.c (ix86_expand_copysign):
19978 Use gen_copysign3_const and gen_copysign3_var.
19979 (ix86_expand_xorsign): Use gen_xorsign3_1.
19980 (ix86_expand_branch): Use gen_sub3_carry_ccc,
19981 gen_sub3_carry_ccgz and gen_cmp1.
19982 (ix86_expand_int_addcc): Use gen_sub3_carry and gen_add3_carry.
19983 (ix86_split_ashl): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_2.
19984 (ix86_split_ashr): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_3.
19985 (ix86_split_lshr): Ditto.
19986 (ix86_expand_builtin) <case IX86_BUILTIN_UMONITOR>: Use gen_umonitor.
19987
19988 2019-06-18 Jason Merrill <jason@redhat.com>
19989
19990 * tree.c (build_constructor): Add MEM_STAT_DECL.
19991
19992 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
19993
19994 * config/aarch64/aarch64-modes.def (CC_NZC): New CC_MODE.
19995 * config/aarch64/aarch64-sve.md (*<optab><mode>3_cc)
19996 (ptest_ptrue<mode>, while_ult<GPI:mode><PRED_ALL:mode>)
19997 (*while_ult<GPI:mode><PRED_ALL:mode>_cc, *cmp<cmp_op><mode>)
19998 (*cmp<cmp_op><mode>_ptest, *cmp<cmp_op><mode>_cc)
19999 (*pred_cmp<cmp_op><mode>_combine, *pred_cmp<cmp_op><mode>)
20000 (vec_cmp<mode><vpred>, vec_cmpu<mode><vpred>, cbranch<mode>4):
20001 Use CC_NZC instead of CC.
20002 * config/aarch64/aarch64.md (condjump): Print a '.' in SVE conditions.
20003 * config/aarch64/aarch64.c (aarch64_sve_condition_codes): New variable.
20004 (aarch64_print_operand): Handle E_CC_NZCmode.
20005 (aarch64_emit_sve_ptrue_op_cc): Use gen_set_clobber_cc_nzc instead
20006 of gen_set_clobber_cc.
20007
20008 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
20009
20010 * config/aarch64/aarch64-sve.md: Tabify file.
20011
20012 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
20013
20014 * config/aarch64/aarch64-protos.h (aarch64_pfalse_reg): Declare.
20015 * config/aarch64/aarch64.c (aarch64_pfalse_reg): New function.
20016 * config/aarch64/aarch64-sve.md: Use it.
20017
20018 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
20019
20020 * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): Declare.
20021 * config/aarch64/aarch64.c (aarch64_ptrue_reg): New functions.
20022 (aarch64_expand_sve_widened_duplicate, aarch64_expand_sve_mem_move)
20023 (aarch64_maybe_expand_sve_subreg_move, aarch64_evpc_rev_local)
20024 (aarch64_expand_sve_vec_cmp_int): Use it.
20025 (aarch64_expand_sve_vec_cmp_float): Likewise.
20026 * config/aarch64/aarch64-sve.md: Likewise throughout.
20027
20028 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
20029 Kugan Vivekanandarajah <kuganv@linaro.org>
20030
20031 * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_0): Delete.
20032 (*cond_<optab><mode>_z): Fold into...
20033 (*cond_<optab><mode>_any): ...here. Also handle cases in which
20034 operand 4 can be tied to operand 0 (either inherently or via RA).
20035
20036 2019-06-18 Richard Biener <rguenther@suse.de>
20037
20038 PR debug/90900
20039 * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL
20040 as if optimized away.
20041
20042 2019-06-18 Tom de Vries <tdevries@suse.de>
20043
20044 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Remove.
20045 * config/nvptx/nvptx.c (gen_set_softstack_insn): Remove.
20046 * config/nvptx/nvptx.md (define_insn "set_softstack_<mode>"):
20047 Rename to ...
20048 (define_insn "@set_softstack_<mode>"): ... this.
20049 (define_insn "omp_simt_enter_<mode>"): Rename to ...
20050 (define_insn "@omp_simt_enter_<mode>"): ... this.
20051 (define_insn "omp_simt_exit_<mode>"): Rename to ...
20052 (define_insn "@omp_simt_exit_<mode>"): ... this.
20053
20054 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
20055
20056 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Remove
20057 vf parameter. Restore the previous iv step of nscalars_step,
20058 but give it iv_type rather than compare_type. Tweak code order
20059 to match the comments.
20060 (vect_set_loop_condition_masked): Update accordingly.
20061 * tree-vect-loop.c (vect_verify_full_masking): Use "unsigned int"
20062 for iv_precision. Tweak comment formatting.
20063
20064 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
20065
20066 * config/darwin.c: Strip trailing whitespace.
20067
20068 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
20069
20070 * config/darwin.c (darwin_emit_unwind_label): New default to false.
20071 (darwin_override_options): Set darwin_emit_unwind_label as needed.
20072
20073 2019-06-18 Martin Jambor <mjambor@suse.cz>
20074
20075 PR ipa/90889
20076 * ipa-cp.c (ignore_edge_p): Do not ignore edges when only the
20077 caller does not have flag_ipa_cp set.
20078
20079 2019-06-18 Alejandro Martinez <alejandro.martinezvicente@arm.com>
20080
20081 * config/aarch64/aarch64-sve.md (mask_fold_left_plus_<mode>): Renamed
20082 from "*fold_left_plus_<mode>", updated operands order.
20083 * doc/md.texi (mask_fold_left_plus_@var{m}): Documented new optab.
20084 * internal-fn.c (mask_fold_left_direct): New define.
20085 (expand_mask_fold_left_optab_fn): Likewise.
20086 (direct_mask_fold_left_optab_supported_p): Likewise.
20087 * internal-fn.def (MASK_FOLD_LEFT_PLUS): New internal function.
20088 * optabs.def (mask_fold_left_plus_optab): New optab.
20089 * tree-vect-loop.c (mask_fold_left_plus_optab): New function to get a
20090 masked internal_fn for a reduction ifn.
20091 (vectorize_fold_left_reduction): Add support for masking reductions.
20092
20093 2019-06-18 Kewen Lin <linkw@gcc.gnu.org>
20094
20095 PR middle-end/80791
20096 * target.def (predict_doloop_p): New hook.
20097 * targhooks.h (default_predict_doloop_p): New declaration.
20098 * targhooks.c (default_predict_doloop_p): New function.
20099 * doc/tm.texi.in (TARGET_PREDICT_DOLOOP_P): New hook.
20100 * doc/tm.texi: Regenerate.
20101 * config/rs6000/rs6000.c (rs6000_predict_doloop_p): New function.
20102 (TARGET_PREDICT_DOLOOP_P): New macro.
20103 * tree-ssa-loop-ivopts.c (generic_predict_doloop_p): New function.
20104
20105 2019-06-17 Jakub Jelinek <jakub@redhat.com>
20106
20107 * omp-low.c (struct omp_context): Add scan_inclusive field.
20108 (scan_omp_1_stmt) <case GIMPLE_OMP_SCAN>: Set ctx->scan_inclusive
20109 if inclusive scan.
20110 (struct omplow_simd_context): Add lastlane member.
20111 (lower_rec_simd_input_clauses): Add rvar argument, handle inscan
20112 reductions. Build 2 or 3 argument .GOMP_SIMD_LANE calls rather than
20113 1 or 2 argument.
20114 (lower_rec_input_clauses): Handle inscan reductions in simd contexts.
20115 (lower_lastprivate_clauses): Set TREE_THIS_NOTRAP on the ARRAY_REF.
20116 (lower_omp_scan): New function.
20117 (lower_omp_1) <case GIMPLE_OMP_SCAN>: Use lower_omp_scan.
20118 * tree-ssa-dce.c (eliminate_unnecessary_stmts): For IFN_GOMP_SIMD_LANE
20119 check 3rd argument if present rather than 2nd.
20120 * tree-vectorizer.h (struct _loop_vec_info): Add scan_map member.
20121 (struct _stmt_vec_info): Change simd_lane_access_p from bool into
20122 2-bit bitfield.
20123 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
20124 scan_map. For IFN_GOMP_SIMD_LANE check 3rd argument if present rather
20125 than 2nd.
20126 (_loop_vec_info::~_loop_vec_info): Delete scan_map.
20127 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Allow two
20128 different STMT_VINFO_SIMD_LANE_ACCESS_P refs if they have the same
20129 init.
20130 (vect_find_stmt_data_reference): Encode in ->aux the 2nd
20131 IFN_GOMP_SIMD_LANE argument.
20132 (vect_analyze_data_refs): Set STMT_VINFO_SIMD_LANE_ACCESS_P from the
20133 encoded ->aux value.
20134 * tree-vect-stmts.c: Include attribs.h.
20135 (vectorizable_call): Adjust comment about IFN_GOMP_SIMD_LANE.
20136 (scan_operand_equal_p, check_scan_store, vectorizable_scan_store): New
20137 functions.
20138 (vectorizable_load): For STMT_VINFO_SIMD_LANE_ACCESS_P tests use != 0.
20139 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P > 1.
20140
20141 2019-06-17 Uroš Bizjak <ubizjak@gmail.com>
20142
20143 PR target/62055
20144 * config/i386/i386.md (*nabstf2_1): New insn pattern.
20145 (*nabs<mode>2_1): Ditto.
20146 (nabs sse-reg splitter): New splitter.
20147 * config/i386/sse.md (*nabs<mode>2): New insn_and_split pattern.
20148
20149 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
20150
20151 PR bootstrap/90873.
20152 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
20153 TMR index check.
20154
20155 2019-06-17 Tom de Vries <tdevries@suse.de>
20156
20157 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Declare.
20158 * config/nvptx/nvptx.c (gen_set_softstack_insn): New function.
20159 * config/nvptx/nvptx.md (define_insn "set_softstack_insn"): Rename to
20160 ...
20161 (define_insn "set_softstack_<mode>"): ... this. Use P iterator on
20162 match_operand 0.
20163 (define_insn "omp_simt_enter_insn"): Rename to ...
20164 (define_insn "omp_simt_enter_<mode>"): ... this. Use P iterator on
20165 match_operand 0, 1 and 2, as well as the unspec_volatile result.
20166 (define_expand "omp_simt_enter): Use gen_omp_simt_enter_di and
20167 gen_omp_simt_enter_si.
20168 (define_expand "omp_simt_exit"): New.
20169 (define_insn "omp_simt_exit"): Rename to ...
20170 (define_insn "omp_simt_exit_<mode>"): ... this. Use P iterator on
20171 match_operand 0.
20172
20173 2019-06-17 Matthew Green <mrg@eterna.com.au>
20174 Maya Rashish <coypu@sdf.org>
20175
20176 * config.gcc (aarch64*-*-netbsd*): New target.
20177 * config/aarch64/aarch64-netbsd.h: New file.
20178 * config/aarch64/t-aarch64-netbsd: Likewise.
20179
20180 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
20181
20182 * tree-ssa-alias.c (aliasing_component_refs_p): Consider only
20183 the access path from base to first VIEW_CONVERT_EXPR or
20184 BIT_FIELD_REF.
20185
20186 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
20187
20188 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Also truncate
20189 access path on BIT_FIELD_REFs.
20190
20191 2019-06-17 Martin Liska <mliska@suse.cz>
20192
20193 PR ipa/90874
20194 * ipa-utils.h (odr_type_p): Remove dead code.
20195
20196 2019-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20197
20198 * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for
20199 alternative Solaris 11.4 format.
20200 * configure: Regenerate.
20201
20202 2019-06-17 Tom de Vries <tdevries@suse.de>
20203
20204 * config/nvptx/nvptx.md (define_insn "call_insn"): Rename to ...
20205 (define_insn "call_insn_<mode>"): ... this. Use P iterator on
20206 match_operand 0.
20207 (define_insn "call_value_insn"): Rename to ...
20208 (define_insn "call_value_insn_<mode>"): this. Use P iterator on
20209 match_operand 0.
20210 (define_insn "nvptx_red_partition"): Set unspec_volatile result mode to
20211 DI.
20212
20213 2019-06-16 John David Anglin <danglin@gcc.gnu.org>
20214
20215 PR middle-end/64242
20216 * config/pa/pa.md (nonlocal_goto): Restore frame pointer last. Add
20217 frame clobbers and schedule block.
20218 (builtin_longjmp): Likewise.
20219
20220 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
20221
20222 * config/msp430/msp430.c (msp430_expand_helper): Setup arguments which
20223 describe how to perform MSPABI compliant 64-bit shift.
20224 * config/msp430/msp430.md (ashldi3): New define_expand.
20225 (ashrdi3): New define_expand.
20226 (lshrdi3): New define_expand.
20227
20228 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
20229
20230 * doc/sourcebuild.texi: Document new effective target keyword
20231 longlong64.
20232
20233 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
20234
20235 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p,
20236 indirect_refs_may_alias_p): Revert accidental commits.
20237
20238 * tree-ssa-alias.c (aliasing_component_refs_p): Watch for arrays
20239 at the end of structures.
20240
20241 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
20242
20243 * config/darwin.c (machopic_indirect_call_target): Use renamed
20244 darwin_picsymbol_stubs to decide on output.
20245 (darwin_override_options): Handle darwin_picsymbol_stubs.
20246 * config/darwin.h (MIN_LD64_OMIT_STUBS): New.
20247 (LD64_VERSION): Revise default.
20248 * config/darwin.opt: (mpic-symbol-stubs): New option.
20249 (darwin_picsymbol_stubs): New variable.
20250 * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS):
20251 rename to TARGET_MACHO_PICSYM_STUBS.
20252 * config/i386/i386.c (output_pic_addr_const): Likewise.
20253 * config/i386/i386.h Likewise.
20254 * config/rs6000/darwin.h: Likewise.
20255 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed
20256 darwin_picsymbol_stubs.
20257
20258 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
20259
20260 * config/darwin.opt (prebind, noprebind, seglinkedit,
20261 noseglinkedit): Add RejectNegative.
20262
20263 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
20264
20265 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Fix pasto
20266 in my previous patch.
20267
20268 2019-06-16 Tom de Vries <tdevries@suse.de>
20269
20270 PR tree-optimization/89376
20271 * tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL.
20272
20273 2019-06-15 Maya Rashish <coypu@sdf.org>
20274
20275 * doc/invoke.texi (Spec Files): Update location of the
20276 Fortran spec file.
20277
20278 2019-06-15 Gerald Pfeifer <gerald@pfeifer.com>
20279
20280 * doc/extend.texi (Common Function Attributes): Clarify
20281 no_sanitize. Fix grammar.
20282
20283 2019-06-15 Jan Hubicka <hubicka@ucw.cz>
20284
20285 * tree-ssa-alias.c (alias_stats): Add
20286 nonoverlapping_component_refs_p_may_alias,
20287 nonoverlapping_component_refs_p_no_alias,
20288 nonoverlapping_component_refs_of_decl_p_may_alias,
20289 nonoverlapping_component_refs_of_decl_p_no_alias.
20290 (dump_alias_stats): Dump them.
20291 (nonoverlapping_component_refs_of_decl_p): Add stats.
20292 (nonoverlapping_component_refs_p): Add stats; do not stop on first
20293 ARRAY_REF.
20294
20295 2019-06-15 Uroš Bizjak <ubizjak@gmail.com>
20296
20297 * config/i386/i386.md (and<mode>3): Generate zero-extends for
20298 TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))
20299 only.
20300 (*anddi3_doubleword): Split before reload. Merge with
20301 anddi->zext pre-reload splitter.
20302 (*andndi3_doubleword): Split before reload.
20303 (*<code>di3_doubleword): Ditto.
20304 (*one_cmpldi2_doubleword): Ditto.
20305
20306 2019-06-15 Jakub Jelinek <jakub@redhat.com>
20307
20308 PR middle-end/90779
20309 * gimplify.c: Include omp-offload.h and context.h.
20310 (gimplify_bind_expr): Add "omp declare target" attributes
20311 to static block scope variables inside of target region or target
20312 functions.
20313
20314 2019-06-15 Tom de Vries <tdevries@suse.de>
20315
20316 PR tree-optimization/90009
20317 * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path):
20318 Return NULL if bb contains IFN_UNIQUE.
20319
20320 2019-06-14 Segher Boessenkool <segher@kernel.crashing.org>
20321
20322 * config/rs6000/rs6000.md (CCEITHER): New define_mode_iterator.
20323 (un): New define_mode_attr.
20324 (isel_signed_<mode>, isel_unsigned_<mode>): Delete, merge into ...
20325 (isel_<un>signed_<GPR:mode>): ... this. New define_insn.
20326 (isel_reversed_signed_<mode>, isel_reversed_unsigned_<mode>): Delete,
20327 merge into ...
20328 (isel_reversed_<un>signed_<GPR:mode>): ... this. New define_insn.
20329
20330 2019-06-14 Iain Sandoe <iain@sandoe.co.uk>
20331
20332 * config/darwin.opt: Add RejectNegative where needed, reorder
20333 and add minimal functional descriptions.
20334
20335 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
20336
20337 PR rtl-optimization/90765
20338 * calls.c (update_stack_alignment_for_call): New function.
20339 (expand_call): Call update_stack_alignment_for_call when
20340 outgoing parameter is passed in the stack.
20341 (emit_library_call_value_1): Likewise.
20342 * function.c (locate_and_pad_parm): Don't update
20343 stack_alignment_needed and preferred_stack_boundary.
20344
20345 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
20346
20347 PR target/90877
20348 * config/i386/i386-features.c
20349 (dimode_scalar_chain::compute_convert_gain): Replace
20350 mmxsse_to_integer with sse_to_integer.
20351 * config/i386/i386.c (ix86_register_move_cost): Verify that
20352 moves between MMX and non-MMX units require secondary memory.
20353 Correct costs of moves between SSE and integer units.
20354 * config/i386/i386.h (processor_costs): Rename cost of moving
20355 SSE register to integer to sse_to_integer. Rename cost of
20356
20357 2019-06-14 Matt Thomas <matt@3am-software.com>
20358 Matthew Green <mrg@eterna.com.au>
20359 Nick Hudson <skrll@netbsd.org>
20360 Maya Rashish <coypu@sdf.org>
20361 Richard Earnshaw <rearnsha@arm.com>
20362
20363 * config.gcc (arm*-*-netbsdelf*) Add support for EABI configuration.
20364 * config.host (arm*-*-netbsd*): Use driver-arm.o on native NetBSD.
20365 * config/arm/netbsd-eabi.h: New file.
20366 * config/arm/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Undefine before
20367 redefining.
20368 (SUBTARGET_EXTRA_ASM_SPEC): Don't pass -matpcs to the assembler.
20369 * config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): New define.
20370 (NETBSD_SUBTARGET_EXTRA_SPECS): New define.
20371 (SUBTARGET_EXTRA_SPECS): Define to NETBSD_SUBTARGET_EXTRA_SPECS.
20372
20373 2019-06-14 Richard Biener <rguenther@suse.de>
20374
20375 * tree-loop-distribution.c (classify_partition): Return
20376 whether a reduction appeared in all partitions and do not
20377 stop builtin detection because of this.
20378 (distribute_loop): Sort a non-builtin partition last if
20379 there's a reduction in all partitions and make sure the
20380 partition prevailing as last is not a builtin.
20381
20382 2019-06-14 Feng Xue <fxue@os.amperecomputing.com>
20383
20384 PR ipa/90401
20385 * ipa-prop.c (add_to_agg_contents_list): New function.
20386 (clobber_by_agg_contents_list_p): Likewise.
20387 (extract_mem_content): Likewise.
20388 (get_place_in_agg_contents_list): Delete.
20389 (determine_known_aggregate_parts): Renamed from
20390 determine_locally_known_aggregate_parts. New parameter
20391 aa_walk_budget_p.
20392
20393 2019-06-13 Martin Sebor <msebor@redhat.com>
20394
20395 PR tree-optimization/90662
20396 * tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands
20397 to the same type.
20398
20399 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
20400
20401 PR bootstrap/90873
20402 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Also check that
20403 dbase is not TARGET_MEM_REF.
20404
20405 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
20406
20407 * config/i386/i386.md (SWIM1248s): Rename from SWIM1248x.
20408 Update all uses.
20409 (and<mode>3): Use gen_extend_insn instead of indirect functions.
20410 Do not generate DImode extends for 32bit targets.
20411 (and->zext post-reload splitter): Use gen_extend_insn
20412 instead of indirect functions.
20413 (anddi->zext pre-reload splitter): New.
20414 (*zext<mode>_doubleword_and): Remove.
20415 (*zext<mode>_doubleword): Ditto.
20416 (*zextsi_doubleword): Dittto.
20417
20418 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
20419
20420 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
20421 Use gen_sub3_insn instead of indirect function.
20422 (ix86_expand_ashl_const): Use gen_add2_insn instead of
20423 indirect function.
20424 (ix86_adjust_counter): Ditto.
20425
20426 2019-06-13 Jiufu Guo <guojiufu@linux.ibm.com>
20427 Lijia He <helijia@linux.ibm.com>
20428
20429 PR tree-optimization/77820
20430 * tree-ssa-threadedge.c
20431 (edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): New
20432 function.
20433 (thread_across_edge): Add call to
20434 edge_forwards_cmp_to_conditional_jump_through_empty_bb_p.
20435
20436 2019-06-13 Iain Sandoe <iain@sandoe.co.uk>
20437
20438 * config/darwin-driver.c (validate_macosx_version_min): New.
20439 (darwin_default_min_version): Cleanup and validate supplied version.
20440 (darwin_driver_init): Likewise and push cleaned version into opts.
20441
20442 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
20443
20444 PR tree-optimization/90869
20445 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Watch for view
20446 converts in MEM_REF referencing decl rather than view converts
20447 from decl type to MEM_REF type.
20448
20449 2019-06-13 Richard Biener <rguenther@suse.de>
20450
20451 PR tree-optimization/90856
20452 * tree-sra.c (build_ref_for_model): Only use
20453 build_reconstructed_reference when address-spaces are the same.
20454
20455 2019-06-13 Jakub Jelinek <jakub@redhat.com>
20456
20457 * config/nvptx/nvptx.c (nvptx_sese_number, nvptx_sese_pseudo): Don't
20458 wrap ei variable name in the declaration in ()s.
20459 (nvptx_single): Actually use mode_label variable. Formatting fix.
20460
20461 2019-06-13 Richard Biener <rguenther@suse.de>
20462
20463 * tree-vectorizer.h (vect_loop_vectorized_call): Declare.
20464 * tree-vectorizer.c (vect_loop_vectorized_call): Export and
20465 also return the condition stmt.
20466 * tree-vect-loop-manip.c (vect_loop_versioning): Compute outermost
20467 loop we can version and version that, reusing the loop version
20468 created by if-conversion instead of versioning again.
20469
20470 2019-06-13 Aldy Hernandez <aldyh@redhat.com>
20471
20472 * gimple-loop-versioning.cc (prune_loop_conditions): Use
20473 may_contain_p.
20474 * tree-vrp (value_range_base::may_contain_p): Call into
20475 value_inside_range.
20476 (value_inside_range): Make private inside value_range_base class.
20477 Take min/max from *this.
20478 (range_includes_p): Remove.
20479 * tree-vrp.h (value_range_base): Add value_inside_range.
20480 (range_includes_p): Remove.
20481 (range_includes_zero_p): Call may_contain_p.
20482 * vr-values.c (compare_range_with_value): Same.
20483
20484 2019-06-13 Claudiu Zissulescu <claziss@synopsys.com>
20485
20486 * doc/extend.texi (ARC Function Attributes): Update info.
20487
20488 2019-06-13 Feng Xue <fxue@os.amperecomputing.com>
20489
20490 PR tree-optimization/89713
20491 * doc/invoke.texi (-ffinite-loops): Document new option.
20492 * common.opt (-ffinite-loops): New option.
20493 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark
20494 IFN_GOACC_LOOP calls as necessary.
20495 * tree-ssa-loop-niter.c (finite_loop_p): Assume loop with an exit
20496 is finite.
20497 * omp-offload.c (oacc_xform_loop): Skip lowering if return value of
20498 IFN_GOACC_LOOP call is not used.
20499 * opts.c (default_options_table): Enable -ffinite-loops at -O2+.
20500
20501 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
20502
20503 PR target/88838
20504 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): If the
20505 compare_type is not with Pmode size, we will create an IV with
20506 Pmode size with truncated use (i.e. converted to the correct type).
20507 * tree-vect-loop.c (vect_verify_full_masking): Find IV type.
20508 (vect_iv_limit_for_full_masking): New. Factored out of
20509 vect_set_loop_condition_masked.
20510 * tree-vectorizer.h (LOOP_VINFO_MASK_IV_TYPE): New.
20511 (vect_iv_limit_for_full_masking): Declare.
20512
20513 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
20514
20515 PR target/88834
20516 * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle
20517 IFN_MASK_LOAD_LANES and IFN_MASK_STORE_LANES.
20518 (get_alias_ptr_type_for_ptr_address): Likewise.
20519 (add_iv_candidate_for_use): Add scaled index candidate if useful.
20520 * tree-ssa-address.c (preferred_mem_scale_factor): New.
20521 * config/aarch64/aarch64.c (aarch64_classify_address): Relax
20522 allow_reg_index_p.
20523
20524 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
20525
20526 * config/aarch64/iterators.md (ADDSUB): Fix typo in comment.
20527
20528 2019-06-12 Dimitar Dimitrov <dimitar@dinux.eu>
20529
20530 * common/config/pru/pru-common.c: New file.
20531 * config.gcc: Add PRU target.
20532 * config/pru/alu-zext.md: New file.
20533 * config/pru/constraints.md: New file.
20534 * config/pru/predicates.md: New file.
20535 * config/pru/pru-opts.h: New file.
20536 * config/pru/pru-passes.c: New file.
20537 * config/pru/pru-pragma.c: New file.
20538 * config/pru/pru-protos.h: New file.
20539 * config/pru/pru.c: New file.
20540 * config/pru/pru.h: New file.
20541 * config/pru/pru.md: New file.
20542 * config/pru/pru.opt: New file.
20543 * config/pru/t-pru: New file.
20544 * doc/extend.texi: Document PRU pragmas.
20545 * doc/invoke.texi: Document PRU-specific options.
20546 * doc/md.texi: Document PRU asm constraints.
20547
20548 2019-06-12 Martin Sebor <msebor@redhat.com>
20549
20550 PR middle-end/90676
20551 * tree-pretty-print.c (dump_mem_ref): New function. Include
20552 MEM_REF type in output when different size than operand.
20553 (dump_generic_node): Move code to dump_mem_ref and call it.
20554
20555 2019-06-12 Martin Sebor <msebor@redhat.com>
20556
20557 PR tree-optimization/90662
20558 * tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers
20559 to arrays.
20560
20561 2019-06-12 Tom de Vries <tdevries@suse.de>
20562
20563 PR tree-optimization/90009
20564 * config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join.
20565
20566 2019-06-12 Martin Liska <mliska@suse.cz>
20567
20568 * ggc-common.c (ggc_prune_overhead_list): Do not sanitize
20569 the created map.
20570 * hash-map.h: Add sanitize_eq_and_hash into ::hash_map.
20571 * mem-stats.h (mem_alloc_description::mem_alloc_description):
20572 Do not sanitize created maps.
20573
20574 2019-06-12 Aldy Hernandez <aldyh@redhat.com>
20575
20576 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Use
20577 value_range::singleton_p.
20578 * tree-vrp.c (value_range_constant_singleton): Remove.
20579 * tree-vrp.h (value_range_constant_singleton): Remove.
20580 * vr-values.c (vr_values::singleton): Use
20581 value_range::singleton_p.
20582
20583 2019-06-12 Jakub Jelinek <jakub@redhat.com>
20584
20585 PR target/90811
20586 * cfgexpand.c (align_local_variable): Add really_expand argument,
20587 don't SET_DECL_ALIGN if it is false.
20588 (add_stack_var): Add really_expand argument, pass it through to
20589 align_local_variable.
20590 (expand_one_stack_var_1): Pass true as really_expand to
20591 align_local_variable.
20592 (expand_one_ssa_partition): Pass true as really_expand to
20593 add_stack_var.
20594 (expand_one_var): Pass really_expand through to add_stack_var.
20595
20596 2019-06-12 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
20597
20598 * config/arm/iterators.md (VABAL): New int iterator.
20599 * config/arm/neon.md (<sup>sadv16qi): New define_expand.
20600 * config/arm/unspecs.md ("unspec"): Define UNSPEC_VABAL_S,
20601 UNSPEC_VABAL_U values.
20602
20603 2019-06-12 Martin Liska <mliska@suse.cz>
20604
20605 * value-prof.c (stream_out_histogram_value): Only first value
20606 can't be negative.
20607
20608 2019-06-12 Jakub Jelinek <jakub@redhat.com>
20609
20610 PR c/90760
20611 * symtab.c (symtab_node::set_section): Allow being called on aliases
20612 as long as they aren't analyzed yet.
20613
20614 2019-06-11 Faraz Shahbazker <fshahbazker@wavecomp.com>
20615
20616 * config/mips/mips.c (mips_final_postscan_insn): Modify call
20617 to `mips_set_text_contents_type' to indicate whether a
20618 non-debug insn follows.
20619
20620 2019-06-11 Michael Meissner <meissner@linux.ibm.com>
20621
20622 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Delete
20623 enabling -mpcrel by default.
20624 * config/rs6000/rs6000.c (rs6000_option_override_internal): Update
20625 test for -mpcrel and/or -mprefixed-addr needing -mcpu=future, so
20626 that the test against -mcpu=future is done first. Then test if
20627 -mprefixed-addr is on for -mpcrel.
20628 (rs6000_disable_incompatible_switches): Add -mcpu=future support.
20629
20630 2019-06-11 Jakub Jelinek <jakub@redhat.com>
20631
20632 PR target/90811
20633 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
20634 instead of and.u%d.
20635
20636 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
20637
20638 * match.pd (X/[ex]4<Y/[ex]4): Handle conversions.
20639
20640 2019-06-11 Matthew Beliveau <mbelivea@redhat.com>
20641
20642 PR c++/90449 - add -Winaccessible-base option.
20643 * doc/invoke.texi (Winaccessible-base): Document.
20644
20645 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
20646
20647 PR tree-optimization/62041
20648 * fold-const.c (fold_real_zero_addition_p): Handle vectors.
20649
20650 2019-06-11 Jason Merrill <jason@redhat.com>
20651
20652 * gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory.
20653 * tree.c (get_tree_code_name): Likewise.
20654 * print-tree.c (print_node): Only briefly print a node with an
20655 invalid code.
20656
20657 2019-06-11 Jakub Jelinek <jakub@redhat.com>
20658
20659 PR bootstrap/90819
20660 * trans-mem.c (tm_memopt_compute_available): Add assertion
20661 that blocks is not empty. Formatting fix.
20662
20663 2019-06-11 Martin Liska <mliska@suse.cz>
20664
20665 PR c++/87847
20666 * hash-table.h: Extend create_gcc, add one parameter
20667 that is passed into hash_table::hash_table.
20668
20669 2019-06-10 Uroš Bizjak <ubizjak@gmail.com>
20670
20671 * config/i386/i386-protos.h (ix86_split_fp_absneg_operator):
20672 New prototype.
20673 * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator):
20674 Emit clobber also for non-sse operations.
20675 (ix86_split_fp_absneg_operator): New function.
20676 * config/i386/i386.md (SSEMODEF): New mode iterator.
20677 (ssevecmodef): New mode attribute.
20678 (<code>tf2): Use absneg code iterator.
20679 (*<code>tf2_1): Rename from *absnegtf3_sse. Use absneg code iterator.
20680 Add three-operand AVX alternatives.
20681 (*<code><mode>2_i387_1): Rename from *absnegxf2_i387.
20682 Use absneg code iterator and X87MODEF mode iterator.
20683 (absneg fp_reg non-sse splitter): Call absneg code iterator
20684 and X87MODEF mode iterator.
20685 (absneg general_reg non-sse splitter): Use absneg code iterator
20686 and X87MODEF mode iterator. Use ix86_split_fp_absneg_operator.
20687 (*<code><mode>2_1): Rename from *absneg<mode>2. Use absneg
20688 code iterator. Add three-operand AVX alternative.
20689 (absneg sse_reg splitter): Use absneg code iterator
20690 and SSEMODEF mode iterator. Handle AVX operands.
20691 (absneg fp_reg splitter): Use absneg code iterator
20692 and MODEF mode iterator.
20693 (absneg general_reg splitter): Merge splitters using MODEF mode
20694 iterator. Use absneg code iterator. Call
20695 ix86_split_fp_absneg_operator.
20696 (*<code><mode>2_i387): Rename from *<code><mode>2_1.
20697 Do not enable for non-sse modes before reload.
20698 (CSGNMODE): Remove.
20699 (CSGNVMODE): Ditto.
20700 (copysing<mode>3): Use SSEMODEF instead of CSGNMODE and
20701 ssevecmodef mode attribute instaed of CSGNVMODE.
20702 (copysign<mode>3_const): Ditto.
20703 (copysign<mode>3_var): Ditto.
20704 * config/i386/i386.md (*<code><mode>2): Rename from *absneg<mode>2.
20705 Use absneg code iterator. Simplify code using std::swap.
20706 * config/i386/predicates.md (absneg_operator): Remove.
20707
20708 2019-06-10 Martin Sebor <msebor@redhat.com>
20709
20710 * gimple-fold.c (get_range_strlen): Update comment that didn't
20711 make it into r267503 or related commits.
20712
20713 2019-06-10 Vladislav Ivanishin <vlad@ispras.ru>
20714
20715 * gcov-tool.c (merge_usage, rewrite_usage): Mark with
20716 ATTRIBUTE_NORETURN thus making consistent with overlap_usage.
20717
20718 2019-06-10 Jakub Jelinek <jakub@redhat.com>
20719
20720 * tree.def (OMP_SCAN): New tree code.
20721 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INCLUSIVE and
20722 OMP_CLAUSE_EXCLUSIVE.
20723 * tree.h (OMP_CLAUSES): Use OMP_SCAN instead of OMP_TASKGROUP.
20724 (OMP_SCAN_BODY, OMP_SCAN_CLAUSES): Define.
20725 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries for
20726 OMP_CLAUSE_{IN,EX}CLUSIVE.
20727 (walk_tree_1): Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
20728 * tree-nested.c (convert_nonlocal_reference_stmt,
20729 convert_local_reference_stmt, convert_gimple_call): Handle
20730 GIMPLE_OMP_SCAN.
20731 * tree-pretty-print.c (dump_omp_clause): Handle
20732 OMP_CLAUSE_{IN,EX}CLUSIVE.
20733 (dump_generic_node): Handle OMP_SCAN.
20734 * gimple.def (GIMPLE_OMP_SCAN): New gimple code.
20735 * gimple.h (gomp_scan): New type.
20736 (is_a_helper <gomp_scan *>::test,
20737 is_a_helper <const gomp_scan *>::test): New templates.
20738 (gimple_build_omp_scan): Declare.
20739 (gimple_omp_scan_clauses, gimple_omp_scan_clauses_ptr,
20740 gimple_omp_scan_set_clauses): New inline functions.
20741 (CASE_GIMPLE_OMP): Add case GIMPLE_OMP_SCAN:.
20742 * gimple.c (gimple_build_omp_scan): New function.
20743 (gimple_copy): Handle GIMPLE_OMP_SCAN.
20744 * gimple-walk.c (walk_gimple_op, walk_gimple_stmt): Likewise.
20745 * gimple-pretty-print.c (dump_gimple_omp_block): Don't handle
20746 GIMPLE_OMP_TASKGROUP.
20747 (dump_gimple_omp_scan): New function.
20748 (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCAN.
20749 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_SCAN.
20750 * tree-inline.c (remap_gimple_stmt, estimate_num_insns): Likewise.
20751 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_REDUCTION_INSCAN.
20752 (is_gimple_stmt): Handle OMP_SCAN.
20753 (gimplify_scan_omp_clauses): Reject inscan reductions on constructs
20754 other than OMP_FOR or OMP_SIMD. Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
20755 (gimplify_adjust_omp_clauses): Diagnose inscan reductions not
20756 mentioned in nested #pragma omp scan. Handle
20757 OMP_CLAUSE_{IN,EX}CLUSIVE.
20758 (gimplify_expr): Handle OMP_SCAN.
20759 * omp-low.c (check_omp_nesting_restrictions): For parent context,
20760 look through GIMPLE_OMP_SCAN context. Allow #pragma omp scan in
20761 simd constructs.
20762 (scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle
20763 GIMPLE_OMP_SCAN.
20764
20765 2019-06-10 Martin Liska <mliska@suse.cz>
20766
20767 * ipa-cp.c (ignore_edge_p): New function.
20768 (build_toporder_info): Use it.
20769 * ipa-inline.c (ignore_edge_p): New function.
20770 (inline_small_functions): Use it.
20771 * ipa-pure-const.c (ignore_edge_for_nothrow):
20772 Verify opt_for_fn for caller and callee.
20773 (ignore_edge_for_pure_const): Likewise.
20774 * ipa-reference.c (ignore_edge_p): Extend to check
20775 for opt_for_fn.
20776 * ipa-utils.c (searchc): Refactor.
20777 * ipa-utils.h: Fix coding style.
20778
20779 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
20780
20781 * config/arc/arc.c (arc_rtx_costs): Update costs.
20782
20783 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
20784
20785 * config/arc/arc-protos.h (arc_check_ior_const): Declare.
20786 (arc_split_ior): Likewise.
20787 (arc_check_mov_const): Likewise.
20788 (arc_split_mov_const): Likewise.
20789 * config/arc/arc.c (arc_print_operand): Fix 'z' letter.
20790 (arc_rtx_costs): Replace check Crr with Cax constraint.
20791 (prepare_move_operands): Cleanup, remove unused code.
20792 (arc_split_ior): New function.
20793 (arc_check_ior_const): Likewise.
20794 (arc_split_mov_const): Likewise.
20795 (arc_check_mov_const): Likewise.
20796 * config/arc/arc.md (movsi_insn): Restructure it, and convert it
20797 in define_insn_and_split pattern.
20798 (iorsi3): Likewise.
20799 (mulsi3_v2): Add new matching variant.
20800 (andsi3_i): Cleanup pattern.
20801 (rotrsi3_cnt1): Update pattern.
20802 (rotrsi3_cnt8): New pattern.
20803 (ashlsi2_cnt8): Likewise.
20804 (ashlsi2_cnt16): Likewise.
20805 * config/arc/constraints.md (C0p): Update constraint.
20806 (Crr): Remove it.
20807 (C0x): New pattern.
20808 (Cax): New pattern.
20809
20810 2019-06-10 Martin Liska <mliska@suse.cz>
20811
20812 * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes):
20813 Update coding style.
20814 (sem_item_optimizer::dump_cong_classes):
20815 Print how many items are in a non-singular class. Improve
20816 coding style.
20817
20818 2019-06-10 Martin Liska <mliska@suse.cz>
20819
20820 * value-prof.c (dump_histogram_value): Change dump format.
20821 (gimple_mod_subtract_transform): Remove legacy comment.
20822
20823 2019-06-10 Martin Liska <mliska@suse.cz>
20824
20825 * value-prof.c (dump_histogram_value): Print histogram values
20826 only if present.
20827
20828 2019-06-10 Martin Liska <mliska@suse.cz>
20829
20830 * gcov-io.h (GCOV_DISK_SINGLE_VALUES): New.
20831 (GCOV_SINGLE_VALUE_COUNTERS): Likewise.
20832 * ipa-profile.c (ipa_profile_generate_summary):
20833 Use get_most_common_single_value.
20834 * tree-profile.c (gimple_init_gcov_profiler):
20835 Instrument with __gcov_one_value_profiler_v2
20836 and __gcov_indirect_call_profiler_v4.
20837 * value-prof.c (dump_histogram_value):
20838 Print all values for HIST_TYPE_SINGLE_VALUE.
20839 (stream_out_histogram_value): Update assert for
20840 N values.
20841 (stream_in_histogram_value): Set number of
20842 counters for HIST_TYPE_SINGLE_VALUE.
20843 (get_most_common_single_value): New.
20844 (gimple_divmod_fixed_value_transform):
20845 Use get_most_common_single_value.
20846 (gimple_ic_transform): Likewise.
20847 (gimple_stringops_transform): Likewise.
20848 (gimple_find_values_to_profile): Set number
20849 of counters for HIST_TYPE_SINGLE_VALUE.
20850 * value-prof.h (get_most_common_single_value): New.
20851
20852 2019-06-10 Martin Liska <mliska@suse.cz>
20853
20854 * hash-map.h: Pass default value to hash_table ctor.
20855 * hash-table.h: Add default value to call of a ctor.
20856
20857 2019-06-08 Jonathan Wakely <jwakely@redhat.com>
20858
20859 * doc/invoke.texi (C Dialect Options): Minor grammatical change.
20860 (x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL"
20861
20862 2019-06-07 John David Anglin <danglin@gcc.gnu.orig>
20863
20864 PR target/90751
20865 * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
20866 Call pa_output_function_label.
20867 (TARGET_ASM_FUNCTION_PROLOGUE): define.
20868 * config/pa/pa-protos.h (pa_output_function_label): Declare.
20869 * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
20870 to declaration.
20871 (pa_linux_output_function_prologue): Declare.
20872 (TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
20873 (pa_output_function_label): New.
20874 (pa_output_function_prologue): Revise to use pa_output_function_label.
20875 (pa_linux_output_function_prologue): New.
20876 * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.
20877
20878 2019-06-07 Aldy Hernandez <aldyh@redhat.com>
20879
20880 * tree-vrp.h (value_range_base::intersect): New.
20881 (value_range::intersect_helper): Move from here...
20882 (value_range_base::intersect_helper): ...to here.
20883 * tree-vrp.c (value_range::intersect_helper): Rename to...
20884 (value_range_base::intersect_helper): ...this, and rewrite to
20885 return a value instead of modifying THIS in place.
20886 Also, move equivalence handling...
20887 (value_range::intersect): ...here, while calling intersect_helper.
20888 * gimple-fold.c (size_must_be_zero_p): Use value_range_base when
20889 calling intersect.
20890 * gimple-ssa-evrp-analyze.c (ecord_ranges_from_incoming_edge):
20891 Same.
20892 * vr-values.c (vrp_evaluate_conditional_warnv_with_ops): Same.
20893
20894 2019-06-07 Jakub Jelinek <jakub@redhat.com>
20895
20896 * Makefile.in (genprogerr): Add condmd.
20897 (genprog): Remove it here.
20898
20899 2019-06-07 Andrew Stubbs <ams@codesourcery.com>
20900
20901 * doc/invoke.texi (AMD GCN Options): Add gfx906.
20902
20903 2019-06-07 Richard Biener <rguenther@suse.de>
20904
20905 PR debug/90574
20906 * tree-cfg.c (stmt_starts_bb_p): Split blocks at labels
20907 that appear after user labels.
20908
20909 2019-06-07 Martin Liska <mliska@suse.cz>
20910
20911 * cselib.c (cselib_init): Disable hash table
20912 sanitization.
20913 * hash-set.h: Pass new default argument to m_table.
20914 * hash-table.c: Add global variable with hash table
20915 sanitization limit.
20916 * hash-table.h (Allocator>::hash_table): Add new argument
20917 to ctor.
20918 (hashtab_chk_error): New.
20919 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New.
20920 * toplev.c (process_options): Set hash_table_sanitize_eq_limit
20921 from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value.
20922
20923 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
20924
20925 * common.opt (flto-odr-type-merging): Ignore.
20926 * invoke.texi (-flto-odr-type-merging): Remove.
20927 * ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove.
20928 (can_be_vtable_hashed_p): Remove.
20929 (hash_odr_vtable): Remove.
20930 (odr_vtable_hasher::hash): Remove.
20931 (types_same_for_odr): Remove.
20932 (types_odr_comparable): Remove.
20933 (odr_vtable_hasher::equal): Remove.
20934 (odr_vtable_hash_type, odr_vtable_hash): Remove.
20935 (add_type_duplicate): Do not synchronize vtable and name hashtables.
20936 (get_odr_type): Do not use vtable hash.
20937 (dump_odr_type): Remove commented out code.
20938 (build_type_inheritance_graph): Do not allocate vtable hash.
20939 (rebuild_type_inheritance_graph): Do not delete vtable hash.
20940 * ipa-utils.h (type_with_linkage_p): Drop vtable hash path.
20941 (odr_type_p): Likewise.
20942 * tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering
20943 test.
20944
20945 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
20946
20947 * tree-ssa-alias.c (aliasing_component_refs_p): Do not give up
20948 immediately after same_types_for_tbaa_p returns -1 and continue
20949 looking for possible exact match; if matching types are arrays
20950 watch for partial overlaps.
20951 (indirect_ref_may_alias_decl_p): Watch for partial array overlaps.
20952 (indirect_refs_may_alias_p): Do type based disambiguation first;
20953 update comment.
20954
20955 2019-06-07 Richard Sandiford <richard.sandiford@arm.com>
20956
20957 * fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p.
20958
20959 2019-06-07 Martin Liska <mliska@suse.cz>
20960
20961 * doc/invoke.texi: Remove param.
20962 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV):
20963 Remove.
20964 * gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise.
20965 (GCOV_ICALL_TOPN_NCOUNTS): Likewise.
20966 * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
20967 * profile.c (instrument_values): Remove
20968 HIST_TYPE_INDIR_CALL_TOPN.
20969 * tree-profile.c (init_ic_make_global_vars):
20970 Always build __gcov_indirect_call only.
20971 (gimple_init_gcov_profiler): Remove usage
20972 of PARAM_INDIR_CALL_TOPN_PROFILE.
20973 (gimple_gen_ic_profiler): Likewise.
20974 * value-prof.c (dump_histogram_value): Likewise.
20975 (stream_in_histogram_value): Likewise.
20976 (gimple_indirect_call_to_profile): Likewise.
20977 (gimple_find_values_to_profile): Likewise.
20978 * value-prof.h (enum hist_type): Likewise.
20979
20980 2019-06-07 Martin Liska <mliska@suse.cz>
20981
20982 * tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the
20983 function.
20984
20985 2019-06-07 Martin Liska <mliska@suse.cz>
20986
20987 PR tree-optimization/78902
20988 * builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New.
20989 (ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove.
20990 (ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
20991 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
20992 (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove.
20993 (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove.
20994 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New.
20995 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New.
20996 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
20997 (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove.
20998 (ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
20999 (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Remove.
21000 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST):
21001 New.
21002 (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove.
21003 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New.
21004 (ATTR_MALLOC_NOTHROW_NONNULL): Remove.
21005 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
21006 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
21007 (ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove.
21008 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
21009 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
21010 * builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use
21011 warn_unused_result attribute.
21012 (BUILT_IN_STRDUP): Likewise.
21013 (BUILT_IN_STRNDUP): Likewise.
21014 (BUILT_IN_ALLOCA): Likewise.
21015 (BUILT_IN_CALLOC): Likewise.
21016 (BUILT_IN_MALLOC): Likewise.
21017 (BUILT_IN_REALLOC): Likewise.
21018
21019 2019-06-06 Jim Wilson <jimw@sifive.com>
21020
21021 PR target/89955
21022 * config/riscv/riscv.h (STARTFILE_PREFIX_SPEC): Deleted.
21023 * config/riscv/freebsd.h (STARTFILE_PREFIX_SPEC): Added.
21024 * config/riscv/linux.h (STARTFILE_PREFIX_SPEC): Added.
21025
21026 2019-06-06 Martin Sebor <msebor@redhat.com>
21027
21028 * tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article.
21029 (handle_builtin_malloc): Remove trailing spaces.
21030 (handle_builtin_memset): Same.
21031 (handle_builtin_memcmp): Same.
21032 (compute_string_length): Same.
21033 (determine_min_objsize): Same.
21034 (handle_builtin_string_cmp): Same.
21035 (handle_char_store): Same. Break up excessively long line.
21036
21037 2019-06-06 Martin Jambor <mjambor@suse.cz>
21038
21039 * tree-sra.c (build_reconstructed_reference): Drop the alignment
21040 check.
21041
21042 2019-06-06 Martin Jambor <mjambor@suse.cz>
21043
21044 * tree-sra.c (struct access): New field grp_same_access_path.
21045 (dump_access): Dump it.
21046 (build_reconstructed_reference): New function.
21047 (build_ref_for_model): Use it if possible.
21048 (path_comparable_for_same_access): New function.
21049 (same_access_path_p): Likewise.
21050 (sort_and_splice_var_accesses): Set the new flag.
21051 (analyze_access_subtree): Likewise.
21052 (propagate_subaccesses_across_link): Propagate zero value of the new
21053 flag down the access tree.
21054
21055 2019-06-06 Andrew Stubbs <ams@codesourcery.com>
21056
21057 * config.gcc (amdgcn-*-*): Allow --with-arch=gfx906.
21058 * config/gcn/gcn.opt (gpu_type): Add gfx906.
21059 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add gfx906 multilib.
21060 (MULTILIB_DIRNAMES): Rename gcn5 to gfx900.
21061 Add gfx906.
21062
21063 2019-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21064
21065 PR tree-optimization/90332
21066 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
21067 Handle VALS containing two vectors.
21068 * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Rename
21069 to...
21070 (@aarch64_combinez<mode>): ... This.
21071 (*aarch64_combinez_be<mode>): Rename to...
21072 (@aarch64_combinez_be<mode>): ... This.
21073 (vec_init<mode><Vhalf>): New define_expand.
21074 * config/aarch64/iterators.md (Vhalf): Handle V8HF.
21075
21076 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
21077
21078 * config/msp430/msp430.md (ashlhi3): Use the const_variant of shift
21079 library functions only when not optimizing for size.
21080 (ashlsi3): Likewise.
21081 (ashrhi3): Likewise.
21082 (ashrsi3): Likewise.
21083 (lshrhi3): Likewise.
21084 (lshrsi3): Likewise.
21085
21086 2019-06-06 Andreas Krebbel <krebbel@linux.ibm.com>
21087
21088 PR rtl-optimization/88751
21089 * ira.c (ira): Use the number of the actually referenced registers
21090 when calculating the threshold.
21091
21092 2019-06-06 Jakub Jelinek <jakub@redhat.com>
21093
21094 * configure: Regenerate.
21095
21096 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
21097
21098 * config/msp430/msp430.md (ashlhi3): Force shift src operand into a
21099 register if it is in memory, so the shift can be emulated with a rotate
21100 instruction.
21101 (ashrhi3): Likewise.
21102 (lshrhi3): Likewise.
21103
21104 2019-06-06 Martin Liska <mliska@suse.cz>
21105
21106 PR tree-optimization/87954
21107 * match.pd: Simplify mult where both arguments are 0 or 1.
21108
21109 2019-06-06 Richard Biener <rguenther@suse.de>
21110
21111 * vr-values.c (vr_values::extract_range_from_ssa_name): Do not
21112 put equivalences on UNDEFINED ranges.
21113 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
21114 Make sure to drop defs of stmts added during simplification
21115 to VARYING.
21116
21117 2019-06-06 Richard Biener <rguenther@suse.de>
21118
21119 * tree-ssa-structalias.c: Include tree-cfg.h.
21120 (make_heapvar): Do not make heap vars artificial.
21121 (find_func_aliases_for_builtin_call): Handle stack allocation
21122 functions.
21123 (find_func_aliases): Delay processing of simple enough returns
21124 in non-IPA mode.
21125 (set_uids_in_ptset): Adjust.
21126 (find_what_var_points_to): Likewise.
21127 (solve_constraints): Do not dump points-to sets here.
21128 (compute_points_to_sets): Post-process return statements,
21129 amending the escaped solution. Dump points-to sets afterwards.
21130 (ipa_pta_execute): Dump points-to sets.
21131
21132 2019-06-06 Martin Liska <mliska@suse.cz>
21133
21134 PR web/87933
21135 * doc/install.texi: Fix HTML headers and
21136 titles for 'Installing GCC' pages.
21137
21138 2019-06-06 Martin Liska <mliska@suse.cz>
21139
21140 * ipa-icf-gimple.h (dump_message_1): Remove.
21141 (dump_message): Likewise.
21142 (return_false_with_message_1): Print also file.
21143 (return_false_with_msg): Likewise.
21144 (return_with_result): Likewise.
21145 (return_with_debug): Likewise.
21146 * ipa-icf.c (sem_function::equals_private): Remove call
21147 to dump_message.
21148
21149 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
21150
21151 * config/i386/sse.md (define_mode_suffix vecmemsuffix): New.
21152 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Enable
21153 memory operand for it.
21154 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>"): Ditto.
21155
21156 2019-06-05 Martin Sebor <msebor@redhat.com>
21157
21158 * config/i386/i386-features.c (ix86_get_function_versions_dispatcher):
21159 Adjust quoting and hyphenation.
21160 * convert.c (convert_to_real_1): Same.
21161 * gcc.c (driver_wrong_lang_callback): Same.
21162 (driver::handle_unrecognized_options): Same.
21163 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
21164 * opts-common.c (cmdline_handle_error): Same.
21165 (read_cmdline_option): Same.
21166 * opts-global.c (complain_wrong_lang): Same.
21167 (print_ignored_options): Same.
21168 (handle_common_deferred_options): Same.
21169 * pretty-print.h: Same.
21170 * print-rtl.c (debug_bb_n_slim): Same.
21171 * sched-rgn.c (make_pass_sched_fusion): Same.
21172 * tree-cfg.c (verify_gimple_assign_unary): Same.
21173 (verify_gimple_label): Same.
21174 * tree-ssa-operands.c (verify_ssa_operands): Same.
21175 * varasm.c (do_assemble_alias): Same.
21176 (assemble_alias): Same.
21177
21178 2019-06-05 Richard Henderson <rth@twiddle.net>
21179
21180 * config/alpha/alpha.c (direct_return): Move down after
21181 struct machine_function definition; use saved frame_size;
21182 return bool.
21183 (struct machine_function): Add sa_mask, sa_size, frame_size.
21184 (alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ...
21185 (alpha_compute_frame_layout): ... new function.
21186 (TARGET_COMPUTE_FRAME_LAYOUT): New.
21187 (alpha_initial_elimination_offset): Use saved sa_size.
21188 (alpha_vms_initial_elimination_offset): Likewise.
21189 (alpha_vms_can_eliminate): Remove alpha_sa_size call.
21190 (alpha_expand_prologue): Use saved frame data. Merge integer
21191 and fp register save loops.
21192 (alpha_expand_epilogue): Likewise.
21193 (alpha_start_function): Use saved frame data.
21194 * config/alpha/alpha-protos.h (direct_return): Update.
21195 (alpha_sa_size): Remove.
21196
21197 2019-06-05 Eric Botcazou <ebotcazou@adacore.com>
21198
21199 * fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a
21200 multiplication by a power-of-two value.
21201 (fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value
21202 and turn the modulo operation into a masking operation.
21203
21204 2019-06-05 Jakub Jelinek <jakub@redhat.com>
21205
21206 PR debug/90733
21207 * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
21208 with VOIDmode inner operands.
21209
21210 2019-06-05 Richard Biener <rguenther@suse.de>
21211
21212 PR middle-end/90726
21213 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
21214 turn an expression graph into a tree.
21215
21216 2019-06-05 Jakub Jelinek <jakub@redhat.com>
21217
21218 * omp-expand.c (struct omp_region): Add has_lastprivate_conditional
21219 member.
21220 (expand_parallel_call): If region->inner->has_lastprivate_conditional,
21221 treat it like explicit monotonic schedule modifier.
21222 (expand_omp_for): Initialize has_lastprivate_conditional.
21223 If fd.lastprivate_conditional != 0, treat it like explicit monotonic
21224 schedule modifier.
21225
21226 * omp-low.c (lower_rec_input_clauses): For lastprivate conditional
21227 references, lookup in in hash map MEM_REF operand instead of the
21228 MEM_REF itself.
21229 (lower_omp_1): When looking for lastprivate conditional assignments,
21230 handle MEM_REFs with REFERENCE_TYPE operands.
21231
21232 * omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and
21233 on privatization clauses OMP_CLAUSE_DECL is privatized by reference
21234 and references a VLA. Handle references to non-VLAs if is_simd
21235 all privatization clauses like reductions.
21236 (lower_rec_input_clauses) <case do_private, case do_firstprivate>:
21237 If omp_is_reference, use always omp simd arrays and set
21238 DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses
21239 fails, emit reference initialization.
21240
21241 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
21242
21243 PR target/89803
21244 * config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask,
21245 _mm_mask_fpclass_sd_mask): New intrinsics.
21246 (_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins.
21247 * config/i386/i386-builtin.def
21248 (__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask):
21249 New builtins.
21250 (__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted.
21251 * config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT),
21252 DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted.
21253 * config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT,
21254 case QI_FTYPE_V2SF_INT): Ditto.
21255 * config/i386/sse.md
21256 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>):
21257 Extended to insnstructions with mask operands.
21258
21259 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21260
21261 * config/rs6000/constraints.md (define_register_constraint "wp"):
21262 Delete.
21263 (define_register_constraint "wq"): Delete.
21264 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
21265 (rs6000_init_hard_regno_mode_ok): Adjust.
21266 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
21267 RS6000_CONSTRAINT_wp and RS6000_CONSTRAINT_wq.
21268 * config/rs6000/vsx.md (define_mode_attr VSr3): Delete.
21269 (define_mode_attr VSa): Delete.
21270 (define_mode_attr VSisa): New.
21271 (rest of file): Adjust.
21272 * doc/md.texi (Machine Constraints): Adjust.
21273
21274 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21275
21276 * config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf.
21277 (define_attr "enabled"): Handle those new isa values.
21278
21279 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21280
21281 * config/rs6000/vsx.md (define_mode_attr VSr4): Delete.
21282 (define_mode_attr VSr5): Delete.
21283 (define_mode_attr VStype_sqrt): Delete.
21284 (define_mode_iterator VSX_SPDP): Delete.
21285 (define_mode_attr VS_spdp_res): Delete.
21286 (define_mode_attr VS_spdp_insn): Delete.
21287 (define_mode_attr VS_spdp_type): Delete.
21288 (*vsx_sqrt<mode>2): Adjust.
21289 (vsx_<VS_spdp_insn>): Delete, split to...
21290 (vsx_xscvdpsp): ... this. New. And...
21291 (vsx_xvcvspdp): ... this. New. And...
21292 (vsx_xvcvdpsp): ... this. New.
21293
21294 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21295
21296 * config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF
21297 and V2DF.
21298 * config/rs6000/vsx.md (define_mode_attr VSs): Delete.
21299 (rest of file): Adjust.
21300
21301 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21302
21303 * config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>.
21304 (vsx_extract_<mode>_var): Ditto.
21305
21306 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21307
21308 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI
21309 with just "wa".
21310
21311 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21312
21313 * config/rs6000/constraints.md (define_register_constraint "ww"):
21314 Delete.
21315 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
21316 (rs6000_init_hard_regno_mode_ok): Adjust.
21317 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
21318 RS6000_CONSTRAINT_ww.
21319 * config/rs6000/rs6000.md: Adjust.
21320 * config/rs6000/vsx.md: Adjust.
21321 * doc/md.texi (Machine Constraints): Adjust.
21322
21323 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21324
21325 * config/rs6000/rs6000.md (SFDF, SFDF2): Adjust comments.
21326 (define_mode_attr sd): New.
21327 (define_mode_attr s): New.
21328 (define_mode_attr Ftrad): Delete.
21329 (define_mode_attr Fvsx): Delete.
21330 (define_mode_attr Fs): Delete.
21331 (rest of file): Use the new mode attributes.
21332 * config.rs6000/vsx.md: Use the new mode attributes.
21333
21334 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21335
21336 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W
21337 with just "wa".
21338
21339 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21340
21341 * config/rs6000/vsx.md (define_mode_attr VSr2): Delete.
21342 (rest of file): Replace all <VSa>, <VSr>, <VSr2>, and <VSr3> that are
21343 used with VSX_B, VSX_D, or VSX_F, with just "wa".
21344
21345 2019-06-04 Bill Schmidt <wschmidt@linux.ibm.com>
21346
21347 PR target/78263
21348 * config/rs6000/altivec.h: Don't #define vector, pixel, bool for
21349 C++ with strict ANSI requirements.
21350
21351 2019-06-04 Marc Glisse <marc.glisse@inria.fr>
21352
21353 * tree-ssa-loop-niter.c (number_of_iterations_ne): Skip
21354 computations when step is 1.
21355
21356 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21357
21358 * config/rs6000/constraints.md (define_register_constraint "wf"):
21359 Delete.
21360 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
21361 (rs6000_init_hard_regno_mode_ok): Adjust.
21362 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
21363 RS6000_CONSTRAINT_wf.
21364 * config/rs6000/rs6000.md: Adjust.
21365 * config/rs6000/vsx.md: Adjust.
21366 * doc/md.texi (Machine Constraints): Adjust.
21367
21368 2019-06-04 Andrew Pinski <apinski@marvell.com>
21369
21370 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset):
21371 Fix ILP32 value.
21372
21373 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21374
21375 * config/rs6000/constraints.md (define_register_constraint "wd"):
21376 Delete.
21377 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
21378 (rs6000_init_hard_regno_mode_ok): Adjust.
21379 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
21380 RS6000_CONSTRAINT_wd.
21381 * config/rs6000/rs6000.md: Adjust.
21382 * config/rs6000/vsx.md: Adjust.
21383 * doc/md.texi (Machine Constraints): Adjust.
21384
21385 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21386
21387 * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete.
21388 (rest of file): Adjust.
21389
21390 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21391
21392 * config/rs6000/vsx.md (define_mode_attr VS_64reg): Delete.
21393 (*vsx_extract_<P:mode>_<VSX_D:mode>_load): Adjust.
21394 (vsx_splat_<mode>_reg): Adjust.
21395
21396 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21397
21398 * config/rs6000/constraints.md (define_register_constraint "ws"):
21399 Delete.
21400 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
21401 (rs6000_init_hard_regno_mode_ok): Adjust.
21402 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
21403 RS6000_CONSTRAINT_ws.
21404 * config/rs6000/rs6000.md: Adjust.
21405 * config/rs6000/vsx.md: Adjust.
21406 * doc/md.texi (Machine Constraints): Adjust.
21407
21408 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21409
21410 * config/rs6000/constraints.md (define_register_constraint "wv"):
21411 Delete.
21412 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
21413 (rs6000_init_hard_regno_mode_ok): Adjust.
21414 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
21415 RS6000_CONSTRAINT_wv.
21416 * config/rs6000/rs6000.md: Adjust.
21417 * config/rs6000/vsx.md: Adjust.
21418 * doc/md.texi (Machine Constraints): Adjust.
21419
21420 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21421
21422 * config/rs6000/constraints.md (define_register_constraint "wi"):
21423 Delete.
21424 (define_register_constraint "wt"): Delete.
21425 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
21426 (rs6000_init_hard_regno_mode_ok): Adjust.
21427 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
21428 RS6000_CONSTRAINT_wi and RS6000_CONSTRAINT_wt.
21429 * config/rs6000/rs6000.md: Adjust.
21430 * config/rs6000/vsx.md: Adjust.
21431 * doc/md.texi (Machine Constraints): Adjust.
21432
21433 2019-06-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
21434
21435 * config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove
21436 const.
21437 * config/aarch64/aarch64.c (aarch64_asm_output_external): Call
21438 default_elf_asm_output_external.
21439
21440 2019-06-04 Martin Liska <mliska@suse.cz>
21441
21442 * ipa-icf.c (INCLUDE_LIST): Remove.
21443 (sem_item_optimizer::execute): Remove call to init_wpa.
21444 * ipa-icf.h (init_wpa): Remove.
21445
21446 2019-06-04 Jakub Jelinek <jakub@redhat.com>
21447
21448 * gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate
21449 conditional on combined for simd.
21450 * omp-low.c (struct omp_context): Add combined_into_simd_safelen0
21451 member.
21452 (lower_rec_input_clauses): For gimple_omp_for_combined_into_p max_vf 1
21453 constructs, don't remove lastprivate_conditional_map, but instead set
21454 ctx->combined_into_simd_safelen0 and adjust hash_map, so that it points
21455 to parent construct temporaries.
21456 (lower_lastprivate_clauses): Handle ctx->combined_into_simd_safelen0
21457 like !ctx->lastprivate_conditional_map.
21458 (lower_omp_1) <case GIMPLE_ASSIGN>: If up->combined_into_simd_safelen0,
21459 use up->outer context instead of up.
21460 * omp-expand.c (expand_omp_for_generic): Perform cond_var bump even if
21461 gimple_omp_for_combined_p.
21462 (expand_omp_for_static_nochunk): Likewise.
21463 (expand_omp_for_static_chunk): Add forgotten cond_var bump that was
21464 probably moved over into expand_omp_for_generic rather than being copied
21465 there.
21466
21467 2019-06-04 Martin Liska <mliska@suse.cz>
21468
21469 * value-prof.c (dump_histogram_value): Fix typo.
21470 (gimple_mod_subtract_transform): Likewise.
21471
21472 2019-06-04 Richard Biener <rguenther@suse.de>
21473
21474 PR middle-end/90726
21475 * tree-chrec.c (chrec_contains_symbols): Add to visited.
21476 (tree_contains_chrecs): Likewise.
21477 (chrec_contains_symbols_defined_in_loop): Move here and avoid
21478 exponential behaivor from ...
21479 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
21480 ... here.
21481 (expression_expensive_p): Avoid exponential behavior and compute
21482 expanded size, rejecting any expansion.
21483 * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): Remove.
21484 (idx_contains_abnormal_ssa_name_p): Likewise.
21485 (contains_abnormal_ssa_name_p_1): New helper for walk_tree.
21486 (contains_abnormal_ssa_name_p): Simplify and use
21487 walk_tree_without_duplicates.
21488
21489 2019-06-04 Richard Biener <rguenther@suse.de>
21490
21491 PR tree-optimization/90738
21492 Revert
21493 2019-06-03 Richard Biener <rguenther@suse.de>
21494
21495 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
21496 full reference tree and record in ref->ref.
21497 (vn_reference_lookup_3): Pass in original ref to
21498 ao_ref_init_from_vn_reference.
21499 (vn_reference_lookup): Likewise.
21500 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
21501 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
21502 Handle non-decl bases in the original reference.
21503
21504 2019-06-04 Martin Liska <mliska@suse.cz>
21505
21506 * ipa-icf.c (sem_item_optimizer::add_item_to_class): Count
21507 number of references.
21508 (sem_item_optimizer::do_congruence_step):
21509 (sem_item_optimizer::worklist_push): Dump how references
21510 a class has.
21511 (sem_item_optimizer::worklist_pop): Use heap.
21512 (sem_item_optimizer::process_cong_reduction): Likewise.
21513 * ipa-icf.h: Use fibonacci_heap insteam of std::list.
21514
21515 2019-06-04 Martin Liska <mliska@suse.cz>
21516
21517 * ipa-icf.h (struct sem_usage_pair_hash): New.
21518 (sem_usage_pair_hash::hash): Likewise.
21519 (sem_usage_pair_hash::equal): Likewise.
21520 (struct sem_usage_hash): Likewise.
21521 * ipa-icf.c (sem_item::sem_item): Initialize
21522 referenced_by_count.
21523 (sem_item::add_reference): Register a reference
21524 in ref_map and not in target->usages.
21525 (sem_item::setup): Remove initialization of
21526 dead vectors.
21527 (sem_item::~sem_item): Remove usage of dead vectors.
21528 (sem_item::dump): Remove dump of references.
21529 (sem_item_optimizer::sem_item_optimizer): Initialize
21530 m_references.
21531 (sem_item_optimizer::read_section): Remove useless
21532 dump.
21533 (sem_item_optimizer::parse_funcs_and_vars): Likewise here.
21534 (sem_item_optimizer::build_graph): Pass m_references
21535 to ::add_reference.
21536 (sem_item_optimizer::verify_classes): Remove usage of dead
21537 vectors.
21538 (sem_item_optimizer::traverse_congruence_split): Return true
21539 when a class is split.
21540 (sem_item_optimizer::do_congruence_step_for_index): Use
21541 hash_map for look up of (sem_item *, index). That brings
21542 significant speed up.
21543 (sem_item_optimizer::do_congruence_step): Return true
21544 when a split is done.
21545 (congruence_class::is_class_used): Use referenced_by_count.
21546
21547 2019-06-04 Alan Modra <amodra@gmail.com>
21548
21549 PR target/90689
21550 * config/rs6000/rs6000.c (rs6000_call_aix): Correct r271753 merge
21551 error.
21552
21553 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
21554
21555 * config/rs6000/rs6000.h (MASK_MFPGPR): Delete.
21556 * config/rs6000/rs6000.c (direct_move_p): Adjust.
21557 (rs6000_secondary_reload_simple_move): Adjust.
21558 (rs6000_opt_masks): Neuter the "mfpgpr" option.
21559 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust.
21560 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): Adjust
21561 comment.
21562 (power6x): Adjust.
21563 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Adjust.
21564 (floatunssi<mode>2_lfiwzx): Adjust.
21565 (fix_trunc<mode>si2_stfiwx): Adjust.
21566 (fixuns_trunc<mode>si2_stfiwx): Adjust.
21567 * config/rs6000/rs6000.opt (mno-mfpgpr): New.
21568 (mfpgpr): Mark as deprecated.
21569 * doc/extend.texi (PowerPC Function Attributes): Delete mfpgpr.
21570 (Basic PowerPC Built-in Functions Available on ISA 2.05): Adjust.
21571 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mmfpgpr.
21572
21573 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
21574
21575 * config/rs6000/constraints.md (define_register_constraint "wg"):
21576 Delete.
21577 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
21578 RS6000_CONSTRAINT_wg.
21579 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
21580 (rs6000_init_hard_regno_mode_ok): Adjust.
21581 * config/rs6000/rs6000.md (*mov<mode>_softfloat32, *movdi_internal64):
21582 Delete "wg" alternatives.
21583 * doc/md.texi (Machine Constraints): Adjust.
21584
21585 2019-06-03 Alan Modra <amodra@gmail.com>
21586
21587 * bb-reorder.c (copy_bb_p): Don't overflow size calculation.
21588 (get_uncond_jump_length): Assert length less than INT_MAX and
21589 non-negative.
21590
21591 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
21592
21593 PR middle-end/64242
21594 * builtins.c (expand_builtin_longjmp): Add frame clobbers and schedule
21595 block.
21596 (expand_builtin_nonlocal_goto): Likewise.
21597
21598 2019-06-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
21599
21600 * config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare.
21601 (aarch64_asm_output_external): Declare.
21602 * config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New.
21603 (aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs.
21604 (aarch64_asm_output_alias): New.
21605 (aarch64_asm_output_external): New.
21606 * config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
21607 (ASM_OUTPUT_EXTERNAL): Define.
21608
21609 2019-06-03 Aldy Hernandez <aldyh@redhat.com>
21610 * tree-vrp.h (value_range_base::nonzero_p): New.
21611 (value_range_base::set_nonnull): Rename to...
21612 (value_range_base::set_nonzero): ...this.
21613 (value_range_base::set_null): Rename to...
21614 (value_range_base::set_zero): ...this.
21615 (value_range::set_nonnull): Remove.
21616 (value_range::set_null): Remove.
21617 * tree-vrp.c (range_is_null): Remove.
21618 (range_is_nonnull): Remove.
21619 (extract_range_from_binary_expr): Use value_range_base::*zero_p
21620 instead of range_is_*null.
21621 (extract_range_from_unary_expr): Same.
21622 (value_range_base::set_nonnull): Rename to...
21623 (value_range_base::set_nonzero): ...this.
21624 (value_range::set_nonnull): Remove.
21625 (value_range_base::set_null): Rename to...
21626 (value_range_base::set_zero): ...this.
21627 (value_range::set_null): Remove.
21628 (extract_range_from_binary_expr): Rename set_*null uses to
21629 set_*zero.
21630 (extract_range_from_unary_expr): Same.
21631 (union_helper): Same.
21632 * vr-values.c (get_value_range): Use set_*zero instead of
21633 set_*null.
21634 (vr_values::extract_range_from_binary_expr): Same.
21635 (vr_values::extract_range_basic): Same.
21636
21637 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
21638
21639 PR driver/90684
21640 * opts.c (parse_and_check_align_values): Allow 4 alignment values.
21641
21642 2019-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21643
21644 * config/aarch64/iterators.md (MAX_OPP): New code attr.
21645 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3):
21646 Rename to...
21647 (aarch64_<su>abd<mode>_3): ... This.
21648 (<sur>sadv16qi): Add TARGET_DOTPROD expansion.
21649
21650 2019-06-03 Richard Biener <rguenther@suse.de>
21651
21652 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
21653 full reference tree and record in ref->ref.
21654 (vn_reference_lookup_3): Pass in original ref to
21655 ao_ref_init_from_vn_reference.
21656 (vn_reference_lookup): Likewise.
21657 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
21658 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
21659 Handle non-decl bases in the original reference.
21660
21661 2019-06-03 Martin Liska <mliska@suse.cz>
21662
21663 * doc/generic.texi: Remove Java Trees.
21664
21665 2019-06-03 Martin Liska <mliska@suse.cz>
21666
21667 * fold-const.c (operand_equal_p): Fix typo as compare_tree_int
21668 returns 0 when operands are equal.
21669
21670 2019-06-03 Richard Biener <rguenther@suse.de>
21671
21672 PR tree-optimization/90716
21673 * tree-loop-distribution.c (destroy_loop): Process blocks in
21674 correct order.
21675
21676 2019-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
21677
21678 PR target/88837
21679 * vector-builder.h (vector_builder::count_dups): New method.
21680 * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vector_init):
21681 Declare prototype.
21682 * config/aarch64/aarch64/sve.md (aarch64_sve_rev64<mode>): Use @.
21683 (vec_init<mode><Vel>): New pattern.
21684 * config/aarch64/aarch64.c (emit_insr): New function.
21685 (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise.
21686 (aarch64_sve_expand_vector_init_insert_elems): Likewise.
21687 (aarch64_sve_expand_vector_init_handle_trailing_same_elem): Likewise.
21688 (aarch64_sve_expand_vector_init): Define two overloaded functions.
21689
21690 2019-06-03 Alejandro Martinez <alejandro.martinezvicente@arm.com>
21691
21692 PR tree-optimization/90681
21693 * internal-fn.c (mask_load_direct): Mark as non-vectorizable again.
21694 * tree-vect-slp.c (vect_build_slp_tree_1): Add masked loads as a
21695 special case for SLP, but fail on non-groupped loads.
21696
21697 2019-06-03 Martin Liska <mliska@suse.cz>
21698
21699 * cfg.c (debug): Use TDF_DETAILS for debug and
21700 print edge info only once.
21701
21702 2019-06-02 Thomas Koenig <tkoenig@gcc.gnu.org>
21703
21704 PR fortran/90539
21705 * predict.def (PRED_FORTRAN_CONTIGUOUS): New predictor.
21706
21707 2019-06-01 Martin Sebor <msebor@redhat.com>
21708
21709 PR middle-end/90694
21710 * tree-pretty-print.c (dump_generic_node): Add parentheses.
21711
21712 2019-05-31 Jan Hubicka <jh@suse.cz>
21713
21714 * alias.c: Include ipa-utils.h.
21715 (get_alias_set): Try to complete ODR type via ODR type hash lookup.
21716 * ipa-devirt.c (prevailing_odr_type): New.
21717 * ipa-utils.h (previaling_odr_type): Declare.
21718
21719 2019-05-31 H.J. Lu <hongjiu.lu@intel.com>
21720 Hongtao Liu <hongtao.liu@intel.com>
21721
21722 PR target/89355
21723 * config/i386/i386-features.c (rest_of_insert_endbranch): Remove
21724 NOTE_INSN_DELETED_LABEL check.
21725
21726 2019-05-31 Prachi Godbole <prachi.godbole@imgtec.com>
21727 Robert Suchanek <robert.suchanek@mips.com>
21728
21729 * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st
21730 and 3rd operands of the fmadd/fmsub/maddv builtin.
21731
21732 2019-05-31 Jakub Jelinek <jakub@redhat.com>
21733
21734 * tree.h (OMP_CLAUSE__CONDTEMP__ITER): Define.
21735 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
21736 on OMP_SIMD if not nested inside of worksharing loop that also has
21737 lastprivate conditional clause for the same decl.
21738 (gimplify_omp_for): Add _condtemp_ clauses to OMP_SIMD if needed.
21739 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_ also
21740 on simd.
21741 (lower_rec_input_clauses): Likewise. Handle lastprivate conditional
21742 on simd construct.
21743 (lower_lastprivate_conditional_clauses): Handle lastprivate conditional
21744 on simd construct.
21745 (lower_lastprivate_clauses): Likewise.
21746 (lower_omp_sections): Call lower_lastprivate_conditional_clauses before
21747 calling lower_rec_input_clauses.
21748 (lower_omp_for): Likewise.
21749 (lower_omp_1): Use first rather than second OMP_CLAUSE__CONDTEMP_
21750 clause on simd construct.
21751 * omp-expand.c (expand_omp_simd): Initialize cond_var if
21752 OMP_CLAUSE__CONDTEMP_ clause is present.
21753
21754 * omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on
21755 ivar and lvar.
21756
21757 2019-05-31 Xiong Hu Luo <luoxhu@linux.ibm.com>
21758
21759 PR c/43673
21760 * c-format.c (print_char_table, scanf_char_table): Replace BADLEN with
21761 TEX_D32, TEX_D64 or TEX_D128.
21762
21763 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
21764
21765 * match.pd (~(vec?cst1:cst2)): New transformation.
21766
21767 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
21768
21769 * match.pd (X/[ex]D<Y/[ex]D): Handle negative denominator.
21770 ((size_t)(A /[ex] B) CMP C): New transformation.
21771
21772 2019-05-31 Richard Sandiford <richard.sandiford@arm.com>
21773
21774 * doc/md.texi: Document define_insn_and_rewrite.
21775 * rtl.def (DEFINE_INSN_AND_REWRITE): New rtx code.
21776 * gensupport.c (queue_elem): Update comment.
21777 (replace_operands_with_dups): New function.
21778 (gen_rewrite_sequence): Likewise.
21779 (process_rtx): Handle DEFINE_INSN_AND_REWRITE.
21780 * read-rtl.c (apply_subst_iterator): Likewise.
21781 (add_condition_to_rtx, named_rtx_p): Likewise.
21782 (rtx_reader::read_rtx_operand): Likewise.
21783 * config/aarch64/aarch64-sve.md
21784 (while_ult<GPI:mode><PRED_ALL:mode>_cc): Rename to...
21785 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): ...this and use
21786 define_insn_and_rewrite.
21787 (*cond_<optab><mode>_any): Turn into define_insn_and_rewrites.
21788 Remove separate define_split.
21789
21790 2019-05-31 Jan Hubicka <jh@suse.cz>
21791
21792 * tree-ssa-alias.c (type_has_components_p): New function.
21793 (aliasing_component_refs_p): Use it.
21794
21795 2019-05-31 Martin Liska <mliska@suse.cz>
21796
21797 * gdbhooks.py: Add const_tree to TreePrinter.
21798
21799 2019-05-31 Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
21800
21801 PR debug/86964
21802 * common.opt (feliminate-unused-debug-symbols): Enable by default.
21803 * doc/invoke.texi (Debugging Options): Document new default of
21804 -feliminate-unused-debug-symbols and remove restriction to 'stabs'.
21805
21806 2019-05-31 Jakub Jelinek <jakub@redhat.com>
21807
21808 PR tree-optimization/90671
21809 * tree-ssa-threadupdate.c (ssa_create_duplicates): If
21810 template_block used to be empty on the first call, don't use
21811 gsi_split_seq_after and gsi_insert_seq_after, but remember whole
21812 seq with bb_seq and set it with set_bb_seq.
21813
21814 2019-05-31 Iain Sandoe <iain@sandoe.co.uk>
21815
21816 * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
21817
21818 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
21819 Michael Meissner <meissner@linux.ibm.com>
21820
21821 * config/rs6000/predicates.md (pcrel_address): New define_predicate.
21822 (prefixed_mem_operand): Likewise.
21823 (non_prefixed_mem_operand): Likewise.
21824 * config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New
21825 prototype.
21826 * config/rs6000/rs6000.c (print_operand_address): Handle
21827 PC-relative addresses.
21828 (mode_supports_prefixed_address_p): New function.
21829 (rs6000_prefixed_address): New function.
21830 * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define.
21831 (SYMBOL_REF_PCREL_P): Likewise.
21832
21833 2019-05-30 Jakub Jelinek <jakub@redhat.com>
21834
21835 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP.
21836 (gimplify_adjust_omp_clauses_1): Handle GOVD_CONDTEMP.
21837 (gimplify_omp_for): If worksharing loop with lastprivate conditional
21838 is nested inside of parallel region, add _condtemp_ clause to both.
21839 * tree-nested.c (convert_nonlocal_omp_clauses,
21840 convert_local_omp_clauses): Ignore OMP_CLAUSE__CONDTEMP_ instead of
21841 assertion failure.
21842 * omp-general.h (struct omp_for_data): Add have_pointer_condtemp
21843 member.
21844 * omp-general.c (omp_extract_for_data): Compute it.
21845 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_.
21846 (lower_rec_input_clauses): Likewise.
21847 (lower_lastprivate_conditional_clauses): If OMP_CLAUSE__CONDTEMP_
21848 clause is already present, just add one further one after it.
21849 (lower_lastprivate_clauses): Handle cond_ptr with array type.
21850 (lower_send_shared_vars): Clear _condtemp_ vars.
21851 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle target data like critical
21852 or section or taskgroup.
21853 * omp-expand.c (determine_parallel_type): Disallow combining only if
21854 first OMP_CLAUSE__CONDTEMP_ has pointer type. Disallow combining
21855 of parallel sections if OMP_CLAUSE__CONDTEMP_ is present.
21856 (expand_omp_for_generic, expand_omp_for_static_nochunk,
21857 expand_omp_for_static_chunk, expand_omp_for): Use
21858 fd->have_pointer_condtemp instead of fd->lastprivate_conditional to
21859 determine if a special set of API routines are needed and if condtemp
21860 needs to be initialized, while always initialize cond_var if
21861 fd->lastprivate_conditional is non-zero.
21862
21863 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
21864 Michael Meissner <meissner@linux.ibm.com>
21865
21866 * config/rs6000/constraints.md (eI): New constraint.
21867 * config/rs6000/predicates.md (cint34_operand): New predicate.
21868 * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): New #define.
21869 (SIGNED_34BIT_OFFSET_P): Likewise.
21870 * doc/md.texi (eI): Document constraint.
21871
21872 2019-05-30 Sylvia Taylor <sylvia.taylor@arm.com>
21873
21874 * config/aarch64/aarch64-sve.md (*fabd<mode>3): New.
21875
21876 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
21877 Michael Meissner <meissner@linux.ibm.com>
21878
21879 * rs6000-cpus.def (OTHER_FUSION_MASKS): New #define.
21880 (ISA_3_0_MASKS_SERVER): Mask off OTHER_FUSION_MASKS.
21881 (ISA_3_0_MASKS_IEEE): Remove OPTION_MASK_DIRECT_MOVE.
21882 (ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PREFIXED_ADDR.
21883 (OTHER_FUTURE_MASKS): Likewise.
21884 (POWERPC_MASKS): Likewise.
21885 * rs6000.c (rs6000_option_override_internal): Error if -mpcrel is
21886 specified without -mprefixed-addr or -mcpu=future. Error if
21887 -mprefixed-addr is specified without -mcpu=future.
21888 (rs6000_opt_masks): Add entry for prefixed-addr.
21889 * rs6000.opt (mprefixed-addr): New option.
21890
21891 2019-05-30 Sam Tebbs <sam.tebbs@arm.com>
21892
21893 * aarch64/aarch64.c (aarch64_post_cfi_startproc): Add
21894 cfun->is_thunk check.
21895
21896 2019-05-30 Jakub Jelinek <jakub@redhat.com>
21897
21898 * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
21899 to length.
21900
21901 2019-05-30 Martin Liska <mliska@suse.cz>
21902
21903 * gdbinit.in: Fix 'ptc' command. Add trt
21904 that prints TREE_TYPE($).
21905
21906 2019-05-29 Bill Schmidt <wschmidt@linux.ibm.com>
21907 Alan Modra <amodra@gmail.com>
21908
21909 * config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel
21910 calls here...
21911 (rs6000_indirect_call_template_1): ...and here.
21912 (rs6000_pltseq_template): Handle plt_pcrel34. Rework tocsave,
21913 plt16_ha, plt16_lo, mtctr indirect calls. Use
21914 rs6000_pltseq_enum.
21915 (rs6000_decl_ok_for_sibcall): New function.
21916 (rs6000_function_ok_for_sibcall): Refactor.
21917 (rs6000_longcall_ref): Use UNSPEC_PLT_PCREL when pcrel.
21918 (rs6000_call_aix): Don't emit toc restore rtl for indirect calls
21919 when pcrel. Reorganize.
21920 (rs6000_sibcall_aix): Don't add r2 to function usage when pcrel.
21921 * rs6000.h (rs6000_pltseq_enum): New enum.
21922 * rs6000.md (UNSPEC_PLT_PCREL): New unspec.
21923 (*pltseq_tocsave): Use rs6000_pltseq_enum.
21924 (*pltseq_plt16_ha): Likewise.
21925 (*pltseq_plt16_lo): Likewise.
21926 (*pltseq_mtctr): Likewise.
21927 (*pltseq_plt_pcrel): New insn.
21928 (*call_local_aix): Handle @notoc calls.
21929 (*call_value_local_aix): Likewise.
21930 (*call_nonlocal_aix): Adjust lengths for pcrel calls.
21931 (*call_value_nonlocal_aix): Likewise.
21932 (*call_indirect_pcrel): New insn.
21933 (*call_value_indirect_pcrel): Likewise.
21934
21935 2019-05-29 Uroš Bizjak <ubizjak@gmail.com>
21936
21937 * config/i386/sse.md (*save_multiple<mode>): Rename from
21938 save_multiple<mode>.
21939 (*restore_multiple<mode>): Rename from restore_multiple<mode>.
21940 (*restore_multiple_and_return<mode>): Rename from
21941 restore_multiple_and_return<mode>.
21942 (*restore_multiple_leave_return<mode>): Rename from
21943 restore_multiple_leave_return<mode>.
21944
21945 2019-05-29 Yoshinori Sato <ysato@users.sourceforge.jp>
21946
21947 * config.gcc (rx-*-linux*): New target.
21948 * config/rx/elf.opt: New file.
21949 * config/rx/linux.h: Likewise.
21950 * config/rx/t-linux: Likewise.
21951 * config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined,
21952 make it zero.
21953 * config/rx/rx.h (ASM_APP_ON): Allow to be overridden.
21954 (ASM_APP_OFF): Likewise.
21955 * config/rx/rx.opt: Drop -msim and -mas100-syntax, they were
21956 moved elsewhere.
21957
21958 2019-05-29 Jan Hubicka <jh@suse.cz>
21959
21960 * tree-ssa-alias.c (same_type_for_tbaa): Return ture if main
21961 variants are pointer equivalent.
21962
21963 2019-05-29 Alejandro Martinez <alejandro.martinezvicente@arm.com>
21964
21965 * config/aarch64/aarch64-c.c: Added TARGET_SVE2.
21966 * config/aarch64/aarch64-sve2.md: New file.
21967 (<u>avg<mode>3_floor): New pattern.
21968 (<u>avg<mode>3_ceil): Likewise.
21969 (*<sur>h<addsub><mode>): Likewise.
21970 * config/aarch64/aarch64.h: Added AARCH64_ISA_SVE2 and TARGET_SVE2.
21971 * config/aarch64/aarch64.md: Include aarch64-sve2.md.
21972
21973 2019-05-29 Jakub Jelinek <jakub@redhat.com>
21974
21975 PR bootstrap/90543
21976 * optc-save-gen.awk: In cl_optimization_print, use correct condition
21977 for var_opt_string printing. In cl_optimization_print_diff, print
21978 (null) instead of invoking undefined behavior if one of the
21979 var_opt_string pointers is NULL and use && instead of first || in the
21980 guarding condition. For var_target_other options, handle const char *
21981 target variables similarly to const char * optimize node variables.
21982
21983 2019-05-29 Sam Tebbs <sam.tebbs@arm.com>
21984
21985 * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add
21986 AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716.
21987 * config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins):
21988 Add autib1716 and pacib1716 initialisation.
21989 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks
21990 for autib1716 and pacib1716.
21991 * config/aarch64/aarch64-protos.h (aarch64_key_type,
21992 aarch64_post_cfi_startproc): Define.
21993 * config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern.
21994 * config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection,
21995 aarch64_handle_pac_ret_protection): Set default sign key to A.
21996 * config/aarch64/aarch64.c (aarch64_expand_epilogue,
21997 aarch64_expand_prologue): Add check for b-key.
21998 * config/aarch64/aarch64.c (aarch64_ra_sign_key,
21999 aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define.
22000 * config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define.
22001 * config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key".
22002 * config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716,
22003 UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716,
22004 UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP.
22005 * config/aarch64/aarch64.md (do_return): Add check for b-key.
22006 * config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace
22007 pauth_hint_num_a with pauth_hint_num.
22008 * config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace
22009 pauth_hint_num_a with pauth_hint_num.
22010 * config/aarch64/aarch64.opt (msign-return-address=): Deprecate.
22011 * config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP,
22012 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
22013 * config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716,
22014 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716.
22015 * config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716,
22016 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP,
22017 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
22018 * config/aarch64/iterators.md (pauth_hint_num_a): Replace
22019 UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and
22020 UNSPEC_AUTIA1716 respectively.
22021 * config/aarch64/iterators.md (pauth_hint_num_a): Rename to
22022 pauth_hint_num and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP,
22023 UNSPEC_PACIB1716, UNSPEC_AUTIB1716.
22024 * doc/invoke.texi (-mbranch-protection): Add b-key type.
22025 * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename
22026 UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP.
22027
22028 2019-05-29 Jakub Jelinek <jakub@redhat.com>
22029
22030 * gimplify.c (struct gimplify_omp_ctx): Add clauses member.
22031 (gimplify_scan_omp_clauses): Initialize ctx->clauses.
22032 (gimplify_adjust_omp_clauses_1): Transform lastprivate conditional
22033 explicit clause on combined parallel into implicit shared clause.
22034 (gimplify_adjust_omp_clauses): Move lastprivate conditional clause
22035 and firstprivate if the decl has one too from combined parallel to
22036 the worksharing construct.
22037
22038 2019-05-28 Bill Schmidt <wschmidt@linux.ibm.com>
22039 Michael Meissner <meissner@linux.ibm.com>
22040
22041 * config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define.
22042
22043 2019-05-28 Michael Meissner <meissner@linux.ibm.com>
22044
22045 * rtl.h (LABEL_REF_P): New #define.
22046
22047 2019-05-28 John David Anglin <danglin@gcc.gnu.org>
22048
22049 * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
22050
22051 2019-05-28 Alejandro Martinez <alejandro.martinezvicente@arm.com>
22052
22053 * internal-fn.c: Marked mask_load_direct as vectorizable.
22054 * tree-data-ref.c (data_ref_compare_tree): Fixed comment typo.
22055 * tree-vect-data-refs.c (can_group_stmts_p): Allow masked loads to be
22056 combined even if masks different with allow_slp_p param.
22057 (vect_analyze_data_ref_accesses): Mark SLP only vectorizable groups.
22058 * tree-vect-loop.c (vect_dissolve_slp_only_groups): New function to
22059 dissolve SLP-only vectorizable groups when SLP has been discarded.
22060 (vect_analyze_loop_2): Call vect_dissolve_slp_only_groups when needed.
22061 * tree-vect-slp.c (vect_get_and_check_slp_defs): Check masked loads
22062 masks.
22063 (vect_build_slp_tree_1): Fixed comment typo.
22064 (vect_build_slp_tree_2): Include masks from masked loads in SLP tree.
22065 * tree-vect-stmts.c (vectorizable_load): Allow vectorizaion of masked
22066 loads for SLP only.
22067 * tree-vectorizer.h (_stmt_vec_info): Added flag for SLP-only
22068 vectorizable.
22069 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Likewise.
22070
22071 2019-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22072
22073 * config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf):
22074 Remove obsolete use_thunk reference.
22075 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
22076 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
22077 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
22078 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
22079 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
22080 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
22081 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
22082 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
22083 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
22084
22085 2019-05-28 Nathan Sidwell <nathan@acm.org>
22086
22087 * tree.h (IDENTIFIER_ANON_P): New.
22088 (anon_aggrname_format, anon_aggname_p): Don't declare.
22089 (make_anon_name): Declare.
22090 * lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P.
22091 (hash_tree): Likewise.
22092 * tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise.
22093 * tree.c (anon_aggrname_p, anon_aggrname_format): Delete.
22094 (anon_cnt, make_anon_name): New.
22095
22096 2019-05-28 Martin Liska <mliska@suse.cz>
22097
22098 PR other/90315
22099 * opts-global.c (decode_options): Print help for all
22100 help_option_arguments.
22101 * opts.c (print_help): Add new argument.
22102 (common_handle_option): Remember all values into
22103 help_option_arguments.
22104 * opts.h (print_help): Add new argument.
22105
22106 2019-05-28 Martin Liska <mliska@suse.cz>
22107
22108 PR ipa/90555
22109 * ipa-icf-gimple.c (func_checker::compare_loops): New function.
22110 * ipa-icf-gimple.h (func_checker::compare_loops): Likewise.
22111 (func_checker::compare_bb): Call compare_loops.
22112
22113 2019-05-27 Jakub Jelinek <jakub@redhat.com>
22114
22115 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
22116 on sections construct.
22117 * omp-low.c (lower_lastprivate_conditional_clauses): Handle sections
22118 construct.
22119 (lower_omp_sections): Handle lastprivate conditional.
22120 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with
22121 lastprivate_conditional_map.
22122 * omp-expand.c (expand_omp_sections): Handle lastprivate conditional.
22123
22124 * omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered,
22125 critical, taskgroup and section regions when looking for a region
22126 with non-NULL lastprivate_conditional_map.
22127
22128 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
22129
22130 * config/i386/i386.c (ix86_gen_add3): Remove indirect function.
22131 (*ix86_gen_sub3): Ditto.
22132 (*ix86_gen_sub3_carry): Ditto.
22133 (*ix86_gen_one_cmpl2): Ditto.
22134 (*ix86_gen_andsp): Ditto.
22135 (ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3.
22136 (gen_and2_insn): New static function.
22137 (ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp.
22138 Use gen_add3_insn instead of ix86_gen_add3.
22139 (ix86_expand_split_stack_prologue): Use gen_add2_insn
22140 instead of ix86_gen_add3.
22141 (legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3.
22142 Use gen_sub3_insn instead of ix86_gen_sub3.
22143 * config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn
22144 instead of ix86_gen_add3.
22145 (ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of
22146 ix86_gen_add3. Use gen_sub3_insn instead of ix86_gen_sub3.
22147 (construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3.
22148 * config/i386/i386-options.c (ix86_option_override_internal):
22149 Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
22150 ix86_gen_one_cmpl2 and ix86_gen_andsp.
22151
22152 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
22153
22154 * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
22155 and DW_OP_GNU_const_index opcodes.
22156
22157 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
22158
22159 * config/i386/i386.h (STACK_SIZE_MODE): Define.
22160
22161 2019-05-27 Richard Biener <rguenther@suse.de>
22162
22163 PR tree-optimization/90637
22164 * tree-ssa-sink.c (statement_sink_location): Honor the
22165 computed sink location for single-uses.
22166
22167 2019-05-27 Richard Biener <rguenther@suse.de>
22168
22169 PR middle-end/90610
22170 * match.pd (vec_perm): Avoid clobbering op0 when not generating
22171 a bit-insert.
22172
22173 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
22174
22175 * config/i386/i386.md (@sub<mode>3_carry): Rename
22176 from sub<mode>3_carry.
22177 (@leave_<mode>): New expander.
22178 (*leave): Rename from leave.
22179 (*leave_rex64): Rename from leave_rex64.
22180 (@monitorx_<mode>): Rename from monitorx_<mode>.
22181 (@clzero_<mode>): Rename from clzero_<mode>.
22182 * config/i386/sse.md (@sse3_monitor_<mode>): Rename
22183 from sse3_monitor_<mode>.
22184 * config/i386/i386.c (ix86_gen_sub3_carry): Remove indirect function.
22185 (*ix86_gen_leave): Ditto.
22186 (*ix86_gen_monitor): Ditto.
22187 (*ix86_gen_monitorx): Ditto.
22188 (*ix86_gen_clzero): Ditto.
22189 (ix86_emit_leave): Use gen_leave instead of ix86_gen_leave.
22190 * config/i386/i386-expand.c (ix86_expand_strlensi_unroll_1):
22191 Use gen_sub3_carry instead of ix86_gen_sub3_carry.
22192 (ix86_expand_builtin) <case IX86_BUILTIN_MONITOR>:
22193 Use gen_sse3_monitor instead of ix86_gen_monitor.
22194 <case IX86_BUILTIN_MONITORX>: Use gen_monitorx
22195 instead of ix86_gen_monitorx.
22196 <case IX86_BUILTIN_CLZERO>: Use gen_clzero
22197 instead of ix86_gen_clzero.
22198 * config/i386/i386-options.c (ix86_option_override_internal):
22199 Do not initialize ix86_gen_leave, ix86_gen_sub3_carry,
22200 ix86_gen_monitor, ix86_gen_monitorx and ix86_gen_clzero.
22201
22202 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
22203
22204 * config/i386/i386.md (@tls_global_dynamic_64_<mode>):
22205 Rename from tls_global_dynamic_64_<mode>.
22206 (@tls_local_dynamic_base_64_<mode>): Rename from
22207 tls_local_dynamic_base_64_<mode>.
22208 * config/i386/i386.c (*ix86_gen_tls_global_dynamic_64):
22209 Remove indirect function.
22210 (*ix86_gen_tls_local_dynamic_base_64): Ditto.
22211 (legitimize_tls_address): Use gen_tls_global_dynamic_64 function
22212 instead of ix86_gen_tls_global_dynamic_64.
22213 Use gen_tls_local_dynamic_base_64 instead of
22214 ix86_gen_tls_local_dynamic_base_64.
22215 * config/i386/i386-options.c (ix86_option_override_internal):
22216 Do not initialize ix86_gen_tls_global_dynamic_64 and
22217 ix86_gen_tls_local_dynamic_base_64.
22218
22219 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
22220
22221 * config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>)
22222 Rename from pro_epilogue_adjust_stack_<mode>_add.
22223 (@pro_epilogue_adjust_stack_sub_<mode>)
22224 Rename from pro_epilogue_adjust_stack_<mode>_sub.
22225 (@allocate_stack_worker_probe_<mode>):
22226 Rename from allocate_stack_worker_probe_<mode>.
22227 (allocate_stack): Use gen_allocate_stack_worker_probe.
22228 (probe_stack): Use gen_probe_stack_1.
22229 (@probe_stack_1_<mode>): Rename from probe_stack_<mode>.
22230 (@adjust_stack_and_probe_<mode>): Rename from
22231 adjust_stack_and_probe<mode>.
22232 (@probe_stack_range_<mode>): Rename from probe_stack_range<mode>.
22233 (stack_protect_set): Use gen_stack_protect_set_1.
22234 (@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>.
22235 (stack_protect_test): Use gen_stack_protect_test_1.
22236 (@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>.
22237 * config/i386/i386.c (*ix86_gen_allocate_stack_worker):
22238 Remove indirect function.
22239 (*ix86_gen_adjust_stack_and_probe): Ditto.
22240 (*ix86_gen_probe_stack_range): Ditto.
22241 (pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add
22242 instead of gen_pro_epilogue_adjust_stack_{si,di}_add.
22243 (ix86_adjust_stack_and_probe_stack_clash): Use
22244 gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe.
22245 (ix86_adjust_stack_and_probe): Ditto.
22246 (ix86_emit_probe_stack_range): Use gen_probe_stack_range instead
22247 of ix86_gen_probe_stack_range.
22248 (ix86_expand_prologue): Use gen_pro_epilogue_adjust_stack_sub
22249 instead of gen_pro_epilogue_adjust_stack_{si,di}_sub.
22250 * config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p):
22251 Include insn-opinit.h. Use code_for_stack_protect_test_1 instead of
22252 CODE_FOR_stack_protect_test_{si,di}.
22253 * config/i386/i386-options.c (ix86_option_override_internal):
22254 Do not initialize ix86_gen_allocate_stack_worker,
22255 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
22256
22257 2019-05-26 Gerald Pfeifer <gerald@pfeifer.com>
22258
22259 * doc/invoke.texi (Link Options): Many editorial changes around
22260 -flinker-output.
22261
22262 2019-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22263
22264 * doc/invoke.texi (x86 Options, -mvect8-ret-in-mem): Remove
22265 pre-Solaris 11 referene and most Studio compiler details.
22266
22267 2019-05-24 John David Anglin <danglin@gcc.gnu.org>
22268
22269 PR target/90530
22270 * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from
22271 DImode to SImode in floating-point registers on 64-bit target.
22272 * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
22273 register_operand in xmpyu patterns.
22274
22275 2019-05-24 Jakub Jelinek <jakub@redhat.com>
22276
22277 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.
22278 * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of
22279 OMP_CLAUSE__REDUCTEMP_.
22280 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
22281 OMP_CLAUSE__CONDTEMP_.
22282 (walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_.
22283 * tree-pretty-print.c (dump_omp_clause): Likewise.
22284 * tree-nested.c (convert_nonlocal_omp_clauses,
22285 convert_local_omp_clauses): Likewise.
22286 * gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants
22287 instead of decimal. Add GOVD_LASTPRIVATE_CONDITIONAL.
22288 (gimplify_scan_omp_clauses): Don't reject lastprivate conditional
22289 on OMP_FOR.
22290 (gimplify_omp_for): Warn and disable conditional modifier from
22291 lastprivate on loop iterators.
22292 * omp-general.h (struct omp_for_data): Add lastprivate_conditional
22293 member.
22294 * omp-general.c (omp_extract_for_data): Initialize it.
22295 * omp-low.c (struct omp_context): Add lastprivate_conditional_map
22296 member.
22297 (delete_omp_context): Delete it.
22298 (lower_lastprivate_conditional_clauses): New function.
22299 (lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments,
22300 handle lastprivate conditional clauses.
22301 (lower_reduction_clauses): Add CLIST argument, emit it into
22302 the critical section if any.
22303 (lower_omp_sections): Adjust lower_lastprivate_clauses and
22304 lower_reduction_clauses callers.
22305 (lower_omp_for_lastprivate): Add CLIST argument, pass it through
22306 to lower_lastprivate_clauses.
22307 (lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust
22308 lower_omp_for_lastprivate and lower_reduction_clauses callers, emit
22309 clist into a critical section if not emitted there already by
22310 lower_reduction_clauses.
22311 (lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses
22312 callers.
22313 (lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate
22314 conditional variables.
22315 * omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_
22316 clause is present.
22317 (expand_omp_for_generic, expand_omp_for_static_nochunk,
22318 expand_omp_for_static_chunk): Handle lastprivate conditional.
22319 (expand_omp_for): Handle fd.lastprivate_conditional like
22320 fd.have_reductemp.
22321
22322 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
22323
22324 * config/gcn/gcn-run.c (main): Set a non-zero return value if the
22325 kernel does not exit cleanly.
22326 * config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb.
22327
22328 2019-05-24 Jason Merrill <jason@redhat.com>
22329
22330 Revert:
22331 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
22332
22333 2019-05-24 Richard Biener <rguenther@suse.de>
22334
22335 PR testsuite/90607
22336 * tree-loop-distribution.c (struct partition): Add location
22337 member.
22338 (partition_alloc): Initialize all fields.
22339 (generate_memset_builtin): Use the location recorded in the
22340 partition for the generated call.
22341 (generate_memcpy_builtin): Likewise.
22342 (classify_partition): Record the location of a single store
22343 as location for the partition.
22344
22345 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
22346
22347 * config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry
22348 for lo-part.
22349
22350 2019-05-24 Matthew Malcomson <matthew.malcomson@arm.com>
22351
22352 PR target/90588
22353 * common/config/aarch64/aarch64-common.c
22354 (aarch64_rewrite_selected_cpu): Change local temporary variable
22355 type from unsigned long to uint64_t.
22356 * config/aarch64/aarch64-protos.h (aarch64_parse_extension,
22357 aarch64_get_extension_string_for_isa_flags): Change declaration to
22358 match new definition by replacing unsigned long with uint64_t.
22359
22360 2019-05-24 Jakub Jelinek <jakub@redhat.com>
22361
22362 PR target/90568
22363 * config/i386/x86-tune-sched.c (ix86_macro_funsion_pair_p): Call
22364 gen_attr_type just once instead of 4-7 times. Formatting fixes.
22365 Handle stack_protect_test_<mode> codegen similarly to corresponding
22366 sub instruction.
22367
22368 2019-05-23 Iain Sandoe <iain@sandoe.co.uk>
22369
22370 * config/i386/darwin.h: Reject -mfentry*.
22371 * doc/sourcebuild.texi: Document mfentry target support.
22372
22373 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
22374
22375 * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p):
22376 Rename to rs6000_global_entry_point_prologue_needed_p. Return
22377 false for PC-relative functions.
22378 (rs6000_output_function_prologue): Change called function name to
22379 rs6000_global_entry_point_prologue_needed_p. Emit ".localentry
22380 name,1" for PC-relative functions.
22381 (rs6000_elf_declare_function_name): Change called function name to
22382 rs6000_global_entry_point_prologue_needed_p.
22383
22384 2019-05-23 Uroš Bizjak <ubizjak@gmail.com>
22385
22386 PR target/90552
22387 * config/i386/i386.c (gen_rtx_cost):
22388 Use ix86_tune_cost instead of ix86_cost.
22389
22390 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
22391 Michael Meissner <meissner@linux.ibm.com>
22392 Segher Boessenkool <segher@kernel.crashing.org>
22393
22394 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add
22395 OPTION_MASK_PCREL.
22396 (POWERPC_MASKS): Add OPTION_MASK_PCREL.
22397 * config/rs6000/rs6000-protos.h (rs6000_pcrel_p): New prototype.
22398 (rs6000_fndecl_pcrel_p): Likewise.
22399 * config/rs6000/rs6000.c (rs6000_option_override_internal): Report
22400 error if -mpcrel is requested without -mcpu=future.
22401 (rs6000_opt_masks): Add entry for pcrel.
22402 (rs6000_fndecl_pcrel_p): New function.
22403 (rs6000_pcrel_p): Likewise.
22404 * config/rs6000/rs6000.opt (mpcrel): New option.
22405 * doc/invoke.texi: Document -mpcrel and -mno-pcrel.
22406
22407 2019-05-23 Jan Hubicka <jh@suse.cz>
22408 Martin Liska <mliska@suse.cz>
22409
22410 PR tree-optimization/90576
22411 * tree-ssa-alias.c (compare_sizes): Remove dead calls to
22412 poly_int_tree_p.
22413 (aliasing_component_refs_p): Fix three way size compare conditional;
22414 give up earlier in case we can not decide on equivalence.
22415
22416 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
22417 Michael Meissner <meissner@linux.ibm.com>
22418 Segher Boessenkool <segher@kernel.crashing.org>
22419
22420 * config.gcc: Add future cpu.
22421 * config/rs6000/driver-rs6000.c (asm_names): Add future cpu.
22422 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): New
22423 #define.
22424 (POWERPC_MASKS): Add OPTION_MASK_FUTURE.
22425 (RS6000_CPU): New instantiation for future cpu.
22426 * config/rs6000/rs6000-opts.h (enum processor_type): Add
22427 PROCESSOR_FUTURE.
22428 * config/rs6000/rs6000-string.c (expand_compare_loop): Treat
22429 PROCESSOR_FUTURE like PROCESSOR_POWER9 for now.
22430 * config/rs6000/rs6000-tables.opt: Regenerate.
22431 * config/rs6000/rs6000.c (rs6000_option_override_internal): Treat
22432 PROCESSOR_FUTURE similarly to PROCESSOR_POWER9 for now.
22433 (rs6000_machine_from_flags): Handle future cpu.
22434 (rs6000_reassociation_width): Treat PROCESSOR_FUTURE like
22435 PROCESSOR_POWER9 for now.
22436 (rs6000_adjust_cost): Likewise.
22437 (rs6000_issue_rate): Likewise.
22438 (rs6000_register_move_cost): Likewise.
22439 (rs6000_opt_masks): Add entry for future.
22440 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add future cpu.
22441 (MASK_FUTURE): New #define.
22442 * config/rs6000/rs6000.md (define_attr "cpu"): Add future cpu.
22443 * config/rs6000/rs6000.opt (mfuture): New target option.
22444 * doc/invoke.texi (mcpu): Add future cpu.
22445
22446 2019-05-23 Martin Liska <mliska@suse.cz>
22447
22448 PR c++/90587
22449 * tree-ssa-uninit.c (value_sat_pred_p): The result of &
22450 operation points to a temporary (pointed via tree_to_wide_ref)
22451 that is out of scope after the &.
22452
22453 2019-05-23 Jonathan Wakely <jwakely@redhat.com>
22454
22455 PR c++/90592
22456 * doc/extend.texi (Function Names): Add missing word.
22457
22458 2019-05-23 Richard Biener <rguenther@suse.de>
22459
22460 PR tree-optimization/88440
22461 * opts.c (default_options_table): Enable -ftree-loop-distribute-patterns
22462 at -O[2s]+.
22463 * tree-loop-distribution.c (generate_memset_builtin): Fold the
22464 generated call.
22465 (generate_memcpy_builtin): Likewise.
22466 (distribute_loop): Pass in whether to only distribute patterns.
22467 (prepare_perfect_loop_nest): Also allow size optimization.
22468 (pass_loop_distribution::execute): When optimizing a loop
22469 nest for size allow pattern replacement.
22470
22471 2019-05-23 Jakub Jelinek <jakub@redhat.com>
22472
22473 PR target/90568
22474 * config/i386/i386.md (stack_protect_test_<mode>): Use sub instead
22475 of xor.
22476
22477 2019-05-23 Martin Liska <mliska@suse.cz>
22478
22479 PR sanitizer/90570
22480 * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
22481 expression similarly to gimplify_decl_expr.
22482
22483 2019-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
22484
22485 * cse.c (cse_dump_path): s/dump_file/f.
22486
22487 2019-05-22 David Malcolm <dmalcolm@redhat.com>
22488
22489 PR c++/90462
22490 * diagnostic-format-json.cc: Include "selftest.h".
22491 (json_from_expanded_location): Only add "file" key for non-NULL
22492 file strings.
22493 (json_from_location_range): Don't add "start" and "finish"
22494 children if they are UNKNOWN_LOCATION.
22495 (selftest::test_unknown_location): New selftest.
22496 (selftest::test_bad_endpoints): New selftest.
22497 (selftest::diagnostic_format_json_cc_tests): New function.
22498 * json.cc (json::object::get): New function.
22499 (selftest::test_object_get): New selftest.
22500 (selftest::json_cc_tests): Call it.
22501 * json.h (json::object::get): New decl.
22502 * selftest-run-tests.c (selftest::run_tests): Call
22503 selftest::diagnostic_format_json_cc_tests.
22504 * selftest.h (selftest::diagnostic_format_json_cc_tests): New
22505 decl.
22506
22507 2019-05-22 Kwok Cheung Yeung <kcy@codesourcery.com>
22508 Andrew Stubbs <amd@codesourcery.com>
22509
22510 * config.gcc (gcc_cv_initfini_array): Set for AMD GCN.
22511 * config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New.
22512 (kernel): Rename to...
22513 (main_kernel): ... this.
22514 (load_image): Load _init_array and _fini_array kernels.
22515 (run): Add argument for kernel to run.
22516 (main): Run init_array_kernel before main_kernel, and
22517 fini_array_kernel after.
22518 * config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow
22519 amdgpu_hsa_kernel attribute on functions.
22520 (gcn_disable_constructors): Delete.
22521 (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete.
22522 * config/gcn/crt0.c (size_t): Define.
22523 (_init_array, _fini_array): New.
22524 (__preinit_array_start, __preinit_array_end,
22525 __init_array_start, __init_array_end,
22526 __fini_array_start, __fini_array_end): Declare weak references.
22527
22528 2019-05-22 Andrew Stubbs <ams@codesourcery.com>
22529
22530 * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5.
22531
22532 2019-05-22 Jason Merrill <jason@redhat.com>
22533
22534 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
22535
22536 2019-05-22 H.J. Lu <hongjiu.lu@intel.com>
22537
22538 PR target/88483
22539 * config/i386/i386-options.c (ix86_init_machine_status): Set
22540 stack_frame_required to true.
22541 * config/i386/i386.c (ix86_get_frame_size): New function.
22542 (ix86_frame_pointer_required): Replace get_frame_size with
22543 ix86_get_frame_size.
22544 (ix86_compute_frame_layout): Likewise.
22545 (ix86_find_max_used_stack_alignment): Changed to void. Set
22546 stack_frame_required.
22547 (ix86_finalize_stack_frame_flags): Always call
22548 ix86_find_max_used_stack_alignment. Replace get_frame_size with
22549 ix86_get_frame_size.
22550 * config/i386/i386.h (machine_function): Add stack_frame_required.
22551
22552 2019-05-22 Uroš Bizjak <ubizjak@gmail.com>
22553
22554 * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.
22555
22556 2019-05-22 Matthew Malcomson <matthew.malcomson@arm.com>
22557
22558 * common/config/aarch64/aarch64-common.c
22559 (struct aarch64_option_extension, struct processor_name_to_arch,
22560 struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp,
22561 aarch64_contains_opt,
22562 aarch64_get_extension_string_for_isa_flags): Change type of
22563 variables storing flags to uint64_t.
22564 * config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4,
22565 sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags.
22566 * config/aarch64/aarch64.c (struct processor,
22567 aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu,
22568 aarch64_validate_march, aarch64_override_options,
22569 aarch64_option_print, aarch64_handle_attr_isa_flags,
22570 aarch64_declare_function_name, aarch64_start_file): Make flag
22571 variables uint64_t.
22572 * config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES,
22573 AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3,
22574 AARCH64_FL_SVE2_BITPERM): New macro feature flags.
22575 * config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t.
22576 * config/aarch64/driver-aarch64.c
22577 (struct aarch64_arch_extension, struct aarch64_core_data,
22578 struct aarch64_arch_driver_info, host_detect_local_cpu): Make
22579 flag variables uint64_t.
22580 * doc/invoke.texi: Add documentation for new arguments.
22581
22582 2019-05-22 Richard Biener <rguenther@suse.de>
22583
22584 * alias.c (ao_ref_from_mem): Move stack-slot sharing
22585 rewrite ...
22586 * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here.
22587
22588 2019-05-22 Martin Liska <mliska@suse.cz>
22589
22590 PR lto/90500
22591 * doc/extend.texi: Document the change.
22592
22593 2019-05-22 Richard Biener <rguenther@suse.de>
22594
22595 PR tree-optimization/90450
22596 * tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed.
22597 (mem_ref_hasher::equal): Check it.
22598 (mem_ref_alloc): Initialize it.
22599 (gather_mem_refs_stmt): Set it.
22600
22601 2019-05-22 Richard Biener <rguenther@suse.de>
22602
22603 * gimple-fold.c (arith_code_with_undefined_signed_overflow):
22604 Add ABS_EXPR.
22605 (rewrite_to_defined_overflow): Handle rewriting ABS_EXPR
22606 as ABSU_EXPR.
22607
22608 2019-05-22 Alan Modra <amodra@gmail.com>
22609
22610 * config/rs6000/rs6000.h (ASM_OPT_ANY): Define.
22611 (ASM_CPU_SPEC): Conditionally add -many.
22612 * config/rs6000/rs6000.c (rs6000_machine): New static var.
22613 (rs6000_machine_from_flags, emit_asm_machine): New functions..
22614 (rs6000_file_start): ..extracted from here, and modified to
22615 test all ISA bits.
22616 (rs6000_output_function_prologue): Emit .machine as necessary.
22617
22618 2019-05-22 Hans-Peter Nilsson <hp@axis.com>
22619
22620 PR middle-end/90553
22621 * ira-lives.c (process_bb_node_lives): Consider defs
22622 for a call insn to be die before the call, not after.
22623
22624 * function.c (assign_parm_setup_block): Raise alignment of
22625 stacked parameter only for STRICT_ALIGNMENT targets.
22626
22627 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
22628
22629 * config/rs6000/constraints.md (define_register_constraint "wz"):
22630 Delete.
22631 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22632 RS6000_CONSTRAINT_wz.
22633 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22634 (rs6000_init_hard_regno_mode_ok): Adjust.
22635 * config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7".
22636 * doc/md.texi (Machine Constraints): Adjust.
22637
22638 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
22639
22640 * config/rs6000/constraints.md (define_register_constraint "wl"):
22641 Delete.
22642 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22643 RS6000_CONSTRAINT_wl.
22644 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22645 (rs6000_init_hard_regno_mode_ok): Adjust.
22646 * config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6".
22647 * doc/md.texi (Machine Constraints): Adjust.
22648
22649 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
22650
22651 * config/rs6000/constraints.md (define_register_constraint "wm"):
22652 Delete.
22653 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22654 RS6000_CONSTRAINT_wm.
22655 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22656 (rs6000_init_hard_regno_mode_ok): Adjust.
22657 * config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v".
22658 * doc/md.texi (Machine Constraints): Adjust.
22659
22660 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
22661
22662 * config/rs6000/constraints.md (define_register_constraint "wk"):
22663 Delete.
22664 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22665 RS6000_CONSTRAINT_wk.
22666 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22667 (rs6000_init_hard_regno_mode_ok): Adjust.
22668 * config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v".
22669 * doc/md.texi (Machine Constraints): Adjust.
22670
22671 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
22672
22673 * config/rs6000/constraints.md (define_register_constraint "wj"):
22674 Delete.
22675 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22676 RS6000_CONSTRAINT_wj.
22677 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22678 (rs6000_init_hard_regno_mode_ok): Adjust.
22679 * config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v".
22680 (VS_64dm): Delete.
22681 * config/rs6000/vsx.md: Ditto.
22682 * doc/md.texi (Machine Constraints): Adjust.
22683
22684 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
22685
22686 * config/rs6000/constraints.md (define_register_constraint "wh"):
22687 Delete.
22688 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22689 RS6000_CONSTRAINT_wh.
22690 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22691 (rs6000_init_hard_regno_mode_ok): Adjust.
22692 * config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v".
22693 * doc/md.texi (Machine Constraints): Adjust.
22694
22695 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
22696
22697 PR target/90547
22698 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
22699 Avoid calling gen_lowpart with CONST operand.
22700
22701 2019-05-21 Alexandre Oliva <aoliva@redhat.com>
22702
22703 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add
22704 field template_last_to_copy.
22705 (ssa_create_duplicates): Set it, and use it. Attempt to
22706 preserve more debug stmts.
22707
22708 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
22709
22710 * config/i386/sse.md (VF1_AVX2): New mode iterator.
22711 (signbit<mode>2): New expander
22712
22713 2019-05-21 James Clarke <jrtc27@jrtc27.com>
22714
22715 PR bootstrap/87338
22716 * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
22717 instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.
22718
22719 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
22720
22721 * config/i386/cpuid.h (__cpuid): For 32bit targets, zero
22722 %ebx and %ecx bafore calling cpuid with leaf 1 or
22723 non-constant leaf argument.
22724
22725 2019-05-21 Alan Modra <amodra@gmail.com>
22726
22727 PR target/90545
22728 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase
22729 power9 direct move cost.
22730
22731 2019-05-21 Richard Biener <rguenther@suse.de>
22732
22733 PR middle-end/90510
22734 * fold-const.c (fold_read_from_vector): New function.
22735 * fold-const.h (fold_read_from_vector): Declare.
22736 * match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for
22737 single-element insert permutations. Canonicalize selector
22738 further and fix issue with last commit.
22739
22740 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
22741
22742 * tree-cfg.h (split_critical_edges): Add for_edge_insertion_p
22743 parameter with default value false to declaration.
22744 (split_edges_for_insertion): New inline function. Wrapper for
22745 split_critical_edges with for_edge_insertion_p = true.
22746 * tree-cfg.c (split_critical_edges): Don't split non-critical
22747 edges if for_edge_insertion_p is false. Fix whitespace.
22748 * tree-ssa-pre.c (pass_pre::execute): Call
22749 split_edges_for_insertion instead of split_critical_edges.
22750 * tree-ssa-tail-merge.c (tail_merge_optimize): Ditto.
22751 * tree-ssa-sink.c (pass_sink_code::execute): Ditto.
22752 (pass_data_sink_code): Update function name in the comment.
22753
22754 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
22755
22756 * tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper
22757 around is_value_included_in that knows how to handle BIT_AND_EXPR.
22758 (is_pred_expr_subset_of): Use the new function. Handle more cases where
22759 code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false
22760 positives.
22761
22762 2019-05-21 Martin Liska <mliska@suse.cz>
22763
22764 * config/rs6000/driver-rs6000.c (elf_platform): Do not use
22765 an extra newline.
22766 * config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>.
22767 (altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and
22768 vec_lvsr.
22769 * config/rs6000/rs6000.c (rs6000_option_override_internal):
22770 Quote a C type.
22771 (rs6000_function_arg): Likewise.
22772 (rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot.
22773 (rs6000_expand_ternop_builtin): Use interval syntax.
22774 (get_element_number): Likewise.
22775 (altivec_expand_builtin): Likewise.
22776 (rs6000_get_function_versions_dispatcher): Quote target_clones.
22777
22778 2019-05-20 Jakub Jelinek <jakub@redhat.com>
22779
22780 PR c++/59813
22781 PR target/90418
22782 * function.h (struct function): Add calls_eh_return member.
22783 * gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when
22784 gimplifying __builtin_eh_return call.
22785 * tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun
22786 to cfun.
22787 (expand_call_inline): Or in src_cfun->calls_eh_return into
22788 dst_cfun->calls_eh_return.
22789 * tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if
22790 cfun->calls_eh_return.
22791 * lto-streamer-in.c (input_struct_function_base): Read calls_eh_return.
22792 * lto-streamer-out.c (output_struct_function_base): Write
22793 calls_eh_return.
22794
22795 2019-05-20 Marc Glisse <marc.glisse@inria.fr>
22796
22797 PR rtl-optimization/43147
22798 * config/i386/i386.c (ix86_gimple_fold_builtin): Handle
22799 IX86_BUILTIN_SHUFPD.
22800
22801 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
22802
22803 * tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
22804 (refs_may_alias_p_1): ... here; update stats.
22805 (refs_may_alias_p): Do not update stats here.
22806
22807 2019-05-20 Richard Biener <rguenther@suse.de>
22808
22809 * tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR
22810 doesn't produce pointers.
22811 {TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what
22812 the first operand points to.
22813
22814 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
22815
22816 * tree-ssa-alias.c (compare_sizes): New function.
22817 (sompare_type_sizes): New function
22818 (aliasing_component_refs_p): Use it.
22819 (indirect_ref_may_alias_decl_p): Likewise.
22820
22821 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22822
22823 * config/i386/sol2.h (CC1_SPEC): Reject -mx32.
22824
22825 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22826
22827 * config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e.
22828 (LIBLSAN_EARLY_SPEC): Likewise.
22829 * config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise.
22830
22831 2019-05-20 Martin Liska <mliska@suse.cz>
22832
22833 * config/i386/i386.c (ix86_libc_has_fast_function):
22834 Add ATTRIBUTE_UNUSED for the argument.
22835
22836 2019-05-20 Richard Biener <rguenther@suse.de>
22837
22838 * gimple-match-head.c: Include vec-perm-indices.h.
22839 * generic-match-head.c: Likewise.
22840 * fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h
22841 is included.
22842 * fold-const.c (fold_vec_perm): Export.
22843 (fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR...
22844 (match.pd): ...here.
22845
22846 2019-05-20 Jakub Jelinek <jakub@redhat.com>
22847
22848 * cfgloop.h (struct loop): Add simdlen member.
22849 * cfgloopmanip.c (copy_loop_info): Copy simdlen as well.
22850 * omp-expand.c (expand_omp_simd): Set it if simdlen clause is present.
22851 * tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0
22852 as new argument to autovectorize_vector_sizes target hook. If
22853 loop->simdlen, pick up vector size where the vectorization factor
22854 is equal to loop->simd, and if there is none, fall back to the first
22855 successful one.
22856 (vect_transform_loop): Adjust autovectorize_vector_sizes target hook
22857 caller.
22858 * omp-low.c (omp_clause_aligned_alignment): Likewise.
22859 * omp-general.c (omp_max_vf): Likewise.
22860 * optabs-query.c (can_vec_mask_load_store_p): Likewise.
22861 * tree-vect-slp.c (vect_slp_bb): Likewise.
22862 * target.def (autovectorize_vector_sizes): Add ALL argument and
22863 document it.
22864 * doc/tm.texi: Adjust documentation.
22865 * targhooks.c (default_autovectorize_vector_sizes): Add bool argument.
22866 * targhooks.h (default_autovectorize_vector_sizes): Likewise.
22867 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add
22868 bool argument.
22869 * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
22870 * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
22871 * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
22872 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. If
22873 true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if
22874 preferred vector size is not 512-bit or 256-bit, just put those
22875 unpreferred ones last.
22876
22877 2019-05-20 Martin Liska <mliska@suse.cz>
22878
22879 * targhooks.c (default_libc_has_fast_function): New function.
22880 * targhooks.h (default_libc_has_fast_function): Likewise.
22881
22882 2019-05-20 Martin Liska <mliska@suse.cz>
22883
22884 PR middle-end/90263
22885 * builtins.c (expand_builtin_memory_copy_args): When having a
22886 target with fast mempcpy implementation do now use memcpy.
22887 * config/i386/i386.c (ix86_libc_has_fast_function): New.
22888 (TARGET_LIBC_HAS_FAST_FUNCTION): Likewise.
22889 * doc/tm.texi: Likewise.
22890 * doc/tm.texi.in: Likewise.
22891 * target.def:
22892 * expr.c (emit_block_move_hints): Add 2 new arguments.
22893 * expr.h (emit_block_move_hints): Bail out when libcall
22894 to memcpy would be used.
22895
22896 2019-05-20 Martin Liska <mliska@suse.cz>
22897
22898 * profile-count.c: Add vertical spacing in order
22899 to separate functions.
22900 * profile-count.h: Likewise.
22901
22902 2019-05-20 Martin Liska <mliska@suse.cz>
22903
22904 * profile-count.h: Do not use full qualified
22905 names if possible.
22906 * profile-count.c (profile_count::to_frequency): Likewise.
22907
22908 2019-05-20 Martin Liska <mliska@suse.cz>
22909
22910 * profile-count.h (enum profile_quality): Use capital letters
22911 for enum value names. Use the adjusted names.
22912 * profile-count.c: Use the adjusted names.
22913
22914 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
22915
22916 * config/rs6000/constraints.md (define_register_constraint "wH"):
22917 Delete.
22918 (define_register_constraint "wI"): Delete.
22919 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22920 RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI.
22921 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22922 (rs6000_init_hard_regno_mode_ok): Adjust.
22923 * config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v"
22924 resp. "d", or with "wa" as appropriate, all with "p8v".
22925 * config/rs6000/vsx.md: Ditto.
22926 * doc/md.texi (Machine Constraints): Adjust.
22927
22928 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
22929
22930 * config/rs6000/constraints.md (define_register_constraint "wy"):
22931 Delete.
22932 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22933 RS6000_CONSTRAINT_wy.
22934 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22935 (rs6000_init_hard_regno_mode_ok): Adjust.
22936 * config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v".
22937 Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>".
22938 (define_mode_attr Fisa): New.
22939 * config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v".
22940 * doc/md.texi (Machine Constraints): Adjust.
22941
22942 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
22943
22944 * config/rs6000/constraints.md (define_register_constraint "wu"):
22945 Delete.
22946 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22947 RS6000_CONSTRAINT_wu.
22948 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22949 (rs6000_init_hard_regno_mode_ok): Adjust.
22950 * config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa",
22951 both with "p8v".
22952 (define_mode_attr Fa): Delete.
22953 * config/rs6000/vsx.md: Ditto.
22954 * doc/md.texi (Machine Constraints): Adjust.
22955
22956 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
22957
22958 * config/rs6000/constraints.md (define_register_constraint "wJ"):
22959 Delete.
22960 (define_register_constraint "wK"): Delete.
22961 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22962 RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK.
22963 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22964 (rs6000_init_hard_regno_mode_ok): Adjust.
22965 * config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v".
22966 Replace "wK" constraint by "wH" with "p9v".
22967 * config/rs6000/vsx.md: Ditto.
22968 * doc/md.texi (Machine Constraints): Adjust.
22969
22970 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
22971
22972 * config/rs6000/constraints.md (define_register_constraint "wb"):
22973 Delete.
22974 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22975 RS6000_CONSTRAINT_wb.
22976 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22977 (rs6000_init_hard_regno_mode_ok): Adjust.
22978 * config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v".
22979 * config/rs6000/vsx.md: Ditto.
22980 * doc/md.texi (Machine Constraints): Adjust.
22981
22982 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
22983
22984 * config/rs6000/constraints.md (define_register_constraint "wo"):
22985 Delete.
22986 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22987 RS6000_CONSTRAINT_wo.
22988 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22989 (rs6000_init_hard_regno_mode_ok): Adjust.
22990 * config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v".
22991 * config/rs6000/altivec.md: Ditto.
22992 * doc/md.texi (Machine Constraints): Adjust.
22993
22994 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
22995
22996 * config/darwin-c.c (darwin_register_objc_includes): Do not
22997 prepend the sysroot when building gnu-runtime header search
22998 paths.
22999
23000 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
23001
23002 * config/darwin.c (darwin_file_end): Use switch_to_section ()
23003 instead of direct output of the asm.
23004
23005 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
23006
23007 * config/rs6000/rs6000.c (restore_saved_cr): Change a boolean
23008 argument to be type bool (was int before).
23009 (rs6000_emit_epilogue): Simplify some code. Declare some variables
23010 at first use. Use type bool for some variables. Fix a theoretical
23011 eh_return bug for svr4.
23012
23013 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
23014
23015 * config/rs6000/rs6000.md (isa): New attribute.
23016 (enabled): New attribute.
23017
23018 2019-05-17 Max Filippov <jcmvbkbc@gmail.com>
23019
23020 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call
23021 assemble_start_function and assemble_end_function.
23022
23023 2019-05-17 Thomas Schwinge <thomas@codesourcery.com>
23024
23025 PR middle-end/89433
23026 * omp-general.c (oacc_verify_routine_clauses): Change formal
23027 parameters. Add checking if already marked with an OpenACC
23028 'routine' directive. Adjust all users.
23029
23030 PR middle-end/89433
23031 * omp-general.c (oacc_build_routine_dims): Move some of its
23032 processing into...
23033 (oacc_verify_routine_clauses): ... this new function.
23034 * omp-general.h (oacc_verify_routine_clauses): New prototype.
23035
23036 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
23037
23038 * config/rs6000/rs6000.c (machopic_output_stub): Adjust the
23039 formating of picbase labels to match other ports.
23040
23041 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
23042
23043 * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent
23044 in the generated code.
23045
23046 2019-05-16 Martin Sebor <msebor@redhat.com>
23047
23048 * builtins.c (expand_builtin_atomic_always_lock_free): Quote
23049 identifiers, keywords, operators, and types in diagnostics. Correct
23050 quoting, spelling, and sentence capitalization issues.
23051 (expand_builtin_atomic_is_lock_free): Same.
23052 (fold_builtin_next_arg): Same.
23053 * cfgexpand.c (expand_one_var): Same.
23054 (tree_conflicts_with_clobbers_p): Same.
23055 (expand_asm_stmt): Same.
23056 (verify_loop_structure): Same.
23057 * cgraphunit.c (process_function_and_variable_attributes): Same.
23058 * collect-utils.c (collect_execute): Same.
23059 * collect2.c (maybe_run_lto_and_relink): Same.
23060 (is_lto_object_file): Same.
23061 (scan_prog_file): Same.
23062 * convert.c (convert_to_real_1): Same.
23063 * dwarf2out.c (dwarf2out_begin_prologue): Same.
23064 * except.c (verify_eh_tree): Same.
23065 * gcc.c (execute): Same.
23066 (eval_spec_function): Same.
23067 (run_attempt): Same.
23068 (driver::set_up_specs): Same.
23069 (compare_debug_auxbase_opt_spec_function): Same.
23070 * gcov-tool.c (unlink_gcda_file): Same.
23071 (do_merge): Same.
23072 (do_rewrite): Same.
23073 * gcse.c (gcse_or_cprop_is_too_expensive): Same.
23074 * gimplify.c (gimplify_asm_expr): Same.
23075 (gimplify_adjust_omp_clauses): Same.
23076 * hsa-gen.c (gen_hsa_addr_insns): Same.
23077 (gen_hsa_insns_for_load): Same.
23078 (gen_hsa_cmp_insn_from_gimple): Same.
23079 (gen_hsa_insns_for_operation_assignment): Same.
23080 (gen_get_level): Same.
23081 (gen_hsa_alloca): Same.
23082 (omp_simple_builtin::generate): Same.
23083 (gen_hsa_atomic_for_builtin): Same.
23084 (gen_hsa_insns_for_call): Same.
23085 * input.c (dump_location_info): Same.
23086 * ipa-devirt.c (compare_virtual_tables): Same.
23087 * ira.c (ira_setup_eliminable_regset): Same.
23088 * lra-assigns.c (lra_assign): Same.
23089 * lra-constraints.c (lra_constraints): Same.
23090 * lto-streamer-in.c (lto_input_mode_table): Same.
23091 * lto-wrapper.c (get_options_from_collect_gcc_options): Same.
23092 (merge_and_complain): Same.
23093 (compile_offload_image): Same.
23094 (compile_images_for_offload_targets): Same.
23095 (debug_objcopy): Same.
23096 (run_gcc): Same.
23097 (main): Same.
23098 * opts.c (print_specific_help): Same.
23099 (parse_no_sanitize_attribute): Same.
23100 (print_help): Same.
23101 (handle_param): Same.
23102 * plugin.c (add_new_plugin): Same.
23103 (parse_plugin_arg_opt): Same.
23104 (try_init_one_plugin): Same.
23105 * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords,
23106 operators, and types in diagnostics. Correct quoting and spelling
23107 issues.
23108 * read-rtl-function.c (parse_edge_flag_token): Same.
23109 (function_reader::parse_enum_value): Same.
23110 * reg-stack.c (check_asm_stack_operands): Same.
23111 * regcprop.c (validate_value_data): Same.
23112 * sched-rgn.c (make_pass_sched_fusion): Same.
23113 * stmt.c (check_unique_operand_names): Same.
23114 * targhooks.c (default_target_option_pragma_parse): Same.
23115 * tlink.c (recompile_files): Same.
23116 * toplev.c (process_options): Same.
23117 (do_compile): Same.
23118 * trans-mem.c (diagnose_tm_1): Same.
23119 (ipa_tm_scan_irr_block): Same.
23120 (ipa_tm_diagnose_transaction): Same.
23121 * tree-cfg.c (verify_address): Same. Use get_tree_code_name to
23122 format a tree code name in a diagnostic.
23123 (verify_types_in_gimple_min_lval): Same.
23124 (verify_types_in_gimple_reference): Same.
23125 (verify_gimple_call): Same.
23126 (verify_gimple_assign_unary): Same.
23127 (verify_gimple_assign_binary): Same.
23128 (verify_gimple_assign_ternary): Same.
23129 (verify_gimple_assign_single): Same.
23130 (verify_gimple_switch): Same.
23131 (verify_gimple_label): Same.
23132 (verify_gimple_phi): Same.
23133 (verify_gimple_in_seq): Same.
23134 (verify_eh_throw_stmt_node): Same.
23135 (collect_subblocks): Same.
23136 (gimple_verify_flow_info): Same.
23137 (do_warn_unused_result): Same.
23138 * tree-inline.c (expand_call_inline): Same.
23139 * tree-into-ssa.c (update_ssa): Same.
23140 * tree.c (tree_int_cst_elt_check_failed): Same.
23141 (tree_vec_elt_check_failed): Same.
23142 (omp_clause_operand_check_failed): Same.
23143 (verify_type_variant): Same.
23144 (verify_type): Same.
23145 * value-prof.c (verify_histograms): Same.
23146 * varasm.c (assemble_start_function): Same.
23147
23148 2019-05-16 Martin Sebor <msebor@redhat.com>
23149
23150 * config/i386/i386-expand.c (get_element_number): Quote keywords
23151 and other internal names in diagnostics. Adjust other diagnostic
23152 formatting issues noted by -Wformat-diag.
23153 * config/i386/i386-features.c
23154 (ix86_mangle_function_version_assembler_name): Same.
23155 * config/i386/i386-options.c (ix86_handle_abi_attribute): Same.
23156 * config/i386/i386.c (ix86_function_type_abi): Same.
23157 (ix86_function_ms_hook_prologue): Same.
23158 (classify_argument): Same.
23159 (ix86_expand_prologue): Same.
23160 (ix86_md_asm_adjust): Same.
23161 (ix86_memmodel_check): Same.
23162
23163 2019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
23164
23165 * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
23166 TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
23167 and fpxx modes.
23168
23169 2019-05-17 H.J. Lu <hongjiu.lu@intel.com>
23170
23171 PR target/90497
23172 * config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX
23173 intrinsics without SSE/SSE2/SSSE3.
23174 * config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW
23175 check.
23176 (*mmx_uavgv8qi3): Likewise.
23177
23178 2019-05-17 Richard Biener <rguenther@suse.de>
23179
23180 * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping
23181 VEC_PERM_EXPR as __VEC_PERM with -gimple.
23182
23183 2019-05-17 Andreas Krebbel <krebbel@linux.ibm.com>
23184
23185 * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the
23186 vec_sldw insn pattern.
23187
23188 2019-05-17 Richard Biener <rguenther@suse.de>
23189
23190 * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree.
23191
23192 2019-05-17 Martin Liska <mliska@suse.cz>
23193
23194 PR driver/90496
23195 * toplev.c (output_stack_usage): With LTO and sanitizer it
23196 happens that a global ctor (_GLOBAL__sub_I_00099_0_main)
23197 has no file location.
23198
23199 2019-05-16 Jakub Jelinek <jakub@redhat.com>
23200
23201 PR c++/90484
23202 * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that
23203 sz0 is equal to sz1, instead return false in that case.
23204
23205 * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF
23206 has non-constant expression, force sctx.lane and use two
23207 argument IFN_GOMP_SIMD_LANE instead of single argument.
23208 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE
23209 two argument IFN_GOMP_SIMD_LANE without lhs.
23210 * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond
23211 member.
23212 (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND):
23213 Define.
23214 (LOOP_REQUIRES_VERSIONING): Or in
23215 LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND.
23216 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
23217 simd_if_cond.
23218 (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0.
23219 * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check
23220 from simd if clause if needed.
23221
23222 2019-05-16 Richard Biener <rguenther@suse.de>
23223
23224 * tree-affine.c (expr_to_aff_combination): New function split
23225 out from...
23226 (tree_to_aff_combination): ... here.
23227 (aff_combination_expand): Avoid building a GENERIC tree.
23228
23229 2019-05-16 Max Filippov <jcmvbkbc@gmail.com>
23230
23231 * cgraphunit.c (cgraph_node::expand_thunk): Remove
23232 assemble_start_function and assemble_end_function calls.
23233 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call
23234 assemble_start_function and assemble_end_function.
23235 * config/arc/arc.c (arc_output_mi_thunk): Likewise.
23236 * config/arm/arm.c (arm_output_mi_thunk): Likewise.
23237 * config/bfin/bfin.c (bfin_output_mi_thunk): Likewise.
23238 * config/c6x/c6x.c (c6x_output_mi_thunk): Likewise.
23239 * config/cris/cris.c (cris_asm_output_mi_thunk): Likewise.
23240 * config/csky/csky.c (csky_output_mi_thunk): Likewise.
23241 * config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise.
23242 * config/frv/frv.c (frv_asm_output_mi_thunk): Likewise.
23243 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
23244 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
23245 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
23246 * config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk):
23247 Likewise.
23248 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
23249 * config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise.
23250 * config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise.
23251 * config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise.
23252 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
23253 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
23254 * config/pa/pa.c (pa_asm_output_mi_thunk): Likewise.
23255 * config/riscv/riscv.c (riscv_output_mi_thunk): Likewise.
23256 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
23257 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
23258 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
23259 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
23260 * config/spu/spu.c (spu_output_mi_thunk): Likewise.
23261 * config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk):
23262 Likewise.
23263 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
23264 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
23265 * config/vax/vax.c (vax_output_mi_thunk): Likewise.
23266
23267 2019-05-16 Jan Hubicka <hubicka@ucw.cz>
23268
23269 * tree-ssa-alias.c (alias_stats): Add
23270 aliasing_component_refs_p_may_alias and
23271 aliasing_component_refs_p_no_alias.
23272 (dump_alias_stats): Print aliasing_component_refs_p stats.
23273 (aliasing_component_refs_p): Update stats.
23274
23275 2019-05-16 Martin Liska <mliska@suse.cz>
23276
23277 PR lto/90500
23278 * multiple_target.c (expand_target_clones): Do not allow
23279 target_clones being used with a symbol that is an alias.
23280
23281 2019-05-16 Vladislav Ivanishin <vlad@ispras.ru>
23282
23283 PR tree-optimization/90394
23284 * tree-ssa-uninit.c (is_pred_expr_subset_of): Potentially give false
23285 positives rather than ICE for cases where (code2 == NE_EXPR
23286 && code1 == BIT_AND_EXPR).
23287
23288 2019-05-16 Jakub Jelinek <jakub@redhat.com>
23289
23290 PR fortran/90329
23291 * tree-core.h (struct tree_decl_common): Document
23292 decl_nonshareable_flag for PARM_DECLs.
23293 * tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
23294 * calls.c (expand_call): Don't try tail call if caller
23295 has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
23296 passed on the stack and callee needs to pass any arguments on the
23297 stack.
23298 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
23299 else if instead of series of mutually exclusive ifs. Handle
23300 DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
23301 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
23302
23303 * lto-streamer.h (LTO_major_version): Bump to 9.
23304
23305 2019-05-16 Jun Ma <JunMa@linux.alibaba.com>
23306
23307 PR tree-optimization/90106
23308 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Add
23309 new parameter as new internal function call, also move it to new
23310 basic block.
23311 (use_internal_fn): Pass internal function call to
23312 shrink_wrap_one_built_in_call_with_conds.
23313
23314 2019-05-15 Jakub Jelinek <jakub@redhat.com>
23315
23316 * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set
23317 max_vf to 1.
23318 * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear
23319 safelen_int and set loop->dont_vectorize.
23320
23321 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23322
23323 PR target/89021
23324 * config/i386/i386-builtin.def: Enable MMX intrinsics with
23325 SSE/SSE2/SSSE3.
23326 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
23327 Likewise.
23328 * config/i386/i386-expand.c (ix86_expand_builtin): Allow
23329 SSE/SSE2/SSSE3 to emulate MMX intrinsics with TARGET_MMX_WITH_SSE.
23330 * config/i386/mmintrin.h: Only require SSE2 if __MMX_WITH_SSE__
23331 is defined.
23332
23333 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23334
23335 PR target/89021
23336 * config/i386/mmx.md (*vec_dupv2sf): Changed to
23337 define_insn_and_split to support SSE emulation.
23338 (*vec_extractv2sf_0): Likewise.
23339 (*vec_extractv2sf_1): Likewise.
23340 (*vec_extractv2si_0): Likewise.
23341 (*vec_extractv2si_1): Likewise.
23342 (*vec_extractv2si_zext_mem): Likewise.
23343 (vec_setv2sf): Also allow TARGET_MMX_WITH_SSE.
23344 (vec_extractv2sf_1 splitter): Likewise.
23345 (vec_extractv2sfsf): Likewise.
23346 (vec_setv2si): Likewise.
23347 (vec_extractv2si_1 splitter): Likewise.
23348 (vec_extractv2sisi): Likewise.
23349 (vec_setv4hi): Likewise.
23350 (vec_extractv4hihi): Likewise.
23351 (vec_setv8qi): Likewise.
23352 (vec_extractv8qiqi): Likewise.
23353 (vec_extractv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
23354 TARGET_MMX_WITH_SSE ix86_expand_vector_extract.
23355 (vec_extractv2sisi): Likewise.
23356 (vec_extractv4hihi): Likewise.
23357 (vec_extractv8qiqi): Likewise.
23358 (vec_initv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
23359 TARGET_MMX_WITH_SSE to ix86_expand_vector_init.
23360 (vec_initv2sisi): Likewise.
23361 (vec_initv4hihi): Likewise.
23362 (vec_initv8qiqi): Likewise.
23363 (vec_setv2si): Also allow TARGET_MMX_WITH_SSE. Pass
23364 TARGET_MMX_WITH_SSE to ix86_expand_vector_set.
23365 (vec_setv4hi): Likewise.
23366 (vec_setv8qi): Likewise.
23367
23368 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23369
23370 PR target/89021
23371 * config/i386/mmx.md (MMXMODE:mov<mode>): Also allow
23372 TARGET_MMX_WITH_SSE.
23373 (MMXMODE:*mov<mode>_internal): Likewise.
23374 (MMXMODE:movmisalign<mode>): Likewise.
23375
23376 2019-05-15 Uroš Bizjak <ubizjak@gmail.com>
23377
23378 PR target/89021
23379 * config/i386/i386.md (*zero_extendsidi2): Add mmx_isa attribute.
23380 * config/i386/sse.md (sse2_cvtpi2pd): Ditto.
23381 (sse2_cvtpd2pi): Ditto.
23382 (sse2_cvttpd2pi): Ditto.
23383 (*vec_concatv2sf_sse4_1): Ditto.
23384 (*vec_concatv2sf_sse): Ditto.
23385 (*vec_concatv2si_sse4_1): Ditto.
23386 (*vec_concatv2si): Ditto.
23387 (*vec_concatv4si_0): Ditto.
23388 (*vec_concatv2di_0): Ditto.
23389
23390 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23391
23392 PR target/89021
23393 * config/i386/sse.md (abs<mode>2): Add SSE emulation.
23394
23395 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23396
23397 PR target/89021
23398 * config/i386/sse.md (ssse3_palignrdi): Changed to
23399 define_insn_and_split to support SSE emulation.
23400
23401 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23402
23403 PR target/89021
23404 * config/i386/sse.md (ssse3_psign<mode>3): Add SSE emulation.
23405
23406 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23407
23408 PR target/89021
23409 * config/i386/sse.md (ssse3_pshufbv8qi3): Changed to
23410 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
23411 SSE emulation.
23412
23413 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23414
23415 PR target/89021
23416 * config/i386/sse.md (ssse3_pmulhrswv4hi3): Require TARGET_MMX
23417 or TARGET_MMX_WITH_SSE.
23418 (*ssse3_pmulhrswv4hi3): Add SSE emulation.
23419
23420 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23421
23422 PR target/89021
23423 * config/i386/sse.md (ssse3_pmaddubsw): Add SSE emulation.
23424
23425 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23426
23427 PR target/89021
23428 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>dv2si3):
23429 Changed to define_insn_and_split to support SSE emulation.
23430
23431 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23432
23433 PR target/89021
23434 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
23435 Changed to define_insn_and_split to support SSE emulation.
23436
23437 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23438
23439 PR target/89021
23440 * config/i386/mmx.md (mmx_<emms>): Renamed to ...
23441 (*mmx_<emms>): This.
23442 (mmx_<emms>): New expander.
23443
23444 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23445
23446 PR target/89021
23447 * config/i386/mmx.md (sse2_umulv1siv1di3): Add SSE emulation
23448 support.
23449 (*sse2_umulv1siv1di3): Add SSE2 emulation.
23450
23451 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23452
23453 PR target/89021
23454 * config/i386/mmx.md (sse_movntq): Add SSE2 emulation.
23455
23456 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23457
23458 PR target/89021
23459 * config/i386/mmx.md (mmx_psadbw): Add SSE emulation.
23460
23461 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23462
23463 PR target/89021
23464 * config/i386/mmx.md (mmx_uavgv4hi3): Also check TARGET_MMX and
23465 TARGET_MMX_WITH_SSE.
23466 (*mmx_uavgv4hi3): Add SSE emulation.
23467
23468 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23469
23470 PR target/89021
23471 * config/i386/mmx.md (mmx_uavgv8qi3): Also check TARGET_MMX
23472 and TARGET_MMX_WITH_SSE.
23473 (*mmx_uavgv8qi3): Add SSE emulation.
23474
23475 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23476
23477 PR target/89021
23478 * config/i386/xmmintrin.h: Emulate MMX maskmovq with SSE2
23479 maskmovdqu for __MMX_WITH_SSE__.
23480
23481 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23482
23483 PR target/89021
23484 * config/i386/mmx.md (mmx_umulv4hi3_highpart): Also check
23485 TARGET_MMX and TARGET_MMX_WITH_SSE.
23486 (*mmx_umulv4hi3_highpart): Add SSE emulation.
23487
23488 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23489
23490 PR target/89021
23491 * config/i386/mmx.md (mmx_pmovmskb): Changed to
23492 define_insn_and_split to support SSE emulation.
23493
23494 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23495
23496 PR target/89021
23497 * config/i386/mmx.md (mmx_<code>v4hi3): Also check TARGET_MMX
23498 and TARGET_MMX_WITH_SSE.
23499 (mmx_<code>v8qi3): Likewise.
23500 (smaxmin:<code>v4hi3): New.
23501 (umaxmin:<code>v8qi3): Likewise.
23502 (smaxmin:*mmx_<code>v4hi3): Add SSE emulation.
23503 (umaxmin:*mmx_<code>v8qi3): Likewise.
23504
23505 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23506
23507 PR target/89021
23508 * config/i386/mmx.md (mmx_pinsrw): Also check TARGET_MMX and
23509 TARGET_MMX_WITH_SSE.
23510 (*mmx_pinsrw): Add SSE emulation.
23511
23512 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23513
23514 PR target/89021
23515 * config/i386/mmx.md (mmx_pextrw): Add SSE emulation.
23516
23517 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23518
23519 PR target/89021
23520 * config/i386/sse.md (sse_cvtpi2ps): Changed to
23521 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
23522 SSE emulation.
23523
23524 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23525
23526 PR target/89021
23527 * config/i386/sse.md (sse_cvtps2pi): Add SSE emulation.
23528 (sse_cvttps2pi): Likewise.
23529
23530 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23531
23532 PR target/89021
23533 * config/i386/mmx.md (mmx_pshufw): Also check TARGET_MMX and
23534 TARGET_MMX_WITH_SSE.
23535 (mmx_pshufw_1): Add SSE emulation.
23536 (*vec_dupv4hi): Changed to define_insn_and_split and also allow
23537 TARGET_MMX_WITH_SSE to support SSE emulation.
23538
23539 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23540
23541 PR target/89021
23542 * config/i386/constraints.md (Yw): New constraint.
23543 * config/i386/mmx.md (*vec_dupv2si): Changed to
23544 define_insn_and_split and also allow TARGET_MMX_WITH_SSE to
23545 support SSE emulation.
23546
23547 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23548
23549 PR target/89021
23550 * config/i386/mmx.md (mmx_eq<mode>3): Also allow
23551 TARGET_MMX_WITH_SSE.
23552 (*mmx_eq<mode>3): Also allow TARGET_MMX_WITH_SSE. Add SSE
23553 support.
23554 (mmx_gt<mode>3): Likewise.
23555
23556 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23557
23558 PR target/89021
23559 * config/i386/mmx.md (mmx_andnot<mode>3): Also allow
23560 TARGET_MMX_WITH_SSE. Add SSE support.
23561
23562 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23563
23564 PR target/89021
23565 * config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow
23566 TARGET_MMX_WITH_SSE.
23567 (any_logic:<code><mode>3): New.
23568 (any_logic:*mmx_<code><mode>3): Also allow TARGET_MMX_WITH_SSE.
23569 Add SSE support.
23570
23571 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23572
23573 PR target/89021
23574 * config/i386/mmx.md (mmx_ashr<mode>3): Also allow
23575 TARGET_MMX_WITH_SSE. Add SSE emulation.
23576 (mmx_<shift_insn><mode>3): Likewise.
23577 (ashr<mode>3): New.
23578 (<shift_insn><mode>3): Likewise.
23579
23580 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23581
23582 PR target/89021
23583 * config/i386/mmx.md (mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE.
23584 (*mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE. Add SSE support.
23585
23586 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23587
23588 PR target/89021
23589 * config/i386/mmx.md (mmx_smulv4hi3_highpart): Also allow
23590 TARGET_MMX_WITH_SSE.
23591 (*mmx_smulv4hi3_highpart): Also allow TARGET_MMX_WITH_SSE. Add
23592 SSE support.
23593
23594 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23595
23596 PR target/89021
23597 * config/i386/mmx.md (mmx_mulv4hi3): Also allow
23598 TARGET_MMX_WITH_SSE.
23599 (mulv4hi3): New.
23600 (*mmx_mulv4hi3): Also allow TARGET_MMX_WITH_SSE. Add SSE
23601 support.
23602
23603 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23604
23605 PR target/89021
23606 * config/i386/mmx.md (MMXMODEI8): Require TARGET_SSE2 for V1DI.
23607 (plusminus:mmx_<plusminus_insn><mode>3): Check
23608 TARGET_MMX_WITH_SSE.
23609 (sat_plusminus:mmx_<plusminus_insn><mode>3): Likewise.
23610 (<plusminus_insn><mode>3): New.
23611 (*mmx_<plusminus_insn><mode>3): Add SSE emulation.
23612 (*mmx_<plusminus_insn><mode>3): Likewise.
23613
23614 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23615
23616 PR target/89021
23617 * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function.
23618 * config/i386/i386-protos.h (ix86_split_mmx_punpck): New
23619 prototype.
23620 * config/i386/mmx.m (mmx_punpckhbw): Changed to
23621 define_insn_and_split to support SSE emulation.
23622 (mmx_punpcklbw): Likewise.
23623 (mmx_punpckhwd): Likewise.
23624 (mmx_punpcklwd): Likewise.
23625 (mmx_punpckhdq): Likewise.
23626 (mmx_punpckldq): Likewise.
23627
23628 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23629 Uros Bizjak <ubizjak@gmail.com>
23630
23631 PR target/89021
23632 * config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx):
23633 New function.
23634 (ix86_split_mmx_pack): Likewise.
23635 * config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx):
23636 New prototype.
23637 (ix86_split_mmx_pack): Likewise.
23638 * config/i386/i386.md (mmx_isa): New.
23639 (enabled): Also check mmx_isa.
23640 * config/i386/mmx.md (any_s_truncate): New code iterator.
23641 (s_trunsuffix): New code attr.
23642 (mmx_packsswb): Removed.
23643 (mmx_packssdw): Likewise.
23644 (mmx_packuswb): Likewise.
23645 (mmx_pack<s_trunsuffix>swb): New define_insn_and_split to emulate
23646 MMX packsswb/packuswb with SSE2.
23647 (mmx_packssdw): Likewise.
23648 * config/i386/predicates.md (register_mmxmem_operand): New.
23649
23650 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
23651
23652 PR target/89021
23653 * config/i386/i386-c.c (ix86_target_macros_internal): Define
23654 __MMX_WITH_SSE__ for TARGET_MMX_WITH_SSE.
23655 * config/i386/i386.c (ix86_set_reg_reg_cost): Add support for
23656 TARGET_MMX_WITH_SSE with VALID_MMX_REG_MODE.
23657 (ix86_vector_mode_supported_p): Likewise.
23658 * config/i386/i386.h (TARGET_MMX_WITH_SSE): New.
23659
23660 2019-05-15 Martin Liska <mliska@suse.cz>
23661
23662 PR middle-end/90478
23663 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
23664 Check for overflow.
23665
23666 2019-05-15 Richard Biener <rguenther@suse.de>
23667
23668 * tree-into-ssa.c (pass_build_ssa::execute): Run
23669 update_address_taken before going into SSA.
23670
23671 2019-05-15 Richard Biener <rguenther@suse.de>
23672
23673 * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF
23674 as __BIT_FIELD_REF with type with -gimple.
23675
23676 2019-05-15 Vladislav Ivanishin <vlad@ispras.ru>
23677
23678 * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge
23679 semantically equivalent branches (left over after prior refactorings).
23680
23681 2019-05-15 Richard Biener <rguenther@suse.de>
23682
23683 PR tree-optimization/88828
23684 * tree-ssa-forwprop.c (simplify_vector_constructor): Fix
23685 bogus check.
23686
23687 2019-05-14 Richard Biener <rguenther@suse.de>
23688
23689 * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR
23690 as __VIEW_CONVERT with -gimple.
23691
23692 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
23693
23694 PR target/82920
23695 * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
23696 Darwin.
23697
23698 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
23699
23700 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following
23701 define_split to become a define_insn_and_split.
23702
23703 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
23704
23705 * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change
23706 arguments.
23707 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments.
23708 * config/rs6000/rs6000.md (epilogue_type): New define_enum.
23709 (sibcall_epilogue): Adjust.
23710 (epilogue): Adjust.
23711
23712 2019-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23713
23714 * config.gcc: Move *-*-solaris2.10* from obsolete configurations
23715 to unsupported ones.
23716 Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*.
23717 * config.host: Likewise.
23718 * config/i386/sol2.h (ASM_COMMENT_START): Remove.
23719 * config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ &&
23720 __svr4__]: Remove "brand" fallback.
23721 [!KSTAT_DATA_STRING]: Remove.
23722 * configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]*
23723 to *-*-solaris2*.
23724 (comdat_group): Likewise.
23725 (set_have_as_tls): Likewise.
23726 (gcc_cv_target_dl_iterate_phdr): Likewise.
23727 (gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround.
23728 (gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround.
23729 * configure: Regenerate.
23730 * doc/install.texi: Simplify Solaris target triplets.
23731 (Specific, i?86-*-solaris2*): Remove Solaris 10 references.
23732 (Specific, *-*-solaris2*): Document Solaris 10 removal.
23733 Remove Solaris 10 references.
23734 Remove obsolete Solaris bug reference.
23735 (Specific, sparc-sun-solaris2.10): Remove.
23736
23737 2019-05-14 Uroš Bizjak <ubizjak@gmail.com>
23738
23739 * config/i386/i386.md (any_div): New code iterator.
23740 (paired_mod): New code attribute.
23741 (sgnprefix): Handle DIV and UDIV RTXes.
23742 (u): Ditto.
23743 (<u>divmod<mode>4): Macroize expander from divmod<mode>4
23744 and udivmod<mode>4 patterns using any_div code iterator.
23745 (divmod splitters): Macroize splitters using any_div code iterator.
23746 (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition.
23747 (*udivmodsi4_pow2_zext_2): Ditto.
23748 (*<u>divmod<mode>4_noext): Macroize insn from *divmod<mode>4_noext
23749 and *udivmod<mode>4_noext patterns using any_div code iterator.
23750 (*<u>divmod<mode>4_noext_zext_1): Macroize insn from
23751 *divmod<mode>4_noext_zext_1 and *udivmod<mode>4_noext_zext_1
23752 patterns using any_div code iterator.
23753 (*<u>divmod<mode>4_noext_zext_2): Macroize insn from
23754 *divmod<mode>4_noext_zext_2 and *udivmod<mode>4_noext_zext_2
23755 patterns using any_div code iterator.
23756 (<u>divmodhiqi3): Macroize insn from divmodhiqi3 and
23757 udivmodhiqi3 patterns using any_extend code iterator.
23758
23759 2019-05-14 Richard Biener <rguenther@suse.de>
23760 H.J. Lu <hongjiu.lu@intel.com>
23761
23762 PR tree-optimization/88828
23763 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
23764 permuting in a single non-constant element not extracted
23765 from a vector.
23766
23767 2019-05-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
23768
23769 * internal-fn.def (SIGNBIT): New.
23770 * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand
23771 defined.
23772 (signbitv4sf2): Likewise.
23773
23774 2019-05-14 Chenghua Xu <paul.hua.gm@gmail.com>
23775
23776 PR target/90357
23777 * config/mips/mips.c (mips_split_move): Skip forward SRC into
23778 next insn when the SRC reg is dead.
23779
23780 2019-05-14 Bin Cheng <bin.cheng@linux.alibaba.com>
23781
23782 * gimple-ssa-strength-reduction.c (lookup_cand): Adjust index by 1.
23783 (alloc_cand_and_find_basis): Ditto.
23784 (backtrace_base_for_ref, create_mul_ssa_cand): Remove if-then-else.
23785 (create_mul_imm_cand, create_add_ssa_cand): Ditto.
23786 (create_add_imm_cand, slsr_process_cast): Ditto.
23787 (slsr_process_copy, replace_mult_candidate): Ditto.
23788 (replace_rhs_if_not_dup, replace_one_candidate): Ditto.
23789 (dump_cand_vec, analyze_candidates_and_replace): Skip NULL element.
23790 (pass_strength_reduction::execute): Init the first NULL element.
23791
23792 2019-05-13 Nathan Sidwell <nathan@acm.org>
23793
23794 * gcc.c (execute): Simplify cond-expr into if. Reformat comment.
23795 (run_attempt): Reformat line break.
23796
23797 2019-05-13 David Edelsohn <dje.gcc@gmail.com>
23798
23799 PR target/90418
23800 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH
23801 data registers in sibcall epilogues.
23802 Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
23803
23804 2019-05-13 Uroš Bizjak <ubizjak@gmail.com>
23805
23806 PR target/89221
23807 * configure.ac (--enable-frame-pointer):
23808 Disable by default for cygwin and mingw.
23809 * configure: Regenerate.
23810
23811 2019-05-13 Nathan Sidwell <nathan@acm.org>
23812
23813 * dwarf2out.c (breakout_comdat_types): Move comment to correct
23814 piece of code.
23815 (const_ok_for_output_1): Balance parens around #if/#else/#endif
23816 (gen_member_die): Move abstract origin check earlier. Only VARs
23817 can be static_inline_p. Simplify splicing control flow.
23818
23819 2019-05-13 Richard Biener <rguenther@suse.de>
23820
23821 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
23822 VIEW_CONVERT_EXPR.
23823 (vect_build_slp_tree_1): Likewise.
23824
23825 2019-05-13 Richard Biener <rguenther@suse.de>
23826
23827 PR tree-optimization/90402
23828 * tree-if-conv.c (tree_if_conversion): Value number only
23829 the loop body by making the latch an exit of the region
23830 as well.
23831 * tree-ssa-sccvn.c (process_bb): Add flag whether to skip
23832 processing PHIs.
23833 (do_rpo_vn): Deal with multiple edges into the entry block
23834 that are not backedges inside the region by skipping PHIs
23835 of the entry block.
23836
23837 2019-05-13 Richard Biener <rguenther@suse.de>
23838
23839 PR tree-optimization/90316
23840 * tree-ssa-pre.c (insert_aux): Fold into ...
23841 (insert): ... this function. Use a RPO walk to reduce the
23842 number of required iterations.
23843
23844 2019-05-13 Martin Liska <mliska@suse.cz>
23845
23846 PR tree-optimization/90416
23847 * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate
23848 string instead of passing the second part as va_arg argument.
23849
23850 2019-05-13 Martin Liska <mliska@suse.cz>
23851
23852 PR gcov-profile/90380
23853 * gcov.c (handle_cycle): Do not support zero cycle count,
23854 it should not be possible.
23855 (path_contains_zero_cycle_arc): New function.
23856 (circuit): Ignore zero cycle arc counts.
23857
23858 2019-05-13 Martin Liska <mliska@suse.cz>
23859
23860 PR gcov-profile/90380
23861 * gcov.c (enum loop_type): Remove the enum and
23862 the operator.
23863 (handle_cycle): Assert that we should not reach
23864 a negative count.
23865 (circuit): Use loop_found instead of a tri-state loop_type.
23866 (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't
23867 happen.
23868
23869 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
23870
23871 PR target/82920
23872 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
23873 (ix86_output_indirect_branch_via_reg): Use output mechanism
23874 accounting for __USER_LABEL_PREFIX__.
23875 (ix86_output_indirect_branch_via_push): Likewise.
23876 (ix86_output_function_return): Likewise.
23877 (ix86_output_indirect_function_return): Likewise.
23878
23879 2019-05-12 Richard Sandiford <richard.sandiford@arm.com>
23880
23881 * doc/md.texi: Document use of code attributes in rtx patterns.
23882 * read-md.h (rtx_reader::rtx_alloc_for_name): New member function.
23883 * read-rtl.c (find_code): Split out search loops into...
23884 (maybe_find_code): ...this new function.
23885 (check_code_iterator): Make the error message more informative.
23886 (check_code_attribute): New function.
23887 (rtx_reader::rtx_alloc_for_name): Likewise.
23888 (rtx_reader::read_rtx_code): Use rtx_alloc_for_name.
23889 * config/aarch64/predicates.md (aarch64_smin, aarch64_umin): Delete.
23890 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Use
23891 <max_opp> directly as an rtx code instead of via a match_operator.
23892 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Likewise.
23893 (<su>abd<mode>_3): Update accordingly.
23894
23895 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
23896
23897 * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack
23898 is given, print the state of the EH "save world" computation for
23899 Darwin.
23900
23901 2019-05-11 Jakub Jelinek <jakub@redhat.com>
23902
23903 PR c++/59813
23904 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add
23905 EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
23906
23907 2019-05-11 Uroš Bizjak <ubizjak@gmail.com>
23908
23909 * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm):
23910 Use pinsrd for TARGET_SSE4_1.
23911 * config/i386/sse.md (movdi_to_sse): Ditto.
23912
23913 2019-05-10 Richard Biener <rguenther@suse.de>
23914
23915 * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id.
23916 (do_rpo_vn): Initialize next_value_id.
23917
23918 2019-05-10 Martin Liska <mliska@suse.cz>
23919
23920 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
23921 Fix plural form.
23922
23923 2019-05-10 Jakub Jelinek <jakub@redhat.com>
23924
23925 PR tree-optimization/90385
23926 * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME
23927 arguments of the exit phis.
23928
23929 PR c++/90383
23930 * tree-inline.h (struct copy_body_data): Add do_not_fold member.
23931 * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if
23932 id->do_not_fold.
23933 (copy_tree_body_r): Likewise.
23934 (copy_fn): Set id.do_not_fold to true.
23935
23936 2019-05-10 Martin Liska <mliska@suse.cz>
23937
23938 * config/i386/i386-expand.c (ix86_expand_floorceildf_32):
23939 Reapply changes from r269790.
23940
23941 2019-05-10 Martin Liska <mliska@suse.cz>
23942
23943 PR middle-end/90340
23944 * doc/invoke.texi: New params.
23945 * params.def (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE): New.
23946 (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED): Likewise.
23947 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
23948 Use it.
23949 * tree-switch-conversion.h (struct jump_table_cluster):
23950 Likewise.
23951
23952 2019-05-09 Segher Boessenkool <segher@kernel.crashing.org>
23953
23954 * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL.
23955
23956 2019-05-09 Bill Schmidt <wschmidt@linux.ibm.com>
23957
23958 * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK.
23959
23960 2019-05-09 Alexander Monakov <amonakov@ispras.ru>
23961
23962 PR rtl-optimization/88879
23963 * sel-sched.c (sel_target_adjust_priority): Remove assert.
23964
23965 2019-05-09 Richard Earnshaw <rearnsha@arm.com>
23966
23967 PR target/90405
23968 * config/arm/arm.c (callee_saved_reg_p): Move before
23969 thumb_find_work_register.
23970 (thumb1_prologue_unused_call_clobbered_lo_regs): Move before
23971 thumb_find_work_register. Only call df_get_live_out once.
23972 (thumb1_epilogue_unused_call_clobbered_lo_regs): Likewise.
23973 (thumb_find_work_register): Use
23974 thumb1_prologue_unused_call_clobbered_lo_regs instead of ad hoc
23975 algorithms to locate a spare call clobbered reg.
23976
23977 2019-05-09 Martin Liska <mliska@suse.cz>
23978
23979 * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR
23980 and MAX_EXPR in GIMPLE FE format.
23981
23982 2019-05-09 Martin Liska <mliska@suse.cz>
23983
23984 * tree-cfg.c (dump_function_to_file): Dump entry BB count.
23985 * gimple-pretty-print.c (dump_gimple_bb_header):
23986 Dump BB count.
23987 (pp_cfg_jump): Dump edge probability.
23988 * profile-count.c (profile_quality_as_string): Simplify
23989 with a static array.
23990 (parse_profile_quality): New function.
23991 (profile_count::dump): Simplify with a static array.
23992 (profile_count::from_gcov_type): Add new argument.
23993 * profile-count.h (parse_profile_quality): Likewise.
23994 * predict.h (set_hot_bb_threshold): New.
23995 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
23996 New param.
23997 * predict.c (get_hot_bb_threshold): Set from the new param.
23998 (set_hot_bb_threshold): New.
23999
24000 2019-05-09 Richard Biener <rguenther@suse.de>
24001
24002 PR tree-optimization/90395
24003 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not
24004 rewrite vector stores that throw internally.
24005
24006 2019-05-09 Thomas Schwinge <thomas@codesourcery.com>
24007
24008 * cif-code.def (CHKP): Remove.
24009
24010 PR target/89221
24011 * configure.ac (--enable-frame-pointer): Disable by default for
24012 GNU systems.
24013 * configure: Regenerate.
24014
24015 2019-05-09 Alan Modra <amodra@gmail.com>
24016
24017 PR target/89271
24018 * config/rs6000/rs6000.h (enum reg_class, REG_CLASS_NAMES),
24019 (REG_CLASS_CONTENTS): Add GEN_OR_VSX_REGS class.
24020 * config/rs6000/rs6000.c (rs6000_register_move_cost): Correct
24021 cost for general <-> vsx when direct moves are available.
24022 Cost union classes at minimal cost for any reg in the class.
24023 Correct calculation for moves between vsx, float, and altivec.
24024 Don't return a low cost for moves between special regs. Don't
24025 use hard coded register numbers.
24026 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define.
24027 (rs6000_ira_change_pseudo_allocno_class): New function.
24028 * config/rs6000/rs6000.md (movsi_internal1, mov<mode>_internal),
24029 (movdi_internal32, movdi_internal64): Remove '*' from vsx register
24030 alternatives.
24031 (movsi_internal1): Don't disparage vector alternatives.
24032 (mov<mode>_internal): Likewise, excepting alternative that
24033 will be split.
24034 * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage
24035 we <- b alternative.
24036
24037 2019-05-08 Jakub Jelinek <jakub@redhat.com>
24038
24039 PR c++/59813
24040 PR tree-optimization/89060
24041 * tree-ssa-live.h (live_vars_map): New typedef.
24042 (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare.
24043 * tree-ssa-live.c: Include gimple-walk.h and cfganal.h.
24044 (struct compute_live_vars_data): New type.
24045 (compute_live_vars_visit, compute_live_vars_1, compute_live_vars,
24046 live_vars_at_stmt, destroy_live_vars): New functions.
24047 * tree-tailcall.c: Include tree-ssa-live.h.
24048 (live_vars, live_vars_vec): New global variables.
24049 (find_tail_calls): Perform variable life analysis before punting.
24050 (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec.
24051 * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest
24052 member.
24053 * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument.
24054 Perform variable life analysis to select variables that really need
24055 clobbers added.
24056 (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here,
24057 instead set id->eh_landing_pad_dest and assert it is the same.
24058 (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL.
24059
24060 2019-05-08 Mihail Ionescu <mihail.ionescu@arm.com>
24061 Richard Earnshaw <rearnsha@arm.com>
24062
24063 PR target/88167
24064 * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
24065 function.
24066 (thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
24067 (thumb1_compute_save_core_reg_mask): Don't force a spare work
24068 register if both the epilogue and prologue can use call-clobbered
24069 regs.
24070 (thumb1_unexpanded_epilogue): Use
24071 thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for
24072 picking temporaries for restoring high regs to match that of the
24073 prologue where possible.
24074 (thumb1_expand_prologue): Add any usable call-clobbered low registers to
24075 the list of work registers. Detect if the return address is still live
24076 at the end of the prologue and avoid using it for a work register if so.
24077 If the return address is not live, add LR to the list of pushable regs
24078 after the first pass.
24079
24080 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
24081
24082 PR tree-optimization/90078
24083 * tree-ssa-loop-ivopts.c (inttypes.h): Include new header file.
24084 (INFTY): Increase the value for infinite cost.
24085 (struct comp_cost): Promote type of members to int64_t.
24086 (infinite_cost): Don't set complexity in initialization.
24087 (comp_cost::operator +,-,+=,-+,/=,*=): Assert when cost computation
24088 overflows to infinite_cost.
24089 (adjust_setup_cost): Promote type of parameter and cost computation
24090 to int64_t.
24091 (struct ainc_cost_data, struct iv_ca): Promote type of member to
24092 int64_t.
24093 (get_scaled_computation_cost_at, determine_iv_cost): Promote type of
24094 cost computation to int64_t.
24095 (determine_group_iv_costs, iv_ca_dump, find_optimal_iv_set): Use
24096 int64_t's format specifier in dump.
24097
24098 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
24099
24100 PR tree-optimization/90240
24101 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Scale cost
24102 with respect to scaling factor pre-computed for each basic block.
24103 (try_improve_iv_set): Return bool if best_cost equals to iv_ca cost.
24104 (find_optimal_iv_set_1): Free iv_ca set if it has infinite_cost.
24105 (COST_SCALING_FACTOR_BOUND, determine_scaling_factor): New.
24106 (tree_ssa_iv_optimize_loop): Call determine_scaling_factor. Extend
24107 live range for array of loop's basic blocks. Cleanup aux field of
24108 loop's basic blocks.
24109
24110 2019-05-08 Jakub Jelinek <jakub@redhat.com>
24111
24112 PR tree-optimization/90356
24113 * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible.
24114
24115 2019-05-07 Wei Xiao <wei3.xiao@intel.com>
24116
24117 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET
24118 OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New.
24119 (OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET.
24120 (ix86_handle_option): Handle -mavx512bf16.
24121 * config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h
24122 to extra_headers.
24123 * config/i386/avx512bf16vlintrin.h: New.
24124 * config/i386/avx512bf16intrin.h: New.
24125 * config/i386/cpuid.h (bit_AVX512BF16): New.
24126 * config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16.
24127 * config/i386/i386-builtin-types.def: Add new types.
24128 * config/i386/i386-builtin.def: Add new builtins.
24129 * config/i386/i386-c.c (ix86_target_macros_internal): Define
24130 __AVX512BF16__.
24131 * config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16.
24132 (ix86_option_override_internal): Handle BF16.
24133 (ix86_valid_target_attribute_inner_p): Ditto.
24134 * config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto.
24135 * config/i386/i386-builtin.c (enum processor_features): Add
24136 F_AVX512BF16.
24137 (static const _isa_names_table isa_names_table): Ditto.
24138 * config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New.
24139 (PTA_AVX512BF16): Ditto.
24140 * config/i386/i386.opt: Add -mavx512bf16.
24141 * config/i386/immintrin.h: Include avx512bf16intrin.h
24142 and avx512bf16vlintrin.h.
24143 * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>,
24144 avx512f_cvtneps2bf16_<mode><mask_name>,
24145 avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns.
24146 * config/i386/subst.md (mask_half): Add new subst.
24147 * doc/invoke.texi: Document -mavx512bf16.
24148
24149 2019-05-07 Segher Boessenkool <segher@kernel.crashing.org>
24150
24151 * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr):
24152 Delete declaration.
24153 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete.
24154 (rs6000_debug_legitimize_reload_address): Delete.
24155 (rs6000_legitimize_reload_address_ptr): Delete.
24156 (rs6000_option_override_internal): Adjust.
24157 (mem_operand_gpr): Adjust comment.
24158 (legitimate_lo_sum_address_p): Ditto.
24159 (rs6000_legitimize_reload_address): Delete.
24160 (rs6000_debug_legitimize_reload_address): Delete.
24161 * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete.
24162
24163 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org>
24164
24165 PR target/89765
24166 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
24167 In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
24168 to compute vector element selector for both constant and variable
24169 operands.
24170
24171 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
24172
24173 * config/i386/i386.md (cvt_mnemonic): New mode attribute.
24174 (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and
24175 ashrdi3_cvt using SWI48 mode iterator.
24176
24177 2019-05-07 Alejandro Martinez <alejandro.martinezvicente@arm.com>
24178
24179 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand.
24180 (aarch64_<su>abd<mode>_3): Likewise.
24181 (*aarch64_<su>abd<mode>_3): New define_insn.
24182 (<sur>sad<vsi2qi>): New define_expand.
24183 * config/aarch64/iterators.md: Added MAX_OPP attribute.
24184 * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR.
24185 (build_vect_cond_expr): Likewise.
24186
24187 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
24188
24189 * cfgexpand.c (asm_clobber_reg_is_valid): Reject
24190 clobbers outside of accessible_reg_set.
24191 * config/i386/i386.c (ix86_conditional_register_usage):
24192 Disable register sets by clearing corresponding bits in
24193 accessible_reg_set. Do not set corresponding bits in fixed_regs,
24194 call_used_regs and don't clear corresponding reg_names array members.
24195
24196 2019-05-07 Richard Biener <rguenther@suse.de>
24197
24198 * tree-vect-stmts.c (vect_is_simple_cond): When vectype is
24199 not specified still compute a comp_vectype for invariant
24200 compares.
24201
24202 2019-05-07 Richard Biener <rguenther@suse.de>
24203
24204 PR tree-optimization/90316
24205 * tree-ssa-pre.c (translate_vuse_through_block): When
24206 same_valid is NULL do not bother to search for a virtual
24207 PHI continuation.
24208 (phi_translate_1): When operands changed we cannot keep
24209 the same value-number so do not bother to ask whether
24210 that's possible from translate_vuse_through_block.
24211
24212 2019-05-07 Martin Liska <mliska@suse.cz>
24213
24214 * bitmap.c (bitmap_register): Come up with
24215 alloc_descriptor_max_uid and assign it for
24216 a new bitmap.
24217 (register_overhead): Use get_descriptor as
24218 a descriptor.
24219 (release_overhead): New.
24220 (bitmap_elem_to_freelist): Call it.
24221 (bitmap_elt_clear_from): Likewise.
24222 (bitmap_obstack_free): Likewise.
24223 (bitmap_move): Sensitively release memory.
24224 * bitmap.h (struct GTY): Add alloc_descriptor and padding.
24225 (bitmap_initialize): Initialize alloc_descriptor to zero.
24226 * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move.
24227
24228 2019-05-07 Richard Biener <rguenther@suse.de>
24229
24230 * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever
24231 we build a SLP node. Remove max_size and limiting.
24232 (vect_analyze_slp_instance): Record and dump size of the SLP graph.
24233
24234 2019-05-07 Richard Biener <rguenther@suse.de>
24235
24236 PR tree-optimization/90316
24237 * tree-ssa-alias.h (get_continuation_for_phi): Take walking
24238 limit by reference.
24239 (walk_non_aliased_vuses): Take walking limit argument.
24240 * tree-ssa-alias.c (maybe_skip_until): Take limit and abort
24241 walking if it is reached instead of just counting.
24242 (get_continuation_for_phi): Likewise.
24243 (walk_non_aliased_vuses): Likewise, instead of leaving counter
24244 limiting to the callback.
24245 * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
24246 (vn_reference_lookup_3): Likewise.
24247 (vn_reference_lookup_pieces): Likewise.
24248 (vn_reference_lookup): Likewise.
24249 * tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
24250 * tree-ssa-scopedtables.c (vuse_eq): Adjust.
24251 (avail_exprs_stack::lookup_avail_expr): Likewise.
24252
24253 2019-05-07 Jan Hubicka <hubicka@ucw.cz>
24254
24255 * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking
24256 for comparaible types in the second direction even if first one
24257 hits incomparable type.
24258
24259 2019-05-07 Richard Biener <rguenther@suse.de>
24260
24261 PR lto/90369
24262 * lto-wrapper.c (debug_objcopy): Use the original filename
24263 including archive offset for the filename used for -save-temps.
24264
24265 2019-05-07 Li Jia He <helijia@linux.ibm.com>
24266
24267 * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
24268 detection.
24269
24270 2019-05-06 H.J. Lu <hongjiu.lu@intel.com>
24271 Hongtao Liu <hongtao.liu@intel.com>
24272
24273 PR target/89750
24274 PR target/86444
24275 * config/i386/i386-expand.c (ix86_expand_sse_comi_round):
24276 Modified, original implementation isn't correct.
24277
24278 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
24279
24280 * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO)
24281 (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO)
24282 (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO)
24283 (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO)
24284 (FRAME_POINTER_REGNUM): Change numbering.
24285 * config/rs6000/rs6000.c (rs6000_reg_names): Adjust.
24286 (alt_reg_names): Adjust.
24287 (rs6000_conditional_register_usage): Don't mark hard register 64 as
24288 fixed.
24289 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
24290 (DWARF_FRAME_REGISTERS): Delete.
24291 (DWARF2_FRAME_REG_OUT): Fix whitespace.
24292 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
24293 Adjust.
24294 (REG_ALLOC_ORDER): Adjust.
24295 (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust.
24296 (REG_CLASS_CONTENTS): Adjust.
24297 (RETURN_ADDR_RTX): Change comment.
24298 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM
24299 instead of 67.
24300 (REGISTER_NAMES): Adjust.
24301 (ADDITIONAL_REGISTER_NAMES): Adjust.
24302 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
24303
24304 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
24305
24306 * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO):
24307 Delete.
24308 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
24309 (DWARF_FRAME_REGISTERS): Adjust.
24310 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
24311 Adjust.
24312 (REG_ALLOC_ORDER): Adjust.
24313 (enum reg_class): Delete SPR_REGS.
24314 (REG_CLASS_NAMES): Delete SPR_REGS.
24315 (REG_CLASS_CONTENTS): Delete SPR_REGS. Adjust for deleted TM regs.
24316 (REGISTER_NAMES): Adjust.
24317 (ADDITIONAL_REGISTER_NAMES): Adjust.
24318 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
24319 * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust.
24320 * config/rs6000/predicates.md (htm_spr_reg_operand): Delete.
24321 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust.
24322 (htm_spr_regno): Delete.
24323 (htm_expand_builtin): Adjust: the HTM builtins now have one fewer
24324 argument.
24325 (rs6000_dbx_register_number): Adjust.
24326
24327 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
24328
24329 * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete.
24330
24331 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
24332
24333 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle
24334 FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ).
24335
24336 2019-05-06 Jakub Jelinek <jakub@redhat.com>
24337
24338 PR tree-optimization/88709
24339 PR tree-optimization/90271
24340 * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter.
24341 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle
24342 non-clobber CONSTRUCTORs with no elts. Remove useless tmp_int
24343 variable.
24344 (imm_store_chain_info::coalesce_immediate_stores): Punt if the size
24345 of the store merging group is larger than
24346 PARAM_STORE_MERGING_MAX_SIZE parameter.
24347 (split_group): Add bzero_first argument. If set, always emit first
24348 the first store which must be = {} of the whole area and then for the
24349 rest of the stores consider all zero bytes as paddings.
24350 (imm_store_chain_info::output_merged_store): Check if first store
24351 is = {} of the whole area and if yes, determine which setting of
24352 bzero_first for split_group gives smaller number of stores. Adjust
24353 split_group callers.
24354 (lhs_valid_for_store_merging_p): Allow decls.
24355 (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with
24356 no elts.
24357 (pass_store_merging::process_store): Likewise.
24358
24359 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
24360
24361 PR target/89424
24362 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
24363 handling of V1TImode.
24364
24365 2019-05-06 Uroš Bizjak <ubizjak@gmail.com>
24366
24367 PR target/89221
24368 * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld
24369 and enable_frame_pointer ...
24370 * configure.ac: ... here. Update help strings for
24371 --enable-frame-pointer.
24372 * configure: Regenerate.
24373 * config/i386/i386-options.c (ix86_option_override_internal): Remove
24374 USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead.
24375 * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove.
24376 (USE_X86_64_FRAME_POINTER): Ditto.
24377
24378 2019-05-06 Martin Liska <mliska@suse.cz>
24379
24380 * config.gcc: Append to target_gtfiles and fix indentation.
24381
24382 2019-05-06 Richard Biener <rguenther@suse.de>
24383
24384 PR tree-optimization/90358
24385 * tree-vect-stmts.c (get_group_load_store_type): Properly
24386 detect unused upper half of load.
24387 (vectorizable_load): Likewise.
24388
24389 2019-05-06 Richard Biener <rguenther@suse.de>
24390
24391 PR tree-optimization/88828
24392 * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from...
24393 (simplify_vector_constructor): ...here. Handle constants in
24394 the constructor.
24395
24396 2019-05-06 Richard Biener <rguenther@suse.de>
24397
24398 PR tree-optimization/90328
24399 * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
24400 * tree-data-ref.c (dr_may_alias_p): Check whether the clique
24401 is valid in the loop nest before using it.
24402 (initialize_data_dependence_relation): Adjust.
24403 * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
24404 loop as loop-nest to dr_may_alias_p.
24405
24406 2019-05-06 Richard Biener <rguenther@suse.de>
24407
24408 * dwarf2out.c (mem_loc_descriptor): Initialize int_mode.
24409
24410 2019-05-06 Richard Biener <rguenther@suse.de>
24411
24412 PR tree-optimization/90316
24413 * tree-ssa-alias.c (maybe_skip_until): Pass in target BB,
24414 compute target on demand.
24415 (get_continuation_for_phi): Remove code walking stmts to
24416 get to a target virtual operand which could end up being
24417 quadratic.
24418
24419 2019-05-06 Martin Liska <mliska@suse.cz>
24420
24421 PR sanitizer/90312
24422 * config/i386/i386-options.c (ix86_option_override_internal): Error only
24423 when -mabi is selected to a non-default version.
24424
24425 2019-05-06 Hrishikesh Kulkarni <hrishikeshparag@gmail.com>
24426 Martin Liska <mliska@suse.cz>
24427
24428 * Makefile.in: Add lto-dump.texi.
24429 * cgraph.h: Add new functions get_visibility_string and
24430 get_symtab_type_string.
24431 * doc/gcc.texi: Include lto-dump section.
24432 * doc/lto-dump.texi: New file.
24433 * dumpfile.c (dump_switch_p_1): Use parse_dump_option.
24434 (parse_dump_option): Factor out this function.
24435 * dumpfile.h (enum dump_flag): Add new value TDF_ERROR.
24436 (parse_dump_option): Export the function.
24437 * symtab.c (symtab_node::get_visibility_string): New function.
24438 (symtab_node::get_symtab_type_string): Likewise.
24439
24440 2019-05-06 Martin Liska <mliska@suse.cz>
24441
24442 * config/i386/i386-builtins.c: New file.
24443 * config/i386/i386-builtins.h: New file.
24444 * config/i386/i386-expand.c: New file.
24445 * config/i386/i386-expand.h: New file.
24446 * config/i386/i386-features.c: New file.
24447 * config/i386/i386-features.h: New file.
24448 * config/i386/i386-options.c: New file.
24449 * config/i386/i386-options.h: New file.
24450 * config.gcc: Add new files into extra_objs and
24451 target_gtfiles.
24452 * config/i386/i386.c: Split content of the file
24453 into newly introduced files.
24454 * config/i386/i386.h: Declare common variables
24455 and macros.
24456 * config/i386/t-i386: Define dependencies for new files.
24457
24458 2019-05-03 Richard Earnshaw <rearnsha@arm.com>
24459
24460 PR target/89400
24461 * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
24462 Restrict 'all' variant to 32-bit configurations.
24463 (unaligned_loadhiu): Likewise.
24464 (unaligned_storehi): Likewise.
24465 (unaligned_storesi): Likewise.
24466 (unaligned_loadhis): Disable when compiling for thumb1.
24467
24468 2019-05-03 Marc Glisse <marc.glisse@inria.fr>
24469
24470 PR tree-optimization/90269
24471 * tree-loop-distribution.c (find_seed_stmts_for_distribution):
24472 Ignore clobbers.
24473
24474 2019-05-03 Martin Liska <mliska@suse.cz>
24475
24476 * hash-map.h: Add is_empty function.
24477 * hash-set.h: Likewise.
24478 * hash-table.h: Likewise.
24479 * dwarf2out.c (dwarf2out_finish): Use is_empty instead of
24480 elements () == 0 (and similar usages).
24481 * gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise.
24482 * gimplify.c (gimplify_bind_expr): Likewise.
24483 (gimplify_switch_expr): Likewise.
24484 * hash-map-tests.c (test_map_of_strings_to_int): Likewise.
24485 * ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise.
24486 * postreload-gcse.c (dump_hash_table): Likewise.
24487 (gcse_after_reload_main): Likewise.
24488 * predict.c (combine_predictions_for_bb): Likewise.
24489 * tree-parloops.c (reduction_phi): Likewise.
24490 (separate_decls_in_region): Likewise.
24491 (transform_to_exit_first_loop): Likewise.
24492 (gen_parallel_loop): Likewise.
24493 (gather_scalar_reductions): Likewise.
24494 (try_create_reduction_list): Likewise.
24495 * var-tracking.c (dump_vars): Likewise.
24496 (emit_notes_for_changes): Likewise.
24497 (vt_emit_notes): Likewise.
24498
24499 2019-05-03 Richard Biener <rguenther@suse.de>
24500
24501 PR tree-optimization/90316
24502 * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries
24503 before running VN.
24504
24505 2019-05-03 Richard Biener <rguenther@suse.de>
24506
24507 * tree-vect-stmts.c (get_group_load_store_type): Avoid
24508 peeling for gaps by loading only lower halves of vectors
24509 if possible.
24510 (vectorizable_load): Likewise.
24511
24512 2019-05-03 Richard Biener <rguenther@suse.de>
24513
24514 PR middle-end/89518
24515 * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A.
24516
24517 2019-05-03 Richard Biener <rguenther@suse.de>
24518
24519 PR middle-end/87314
24520 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)):
24521 Handle STRING_CST vs DECL or STRING_CST.
24522
24523 2019-05-03 Richard Biener <rguenther@suse.de>
24524
24525 PR tree-optimization/88963
24526 * tree-ssa-forwprop.c (pass_forwprop::execute): Rewrite
24527 vector loads feeding only BIT_FIELD_REFs to component
24528 loads. Rewrite stores fed by CONSTRUCTORs to component
24529 stores.
24530
24531 2019-05-03 Jakub Jelinek <jakub@redhat.com>
24532
24533 * opts.h (finish_options): Remove lang_mask argument.
24534 (print_help, help_option_argument): Declare.
24535 * opts.c (print_help): Remove forward declaration, no longer static.
24536 (finish_options): Remove lang_mask argument, don't call print_help
24537 here.
24538 * opts-global.c (decode_options): Adjust finish_option caller, call
24539 print_help here.
24540
24541 PR tree-optimization/90303
24542 * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use
24543 TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode.
24544
24545 2019-05-03 Richard Biener <rguenther@suse.de>
24546
24547 PR tree-optimization/89698
24548 * gimple-fold.c (canonicalize_constructor_val): Early out
24549 for constants, handle unfolded INTEGER_CSTs as they appear in
24550 C++ virtual table ctors.
24551
24552 2019-05-03 Richard Biener <rguenther@suse.de>
24553
24554 * passes.c (execute_function_todo): Remove dead code.
24555
24556 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
24557
24558 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use
24559 the internal register number, for any "real" register.
24560
24561 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
24562
24563 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
24564 correct numbers for TFHAR, TFIAR, TEXASR.
24565
24566 2019-05-02 Richard Biener <rguenther@suse.de>
24567
24568 PR tree-optimization/89653
24569 * tree-ssa-loop.c (pass_data_tree_loop_init): Execute
24570 update-address-taken before the pass.
24571 * passes.def (pass_tree_loop_init): Put comment before it.
24572
24573 2019-05-02 Richard Biener <rguenther@suse.de>
24574
24575 PR tree-optimization/89509
24576 * tree-ssa-structalias.c (compute_dependence_clique): Look
24577 at the first subvar when determining whether it is restrict.
24578
24579 2019-05-02 Richard Biener <rguenther@suse.de>
24580
24581 PR tree-optimization/90273
24582 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate
24583 useless debug stmts.
24584
24585 2019-05-02 Alejandro Martinez <alejandro.martinezvicente@arm.com>
24586
24587 * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE
24588 ACLE branch.
24589 * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from
24590 SVE ACLE branch.
24591 * tree-vect-loop.c (use_mask_by_cond_expr_p): New function to check if a
24592 VEC_COND_EXPR be inserted to emulate a conditional internal function.
24593 (build_vect_cond_expr): Emit the VEC_COND_EXPR.
24594 (vectorizable_reduction): Use the functions above to vectorize in a
24595 fully masked loop codes that don't have a conditional internal
24596 function.
24597
24598 2019-05-02 Martin Liska <mliska@suse.cz>
24599
24600 * cgraphclones.c: Call valid_attribute_p with 1 for
24601 target_clone.
24602 * config/i386/i386-c.c (ix86_pragma_target_parse): Use 0 as
24603 it's for target attribute.
24604 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
24605 Add new boolean argument.
24606 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
24607 Likewise.
24608 (ix86_valid_target_attribute_tree): Pass target_clone_attr
24609 to ix86_valid_target_attribute_inner_p.
24610 (ix86_valid_target_attribute_p): Pass flags argument to
24611 ix86_valid_target_attribute_inner_p.
24612 (get_builtin_code_for_version): Use 0 as it's target attribute.
24613
24614 2019-05-02 Martin Liska <mliska@suse.cz>
24615
24616 * gcc.c (process_command): Add dummy file only
24617 if n_infiles == 0.
24618 * opts-global.c (decode_options): Pass lang_mask.
24619 * opts.c (print_help): New function.
24620 (finish_options): Print --help if help_option_argument
24621 is set.
24622 (common_handle_option): Factor out content of OPT__help_
24623 into print_help.
24624 * opts.h (finish_options): Add new argument.
24625
24626 2019-05-02 Martin Liska <mliska@suse.cz>
24627
24628 PR target/88809
24629 * config/i386/i386.c (ix86_expand_strlen): Use strlen call.
24630 With -minline-all-stringops use inline expansion using 4B loop.
24631 * doc/invoke.texi: Document the change of
24632 -minline-all-stringops.
24633
24634 2019-05-01 Jeff Law <law@redhat.com>
24635
24636 PR tree-optimization/88797
24637 * gimple-ssa-split-paths (is_feasible_trace): Reject cases where the
24638 PHI feeds a conditional on the RHS of an assignment.
24639
24640 2019-04-30 Andrew Waterman <andrew@sifive.com>
24641 Jim Wilson <jimw@sifive.com>
24642
24643 * config/riscv/constraints.md (L): New.
24644 * config/riscv/predicates.md (lui_operand): New.
24645 (sfb_alu_operand): New.
24646 * config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare.
24647 * config/riscv/riscv.c (riscv_expand_conditional_move): New.
24648 * config/riscv/riscv.h (TARGET_SFB_ALU): New.
24649 * config/riscv/risc.md (type): Add sfb_alu.
24650 (branch<mode>): Renamed from branch_order<mode>. Change predicate for
24651 operand 3 to reg_or_0_operand. In output string, change %3 to %z3.
24652 (branch_zero<mode>): Delete.
24653 (mov<mode>cc): New.
24654 (mov<GPR:mode><X:mode>cc): Likewise.
24655 * config/riscv/sifive-7.md (sifive_7_sfb_alu): New. Use in bypasses.
24656
24657 2019-04-30 Nathan Sidwell <nathan@acm.org>
24658
24659 * tree.h (MARK_TS_EXP): New.
24660
24661 2019-04-30 Martin Liska <mliska@suse.cz>
24662
24663 * opts.c (enable_warning_as_error): Provide hints
24664 for unknown options.
24665
24666 2019-04-30 Martin Liska <mliska@suse.cz>
24667
24668 PR debug/90288
24669 * doc/invoke.texi: Add missing dash for gas-locview-support
24670 and gno-as-locview-support.
24671
24672 2019-04-30 Jakub Jelinek <jakub@redhat.com>
24673
24674 PR target/89093
24675 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip
24676 whitespace at the start of target attribute string.
24677
24678 2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24679
24680 PR target/86538
24681 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
24682 Define __ARM_FEATURE_ATOMICS.
24683
24684 2019-04-30 Martin Liska <mliska@suse.cz>
24685
24686 * gimple-fold.c (gimple_fold_builtin_memory_op): Change endp
24687 into built_in_function enum. Remove code for endp == 2 and
24688 use BUILT_IN_* constants.
24689 (gimple_fold_builtin): Call the function with fcode.
24690
24691 2019-04-30 Martin Liska <mliska@suse.cz>
24692
24693 * config/i386/i386.c (ix86_builtin_reciprocal): Cast
24694 DECL_FUNCTION_CODE into ix86_builtins enum before
24695 the switch statement.
24696
24697 2019-04-30 Jakub Jelinek <jakub@redhat.com>
24698
24699 PR tree-optimization/89475
24700 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64}
24701 calls.
24702
24703 2019-04-30 Martin Liska <mliska@suse.cz>
24704
24705 PR translation/90274
24706 * opts.c (print_filtered_help): Wrap string in _(...).
24707
24708 2019-04-30 Bin Cheng <bin.cheng@linux.alibaba.com>
24709
24710 PR tree-optimization/90240
24711 Revert:
24712 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
24713
24714 PR tree-optimization/90078
24715 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
24716 checks for infinite_cost overflow.
24717
24718 2019-04-29 Jeff Law <law@redhat.com>
24719
24720 * passes.def: Move -Wrestrict pass after copy propagation.
24721
24722 2019-04-29 Maya Rashish <coypu@sdf.org>
24723
24724 * config.gcc (default_gnu_indirect_function): Default to yes
24725 for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*,
24726 sparc*-*-netbsd*, x86_64-*-netbsd*.
24727
24728 2019-04-29 Vladislav Ivanishin <vlad@ispras.ru>
24729
24730 * tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases
24731 where cond2 is NE_EXPR.
24732 (is_value_included_in): Update comment.
24733
24734 2019-04-29 Richard Biener <rguenther@suse.de>
24735
24736 PR tree-optimization/90278
24737 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
24738 EH on comparison simplification.
24739
24740 2019-04-29 Jason Merrill <jason@redhat.com>
24741
24742 PR c++/82081 - tail call optimization breaks noexcept
24743 * tree-tailcall.c (find_tail_calls): Don't turn a call from a
24744 nothrow function to a might-throw function into a tail call.
24745
24746 2019-04-29 Richard Sandiford <richard.sandiford@arm.com>
24747
24748 * tree-data-ref.h (data_dependence_relation::inner_loop): Delete.
24749 (DDR_INNER_LOOP): Likewise.
24750 * tree-data-ref.c (dump_data_dependence_relation): Update accordingly.
24751 (initialize_data_dependence_relation): Likewise.
24752 (insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP.
24753
24754 2019-04-29 Jakub Jelinek <jakub@redhat.com>
24755
24756 PR rtl-optimization/90257
24757 * cfgrtl.c (flow_active_insn_p): Return true for USE of a function
24758 return value.
24759
24760 Revert the revert:
24761 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
24762
24763 PR target/90178
24764 Revert:
24765 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
24766
24767 Revert the revert:
24768 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
24769
24770 Revert:
24771 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
24772
24773 * lra-spills.c (lra_final_code_change): Remove useless move insns.
24774
24775 2019-04-29 Richard Biener <rguenther@suse.de>
24776
24777 * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER}
24778 rhs issue a reset.
24779
24780 2019-04-27 Iain Buclaw <ibuclaw@gdcproject.org>
24781
24782 * config/netbsd-d.c: Include memmodel.h. Remove unused tree.h,
24783 varasm.h, and netbsd-protos.h.
24784
24785 2019-04-27 Uroš Bizjak <ubizjak@gmail.com>
24786
24787 PR target/89261
24788 * config/i386/i386-protos.h (ix86_data_alignment): Change
24789 the second argument type to unsigned int.
24790 * config/i386/i386.c (ix86_data_alignment): Change "align"
24791 argument type to unsigned int.
24792
24793 2019-04-27 Martin Liska <mliska@suse.cz>
24794
24795 PR middle-end/90258
24796 * opt-suggestions.c (option_proposer::build_option_suggestions):
24797 When get_valid_option_values returns empty values, add the
24798 misspelling candidate.
24799
24800 2019-04-26 Jim Wilson <jimw@sifive.com>
24801
24802 * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode
24803 parameter.
24804 * config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode.
24805 Pass orig_mode to riscv_build_integer.
24806 (riscv_split_integer): Pass mode to riscv_move_integer.
24807 (riscv_legitimize_const_move): Likewise.
24808 (riscv_legitimize_move): For MEM dest and CONST_INT src case, new local
24809 promoted_mode. Replace force_reg call with code to load constant into
24810 promoted reg and then subreg it for the store.
24811 * config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to
24812 riscv_move_integer.
24813
24814 2018-04-26 Eugene Sharygin <eush@ispras.ru>
24815
24816 * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with
24817 corrupt codes.
24818
24819 2019-04-26 Richard Sandiford <richard.sandiford@arm.com>
24820
24821 * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add
24822 commentary about the encoding of precision.
24823
24824 2019-04-25 Andreas Tobler <andreast@gcc.gnu.org>
24825
24826 * config/i386/freebsd64.h: Add bits for 32-bit multilib support.
24827 * config/i386/t-freebsd64: New file.
24828 * config.gcc: Add the t-freebsd64 for multilib support.
24829
24830 2019-04-25 Uroš Bizjak <ubizjak@gmail.com>
24831
24832 * doc/extend.texi (vector_size): Add missing comma after @xref.
24833
24834 2019-04-25 Jakub Jelinek <jakub@redhat.com>
24835
24836 * BASE-VER: Set to 10.0.0.
24837
24838 2019-04-25 Richard Biener <rguenther@suse.de>
24839
24840 PR middle-end/89765
24841 * gimplify.c (gimplify_expr): Avoid turning a lvalue
24842 VIEW_CONVERT_EXPR into one operating on an rvalue.
24843
24844 2019-04-25 H.J. Lu <hongjiu.lu@intel.com>
24845
24846 PR target/89929
24847 * config/i386/i386.c (feature_priority): Moved to file scope.
24848 (processor_features): Likewise.
24849 (processor_model): Likewise.
24850 (_arch_names_table): Likewise.
24851 (arch_names_table): Likewise.
24852 (_feature_list): Removed.
24853 (feature_list): Likewise.
24854 (_isa_names_table): Moved to file scope. Add priority.
24855 (isa_names_table): Likewise.
24856 (get_builtin_code_for_version): Replace feature_list with
24857 isa_names_table. Update error message for P_ZERO priority.
24858
24859 2019-04-25 Richard Biener <rguenther@suse.de>
24860
24861 * tree-pass.h (make_pass_phi_only_cprop): Remove.
24862 * timevar.def (TV_TREE_PHI_CPROP): Likewise.
24863
24864 2019-04-24 Jeff Law <law@redhat.com>
24865
24866 PR tree-optimization/90037
24867 * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c
24868 * passes.def: Replace all instance of phi-only cprop with the
24869 lattice propagator. Move propagation pass from after erroneous
24870 path isolation to before erroneous path isolation.
24871 * tree-ssa-phionlycprop.c: Remove.
24872
24873 2019-04-24 Richard Biener <rguenther@suse.de>
24874
24875 PR middle-end/90213
24876 * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
24877 by size and BITS_PER_UNIT on poly-wide-ints.
24878
24879 2019-04-25 Richard Biener <rguenther@suse.de>
24880
24881 PR middle-end/90194
24882 * match.pd: Add pattern to simplify view-conversion of an
24883 empty constructor.
24884
24885 2019-04-24 Clement Chigot <clement.chigot@atos.net>
24886
24887 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable
24888 OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags
24889 for Go on 32 bit AIX.
24890 * config/rs6000/aix72.h: Likewise.
24891
24892 2019-04-24 Jakub Jelinek <jakub@redhat.com>
24893
24894 PR target/90193
24895 * rtl.c (classify_insn): Return JUMP_INSN for asm goto.
24896 * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
24897
24898 2019-04-24 Andreas Krebbel <krebbel@linux.ibm.com>
24899
24900 PR target/89952
24901 * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs
24902 from FPRs in reverse order. Generate REG_CFA_DEF_CFA note also
24903 for restored hard frame pointer.
24904 (s390_sched_dependencies_evaluation): Implement new target hook.
24905 (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition.
24906
24907 2019-04-24 Claudiu Zissulescu <claziss@sysnopsys.com>
24908
24909 * config/arc/arc-options.def: Fix typos and spelling mistakes.
24910 * config/arc/arc.c (arc_init): Cleanup warning message.
24911 (arc_override_options): Likewise.
24912
24913 2019-04-24 Jakub Jelinek <jakub@redhat.com>
24914
24915 PR target/90187
24916 * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
24917 a register if both if_true and if_false are MEMs.
24918
24919 PR tree-optimization/90208
24920 * tree-cfg.c (remove_bb): Move forced labels from removed bbs
24921 after labels of new_bb, not before them.
24922
24923 PR tree-optimization/90211
24924 * tree-parloops.c (try_create_reduction_list): Ignore phi arguments
24925 which are not SSA_NAMEs.
24926
24927 2018-04-23 Sudakshina Das <sudi.das@arm.com>
24928
24929 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for
24930 AArch64.
24931 (aarch64_file_end_indicate_exec_stack): Add gnu note section.
24932
24933 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
24934
24935 PR rtl-optimization/87979
24936 * modulo-sched.c (sms_schedule): Start ii value "mii" should
24937 not equal zero.
24938
24939 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
24940
24941 PR rtl-optimization/84032
24942 * modulo-sched.c (ps_insn_find_column): Change condition so that
24943 branch will always be the last insn in a row inside partial
24944 schedule.
24945
24946 2019-04-23 Richard Biener <rguenther@suse.de>
24947
24948 PR debug/90131
24949 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add
24950 dest_single_pred_p argument.
24951 (remove_forwarder_block): Adjust.
24952 (remove_forwarder_block_with_phi): Likewise.
24953
24954 2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24955 Bernd Edlinger <bernd.edlinger@hotmail.de>
24956 Jakub Jelinek <jakub@redhat.com>
24957
24958 PR target/89093
24959 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
24960 if used with general-regs-only.
24961 (arm_conditional_register_usage): Don't add non-general regs if
24962 general-regs-only.
24963 (arm_valid_target_attribute_rec): Handle general-regs-only.
24964 * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
24965 general-regs-only.
24966 (TARGET_HARD_FLOAT_SUB): Define.
24967 (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
24968 (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
24969 (TARGET_REALLY_IWMMXT2): Likewise.
24970 * config/arm/arm.opt: Add -mgeneral-regs-only.
24971 * doc/extend.texi: Document ARM general-regs-only target.
24972 * doc/invoke.texi: Document ARM -mgeneral-regs-only.
24973
24974 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
24975
24976 PR tree-optimization/90078
24977 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
24978 checks for infinite_cost overflow.
24979
24980 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
24981
24982 PR tree-optimization/90021
24983 * tree-chrec.c (evolution_function_is_univariate_p): New parameter
24984 and check univariate against it.
24985 * tree-chrec.h (evolution_function_is_univariate_p): New parameter.
24986 * tree-data-ref.c (add_other_self_distances): Pass new argument.
24987
24988 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
24989
24990 PR target/90178
24991 Revert:
24992 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
24993
24994 Revert the revert:
24995 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
24996
24997 Revert:
24998 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
24999
25000 * lra-spills.c (lra_final_code_change): Remove useless move insns.
25001
25002 2019-04-21 Iain Sandoe <iain@sandoe.co.uk>
25003
25004 * config/rs6000/rs6000.md (group_end_nop): Emit insn register
25005 names using operand format, rather than hard-wired.
25006 (speculation_barrier): Likewise.
25007
25008 2019-04-19 Segher Boessenkool <segher@kernel.crashing.org>
25009
25010 PR tree-optimization/88055
25011 * tree-call-cdce.c (comparison_code_if_no_nans): New function.
25012 (gen_one_condition): Use it if !HONOR_NANS.
25013
25014 2019-04-19 Jakub Jelinek <jakub@redhat.com>
25015
25016 PR middle-end/90139
25017 * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
25018 assign_temp instead of gen_reg_rtx.
25019
25020 2019-04-19 Christophe Lyon <christophe.lyon@linaro.org>
25021
25022 PR translation/90118
25023 * config/aarch64/aarch64.c (aarch64_override_options_internal):
25024 Add missing space before %<.
25025
25026 2019-04-18 Peter Bergner <bergner@linux.ibm.com>
25027
25028 PR rtl-optimization/87871
25029 * ira-lives.c (make_object_dead): Don't add conflicts to
25030 TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts.
25031
25032 2019-04-18 Martin Sebor <msebor@redhat.com>
25033
25034 PR middle-end/89797
25035 * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U.
25036 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid
25037 assuming type size fits in SHWI.
25038
25039 2019-04-18 Jan Hubicka <hubicka@ucw.cz>
25040
25041 PR ipa/85051
25042 * ipa-inline.c (flatten_function): New parameter UPDATE.
25043 (ipa_inline, early_inliner): Use it.
25044
25045 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
25046
25047 * fold-const.c (int_const_binop): Return early on failure.
25048
25049 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
25050
25051 PR middle-end/85164
25052 * combine.c (force_int_to_mode): Cast the argument rather than
25053 the result of known_alignment.
25054 * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p.
25055
25056 2019-04-18 Richard Biener <rguenther@suse.de>
25057
25058 PR debug/90131
25059 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
25060 out from ...
25061 (remove_forwarder_block): ... here.
25062 (remove_forwarder_block_with_phi): Also move debug stmts here.
25063
25064 2019-04-18 Jakub Jelinek <jakub@redhat.com>
25065
25066 PR translation/79183
25067 * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
25068 inform where appropriate.
25069
25070 2019-04-18 Richard Biener <rguenther@suse.de>
25071
25072 * tree.c (get_qualified_type): Put found type variants at the
25073 head of the variant list.
25074
25075 2018-04-17 Segher Boessenkool <segher@kernel.crashing.org>
25076
25077 * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo.
25078
25079 2019-04-17 Hongtao Liu <hongtao.liu@intel.com>
25080
25081 PR target/90125
25082 * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd,
25083 _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd,
25084 _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd,
25085 _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd,
25086 _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3.
25087
25088 2019-04-17 Peter Bergner <bergner@linux.ibm.com>
25089
25090 * ira-conflicts.c (print_allocno_conflicts): Always print something,
25091 even for allocno's with no conflicts.
25092 (print_conflicts): Print an extra newline.
25093
25094 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
25095
25096 * auto-inc-dec.c (attempt_change): Set the alignment of the
25097 temporary memory to that of the original.
25098
25099 2019-04-17 Joao Moreira <jmoreira@suse.de>
25100
25101 * targhooks.c (default_print_patchable_function_entry): Emit
25102 __patchable_function_entries section with writable flags to allow
25103 relocation resolution.
25104
25105 2019-04-17 Jonny Grant <jg@jguk.org>
25106
25107 * collect2.c (main): Change gcc.gnu.org URL to HTTPS.
25108
25109 2019-04-17 Jakub Jelinek <jakub@redhat.com>
25110
25111 PR middle-end/90095
25112 * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
25113 on lowpart SUBREGs.
25114
25115 2019-04-17 Claudiu Zissulescu <claziss@synopsys.com>
25116
25117 * config/arc/arc.c (arc_init): Format diagnostic string.
25118 (arc_override_options): Likewise.
25119 (check_if_valid_regno_const): Likewise.
25120 (arc_reorg): Likewise.
25121
25122 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
25123
25124 PR target/17108
25125 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
25126 name.
25127 (rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern
25128 name.
25129 * config/rs6000/rs6000.md (bits): Add entries for SF and DF.
25130 (*movdi_update1): Use Pmode.
25131 (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
25132 (movdi_<mode>_update_stack): Rename to ...
25133 (movdi_update_stack): ... this. Fix comment. Change condition. Don't
25134 use Pmode.
25135 (*movsi_update1): Use Pmode.
25136 (*movsi_update2): Use Pmode.
25137 (movsi_update): Rename to ...
25138 (movsi_<mode>_update): ... this. Use Pmode.
25139 (movsi_update_stack): Fix condition.
25140 (*movhi_update1): Use Pmode. Fix argument to
25141 avoiding_indexed_address_p.
25142 (*movhi_update2): Ditto.
25143 (*movhi_update3): Ditto.
25144 (*movhi_update4): Ditto.
25145 (*movqi_update1): Ditto.
25146 (*movqi_update2): Ditto.
25147 (*movqi_update3): Ditto.
25148 (*movsf_update1, *movdf_update1): Merge, rename to...
25149 (*mov<mode>_update1): This. Use Pmode. Fix argument to
25150 avoiding_indexed_address_p. Add "size" attribute.
25151 (*movsf_update2, *movdf_update2): Merge, rename to...
25152 (*mov<mode>_update2): This. Ditto.
25153 (*movsf_update3): Use Pmode. Fix argument to
25154 avoiding_indexed_address_p.
25155 (*movsf_update4): Ditto.
25156 (allocate_stack): Simplify condition. Adjust pattern names.
25157
25158 2019-04-17 Jakub Jelinek <jakub@redhat.com>
25159
25160 PR target/89093
25161 * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
25162 whitespace at the start of target attribute string.
25163
25164 2019-04-16 Pat Haugen <pthaugen@us.ibm.com>
25165
25166 PR target/84369
25167 * config/rs6000/power9.md: Add store forwarding bypass.
25168
25169 2019-04-16 Alexandre Oliva <aoliva@redhat.com>
25170
25171 PR debug/89528
25172 * valtrack.c (dead_debug_insert_temp): Reset debug references
25173 to the return value of a call being removed.
25174
25175 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
25176
25177 * config/arc/arc-protos.h (arc_register_move_cost): Remove.
25178 * config/arc/arc.c (arc_register_move_cost): Re-purpose it to
25179 implement target hook.
25180 (arc_memory_move_cost): New function.
25181 (TARGET_REGISTER_MOVE_COST): Define.
25182 (TARGET_MEMORY_MOVE_COST): Likewise.
25183 * config/arc/arc.h (REGISTER_MOVE_COST): Remove.
25184 (MEMORY_MOVE_COST): Likewise.
25185
25186 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
25187
25188 * config/arc/arc.md (sibcall_insn): Use Rcd constraint.
25189 (sibcall_value_insn): Likewise.
25190 * config/arc/constraints.md (Rs5): Remove.
25191
25192 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
25193
25194 * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
25195 for last two fake registers.
25196 (arc_conditional_register_usage): Make sure fake frame and arg
25197 pointer regs are in general regs class.
25198 (FRAME_POINTER_MASK): Remove.
25199 (RETURN_ADDR_MASK): Remove.
25200 (arc_must_save_register): Use hard frame regnum.
25201 (frame_restore_reg): Use hard_frame_pointer_rtx.
25202 (arc_save_callee_saves): Likewise.
25203 (arc_restore_callee_saves): Likewise.
25204 (arc_save_callee_enter): Likewise.
25205 (arc_restore_callee_leave): Likewise.
25206 (arc_save_callee_milli): Likewise.
25207 (arc_eh_return_address_location): Likewise.
25208 (arc_check_multi): Use hard frame regnum.
25209 (arc_can_eliminate): Likewise.
25210 * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
25211 for register allocator.
25212 (REG_CLASS_CONTENTS): Update GENERAL_REGS.
25213 (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
25214 (FRAME_POINTER_REGNUM): Change it to a fake register.
25215 (HARD_FRAME_POINTER_REGNUM): Defined.
25216 (ARG_POINTER_REGNUM): Change it to a new fake register.
25217 (ELIMINABLE_REGS): Update.
25218 (REGISTER_NAMES): Update names.
25219 * config/arc/arc.md (LP_START): Remove.
25220 (LP_END): Likewise.
25221 (shift_si3_loop): Update pattern.
25222
25223 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
25224
25225 * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
25226 to avoid delay slot scheduling.
25227 (arc_must_save_register): Don't save SP.
25228 * config/arc/arc.md (stack_tie): Remove.
25229 (UNSPEC_ARC_STKTIE): Likewise.
25230
25231 2019-04-16 Kito Cheng <kito.cheng@gmail.com>
25232 Shiva Chen <shiva0217@gmail.com>
25233
25234 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
25235 code gen with large shift amount.
25236
25237 2019-04-16 Chung-Ju Wu <jasonwucj@gmail.com>
25238
25239 * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
25240 subreg.
25241
25242 2019-04-16 Jakub Jelinek <jakub@redhat.com>
25243
25244 PR target/90096
25245 * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
25246 print -m64/-mx32/-m32 if it is true.
25247 (ix86_debug_options, ix86_function_specific_print): Pass true as
25248 ADD_ABI_P to ix86_target_string.
25249 (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
25250 ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
25251 or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.
25252
25253 PR rtl-optimization/90082
25254 * dce.c (can_delete_call): New function.
25255 (deletable_insn_p, mark_insn): Use it.
25256
25257 PR tree-optimization/90090
25258 * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
25259 throw internally.
25260 (is_division_by_square): Likewise. Formatting fix.
25261
25262 2019-04-16 Richard Biener <rguenther@suse.de>
25263
25264 PR tree-optimization/56049
25265 * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
25266 equality check if alias-set zero will prevail.
25267
25268 2019-04-15 Jeff Law <law@redhat.com>
25269
25270 * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
25271 size and alignment as unsigned.
25272
25273 2019-04-15 Richard Biener <rguenther@suse.de>
25274
25275 PR debug/90074
25276 * tree-loop-distribution.c (destroy_loop): Preserve correct
25277 debug info.
25278
25279 2019-04-15 Richard Biener <rguenther@suse.de>
25280
25281 PR tree-optimization/90071
25282 * tree-ssa-reassoc.c (init_range_entry): Do not pick up
25283 abnormal operands from def stmts.
25284
25285 2019-04-15 Segher Boessenkool <segher@kernel.crashing.org>
25286
25287 PR rtl-optimization/89794
25288 * combine.c (count_auto_inc): New function.
25289 (try_combine): Count how many auto_inc expressions there were in the
25290 original instructions. Ensure we have the same number in the new
25291 instructions. Remove the code that tried to ensure auto_inc side
25292 effects on i1 and i0 are not lost.
25293
25294 2019-04-15 Richard Biener <rguenther@suse.de>
25295
25296 PR ipa/88936
25297 * tree.h (auto_var_p): Declare.
25298 * tree.c (auto_var_p): New function, split out from ...
25299 (auto_var_in_fn_p): ... here.
25300 * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
25301 member.
25302 (new_var_info): Initialize it.
25303 (set_uids_in_ptset): Also set the shadow variable uid if required.
25304 (ipa_pta_execute): Postprocess points-to solutions assigning
25305 shadow variable uids for locals that may reach their containing
25306 function recursively.
25307 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
25308 assert but instead check whether the points-to solution is
25309 a singleton.
25310
25311 2019-04-15 Martin Jambor <mjambor@suse.cz>
25312
25313 PR ipa/pr89693
25314 * cgraph.c (clone_of_p): Loop over clone chain for each step in
25315 the thunk chain.
25316
25317 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
25318
25319 * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.
25320
25321 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
25322 Kito Cheng <kito.cheng@gmail.com>
25323 Shiva Chen <shiva0217@gmail.com>
25324
25325 * config/nds32/nds32-md-auxiliary.c
25326 (nds32_legitimize_pic_address): Use new PIC pattern.
25327 (nds32_legitimize_tls_address): Use new TLS pattern.
25328 (nds32_output_symrel): New.
25329 * config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
25330 (nds32_alloc_relax_group_id): Ditto.
25331 * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
25332 (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
25333 relax_group_id.
25334 (nds32_group_tls_insn): Ditto.
25335 (nds32_group_float_insns): Ditto.
25336 * config/nds32/nds32.md (tls_le): New.
25337 (sym_got): Ditto.
25338
25339 2019-04-15 Chung-Ju Wu <jasonwucj@gmail.com>
25340
25341 * configure: Add nds32 target for dwarf2 debug_line checking.
25342 * configure.ac: Regenerated.
25343
25344 2019-04-14 Jan Hubicka <hubicka@ucw.cz>
25345
25346 PR lto/89358
25347 * ipa-devirt.c (skip_in_fields_list_p): New.
25348 (odr_types_equivalent_p): Use it.
25349
25350 2019-04-13 Jakub Jelinek <jakub@redhat.com>
25351
25352 PR target/89093
25353 * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
25354 instead of strncmp when checking for thumb and arm. Formatting fixes.
25355
25356 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org>
25357
25358 * doc/install.texi: Document --with-target-system-zlib.
25359
25360 2019-04-12 Martin Sebor <msebor@redhat.com>
25361
25362 PR c/88383
25363 PR c/89288
25364 PR c/89798
25365 PR c/89797
25366 * targhooks.c (default_vector_alignment): Avoid assuming
25367 argument fits in SHWI.
25368 * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
25369 a shift expression.
25370 * doc/extend.texi (__builtin_has_attribute): Add a clarifying note.
25371
25372 2019-04-12 Jakub Jelinek <jakub@redhat.com>
25373
25374 PR rtl-optimization/89965
25375 * dce.c: Include rtl-iter.h.
25376 (struct check_argument_load_data): New type.
25377 (check_argument_load): New function.
25378 (find_call_stack_args): Check for loads from stack slots still tracked
25379 in sp_bytes and punt if any is found.
25380
25381 * config/mips/loongson-mmiintrin.h: Fix up #error message.
25382
25383 2019-04-12 Jan Hubicka <hubicka@ucw.cz>
25384
25385 * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
25386 * doc/invoke.texi (max-lto-streaming-paralellism): New --param.
25387
25388 2019-04-12 Martin Liska <mliska@suse.cz>
25389
25390 PR middle-end/89970
25391 * multiple_target.c (create_dispatcher_calls): Wrap ifunc
25392 in error message.
25393 (separate_attrs): Handle multiple 'default's.
25394 (expand_target_clones): Rework error handling code.
25395
25396 2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org>
25397
25398 PR target/87532
25399 * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
25400 mode of vector rather than mode of destination for move instruction.
25401 * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
25402 Use QI inner mode with V16QI vector mode.
25403
25404 2019-04-12 Jakub Jelinek <jakub@redhat.com>
25405
25406 PR target/52726
25407 * config/tilepro/tilepro.c (tilepro_print_operand): Use just
25408 "invalid %%t operand" in output_operand_lossage message.
25409
25410 2019-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
25411
25412 * config/s390/predicates.md (permute_pattern_operand): New
25413 predicate.
25414 * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
25415 operand for the permute pattern.
25416 ("*vec_perm<mode>"): New insn definition.
25417 ("bswap<mode>"): Generate the permute pattern operand in the
25418 expander and perform the operand reloads for pre arch13 level
25419 already.
25420 ("*bswap<mode>_emu"): Rename to ...
25421 ("*bswap<mode>"): ... this. And make the splitter vxe2 only.
25422 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
25423 Add the USE operand for the permute pattern.
25424 ("*vec_set_bswap_vec<mode>"): Likewise.
25425
25426 2019-04-12 Jakub Jelinek <jakub@redhat.com>
25427
25428 PR c/89946
25429 * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
25430 and gcc_unreachable if it fails, just call tree_to_uhwi which
25431 verifies that too. Test TREE_CHAIN instead of list_length > 1.
25432 Start warning message with a lower-case letter. Formatting fixes.
25433
25434 PR rtl-optimization/90026
25435 * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
25436 successors, look for BARRIERs inside of the whole BB_FOOTER chain
25437 rather than just at the start of it. If e->src BB_FOOTER is not NULL
25438 in cfglayout mode, use emit_barrier_after_bb.
25439
25440 2018-04-11 Steve Ellcey <sellcey@marvell.com>
25441
25442 PR rtl-optimization/87763
25443 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
25444 New Instruction.
25445
25446 2019-04-11 Tom de Vries <tdevries@suse.de>
25447
25448 * doc/extend.texi (@node Statement Exprs): Note variable shadowing at
25449 max macro using statement expression.
25450
25451 2019-04-11 David Edelsohn <dje.gcc@gmail.com>
25452
25453 * xcoffout.h (xcoff_private_rodata_section_name): Declare.
25454 * xcoffout.c (xcoff_private_rodata_section_name): Define.
25455 * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
25456 read_only_private_data_section using xcoff_private_rodata_section_name.
25457 (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.
25458
25459 2019-04-11 Christophe Lyon <christophe.lyon@linaro.org>
25460
25461 PR target/90016
25462 * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.
25463
25464 2019-04-11 Jakub Jelinek <jakub@redhat.com>
25465
25466 PR rtl-optimization/89965
25467 * dce.c (sp_based_mem_offset): New function.
25468 (find_call_stack_args): Use sp_based_mem_offset.
25469
25470 2019-04-11 Jonathan Wakely <jwakely@redhat.com>
25471
25472 * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.
25473
25474 2019-04-11 Richard Biener <rguenther@suse.de>
25475
25476 PR tree-optimization/90020
25477 * tree-ssa-sccvn.c (vn_reference_may_trap): New function.
25478 * tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
25479 * tree-ssa-pre.c (compute_avail): Use it to not put
25480 possibly trapping references after a call that might not
25481 return into EXP_GEN.
25482 * gcse.c (compute_hash_table_work): Do not elide
25483 marking a block containing a call if the call might not
25484 return.
25485
25486 2019-04-11 Richard Biener <rguenther@suse.de>
25487
25488 PR tree-optimization/90018
25489 * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
25490 Test both SLP and interleaving variants.
25491
25492 2019-04-11 Robin Dapp <rdapp@linux.ibm.com>
25493
25494 * config/s390/8561.md: New file.
25495 * config/s390/driver-native.c (s390_host_detect_local_cpu):
25496 Add arch13 cpu model.
25497 * config/s390/s390-opts.h (enum processor_type): Likewise.
25498 * config/s390/s390.c (s390_get_sched_attrmask): Add arch13.
25499 (s390_get_unit_mask): Likewise.
25500 (s390_is_fpd): Likewise.
25501 (s390_is_fxd): Likewise.
25502 * config/s390/s390.h (s390_tune_attr): Likewise.
25503 * config/s390/s390.md: Include arch13 pipeline description.
25504 * config/s390/s390.opt: Add arch13.
25505
25506 2018-04-10 Steve Ellcey <sellcey@marvell.com>
25507
25508 PR rtl-optimization/87763
25509 * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
25510 New prototype.
25511 * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
25512 New function.
25513 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
25514 New instruction.
25515 (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
25516 (*aarch64_bfi<GPI:mode>4_noand): Ditto.
25517 (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
25518 (*aarch64_bfi<GPI:mode>4_noshift): Ditto.
25519
25520 2019-04-10 Jonathan Wakely <jwakely@redhat.com>
25521
25522 * doc/invoke.texi (Optimize Options): Change "Nevertheless" to
25523 "Although" in -fipa-icf documentation.
25524
25525 * doc/invoke.texi (Debugging Options): Explicitly state the semantics
25526 of using multiple -g options.
25527
25528 2019-04-10 Martin Liska <mliska@suse.cz>
25529
25530 PR gcov-profile/89959
25531 * doc/gcov.texi: Make documentation of -x option
25532 more precise.
25533
25534 2019-04-10 Richard Biener <rguenther@suse.de>
25535
25536 * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
25537 member.
25538 (DR_GROUP_SAME_DR_STMT): Remove.
25539 * tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
25540 * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
25541 replace with assert.
25542 (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
25543 (vect_record_grouped_load_vectors): Remove unreachable code.
25544
25545 2019-04-10 Richard Earnshaw <rearnsha@arm.com>
25546
25547 PR target/90016
25548 * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
25549 obsolete reference to N.
25550
25551 2019-04-10 Jakub Jelinek <jakub@redhat.com>
25552
25553 PR middle-end/90025
25554 * expr.c (store_expr): Set properly size on the MEM passed to
25555 clear_storage.
25556
25557 PR c++/90010
25558 * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
25559 with strlen in between hostsz-3 and hostsz-1 inclusive when no
25560 translation is needed, and when translation is needed, only append
25561 ... if the string length is hostsz or more bytes long. Avoid using
25562 strncpy or strcat.
25563
25564 2019-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
25565
25566 PR target/90024
25567 * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
25568 * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
25569 into three.
25570 * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
25571 differences directly.
25572 (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
25573
25574 2019-04-09 Jakub Jelinek <jakub@redhat.com>
25575
25576 PR translation/90011
25577 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
25578 from diagnostics.
25579 * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
25580 diagnostics.
25581 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
25582 * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
25583 * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
25584 trailing space from -gsplit-dwarf diagnostics.
25585
25586 PR tree-optimization/89998
25587 * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
25588 instead of integer_type_node if possible, don't add ranges if return
25589 type is not compatible with int.
25590 * gimple-fold.c (gimple_fold_builtin_sprintf,
25591 gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
25592 integer_type_node.
25593
25594 2019-04-09 Martin Liska <mliska@suse.cz>
25595
25596 * Makefile.in: Use GENERATOR_CFLAGS for all generators.
25597 * doc/install.texi: Document the new config.
25598
25599 2019-04-09 Richard Sandiford <richard.sandiford@arm.com>
25600
25601 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
25602 use gimple_expr_type for load and store calls. Skip over the
25603 condition argument in a conditional internal function.
25604 Protect use of TREE_INT_CST_LOW.
25605
25606 2019-04-09 Jakub Jelinek <jakub@redhat.com>
25607
25608 PR target/90015
25609 * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
25610 (riscv_merge_decl_attributes): Fix typo in diagnostics. Remove
25611 trailing period from it too.
25612
25613 2019-04-08 wu yuan <wuyuan5@huawei.com>
25614
25615 * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
25616 * config/aarch64/aarch64.md: Add "tsv110.md".
25617 * config/aarch64/tsv110.md: New file.
25618
25619 2019-04-08 Richard Biener <rguenther@suse.de>
25620
25621 PR tree-optimization/90006
25622 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
25623 calls like lrint.
25624
25625 2019-04-08 Andrea Corallo <andrea.corallo@arm.com>
25626
25627 PR target/83033
25628 * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
25629 construction.
25630 (fma_root_node): Likewise.
25631 (func_fma_steering): Likewise.
25632
25633 2019-04-08 Jakub Jelinek <jakub@redhat.com>
25634
25635 PR rtl-optimization/89865
25636 * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.
25637
25638 PR rtl-optimization/89865
25639 * config/i386/i386.md
25640 (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
25641 numbers not to clash with the additional operands[4].
25642 (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
25643 with extra register copy in the middle.
25644
25645 2019-04-08 Martin Liska <mliska@suse.cz>
25646
25647 PR gcov-profile/89961
25648 * doc/gcov.texi: Document data_file.
25649 * gcov.c (generate_results): Add data_info into JSON output.
25650
25651 2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com>
25652
25653 PR tree-optimization/89725
25654 * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer
25655 loop's chrec as invariant symbol.
25656 * tree-chrec.h (chrec_contains_symbols): New parameter.
25657 * tree-data-ref.c (analyze_miv_subscript): Pass new argument.
25658 (build_classic_dist_vector_1, add_other_self_distances): Bypass access
25659 function of loops not in DDR's loop_nest.
25660 * tree-data-ref.h (index_in_loop_nest): Add unreachable check.
25661
25662 2019-04-08 Chenghua Xu <paul.hua.gm@gmail.com>
25663
25664 PR target/89623
25665 * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
25666 Mask.
25667
25668 2019-04-07 Uroš Bizjak <ubizjak@gmail.com>
25669
25670 PR target/89945
25671 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
25672 Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
25673
25674 2019-04-05 Joern Rennecke <joern.rennecke@embecosm.com>
25675
25676 * sched-deps.c (sched_macro_fuse_insns): Check return value of
25677 targetm.fixed_condition_code_regs.
25678
25679 2019-04-05 Richard Biener <rguenther@suse.de>
25680
25681 PR debug/89892
25682 PR debug/89905
25683 * tree-cfgcleanup.c (remove_forwarder_block): Always move
25684 debug bind stmts but reset them if they are not valid at the
25685 destination.
25686
25687 2019-04-05 Martin Liska <mliska@suse.cz>
25688
25689 PR translation/89936
25690 * collect-utils.c (collect_execute): Use %< and %>, or %qs in
25691 order to wrap keywords or arguments.
25692 * collect2.c (main): Likewise.
25693 (scan_prog_file): Likewise.
25694 (scan_libraries): Likewise.
25695 * common/config/riscv/riscv-common.c
25696 (riscv_subset_list::parsing_subset_version): Likewise.
25697 (riscv_subset_list::parse_std_ext): Likewise.
25698 * config/aarch64/aarch64.c (aarch64_override_options_internal):
25699 Likewise.
25700 * config/arm/arm.c (arm_option_override): Likewise.
25701 * config/cris/cris.c (cris_print_operand): Likewise.
25702 * config/darwin-c.c (darwin_pragma_options): Likewise.
25703 (darwin_pragma_unused): Likewise.
25704 (darwin_pragma_ms_struct): Likewise.
25705 * config/ft32/ft32.c (ft32_print_operand): Likewise.
25706 * config/i386/i386.c (print_reg): Likewise.
25707 (ix86_print_operand): Likewise.
25708 * config/i386/xm-djgpp.h: Likewise.
25709 * config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
25710 * config/m32c/m32c.c (m32c_option_override): Likewise.
25711 * config/msp430/msp430.c (msp430_option_override): Likewise.
25712 * config/nds32/nds32.c (nds32_option_override): Likewise.
25713 * config/nvptx/mkoffload.c (main): Likewise.
25714 * config/rx/rx.c (rx_print_operand): Likewise.
25715 (valid_psw_flag): Likewise.
25716 * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
25717 (vms_pragma_nomember_alignment): Likewise.
25718 (vms_pragma_extern_model): Likewise.
25719 * lto-wrapper.c (compile_offload_image): Likewise.
25720 * omp-offload.c (oacc_parse_default_dims): Likewise.
25721 * symtab.c (symtab_node::verify_base): Likewise.
25722 * tlink.c (recompile_files): Likewise.
25723 (start_tweaking): Likewise.
25724 * tree-profile.c (parse_profile_filter): Likewise.
25725
25726 2019-04-05 Richard Sandiford <richard.sandiford@arm.com>
25727
25728 PR tree-optimization/89956
25729 * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
25730 multiple negates of the same value.
25731
25732 2019-04-04 Martin Sebor <msebor@redhat.com>
25733
25734 PR middle-end/89957
25735 PR middle-end/89911
25736 * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
25737 have the same precision since the function crashes otherwise.
25738 * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
25739 has non-zero arguments.
25740
25741 2019-04-04 Martin Sebor <msebor@redhat.com>
25742
25743 PR middle-end/89934
25744 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
25745 out if the number of arguments is less than expected.
25746
25747 2019-04-04 Jeff Law <law@redhat.com>
25748
25749 PR rtl-optimization/89399
25750 * ree.c (combine_set_extension): Use single_set rather than
25751 digging into PATTERN for items on the candidate list.
25752 (combine_reaching_defs): Likewise.
25753
25754 2019-04-04 Richard Sandiford <richard.sandiford@arm.com>
25755
25756 PR rtl-optimization/46590
25757 * loop-invariant.c (find_defs): Move df_remove_problem and
25758 df_process_deferred_rescans to move_invariants.
25759 Move df_live_add_problem and df_live_set_all_dirty calls
25760 to move_invariants.
25761 (move_invariants): Likewise.
25762 (move_loop_invariants): Likewise, making the df_live calls
25763 conditional on -O. Remove the problem again if we added it
25764 locally.
25765
25766 2019-04-03 qing zhao <qing.zhao@oracle.com>
25767
25768 PR tree-optimization/89730
25769 * ipa-inline.c (can_inline_edge_p): Delete the checking for
25770 -flive-patching=inline-only-static.
25771 (can_inline_edge_by_limits_p): Add the checking for
25772 -flive-patching=inline-only-static and grant always_inline
25773 even when -flive-patching=inline-only-static is specified.
25774
25775 2019-04-03 Jeff Law <law@redhat.com>
25776
25777 PR rtl-optimization/81025
25778 * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
25779
25780 2019-04-03 Richard Biener <rguenther@suse.de>
25781
25782 PR tree-optimization/84101
25783 * tree-vect-stmts.c: Include explow.h for hard_function_value,
25784 regs.h for hard_regno_nregs.
25785 (cfun_returns): New helper.
25786 (vect_model_store_cost): When vectorizing a store to a decl
25787 we return and the function ABI returns in a multi-reg location
25788 account for the possible spilling that will happen.
25789
25790 2019-04-03 Andreas Krebbel <krebbel@linux.ibm.com>
25791
25792 * config/s390/s390.c (s390_legitimate_address_p): Reject long
25793 displacement addresses for vector mode operands.
25794
25795 2019-04-03 Claudiu Zissulescu <claziss@synopsys.com>
25796
25797 * config/arc/arc.c (GMASK_LEN): Define.
25798 (arc_restore_callee_saves): Restore first blink when
25799 !optimize_size.
25800
25801 2019-04-03 Sudakshina Das <sudi.das@arm.com>
25802
25803 * doc/extend.texi: Add deprecated comment on sign-return-address
25804 function attribute and add mbranch-protection.
25805 * doc/invoke.texi: Add bti to the options for mbranch-protection.
25806
25807 2019-04-03 Richard Biener <rguenther@suse.de>
25808
25809 PR lto/89896
25810 * lto-wrapper.c (run_gcc): Avoid implicit rules making
25811 the all target phony.
25812
25813 2019-04-02 Uroš Bizjak <ubizjak@gmail.com>
25814
25815 PR target/89902
25816 PR target/89903
25817 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
25818 Return false for variable DImode shifts.
25819 (dimode_scalar_chain::compute_convert_gain): Do not handle
25820 register count operand in variable DImode shifts.
25821 (dimode_scalar_chain::make_vector_copies): Remove support to copy
25822 count argument of a variable shift instruction to a vector register.
25823 (dimode_scalar_chain::convert_reg): Remove support to convert
25824 count argument of a variable shift instruction.
25825
25826 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
25827
25828 PR rtl-optimization/84206
25829 * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
25830 iterating over loop headers.
25831
25832 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
25833
25834 PR rtl-optimization/85876
25835 * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
25836 beyond the original fence.
25837
25838 2019-04-02 Ulrich Weigand <uweigand@de.ibm.com>
25839
25840 * config.gcc: Mark spu* targets as deprecated/obsolete.
25841
25842 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
25843
25844 * config/s390/s390-builtin-types.def: New builtin function type
25845 definitions. Remove unused types.
25846 * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
25847 (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
25848 (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
25849 overloaded builtins.
25850 (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
25851 (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
25852 * config/s390/vecintrin.h (vec_float): New builtin macro definition.
25853 (vec_double, vec_signed, vec_unsigned): Define to use the new
25854 overloaded builtins.
25855 * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
25856 Remove expanders.
25857
25858 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
25859
25860 * config/s390/s390-builtin-types.def: New builtin function type
25861 definitions.
25862 * config/s390/s390-builtins.def (s390_vec_search_string_cc)
25863 (s390_vec_search_string_until_zero_cc): New overloaded builtins.
25864 (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
25865 (s390_vstrszh, s390_vstrszf): New low-level builtins.
25866 * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
25867 constant definitions.
25868 * config/s390/vecintrin.h (vec_search_string_cc)
25869 (vec_search_string_until_zero_cc): New builtin name definitions.
25870 * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
25871 expanders.
25872 ("vec_vstrs<mode>"): New insn definition.
25873
25874 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
25875
25876 * config/s390/s390-builtin-types.def: Add new builtin function
25877 types.
25878 * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
25879 New overloaded builtins.
25880 (s390_vec_sldb, s390_vec_srdb): New low-level builtins. and
25881 s390_vsrd.
25882 * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
25883 (UNSPEC_VEC_SLDBYTE): ... this.
25884 (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
25885 * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
25886 definitions.
25887 * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
25888 Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
25889 ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.
25890
25891 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
25892
25893 ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
25894 New insn definition.
25895 * config/s390/vx-builtins.md (V_HW_HSD): Move to ...
25896 * config/s390/vector.md (V_HW_HSD): ... here.
25897
25898 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
25899
25900 * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
25901 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
25902 ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
25903 ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
25904 New insn definitions.
25905
25906 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
25907
25908 * config/s390/s390-builtin-types.def: Add new builtin function type.
25909 * config/s390/s390-builtins.def: Add overloaded builtin
25910 s390_vec_reve and low-level builtins for s390_vler and s390_vster.
25911 * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
25912 * config/s390/vecintrin.h (vec_reve): New builtin name definition.
25913 * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
25914 ("eltswap<mode>"): New expander.
25915 ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
25916 insn definitions.
25917
25918 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
25919
25920 * config/s390/s390-builtin-types.def: Add new builtin function types.
25921 * config/s390/s390-builtins.def: Add overloaded builtin
25922 s390_vec_revb. Add low-level builtins for vlbr and vstbr
25923 instructions.
25924 * config/s390/vecintrin.h (vec_revb): New builtin name definition.
25925 * config/s390/vector.md (VT_HW_HSDT): New mode iterator.
25926 ("bswap<mode>"): New expander.
25927 ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.
25928
25929 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
25930
25931 * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
25932 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
25933 vector builtin version number in __VEC__.
25934
25935 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
25936
25937 * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
25938 iterators.
25939 (SFSI): New mode attribute.
25940 ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
25941 ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
25942 rename to ...
25943 ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
25944 ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
25945 ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
25946 ("floatsi<mode>2"): Add wcefb instruction.
25947
25948 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
25949
25950 * config/s390/s390.md ("xde"): Extend mode attribute to vector types.
25951 * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
25952 mode iterators.
25953 ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
25954 ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
25955 support 32 bit fp-int conversions. Rename to ...
25956 ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
25957 ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
25958 ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
25959 ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
25960 ... to these.
25961
25962 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
25963
25964 * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
25965 if-then-else constructs if we can use the select instruction.
25966 * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.
25967
25968 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
25969
25970 * config/s390/s390.md ("*popcountdi_arch13_cc")
25971 ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
25972 definition.
25973 ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
25974 Append _z196 to make it ...
25975 ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
25976 ("popcounthi2_z196"): ... this.
25977 ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
25978 ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.
25979
25980 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
25981
25982 * config/s390/s390.c (s390_canonicalize_comparison): Convert
25983 certain compares for arch13 in order to make use of the condition
25984 code result produced by the new instructions.
25985 (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
25986 nxrk, and nxgrk instruction patterns.
25987 * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
25988 (inv_no): Add new code iterator together with some attributes.
25989 ("*andc_split_<mode>"): Disable splitter for arch13.
25990 ("*<ANDOR:bitops_name>c<GPR:mode>_cc")
25991 ("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
25992 ("*<ANDOR:bitops_name>c<GPR:mode>")
25993 ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
25994 ("*n<ANDOR:inv_bitops_name><mode>_cconly")
25995 ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
25996 ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.
25997
25998 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
25999
26000 * common/config/s390/s390-common.c (processor_flags_table): New
26001 entry for arch13.
26002 * config.gcc: Support arch13 with the --with-arch= configure flag.
26003 * config/s390/driver-native.c (s390_host_detect_local_cpu):
26004 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
26005 * config/s390/s390.c (s390_get_sched_attrmask)
26006 (s390_get_unit_mask): Add PROCESSOR_ARCH13.
26007 * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
26008 * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
26009 (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
26010 (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
26011 definitions.
26012 * config/s390/s390.opt: Support arch13 as processor type in
26013 command line options.
26014
26015 2019-04-02 Martin Liska <mliska@suse.cz>
26016
26017 PR translation/89912
26018 * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
26019 Fix param description of graphite-max-arrays-per-scop.
26020
26021 2019-04-02 Eric Botcazou <ebotcazou@adacore.com>
26022
26023 * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
26024 (ASAN_CC1_SPEC): Use it in 64-bit mode.
26025 * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.
26026
26027 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
26028
26029 PR rtl-optimization/85412
26030 * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
26031 sel_sched_region_1, not after.
26032
26033 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
26034
26035 PR rtl-optimization/86928
26036 * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
26037 compute_live if necessary.
26038 (sel_redirect_edge_and_branch): Likewise.
26039
26040 2019-04-01 Vladimir Makarov <vmakarov@redhat.com>
26041
26042 PR rtl-optimization/89865
26043 * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
26044 register if it is a part of small class.
26045
26046 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
26047
26048 PR rtl-optimization/87273
26049 * sel-sched-ir.c (merge_fences): Remove assert.
26050
26051 2019-04-01 Richard Biener <rguenther@suse.de>
26052
26053 PR tree-optimization/46590
26054 * domwalk.h (dom_walker::dom_walker): Consolidate constructors.
26055 (dom_walker::m_reachability): Add in place of...
26056 (dom_walker::m_skip_unreachable_blocks): ...this.
26057 * domwalk.c (dom_walker::dom_walker): Consoliate constructors.
26058 Move complex initialization ...
26059 (dom_walker::walk): Here. Especially compute m_bb_to_rpo
26060 lazily and initialize edge flags on each invocation.
26061 (dom_walker::bb_reachable): Use m_reachability.
26062
26063 2019-04-01 Martin Liska <mliska@suse.cz>
26064
26065 PR driver/89861
26066 * opt-suggestions.c (option_proposer::build_option_suggestions):
26067 Add variant without any argument in order to provide better
26068 hints.
26069
26070 2019-04-01 Richard Biener <rguenther@suse.de>
26071
26072 PR c/71598
26073 * gimple.c: Include langhooks.h.
26074 (gimple_get_alias_set): Treat enumeral types as the underlying
26075 integer type.
26076
26077 2019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org>
26078 Eric Botcazou <ebotcazou@adacore.com>
26079
26080 PR rtl-optimization/89862
26081 * rtl.h (word_register_operation_p): Exclude CONST_INT from operations
26082 that operates on the full registers for WORD_REGISTER_OPERATIONS
26083 architectures.
26084
26085 2019-03-29 Jim Wilson <jimw@sifive.com>
26086
26087 * common/config/riscv/riscv-common.c (riscv_parse_arch_string):
26088 Clear MASK_RVC and then set if C subset supported.
26089
26090 2019-03-29 Jakub Jelinek <jakub@redhat.com>
26091
26092 PR c/89872
26093 * gimplify.c (gimplify_compound_literal_expr): Don't optimize a
26094 non-addressable complit into its initializer if it is volatile.
26095
26096 2019-03-29 Roman Zhuykov <zhroma@ispras.ru>
26097
26098 * opts-common.c (integral_argument): Set errno properly in one case.
26099
26100 2019-03-29 Martin Liska <mliska@suse.cz>
26101
26102 * doc/invoke.texi: Remove -Wchkp from documentation.
26103
26104 2019-03-29 Martin Liska <mliska@suse.cz>
26105
26106 * dbgcnt.c (print_limit_reach): New function.
26107 (dbg_cnt): Use it.
26108
26109 2019-03-29 Martin Liska <mliska@suse.cz>
26110
26111 * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
26112 (dbg_cnt_process_opt): Parse first tokens aas
26113 dbg_cnt_process_single_pair is also using strtok.
26114
26115 2019-03-29 Jakub Jelinek <jakub@redhat.com>
26116
26117 PR rtl-optimization/87485
26118 * function.c (expand_function_end): Move stack_protect_epilogue
26119 before loading of return value into hard register(s).
26120
26121 2019-03-28 Jakub Jelinek <jakub@redhat.com>
26122
26123 PR middle-end/89621
26124 * tree-inline.h (struct copy_body_data): Add
26125 dont_remap_vla_if_no_change flag.
26126 * tree-inline.c (remap_type_3, remap_type_2): New functions.
26127 (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
26128 and remap_type_2 returns false.
26129 * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
26130 Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
26131 only from where it is copied to nested contexts.
26132
26133 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
26134
26135 PR target/89865
26136 * config/i386/i386.md (RMW operation with LEA peephole):
26137 Use LEAMODE mode attribute instead of SWI mode iterator for
26138 LEA pattern.
26139
26140 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
26141
26142 PR target/89848
26143 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
26144 Also process XEXP (src, 0) of a shift insn.
26145
26146 2019-03-28 David Malcolm <dmalcolm@redhat.com>
26147
26148 PR middle-end/89725
26149 * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
26150 Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.
26151
26152 2019-03-28 Jakub Jelinek <jakub@redhat.com>
26153
26154 * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
26155 test.
26156 (cprop_hardreg_bb, cprop_hardreg_debug): New functions.
26157 (pass_cprop_hardreg::execute): Use those. Don't repeat bb processing
26158 immediately after first one with df_analyze in between, but rather
26159 process all bbs, queueing ones that need second pass in a worklist,
26160 df_analyze, process queued debug insn changes and if second pass is
26161 needed, process bbs from worklist, df_analyze, process queued debug
26162 insns again.
26163
26164 * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
26165 or CALL_P instead of INSN_P && !DEBUG_INSN_P.
26166 (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.
26167
26168 2019-03-28 Jonathan Wakely <jwakely@redhat.com>
26169
26170 PR c/79022
26171 * gengtype.h (create_nested_ptr_option): Fix parameter names to match
26172 definition.
26173
26174 2019-03-27 Mateusz B <mateuszb@poczta.onet.pl>
26175
26176 PR target/85667
26177 * config/i386/i386.c (ix86_function_value_1): Call the newly added
26178 function for 32-bit MS_ABI.
26179 (function_value_ms_32): New function.
26180
26181 2019-03-27 Andrew Stubbs <ams@codesourcery.com>
26182
26183 * config/gcn/gcn.md (CC_SAVE_REG): New constant.
26184 (movdi): Call gen_movdi_symbol_save_scc.
26185 (gen_movdi_symbol_save_scc): New insn and split.
26186
26187 2019-03-27 Peter Bergner <bergner@linux.ibm.com>
26188
26189 PR rtl-optimization/89313
26190 * function.c (matching_constraint_num): New static function.
26191 (match_asm_constraints_1): Use it. Fixup white space and comment.
26192 Don't replace inputs with non-matching constraints which conflict
26193 with early clobber outputs.
26194
26195 2019-03-27 Jeff Law <law@redhat.com>
26196
26197 PR rtl-optimization/87761
26198 PR rtl-optimization/89826
26199 * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
26200 slightly later.
26201 (pass_cprop_hardreg::execute): Call df_analyze after adding the
26202 note problem to get REG_DEAD/REG_UNUSED notes updated.
26203
26204 2019-03-27 Richard Biener <rguenther@suse.de>
26205
26206 PR tree-optimization/89463
26207 * tree-ssa-dce.c (remove_dead_stmt): Take output vector to
26208 queue edges to remove.
26209 (eliminate_unnecessary_stmts): Remove dead PHIs alongside
26210 dead stmts. Delay edge removal until PHIs are removed to
26211 make debug-stmt creation not confused by seemingly degenerate
26212 PHIs.
26213
26214 2019-03-27 Alan Modra <amodra@gmail.com>
26215
26216 * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
26217 throughout file.
26218 * config/rs6000/darwin.h: Likewise.
26219 * config/rs6000/rs6000.c: Likewise.
26220
26221 2019-03-27 Alan Modra <amodra@gmail.com>
26222
26223 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
26224 assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting.
26225
26226 2019-03-26 Andrew Waterman <andrew@sifive.com>
26227 Jim Wilson <jimw@sifive.com>
26228
26229 * config/riscv/generic.md (generic_alu, generic_load, generic_store)
26230 (generic_xfer, generic_branch, generic_imul, generic_idivsi)
26231 (generic_idivdi, generic_fmul_single, generic_fmul_double)
26232 (generic_fdiv, generic_fsqrt): Add check for generic tune.
26233 (generic_alu): Add auipc to type list.
26234 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
26235 (riscv_microarchitecture): Declare.
26236 * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
26237 * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
26238 field.
26239 (riscv_microarchitecture): New.
26240 (sifive_7_tune_info): New.
26241 (riscv_cpu_info_table): Add microarchitecture value for rocket and
26242 size. Add sifive-3-series, sifive-5-series, and sifive-7-series
26243 entries.
26244 (riscv_store_data_bypass_p): New.
26245 (riscv_option_override): Set riscv_microarchitecture from
26246 cpu->microarchitecture.
26247 * config/riscv/riscv.md: Include sifive-7.md.
26248 (type): Add auipc.
26249 (tune): New.
26250 (auipc<mode>): Change type to auipc.
26251 (restore_stack_nonlocal): New.
26252 * config/riscv/sifive-7.md: New.
26253 * doc/invoke.texi (RISC-V Options): Update mtune docs.
26254
26255 2019-03-26 Uroš Bizjak <ubizjak@gmail.com>
26256
26257 PR target/89827
26258 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
26259 Also process XEXP (src, 0) of a shift insn.
26260
26261 2019-03-26 Richard Biener <rguenther@suse.de>
26262
26263 * tree-inline.c (remap_gimple_stmt): Cache gimple_block.
26264 (copy_debug_stmt): Likewise.
26265 (expand_call_inline): Likewise.
26266 (copy_bb): Avoid redundant lookup & set of gimple_block.
26267 * gimple-low.c (lower_gimple_return): Likewise.
26268 (lower_builtin_setjmp): Likewise.
26269
26270 2019-03-26 Jakub Jelinek <jakub@redhat.com>
26271
26272 * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
26273 is constant 0, turn into static const data member initialized to false.
26274 (hash_table::hash_table): Only initialize m_gather_mem_stats #if
26275 GATHER_STATISTICS. Add ATTRIBUTE_UNUSED to gather_mem_stats param.
26276
26277 2019-03-26 Jason Merrill <jason@redhat.com>
26278 Jakub Jelinek <jakub@redhat.com>
26279
26280 * mem-stats.h (mem_alloc_description::unregister_descriptor): New
26281 method.
26282 (mem_alloc_description::release_object_overhead): Fix comment typos.
26283 * hash-table.h (hash_table::~hash_table): Call
26284 release_instance_overhead only if m_entries is non-NULL, otherwise
26285 call unregister_descriptor.
26286
26287 2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com>
26288
26289 PR tree-optimization/81740
26290 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
26291 In case of outer loop vectorization, check for backward dependence
26292 at the inner loop if outer loop dependence is reversed.
26293
26294 2019-03-26 Alan Modra <amodra@gmail.com>
26295
26296 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
26297 rs6000_vector_mem init. Correct wI and wJ comment.
26298
26299 2019-03-25 Alexander Monakov <amonakov@ispras.ru>
26300
26301 PR rtl-optimization/88347
26302 PR rtl-optimization/88423
26303 * sched-deps.c (sched_analyze_insn): Take into account that for
26304 tablejumps the barrier appears after a label and a jump_table_data.
26305
26306 2019-03-25 Martin Sebor <msebor@redhat.com>
26307
26308 PR c/89812
26309 * c-common.c (check_user_alignment): Rename local. Correct maximum
26310 alignment in diagnostic. Avoid assuming argument fits in SHWI,
26311 convert it to UHWI when it fits.
26312
26313 2019-03-25 Johan Karlsson <johan.karlsson@enea.com>
26314
26315 PR debug/86964
26316 * dwarf2out.c (premark_used_variables): New function.
26317 (prune_unused_types_walk): Do not mark not premarked external
26318 variables.
26319 (prune_unused_types): Call premark_used_variables.
26320
26321 2019-03-25 Vladimir Makarov <vmakarov@redhat.com>
26322
26323 PR rtl-optimization/89676
26324 * lra-constraints.c (curr_insn_transform): Do match reload for
26325 early clobbers when the match was successful only for different
26326 registers.
26327
26328 2019-03-25 Martin Sebor <msebor@redhat.com>
26329
26330 * doc/extend.texi (Common Type Attributes): Document vector_size.
26331 (Common Variable Attributes): Mention size constraint. Correct
26332 quoting and typos.
26333 (Vector Extensions): Use @dfn when defining bas type. Clarify
26334 base type and size constraints.
26335
26336 2019-03-25 Richard Biener <rguenther@suse.de>
26337
26338 PR tree-optimization/89789
26339 * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
26340 changes from non-undefined back to undefined.
26341
26342 2019-03-25 Thomas Otto <thomas.otto@pdv-fs.de>
26343
26344 * dwarf2out.c (comp_dir_string): cached_wd could be set to both a
26345 heap string and a gc string, but since this variable is unknown to
26346 ggc the gc string might get reused and corrupted. Fixed by always
26347 using a heap string.
26348
26349 2019-03-25 Richard Biener <rguenther@suse.de>
26350
26351 PR tree-optimization/89779
26352 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
26353 to remove IV defs, delay actual removal.
26354 (tree_ssa_iv_optimize_loop): Likewise. Avoid SCEV reset.
26355 (tree_ssa_iv_optimize): Remove eliminated IV defs at the
26356 very end, properly also reset loop control IV information.
26357
26358 2019-03-25 Richard Biener <rguenther@suse.de>
26359
26360 PR tree-optimization/89802
26361 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
26362 move EH data to folded stmt.
26363
26364 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
26365
26366 * config/s390/s390-builtin-types.def: Remove few unused types and
26367 fix sort order for others.
26368
26369 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
26370
26371 * config/s390/s390-c.c (s390_fn_types_compatible): Print the
26372 expected and found types with -mdebug during builtin matching.
26373
26374 2019-03-25 Richard Biener <rguenther@suse.de>
26375
26376 PR middle-end/89790
26377 * fold-const.c (operand_equal_p): Revert last change with
26378 updated comment.
26379
26380 2019-03-24 Segher Boessenkool <segher@kernel.crashing.org>
26381
26382 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
26383 notes for the result of the __tls_get_addr calls.
26384 * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.
26385
26386 2019-03-24 Jeff Law <law@redhat.com>
26387
26388 * config/bfin/bfin.md (movpdi): Fix length for alternative 1.
26389
26390 PR rtl-optimization/87761
26391 * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET,
26392 not INSN. Also check RTX_FRAME_RELATED_P. Queue insns for DF rescan
26393 as needed.
26394 (pass_cprop_hardreg::execute): Add df note problem and defer insn
26395 rescans. Reprocess blocks as needed, calling df_analyze before
26396 reprocessing. Always call df_analyze before fixing up debug bind
26397 insns.
26398
26399 2019-03-23 Segher Boessenkool <segher@kernel.crashing.org>
26400
26401 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
26402 big endian.
26403
26404 2019-03-22 Andrew Pinski <apinski@marvell.com>
26405
26406 * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
26407 attrribute for uxtw.
26408
26409 2019-03-26 Jeff Law <law@redhat.com>
26410
26411 PR rtl-optimization/87761
26412 * config/mips/mips-protos.h (mips_split_move): Add new argument.
26413 (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move.
26414 (mips_split_move): Accept new INSN argument. Try to forward SRC
26415 into the next instruction.
26416 (mips_split_move_insn): Pass INSN through to mips_split_move.
26417
26418 2019-03-22 Vladimir Makarov <vmakarov@redhat.com>
26419
26420 PR rtl-optimization/89676
26421 * lra-constraints.c (curr_insn_transform): Do match reload for
26422 early clobbers even if the match was successful.
26423
26424 2019-03-22 Jakub Jelinek <jakub@redhat.com>
26425
26426 PR c++/87481
26427 * doc/invoke.texi (-fconstexpr-ops-limit=): Document.
26428
26429 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com>
26430
26431 * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
26432
26433 2019-03-22 Jakub Jelinek <jakub@redhat.com>
26434
26435 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
26436 <avx512>_fmsub_<mode>_mask3<round_name>,
26437 <avx512>_fnmadd_<mode>_mask3<round_name>,
26438 <avx512>_fnmsub_<mode>_mask3<round_name>,
26439 avx512f_vmfmadd_<mode>_mask3<round_name>,
26440 avx512f_vmfmsub_<mode>_mask3<round_name>,
26441 *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
26442 instead of register_operand and %v instead of v for match_operand 1.
26443 (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
26444 (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use
26445 <round_nimm_predicate> instead of register_operand and %v instead of v
26446 for match_operand 1.
26447
26448 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
26449 <avx512>_fmadd_<mode>_mask3<round_name>,
26450 <avx512>_fmsub_<mode>_mask<round_name>,
26451 <avx512>_fmsub_<mode>_mask3<round_name>,
26452 <avx512>_fnmadd_<mode>_mask<round_name>,
26453 <avx512>_fnmadd_<mode>_mask3<round_name>,
26454 <avx512>_fnmsub_<mode>_mask<round_name>,
26455 <avx512>_fnmsub_<mode>_mask3<round_name>,
26456 <avx512>_fmaddsub_<mode>_mask<round_name>,
26457 <avx512>_fmaddsub_<mode>_mask3<round_name>,
26458 <avx512>_fmsubadd_<mode>_mask<round_name>,
26459 <avx512>_fmsubadd_<mode>_mask3<round_name>): Use
26460 <round_nimm_predicate> instead of nonimmediate_operand.
26461 (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
26462 fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>):
26463 Use register_operand instead of <round_nimm_predicate> for the
26464 operand that needs to match output.
26465 (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
26466 *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>):
26467 Likewise. Formatting fixes.
26468
26469 PR target/89784
26470 * config/i386/i386.c (enum ix86_builtins): Remove
26471 IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
26472 * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
26473 __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
26474 __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
26475 __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
26476 __builtin_ia32_vfmsubss3_mask3): New builtins.
26477 * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>,
26478 avx512f_vmfmadd_<mode>_mask3<round_name>,
26479 avx512f_vmfmadd_<mode>_maskz_1<round_name>,
26480 *avx512f_vmfmsub_<mode>_mask<round_name>,
26481 avx512f_vmfmsub_<mode>_mask3<round_name>,
26482 *avx512f_vmfmasub_<mode>_maskz_1<round_name>,
26483 *avx512f_vmfnmadd_<mode>_mask<round_name>,
26484 *avx512f_vmfnmadd_<mode>_mask3<round_name>,
26485 *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
26486 *avx512f_vmfnmsub_<mode>_mask<round_name>,
26487 avx512f_vmfnmsub_<mode>_mask3<round_name>,
26488 *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns.
26489 (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
26490 * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
26491 _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
26492 _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
26493 _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
26494 _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
26495 _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
26496 _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
26497 _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
26498 _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
26499 _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
26500 _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
26501 _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
26502 _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
26503 _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
26504 _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
26505 _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
26506 _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
26507 _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
26508 _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
26509 _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.
26510
26511 2019-03-21 Martin Sebor <msebor@redhat.com>
26512
26513 PR tree-optimization/89350
26514 * builtins.c (compute_objsize): Also ignore offsets whose upper
26515 bound is negative.
26516 * gimple-ssa-warn-restrict.c (builtin_memref): Add new member.
26517 (builtin_memref::builtin_memref): Initialize new member.
26518 Allow EXPR to be null.
26519 (builtin_memref::extend_offset_range): Replace local with a member.
26520 Avoid assuming pointer offsets are unsigned.
26521 (builtin_memref::set_base_and_offset): Determine base object
26522 before computing offset range.
26523 (builtin_access::builtin_access): Handle memset.
26524 (builtin_access::generic_overlap): Replace local with a member.
26525 (builtin_access::strcat_overlap): Same.
26526 (builtin_access::overlap): Same.
26527 (maybe_diag_overlap): Same.
26528 (maybe_diag_access_bounds): Same.
26529 (wrestrict_dom_walker::check_call): Handle memset.
26530 (check_bounds_or_overlap): Same.
26531
26532 2019-03-21 Jan Hubicka <hubicka@ucw.cz>
26533 Jakub Jelinek <jakub@redhat.com>
26534
26535 PR lto/89692
26536 * tree.c (fld_type_variant, fld_incomplete_type_of,
26537 fld_process_array_type): Call fld->pset.add and don't call
26538 add_tree_to_fld_list if it returns true.
26539 (free_lang_data_in_type): Similarly with self-recursive call. Purge
26540 non-marked types from TYPE_NEXT_VARIANT list.
26541 (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t).
26542
26543 2019-03-21 Jakub Jelinek <jakub@redhat.com>
26544
26545 * hash-table.h (hash_table): Add Lazy template parameter defaulted
26546 to false, if true, don't alloc_entries during construction, but defer
26547 it to the first method that needs m_entries allocated.
26548 (hash_table::hash_table, hash_table::~hash_table,
26549 hash_table::alloc_entries, hash_table::find_empty_slot_for_expand,
26550 hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow,
26551 hash_table::clear_slot, hash_table::traverse_noresize,
26552 hash_table::traverse, hash_table::iterator::slide): Adjust all methods.
26553 * hash-set.h (hash_set): Add Lazy template parameter defaulted to
26554 false.
26555 (hash_set::contains): If Lazy is true, use find_slot_with_hash with
26556 NO_INSERT instead of find_with_hash.
26557 (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter,
26558 hash_set::m_table): Add Lazy to template params of hash_table.
26559 (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param.
26560 * attribs.c (test_attribute_exclusions): Likewise.
26561 * hash-set-tests.c (test_set_of_strings): Add iterator tests for
26562 hash_set. Add tests for hash_set with Lazy = true.
26563
26564 2019-03-21 Richard Biener <rguenther@suse.de>
26565
26566 PR tree-optimization/89779
26567 * tree.c (tree_nop_conversion): Consolidate and fix defensive
26568 checks with respect to released SSA names now having error_mark_node
26569 type.
26570 * fold-const.c (operand_equal_p): Likewise.
26571
26572 2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com>
26573
26574 PR target/89775
26575 * config/s390/s390.c (global_not_special_regno_p): Move to make it
26576 available to ...
26577 (s390_optimize_register_info): Use global_not_special_regno_p to
26578 check for global regs.
26579
26580 2019-03-20 Jakub Jelinek <jakub@redhat.com>
26581
26582 PR target/89752
26583 * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
26584 update this_alternative nor this_alternative_set.
26585
26586 2019-03-19 Jim Wilson <jimw@sifive.com>
26587
26588 PR target/89411
26589 * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals
26590 align, size, offset. Use them to handle a BLKmode reference. Update
26591 comment.
26592 (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p.
26593
26594 2019-03-19 Jakub Jelinek <jakub@redhat.com>
26595
26596 PR rtl-optimization/89768
26597 * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
26598 instead of GEN_INT.
26599 (unroll_loop_runtime_iterations): Likewise.
26600
26601 2019-03-19 Martin Sebor <msebor@redhat.com>
26602
26603 PR tree-optimization/89644
26604 * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p
26605 rather than endptr as an indicator of nul-termination.
26606
26607 PR tree-optimization/89644
26608 * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated
26609 arrays in determining sequence sizes in strncpy and stpncpy.
26610
26611 2019-03-19 Martin Liska <mliska@suse.cz>
26612
26613 PR middle-end/89737
26614 * predict.c (combine_predictions_for_bb): Empty likely_edges and
26615 unlikely_edges if there's an edge that belongs to both these sets.
26616
26617 2018-03-19 Segher Boessenkool <segher@kernel.crashing.org>
26618
26619 PR target/89746
26620 * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a
26621 non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned,
26622 go via a stack temporary.
26623
26624 2019-03-19 Jakub Jelinek <jakub@redhat.com>
26625
26626 PR target/89378
26627 * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
26628 instead of gen_rtx_SUBREG.
26629 * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.
26630
26631 2019-03-19 Richard Biener <rguenther@suse.de>
26632
26633 PR debug/88389
26634 * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
26635
26636 2019-03-19 Jan Hubicka <hubicka@ucw.cz>
26637
26638 PR lto/87809
26639 PR lto/89335
26640 * tree.c (free_lang_data_in_decl): Do not free context of C++
26641 destrutors.
26642
26643 2019-03-19 Jakub Jelinek <jakub@redhat.com>
26644
26645 PR target/89506
26646 * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use
26647 subs for the first alternative except when operands[3] is 1.
26648
26649 PR target/89752
26650 * gimplify.c (gimplify_asm_expr): For output argument with
26651 TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
26652 diagnose error.
26653
26654 2019-03-19 Eric Botcazou <ebotcazou@adacore.com>
26655
26656 PR rtl-optimization/89753
26657 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
26658 explicit unrolling factor even more robust.
26659
26660 2019-03-19 Jakub Jelinek <jakub@redhat.com>
26661
26662 PR target/89726
26663 * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
26664 compensation use x2 += 1 instead of x2 -= -1 and when honoring
26665 signed zeros, do another copysign after the compensation.
26666
26667 2019-03-18 Martin Sebor <msebor@redhat.com>
26668
26669 PR tree-optimization/89720
26670 * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min
26671 more conservatively, the same as anti-range.
26672
26673 2019-03-18 Richard Biener <rguenther@suse.de>
26674
26675 PR middle-end/88945
26676 * tree-ssanames.c (release_ssa_name_fn): For released SSA names
26677 use a TREE_TYPE of error_mark_node to avoid ICEs when dumping
26678 basic-blocks that are removed. Remove restoring SSA_NAME_VAR.
26679 * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking.
26680
26681 2019-03-18 Andrew Stubbs <ams@codesourcery.com>
26682
26683 * config/gcn/gcn-run.c (struct output): Make next_output unsigned.
26684 Extend queue to 1024 entries.
26685 Add "consumed" field.
26686 (gomp_print_output): Remove print_index parameter.
26687 Add final parameter.
26688 Change limit to unsigned.
26689 Use consumed field to implement circular buffer.
26690 Detect interrupted print in final pass.
26691 Flush output at the end.
26692 (run): Update gomp_print_output usage.
26693 (main): Initialize kernargs->output_data.consumed.
26694
26695 2019-03-18 Richard Sandiford <richard.sandiford@arm.com>
26696
26697 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the
26698 calculation of the minimum number of scalar iterations for
26699 fully-predicated loops.
26700
26701 2019-03-18 Martin Jambor <mjambor@suse.cz>
26702
26703 PR tree-optimization/89546
26704 * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
26705 any propagation to its children took place.
26706
26707 2019-03-18 Andrew Burgess <andrew.burgess@embecosm.com>
26708
26709 PR target/89627
26710 * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset
26711 parameter, and make use of it.
26712 (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single.
26713
26714 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
26715
26716 * config/arc/arc.opt (mcode-density-frame): Get the inital value
26717 from TARGET_CODE_DENSITY_FRAME_DEFAULT.
26718 * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
26719 * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
26720 * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to
26721 match what the ops is doing.
26722 (push_multi_fp_blink): Likewise.
26723 * config/arc/arc.c (arc_override_options): Enable enter/leave when
26724 compiling for size and elf target.
26725 (arc_save_callee_enter): Adjust note to match what enter/leave
26726 operation does.
26727
26728 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
26729
26730 * config/arc/arc.md (tst_movb): Fix constraint.
26731
26732 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
26733
26734 * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
26735
26736 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
26737
26738 * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare.
26739 * config/arc/arc.c (arc_conditional_register_usage): Remove all
26740 reg_alloc_order references.
26741 (size_alloc_order): Define.
26742 (arc_adjust_reg_alloc_order): New function.
26743 * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register
26744 order.
26745 (ADJUST_REG_ALLOC_ORDER): Define.
26746 (HONOR_REG_ALLOC_ORDER): Likewise.
26747
26748 2019-03-18 Richard Biener <rguenther@suse.de>
26749
26750 PR target/87561
26751 * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided
26752 loads and stores a bit more.
26753
26754 2019-03-18 Richard Biener <rguenther@suse.de>
26755
26756 PR target/87561
26757 * config/i386/i386.c (ix86_add_stmt_cost): Apply strided
26758 load pessimization to stores as well.
26759
26760 2019-03-18 Andrey Belevantsev <abel@ispras.ru>
26761
26762 PR middle-end/86979
26763 * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible
26764 successor, use NULL as its av set.
26765
26766 2019-03-15 Segher Boessenkool <segher@kernel.crashing.org>
26767
26768 PR rtl-optimization/89721
26769 * lra-constraints (invariant_p): Return false if side_effects_p holds.
26770
26771 2019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org>
26772
26773 PR target/87532
26774 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
26775 When handling vec_extract, use modular arithmetic to allow
26776 constant selectors greater than vector length.
26777 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
26778 V1TImode vectors to have constant selector values greater than 0.
26779 Use modular arithmetic to compute vector index.
26780 (rs6000_split_vec_extract_var): Use modular arithmetic to compute
26781 index for in-memory vectors. Correct code generation for
26782 in-register vectors.
26783 (altivec_expand_vec_ext_builtin): Use modular arithmetic to
26784 compute index.
26785
26786 2019-03-15 Alexandre Oliva <aoliva@redhat.com>
26787
26788 PR c++/88534
26789 PR c++/88537
26790 * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
26791 VAR_DECL args.
26792
26793 2019-03-15 Jakub Jelinek <jakub@redhat.com>
26794
26795 PR c++/89709
26796 * tree.c (inchash::add_expr): Strip any location wrappers.
26797 * fold-const.c (operand_equal_p): Move stripping of location wrapper
26798 after hash verification.
26799
26800 PR debug/89704
26801 * dwarf2out.c (add_const_value_attribute): Return false for MINUS,
26802 SIGN_EXTEND and ZERO_EXTEND.
26803
26804 2019-03-14 Jason Merrill <jason@redhat.com>
26805 Jakub Jelinek <jakub@redhat.com>
26806
26807 * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
26808 than if is_empty (*slot).
26809 * hash-set-tests.c (test_set_of_strings): Add tests for addition of
26810 existing elt and for elt removal.
26811 * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
26812 of already removed elt.
26813
26814 2019-03-15 H.J. Lu <hongjiu.lu@intel.com>
26815
26816 PR target/89650
26817 * config/i386/i386.c (remove_partial_avx_dependency): Handle
26818 REG_EH_REGION note.
26819
26820 2019-03-14 Martin Liska <mliska@suse.cz>
26821
26822 PR other/89712
26823 * doc/invoke.texi: Remove -fdump-class-hierarchy option.
26824
26825 2019-03-14 Richard Biener <rguenther@suse.de>
26826
26827 PR target/89711
26828 * config/i386/i386.c (make_resolver_func): Properly set
26829 DECL_CONTEXT on the RESULT_DECL.
26830 * config/rs6000/rs6000.c (make_resolver_func): Likewise.
26831
26832 2019-03-14 Richard Biener <rguenther@suse.de>
26833
26834 * gimple-pretty-print.c: Include cfgloop.h.
26835 (dump_gimple_phi): Adjust.
26836 (dump_gimple_bb_header): Dump loop header for GIMPLE.
26837 (pp_cfg_jump): Adjust.
26838 (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
26839 * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
26840 (lower_phi_internal_fn): Remove.
26841 (verify_gimple_call): Remove IFN_PHI special-casing.
26842 (dump_function_to_file): Dump IL state.
26843 * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
26844 done to deal with PHI nodes being present in non-SSA state.
26845
26846 2019-03-14 Jakub Jelinek <jakub@redhat.com>
26847
26848 PR ipa/89684
26849 * multiple_target.c (create_dispatcher_calls): Change
26850 references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
26851 In the node->iterate_referring loop, push *ref rather than ref, call
26852 ref->remove_reference () and always pass 0 to iterate_referring.
26853
26854 PR rtl-optimization/89679
26855 * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
26856 would contain a paradoxical SUBREG.
26857
26858 2019-03-14 Richard Biener <rguenther@suse.de>
26859
26860 PR tree-optimization/89710
26861 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
26862 safe_dyn_cast.
26863
26864 2019-03-14 Martin Liska <mliska@suse.cz>
26865
26866 * coverage.c (coverage_begin_function): Stream also
26867 end_column.
26868 * doc/gcov.texi: Document 2 new fields in JSON file. Improve
26869 documentation about function declaration location.
26870 * gcov-dump.c (tag_function): Print whole range
26871 of function declaration.
26872 * gcov.c (struct function_info): Add end_column field.
26873 (function_info::function_info): Initialize it.
26874 (output_json_intermediate_file): Output {start,end}_column
26875 fields.
26876 (read_graph_file): Read end_column.
26877
26878 2019-03-14 Richard Biener <rguenther@suse.de>
26879
26880 PR middle-end/89698
26881 * fold-const.c (operand_equal_p): For INDIRECT_REF check
26882 that the access types are similar.
26883
26884 2019-03-14 Jakub Jelinek <jakub@redhat.com>
26885
26886 PR tree-optimization/89703
26887 * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
26888 aren't compatible also with builtin_decl_explicit. Check pure
26889 or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
26890 and BUILT_IN_STPNCPY{,_CHK}.
26891
26892 2019-03-14 H.J. Lu <hongjiu.lu@intel.com>
26893
26894 PR target/89523
26895 * config/i386/i386.c (ix86_print_operand): Handle 'M' to add
26896 addr32 prefix to VSIB address for X32.
26897 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
26898 "%M2" to opcode.
26899 (*avx512pf_gatherpf<mode>df_mask): Likewise.
26900 (*avx512pf_scatterpf<mode>sf_mask): Likewise.
26901 (*avx512pf_scatterpf<mode>df_mask): Likewise.
26902 (*avx2_gathersi<mode>): Prepend "%M3" to opcode.
26903 (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
26904 (*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
26905 (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
26906 (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
26907 (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
26908 (*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
26909 (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
26910 (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
26911 (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
26912 (*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
26913 (*avx512f_scatterdi<mode>): Likewise.
26914
26915 2019-03-13 Vladimir Makarov <vmakarov@redhat.com>
26916
26917 PR target/85860
26918 * lra-constraints.c (inherit_in_ebb): Update
26919 potential_reload_hard_regs along with live_hard_regs.
26920
26921 2019-03-13 Jakub Jelinek <jakub@redhat.com>
26922
26923 PR debug/89498
26924 * dwarf2out.c (size_of_die): For dw_val_class_view_list always use
26925 DWARF_OFFSET_SIZE.
26926 (value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
26927
26928 2019-03-13 Martin Sebor <msebor@redhat.com>
26929
26930 PR tree-optimization/89662
26931 * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
26932 has a size.
26933
26934 2019-03-13 Richard Biener <rguenther@suse.de>
26935
26936 PR middle-end/89677
26937 * tree-scalar-evolution.c (simplify_peeled_chrec): Do not
26938 throw FP expressions at tree-affine.
26939
26940 2019-03-14 Richard Biener <rguenther@suse.de>
26941
26942 * tree-pretty-print.c (dump_generic_node): For -gimple properly
26943 dump negative integer constants using _Literal (type) -num.
26944
26945 2019-03-13 Jakub Jelinek <jakub@redhat.com>
26946
26947 * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
26948 nonlocal_value member.
26949
26950 PR middle-end/88588
26951 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
26952 (ipa_simd_modify_function_body): Handle PHIs.
26953
26954 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
26955
26956 * config/s390/s390.c (s390_option_override_internal): Use more
26957 aggressive inlining parameters.
26958
26959 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
26960
26961 * config/s390/3906.md: New file.
26962 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
26963 (LONGRUNNING_THRESHOLD): Remove.
26964 (MAX_SCHED_MIX_SCORE): Decrease.
26965 (MAX_SCHED_MIX_DISTANCE): Decrease.
26966 (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely.
26967 (struct s390_sched_state): New struct to hold scheduling state.
26968 (S390_SCHED_STATE_NORMAL): Remove.
26969 (S390_SCHED_STATE_CRACKED): Remove.
26970 (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add.
26971 (s390_get_sched_attrmask): Use new attribute.
26972 (s390_get_unit_mask): Use new units.
26973 (s390_is_fpd): New function.
26974 (s390_is_fxd): New function.
26975 (s390_is_longrunning): New function.
26976 (s390_sched_score): Use new functions.
26977 (s390_sched_reorder): Likewise.
26978 (s390_sched_variable_issue): Rework and use new functions.
26979 (s390_sched_init): Use new functions.
26980 * config/s390/s390.h (s390_tune_attr): Add z14.
26981 * config/s390/s390.md: Add z14.
26982
26983 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
26984
26985 * config/s390/2964.md: Update pipeline description.
26986 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
26987 (LONGRUNNING_THRESHOLD): Remove.
26988 (LATENCY_FACTOR): Remove.
26989 (s390_get_unit_mask): Add unit.
26990 (s390_sched_score): Use fxd/fpd.
26991 (s390_sched_variable_issue): Use fxd/fpd.
26992
26993 2019-03-12 Martin Liska <mliska@suse.cz>
26994
26995 * config/i386/i386.c: Reword an error message.
26996
26997 2019-03-12 Martin Jambor <mjambor@suse.cz>
26998
26999 * cgraph.c (cgraph_node::dump): Dump more info for former thunks,
27000 terminate with newline.
27001
27002 2019-03-12 Jakub Jelinek <jakub@redhat.com>
27003
27004 PR target/52726
27005 * config/s390/s390.md (tabort): Use %wd instead of
27006 HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital
27007 letters and periods.
27008 * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in
27009 output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace
27010 's with %< and %>.
27011
27012 PR middle-end/89663
27013 * builtins.c (expand_builtin_int_roundingfn,
27014 expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
27015 gcc_unreachable if validate_arglist fails.
27016
27017 2019-03-12 Richard Biener <rguenther@suse.de>
27018
27019 PR tree-optimization/89664
27020 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly
27021 free the occurance tree after the early out.
27022
27023 2019-03-11 Jakub Jelinek <jakub@redhat.com>
27024
27025 PR middle-end/89655
27026 PR bootstrap/89656
27027 * vr-values.c (vr_values::update_value_range): If
27028 old_vr->varying_p (), don't update it, make new_vr also VARYING
27029 and return false.
27030
27031 2019-03-11 Martin Liska <mliska@suse.cz>
27032
27033 * config/aarch64/aarch64.c (aarch64_override_options_internal):
27034 Fix double string quoting.
27035
27036 2019-03-11 Martin Liska <mliska@suse.cz>
27037
27038 * collect-utils.c (collect_wait): Wrap apostrophes
27039 in gcc internal format with %'.
27040 * collect2.c (main): Likewise.
27041 (scan_prog_file): Likewise.
27042 (scan_libraries): Likewise.
27043 * config/i386/i386.c (ix86_expand_call): Likewise.
27044 (ix86_handle_interrupt_attribute): Likewise.
27045 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
27046 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
27047 * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise.
27048 * lto-wrapper.c (find_crtoffloadtable): Likewise.
27049 * symtab.c (symtab_node::verify_base): Likewise.
27050 * tree-cfg.c (verify_gimple_label): Likewise.
27051 * tree.c (verify_type_variant): Likewise.
27052
27053 2019-03-11 Martin Liska <mliska@suse.cz>
27054
27055 * builtins.c (expand_builtin_thread_pointer): Wrap an option name
27056 in a string format message and fix GNU coding style.
27057 (expand_builtin_set_thread_pointer): Likewise.
27058 * common/config/aarch64/aarch64-common.c
27059 (aarch64_rewrite_selected_cpu): Likewise.
27060 * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise.
27061 * common/config/arc/arc-common.c (arc_handle_option): Likewise.
27062 * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise.
27063 * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
27064 * common/config/i386/i386-common.c (ix86_handle_option): Likewise.
27065 * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise.
27066 * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise.
27067 * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise.
27068 * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise.
27069 * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option):
27070 Likewise.
27071 * common/config/riscv/riscv-common.c
27072 (riscv_subset_list::parsing_subset_version): Likewise.
27073 (riscv_subset_list::parse_std_ext): Likewise.
27074 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
27075 (riscv_subset_list::parse): Likewise.
27076 * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise.
27077 * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise.
27078 (aarch64_override_options_internal): Likewise.
27079 (aarch64_validate_mcpu): Likewise.
27080 (aarch64_validate_march): Likewise.
27081 (aarch64_validate_mtune): Likewise.
27082 (aarch64_override_options): Likewise.
27083 * config/alpha/alpha.c (alpha_option_override): Likewise.
27084 * config/arc/arc.c (arc_init): Likewise.
27085 (parse_mrgf_banked_regs_option): Likewise.
27086 (arc_override_options): Likewise.
27087 (arc_expand_builtin_aligned): Likewise.
27088 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise.
27089 (arm_expand_builtin): Likewise.
27090 * config/arm/arm.c (arm_option_check_internal): Likewise.
27091 (arm_configure_build_target): Likewise.
27092 (arm_option_override): Likewise.
27093 (arm_options_perform_arch_sanity_checks): Likewise.
27094 (arm_handle_cmse_nonsecure_entry): Likewise.
27095 (arm_handle_cmse_nonsecure_call): Likewise.
27096 (arm_tls_referenced_p): Likewise.
27097 (thumb1_expand_prologue): Likewise.
27098 * config/avr/avr.c (avr_option_override): Likewise.
27099 * config/bfin/bfin.c (bfin_option_override): Likewise.
27100 * config/c6x/c6x.c (c6x_option_override): Likewise.
27101 * config/cr16/cr16.c (cr16_override_options): Likewise.
27102 * config/cris/cris.c (cris_option_override): Likewise.
27103 * config/csky/csky.c (csky_handle_isr_attribute): Likewise.
27104 * config/darwin-c.c (macosx_version_as_macro): Likewise.
27105 * config/darwin.c (darwin_override_options): Likewise.
27106 * config/frv/frv.c (frv_expand_builtin): Likewise.
27107 * config/h8300/h8300.c (h8300_option_override): Likewise.
27108 * config/i386/i386.c (parse_mtune_ctrl_str): Likewise.
27109 (ix86_option_override_internal): Likewise.
27110 (warn_once_call_ms2sysv_xlogues): Likewise.
27111 (ix86_expand_prologue): Likewise.
27112 (split_stack_prologue_scratch_regno): Likewise.
27113 (ix86_warn_parameter_passing_abi): Likewise.
27114 * config/ia64/ia64.c (fix_range): Likewise.
27115 * config/m68k/m68k.c (m68k_option_override): Likewise.
27116 * config/microblaze/microblaze.c (microblaze_option_override): Likewise.
27117 * config/mips/mips.c (mips_emit_probe_stack_range): Likewise.
27118 (mips_set_compression_mode): Likewise.
27119 * config/mmix/mmix.c (mmix_option_override): Likewise.
27120 * config/mn10300/mn10300.c (mn10300_option_override): Likewise.
27121 * config/msp430/msp430.c (msp430_option_override): Likewise.
27122 * config/nds32/nds32.c (nds32_option_override): Likewise.
27123 * config/nios2/nios2.c (nios2_custom_check_insns): Likewise.
27124 (nios2_option_override): Likewise.
27125 (nios2_expand_custom_builtin): Likewise.
27126 * config/nvptx/mkoffload.c (main): Likewise.
27127 * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise.
27128 * config/pa/pa.c (fix_range): Likewise.
27129 (pa_option_override): Likewise.
27130 * config/riscv/riscv.c (riscv_parse_cpu): Likewise.
27131 (riscv_option_override): Likewise.
27132 * config/rl78/rl78.c (rl78_option_override): Likewise.
27133 * config/rs6000/aix61.h: Likewise.
27134 * config/rs6000/aix71.h: Likewise.
27135 * config/rs6000/aix72.h: Likewise.
27136 * config/rs6000/driver-rs6000.c (elf_platform): Likewise.
27137 * config/rs6000/freebsd64.h: Likewise.
27138 * config/rs6000/linux64.h: Likewise.
27139 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
27140 (rs6000_expand_zeroop_builtin): Likewise.
27141 (rs6000_expand_mtfsb_builtin): Likewise.
27142 (rs6000_expand_set_fpscr_rn_builtin): Likewise.
27143 (rs6000_expand_set_fpscr_drn_builtin): Likewise.
27144 (rs6000_invalid_builtin): Likewise.
27145 (rs6000_expand_split_stack_prologue): Likewise.
27146 * config/rs6000/rtems.h: Likewise.
27147 * config/rx/rx.c (valid_psw_flag): Likewise.
27148 (rx_expand_builtin): Likewise.
27149 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
27150 * config/s390/s390.c (s390_expand_builtin): Likewise.
27151 (s390_function_profiler): Likewise.
27152 (s390_option_override_internal): Likewise.
27153 (s390_option_override): Likewise.
27154 * config/sh/sh.c (sh_option_override): Likewise.
27155 (sh_builtin_saveregs): Likewise.
27156 (sh_fix_range): Likewise.
27157 * config/sh/vxworks.h: Likewise.
27158 * config/sparc/sparc.c (sparc_option_override): Likewise.
27159 * config/spu/spu.c (spu_option_override): Likewise.
27160 (fix_range): Likewise.
27161 * config/visium/visium.c (visium_option_override): Likewise.
27162 (visium_handle_interrupt_attr): Likewise.
27163 * config/xtensa/xtensa.c (xtensa_option_override): Likewise.
27164 * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise.
27165 (dbg_cnt_process_opt): Likewise.
27166 * dwarf2out.c (output_dwarf_version): Likewise.
27167 * except.c (expand_eh_return): Likewise.
27168 * gcc.c (defined): Likewise.
27169 (driver_handle_option): Likewise.
27170 (process_command): Likewise.
27171 (compare_files): Likewise.
27172 (driver::prepare_infiles): Likewise.
27173 (driver::do_spec_on_infiles): Likewise.
27174 (driver::maybe_run_linker): Likewise.
27175 * omp-offload.c (oacc_parse_default_dims): Likewise.
27176 * opts-global.c (handle_common_deferred_options): Likewise.
27177 * opts.c (parse_sanitizer_options): Likewise.
27178 (common_handle_option): Likewise.
27179 (enable_warning_as_error): Likewise.
27180 * passes.c (enable_disable_pass): Likewise.
27181 * plugin.c (parse_plugin_arg_opt): Likewise.
27182 (default_plugin_dir_name): Likewise.
27183 * targhooks.c (default_expand_builtin_saveregs): Likewise.
27184 (default_pch_valid_p): Likewise.
27185 * toplev.c (init_asm_output): Likewise.
27186 (process_options): Likewise.
27187 (toplev::run_self_tests): Likewise.
27188 * tree-cfg.c (verify_gimple_call): Likewise.
27189 * tree-inline.c (inline_forbidden_p_stmt): Likewise.
27190 (tree_inlinable_function_p): Likewise.
27191 * var-tracking.c (vt_find_locations): Likewise.
27192
27193 2019-03-11 Andreas Krebbel <krebbel@linux.ibm.com>
27194
27195 * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
27196 only on the else branch.
27197
27198 2019-03-11 Martin Liska <mliska@suse.cz>
27199
27200 * gcov.c (output_intermediate_json_line): Print function
27201 name of each line.
27202 (output_json_intermediate_file): Add new argument.
27203 * doc/gcov.texi: Document the change.
27204
27205 2019-03-11 Eric Botcazou <ebotcazou@adacore.com>
27206
27207 PR rtl-optimization/89588
27208 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
27209 explicit unrolling factor more robust.
27210
27211 2019-03-11 Richard Biener <rguenther@suse.de>
27212
27213 PR tree-optimization/89649
27214 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
27215 * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize
27216 on the prolog and epilog loops.
27217 (vect_loop_versioning): Return copy of loop.
27218 * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize
27219 on the non-vectorized version of the loop.
27220
27221 2019-03-10 Uroš Bizjak <ubizjak@gmail.com>
27222
27223 PR target/68924
27224 * config/i386/sse.md (*vec_extractv2di_0_sse):
27225 Add (=r,x) alternative and corresponding splitter.
27226
27227 2019-03-10 Martin Jambor <mjambor@suse.cz>
27228
27229 PR tree-optimization/85762
27230 PR tree-optimization/87008
27231 PR tree-optimization/85459
27232 * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool
27233 it points to if there is a type changing MEM_REF. Adjust all callers.
27234 (build_accesses_from_assign): Disable total scalarization if
27235 contains_vce_or_bfcref_p returns true through the new parameter, for
27236 both rhs and lhs.
27237
27238 2019-03-09 Jakub Jelinek <jakub@redhat.com>
27239
27240 PR c/88568
27241 * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
27242 dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
27243
27244 PR target/79645
27245 * common.opt (fdiagnostics-show-labels,
27246 fdiagnostics-show-line-numbers, fdiagnostics-format=,
27247 fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support,
27248 gas-locview-support, ginline-points, ginternal-reset-location-views):
27249 Terminate description text with a dot.
27250 * config/microblaze/microblaze.opt (mxl-prefetch): Likewise.
27251 * config/mcore/mcore.opt (m210, m340): Likewise.
27252 * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove,
27253 mnops=): Start description text with a capital letter.
27254 * config/arc/arc.opt (msize-level=): Likewise.
27255 * config/sh/sh.opt (minline-ic_invalidate): Likewise.
27256 * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib,
27257 mnewlib): Likewise.
27258 * config/ft32/ft32.opt (msim): Likewise.
27259 (mft32b, mcompress): Likewise. Terminate description text with a dot.
27260 (mnodiv, mnopm): Terminate description text with a dot.
27261 * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with
27262 a colon.
27263 * config/i386/i386.opt (prefer_vector_width, instrument_return):
27264 Likewise.
27265 * config/rx/rx.opt (nofpu): Remove trailing spaces from description
27266 text.
27267
27268 PR rtl-optimization/89634
27269 * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1
27270 are modified in BB_END (e->src) instruction.
27271
27272 2019-03-08 David Malcolm <dmalcolm@redhat.com>
27273
27274 PR target/79926
27275 * config/i386/i386.c (ix86_set_current_function): Make "sorry"
27276 messages more amenable to translation, and improve wording.
27277
27278 2019-03-08 Bill Schmidt <wschmidt@linux.ibm.com>
27279
27280 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
27281 ud- and du-chains between phases.
27282
27283 2019-03-08 Richard Sandiford <richard.sandiford@arm.com>
27284
27285 PR debug/89631
27286 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
27287 instead of POLY_INT_CST.
27288
27289 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
27290
27291 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
27292 requirement.
27293
27294 2019-03-08 Uroš Bizjak <ubizjak@gmail.com>
27295
27296 PR target/68924
27297 PR target/78782
27298 PR target/87558
27299 * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
27300 (_mm_storeu_si64): Ditto.
27301
27302 2019-03-08 Martin Liska <mliska@suse.cz>
27303
27304 PR target/86952
27305 * config/i386/i386.c (ix86_option_override_internal): Disable
27306 jump tables when retpolines are used.
27307
27308 2019-03-08 Jan Hubicka <hubicka@ucw.cz>
27309
27310 PR go/63560
27311 * ipa-split.c (execute_split_functions): Do not split
27312 'noinline' or 'section' function.
27313
27314 2019-03-08 Jakub Jelinek <jakub@redhat.com>
27315
27316 PR target/79846
27317 * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of
27318 HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of
27319 HOST_WIDE_INT_PRINT_DEC. Formatting fixes.
27320
27321 PR ipa/80000
27322 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
27323 from diagnostics. Formatting fixes.
27324
27325 PR target/85665
27326 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
27327 warn_odr diagnostics.
27328
27329 PR other/80058
27330 * lra-constraints.c (process_alt_operands): Avoid one space before
27331 " at the end of line and another after " on another line in a string
27332 literal.
27333 * attribs.c (handle_dll_attribute): Likewise.
27334 * config/avr/avr-devices.c (avr_texinfo): Likewise.
27335
27336 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
27337 warning_at or inform messages in G_() if there is no ?:.
27338
27339 PR tree-optimization/89550
27340 * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at
27341 returned true. Formatting fixes.
27342 (expand_builtin_strnlen): Formatting fixes.
27343 * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING
27344 if warning_at returned true.
27345 * tree-cfg.c (pass_warn_function_return::execute): Likewise.
27346
27347 2019-03-08 Richard Biener <rguenther@suse.de>
27348
27349 PR middle-end/89578
27350 * cfgloop.h (struct loop): Add owned_clique field.
27351 * cfgloopmanip.c (copy_loop_info): Copy it.
27352 * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
27353 cliques.
27354 * tree-inline.c (copy_loops): Remap owned_clique.
27355 * lto-streamer-in.c (input_cfg): Stream owned_clique.
27356 * lto-streamer-out.c (output_cfg): Likewise.
27357
27358 2019-03-08 Jakub Jelinek <jakub@redhat.com>
27359
27360 PR target/80190
27361 * config/darwin.c: Include intl.h.
27362 (darwin_build_constant_cfstring): Improve i18n of diagnostics by not
27363 composing the message out of two separate parts.
27364
27365 2019-03-07 Jakub Jelinek <jakub@redhat.com>
27366
27367 PR target/80003
27368 * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
27369 doesn't start with a capital letter and doesn't end with a dot.
27370 (ix86_function_arg_boundary): Make sure diagnostics doesn't start
27371 with a capital letter.
27372 (ix86_mangle_function_version_assembler_name): Likewise.
27373 (ix86_generate_version_dispatcher_body): Likewise.
27374 (fold_builtin_cpu): Likewise.
27375 (get_builtin_code_for_version): Likewise. Remove extraneous space.
27376 (ix86_handle_interrupt_attribute): Make the diagnostics easier for
27377 translators, wrap full type name in %qs.
27378
27379 PR translation/79999
27380 * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
27381 depend clause with source (or sink) modifier.
27382 * omp-expand.c (expand_omp_ordered_sink): Likewise.
27383
27384 PR target/89602
27385 * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask,
27386 *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns.
27387 (avx512f_load<mode>_mask): New define_expand.
27388 * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask,
27389 __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask,
27390 __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask,
27391 __builtin_ia32_movess_mask): New builtins.
27392 * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss,
27393 _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss,
27394 _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd,
27395 _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics.
27396
27397 2019-03-07 Martin Jambor <mjambor@suse.cz>
27398
27399 PR lto/87525
27400 * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
27401 for extern inline functions.
27402
27403 2019-03-07 Martin Jambor <mjambor@suse.cz>
27404
27405 PR ipa/88235
27406 * cgraph.h (cgraph_node): New inline method former_thunk_p.
27407 * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
27408 (clone_of_p): Treat expanded thunks like thunks, be optimistic if they
27409 have multiple callees. At the end check if declarations match as
27410 opposed to cgraph_nodes.
27411
27412 2019-03-07 Martin Liska <mliska@suse.cz>
27413
27414 * cgraph.c (cgraph_node::verify_node): Verify with a neighbour
27415 which is equivalent to searching for this in clones chain.
27416 * symtab.c (symtab_node::verify_base): Similarly compare ASM
27417 names with a neighbour and special case first node in a chain.
27418
27419 2019-01-25 Jason Merrill <jason@redhat.com>
27420
27421 PR c++/80916 - spurious "static but not defined" warning.
27422 * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false
27423 for an internal symbol with DECL_EXTERNAL.
27424
27425 2019-04-07 Richard Biener <rguenther@suse.de>
27426
27427 PR middle-end/89618
27428 * cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
27429 * tree-inline.c (copy_loops): Simplify.
27430
27431 2019-03-07 Martin Liska <mliska@suse.cz>
27432
27433 * dwarf2out.c (add_AT_vms_delta): Revert function removal.
27434
27435 2019-03-07 Richard Biener <rguenther@suse.de>
27436
27437 PR tree-optimization/89595
27438 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
27439 stmt iterator as reference, take boolean output parameter to
27440 indicate whether the stmt was removed and thus the iterator
27441 already advanced.
27442 (dom_opt_dom_walker::before_dom_children): Re-iterate over
27443 stmts created by folding.
27444
27445 2019-03-07 Jakub Jelinek <jakub@redhat.com>
27446
27447 PR c++/89585
27448 * doc/extend.texi (Basic Asm): Document qualifiers are not allowed
27449 at toplevel.
27450
27451 2019-03-06 Peter Bergner <bergner@linux.ibm.com>
27452
27453 PR rtl-optimization/88845
27454 * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
27455 LRA.
27456 * lra.c (remove_scratches_1): New function.
27457 (remove_scratches): Use it.
27458 (lra_emit_move): Likewise.
27459
27460 2019-03-06 Claudiu Zissulescu <claziss@synopsys.com>
27461
27462 * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
27463 unaligned_access variable.
27464 * config/arc/arc.c (arc_override_options): Set unaligned access
27465 default on for HS CPUs.
27466 * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.
27467
27468 2019-03-06 Martin Liska <mliska@suse.cz>
27469
27470 PR gcov-profile/89577
27471 * doc/gcov.texi: Prefer to use --coverage.
27472 * doc/sourcebuild.texi: Likewise.
27473
27474 2019-03-02 Jason Merrill <jason@redhat.com>
27475
27476 PR c++/86485 - -Wmaybe-unused with empty class ?:
27477 * gimplify.c (gimplify_cond_expr): Use INIT_EXPR.
27478
27479 2019-03-05 Jakub Jelinek <jakub@redhat.com>
27480
27481 PR target/89587
27482 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
27483 if_multiarch.
27484
27485 PR middle-end/89590
27486 * builtins.c (maybe_emit_free_warning): Punt if free doesn't have
27487 exactly one argument.
27488
27489 2019-03-05 Jakub Jelinek <jakub@redhat.com>
27490 Richard Sandiford <richard.sandiford@arm.com>
27491
27492 PR tree-optimization/89570
27493 * match.pd (vec_cond into cond_op simplification): Don't use
27494 get_conditional_internal_fn, use as_internal_fn (cond_op).
27495
27496 2019-03-05 Wilco Dijkstra <wdijkstr@arm.com>
27497
27498 PR target/89222
27499 * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
27500 to decide when to split off a non-zero offset from a symbol.
27501 * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
27502 in function symbols.
27503
27504 2019-03-05 Richard Biener <rguenther@suse.de>
27505
27506 PR tree-optimization/89594
27507 * tree-if-conv.c (pass_if_conversion::execute): Handle
27508 case where .LOOP_VECTORIZED_FUNCTION was removed.
27509
27510 2019-03-05 Jakub Jelinek <jakub@redhat.com>
27511
27512 PR bootstrap/89560
27513 * fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
27514 instead alloca it only when needed with the needed size.
27515
27516 PR tree-optimization/89570
27517 * match.pd (vec_cond into cond_op simplification): Guard with
27518 vectorized_internal_fn_supported_p test and #if GIMPLE.
27519
27520 PR tree-optimization/89566
27521 * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call):
27522 Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed.
27523 Punt if get_user_idx_format succeeds, but idx_format argument is
27524 not provided or doesn't have pointer type, or if idx_args is above
27525 number of provided arguments.
27526
27527 2019-03-04 Wilco Dijkstra <wdijkstr@arm.com>
27528
27529 PR tree-optimization/89437
27530 * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications.
27531
27532 2019-03-04 Richard Biener <rguenther@suse.de>
27533
27534 PR middle-end/89572
27535 * tree-scalar-evolution.c: (get_loop_exit_condition): Use
27536 safe_dyn_cast.
27537
27538 2019-03-04 Bin Cheng <bin.cheng@linux.alibaba.com>
27539
27540 PR tree-optimization/89487
27541 * tree-loop-distribution.c (has_nonaddressable_dataref_p): New.
27542 (create_rdg_vertices): Compute has_nonaddressable_dataref_p.
27543 (distribute_loop): Don't do runtime alias check if there is non-
27544 addressable data reference.
27545 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL
27546 is a register variable.
27547
27548 2019-03-02 Jakub Jelinek <jakub@redhat.com>
27549
27550 PR target/89506
27551 * config/arm/arm.md (cmpsi2_addneg): Use
27552 trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...).
27553 If operands[2] is 0 or INT_MIN, force use of subs.
27554 (*compare_scc splitter): Use gen_int_mode.
27555 (*negscc): Likewise.
27556 * config/arm/thumb2.md (*thumb2_negscc): Likewise.
27557
27558 2019-03-01 Kito Cheng <kito.cheng@gmail.com>
27559 Monk Chiang <sh.chiang04@gmail.com>
27560
27561 * common/config/riscv/riscv-common.c: Include sstream.
27562 (riscv_subset_list::to_string): New.
27563 (riscv_arch_str): Likewise.
27564 * config.gcc (riscv*-*-*): Handle --with-riscv-attribute=
27565 * config.in: Regen.
27566 * config/riscv/riscv-protos.h (riscv_arch_str): New.
27567 * config/riscv/riscv.c (INCLUDE_STRING): Defined.
27568 (riscv_emit_attribute): New.
27569 (riscv_file_start): Emit attribute if needed.
27570 (riscv_option_override): Init riscv_emit_attribute_p.
27571 * config/riscv/riscv.opt (mriscv-attribute): New option.
27572 * configure.ac (riscv*-*-*): Check binutils is supporting ELF
27573 * configure: Regen.
27574 * doc/install.texi: Document --with-riscv-attribute.
27575 * doc/invoke.texi: Document -mriscv-attribute.
27576
27577 * common/config/riscv/riscv-common.c:
27578 Include config/riscv/riscv-protos.h.
27579 (INCLUDE_STRING): Defined.
27580 (RISCV_DONT_CARE_VERSION): Defined.
27581 (riscv_subset_t): Declare.
27582 (riscv_subset_t::riscv_subset_t): New.
27583 (riscv_subset_list): Declare.
27584 (riscv_subset_list::riscv_subset_list): New.
27585 (riscv_subset_list::~riscv_subset_list): Likewise.
27586 (riscv_subset_list::parsing_subset_version): Likewise.
27587 (riscv_subset_list::parse_std_ext): Likewise.
27588 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
27589 (riscv_subset_list::add): Likewise.
27590 (riscv_subset_list::lookup): Likewise.
27591 (riscv_subset_list::xlen): Likewise.
27592 (riscv_subset_list::parse): Likewise.
27593 (riscv_supported_std_ext): Likewise.
27594 (current_subset_list): Likewise.
27595 (riscv_parse_arch_string): Using riscv_subset_list::parse to
27596 parse.
27597
27598 2019-03-01 Segher Boessenkool <segher@kernel.crashing.org>
27599
27600 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
27601 rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
27602 * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.
27603
27604 2019-03-01 Alexander Monakov <amonakov@ispras.ru>
27605
27606 PR rtl-optimization/85899
27607 * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
27608 fallthru edges leading to the exit block.
27609
27610 2019-03-01 Tamar Christina <tamar.christina@arm.com>
27611
27612 PR target/89517
27613 * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
27614 rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.
27615
27616 2019-03-01 Richard Sandiford <richard.sandiford@arm.com>
27617
27618 PR tree-optimization/89535
27619 * tree-vect-stmts.c (vectorizable_call): Record the vector types
27620 for each operand. Calculate the fallback choice for mask operands
27621 and pass it to vect_get_vec_def_for_operand.
27622
27623 2019-03-01 Richard Biener <rguenther@suse.de>
27624
27625 PR middle-end/89541
27626 * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may
27627 get virtual operands.
27628 (get_expr_operands): Handle CONST_DECL like other decls.
27629
27630 2019-03-01 Jakub Jelinek <jakub@redhat.com>
27631
27632 PR middle-end/89503
27633 * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
27634 on DECL_P and EXPR_P.
27635
27636 2019-03-01 Richard Biener <rguenther@suse.de>
27637
27638 PR middle-end/89497
27639 * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
27640 argument, defaulted to zero.
27641 * passes.c (execute_function_todo): Pass down SSA update flags
27642 to cleanup_tree_cfg.
27643 * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
27644 (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
27645 form if requested.
27646 (cleanup_tree_cfg): Get and pass down SSA update flags.
27647
27648 2019-03-01 Jakub Jelinek <jakub@redhat.com>
27649
27650 PR bootstrap/89539
27651 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
27652 early_lto_debug argument.
27653
27654 2019-02-28 Eric Botcazou <ebotcazou@adacore.com>
27655
27656 PR tree-optimization/89536
27657 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
27658 only whether bit #0 of the value is 0 instead of the entire value.
27659
27660 2019-02-28 Marek Polacek <polacek@redhat.com>
27661
27662 PR c++/87068 - missing diagnostic with fallthrough statement.
27663 * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
27664 at the end of a seq, save its location to walk_stmt_info.
27665 (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
27666 a switch.
27667
27668 2019-02-28 Jan Hubicka <hubicka@ucw.cz>
27669
27670 PR lto/88585
27671 * tree.c (find_atomic_core_type): Move ahead in file.
27672 (check_base_type): Correctly compare alignments of atomic types.
27673
27674 2019-02-28 H.J. Lu <hongjiu.lu@intel.com>
27675
27676 PR target/89455
27677 * config/i386/i386.c (get_builtin_code_for_version): Identify
27678 Westmere from PCLMUL, instead of AES.
27679
27680 2019-02-28 Jakub Jelinek <jakub@redhat.com>
27681
27682 PR target/89434
27683 * config/arm/arm.md (*subsi3_carryin_compare_const): Use
27684 trunc_int_for_mode (-INTVAL (...), SImode), just instead of
27685 -UINTVAL (...).
27686
27687 2019-02-28 Tamar Christina <tamar.christina@arm.com>
27688
27689 PR target/88530
27690 * config/aarch64/aarch64-option-extensions.def: Document it.
27691 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
27692 if empty hwcaps.
27693
27694 2019-02-28 Jakub Jelinek <jakub@redhat.com>
27695
27696 PR c/89520
27697 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
27698 builtins if they don't have a single scalar floating point argument.
27699 Formatting fixes.
27700
27701 2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
27702
27703 PR rtl-optimization/89490
27704 * varasm.c (get_block_for_section): Bail out for mergeable sections.
27705 (default_use_anchors_for_symbol_p, output_object_block): Assert the
27706 block section is not mergeable.
27707
27708 2019-02-27 Jakub Jelinek <jakub@redhat.com>
27709
27710 PR target/70341
27711 * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename
27712 old define_insn to ...
27713 (*arm_casesi_internal): ... this. Add mode to LABEL_REFs.
27714 * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
27715 Rename old define_insn to ...
27716 (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs.
27717 (thumb2_casesi_internal_pic): New define_expand. Rename old
27718 define_insn to ...
27719 (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs.
27720 * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
27721 MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
27722
27723 2019-02-27 Richard Biener <rguenther@suse.de>
27724
27725 PR debug/88878
27726 * dwarf2out.c (use_debug_types): Disable when in_lto_p.
27727
27728 2019-02-27 Richard Biener <rguenther@suse.de>
27729
27730 * passes.c (should_skip_pass_p): Do not skip cgraph-edge
27731 building.
27732
27733 2019-02-27 Richard Biener <rguenther@suse.de>
27734
27735 PR debug/88878
27736 * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
27737 parameter, prefix section name with .gnu.debuglto_ if true.
27738 (dwarf2out_finish): Pass false to output_comdat_type_unit.
27739 (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
27740
27741 2019-02-27 Richard Biener <rguenther@suse.de>
27742
27743 PR debug/89514
27744 * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
27745 rather than on use_debug_types, doing what output_die does.
27746 (value_format): Likewise.
27747
27748 2019-02-27 Martin Jambor <mjambor@suse.cz>
27749 Martin Sebor <msebor@redhat.com>
27750
27751 * doc/invoke.texi (Warning Options): Reword description of
27752 -Wno-absolute-value.
27753
27754 2019-02-27 Jakub Jelinek <jakub@redhat.com>
27755
27756 PR tree-optimization/89280
27757 * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
27758 builtin_setjmp_setup_bb): New functions.
27759 (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
27760 When visiting __builtin_setjmp_setup block, queue in special
27761 setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
27762 __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks
27763 from visited after the loop if they don't have any visited successor
27764 blocks.
27765
27766 2018-02-26 Steve Ellcey <sellcey@marvell.com>
27767
27768 * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
27769 New function.
27770 (TARGET_GET_MULTILIB_ABI_NAME): New macro.
27771
27772 2019-02-26 Jakub Jelinek <jakub@redhat.com>
27773
27774 PR c++/89507
27775 * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
27776 with types other than sizetype/ssizetype.
27777
27778 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
27779
27780 * config/sparc/sparc-opts.h (enum processor_type): Rename to...
27781 (enum sparc_processor_type): ...this.
27782 (enum sparc_code_model_type): New enumeration type.
27783 (enum sparc_memory_model_type): Tweak comments.
27784 * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
27785 (mtune): Likewise.
27786 (mcmodel): Use sparc_code_model enumeration and variable.
27787 (sparc_code_model): New enumeration.
27788 (mdebug): Add Undocumented marker.
27789 * config/sparc/sparc.h (enum cmodel): Delete.
27790 (sparc_cmodel): Likewise.
27791 (TARGET_CM_MEDLOW): Adjust to above renaming.
27792 (TARGET_CM_MEDMID): Likewise.
27793 (TARGET_CM_MEDANY): Likewise.
27794 (TARGET_CM_EMBMEDANY): Likewise.
27795 * config/sparc/sparc.c (sparc_cmodel): Delete.
27796 (sparc_option_override): Remove string/value mapping support for the
27797 code model. Move code and memory model support to after the handling
27798 of target flags. Do private machine setup last.
27799 (sparc_emit_set_symbolic_const64): Use sparc_code_model.
27800 (sparc_legitimize_reload_address): Likewise.
27801 (sparc_output_mi_thunk): Likewise.
27802 * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
27803
27804 2019-02-26 Jakub Jelinek <jakub@redhat.com>
27805
27806 PR tree-optimization/89500
27807 * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
27808 (handle_builtin_strlen): Remove noncst_bound variable. Always
27809 optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to
27810 cst if the first cst bytes starting at x are known to be non-zero,
27811 even if the string is not zero terminated. Don't try to modify
27812 *si for strnlen. Update strlen_to_stridx only for strlen or if
27813 we can prove strnlen returns the same value as strlen would.
27814
27815 2019-02-26 Martin Liska <mliska@suse.cz>
27816
27817 * alloc-pool.h (struct pool_usage): Remove extra
27818 print_dash_line.
27819 * bitmap.h (struct bitmap_usage): Likewise.
27820 * ggc-common.c (struct ggc_usage): Likewise.
27821 * mem-stats.h (struct mem_usage): Likewise.
27822 (mem_alloc_description::dump): Print dash lines
27823 here and repeat header at the end of a table report.
27824 It's then more readable.
27825 * tree-phinodes.c (phinodes_print_statistics): Make
27826 horizontal alignment.
27827 * tree-ssanames.c (ssanames_print_statistics): Likewise.
27828 * vec.c (struct vec_usage): Remove extra print_dash_line.
27829 * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
27830
27831 2019-02-26 Uroš Bizjak <ubizjak@gmail.com>
27832
27833 * doc/extend.texi (__builtin_object_size):
27834 Use @pxref instead of @xref inside parenthesis.
27835 (__builtin_has_attribute): Add missing comma after @xref.
27836 (__builtin_object_size): Ditto.
27837 * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
27838
27839 2019-02-26 Jeff Law <law@redhat.com>
27840
27841 PR rtl-optimization/87761
27842 * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
27843 detect obviously dead insns and delete them.
27844
27845 2019-02-26 Richard Biener <rguenther@suse.de>
27846
27847 PR tree-optimization/89505
27848 * tree-ssa-structalias.c (compute_dependence_clique): Make sure
27849 to handle restrict pointed-to vars with multiple subvars
27850 correctly.
27851
27852 2019-02-26 Richard Biener <rguenther@suse.de>
27853
27854 PR tree-optimization/89489
27855 * tree-parloops.c (create_loop_fn): Copy over last_clique.
27856
27857 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
27858
27859 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
27860 and move around comment.
27861 <BIT_AND_EXPR>: Likewise.
27862 <BIT_NOT_EXPR>: Add specific handling for boolean types.
27863
27864 2019-02-26 Jakub Jelinek <jakub@redhat.com>
27865
27866 PR target/89474
27867 * config/i386/i386.c (remove_partial_avx_dependency): Call
27868 df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
27869 after changing possibly many instructions to use that pseudo. Fix up
27870 insertion of v4sf_const0 setter at the start of bb.
27871
27872 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
27873
27874 PR c/80409
27875 * doc/extend.texi (Variadic Pointer Args): New section.
27876
27877 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
27878 Martin Sebor <msebor@gmail.com>
27879
27880 * common.opt (Wattribute-alias): Likewise.
27881 * doc/invoke.texi (Option Summary): List general form of
27882 -Wattribute-alias=. List positive form of -Wmissing-attributes.
27883 (-Wmissing-attributes): Invert entry, rewrite and correct default.
27884 Add cross-references.
27885 (-Wattribute-alias): Rewrite and correct default. Mention
27886 considered attributes (same as for -Wmissing-attributes).
27887
27888 2019-02-25 Paul A. Clarke <pc@us.ibm.com>
27889
27890 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
27891 (_mm_cvtpd_ps): Likewise.
27892 (_mm_cvttpd_epi32): Likewise.
27893
27894 PR target/89338
27895 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
27896 (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
27897
27898 PR target/89339
27899 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
27900
27901 2019-02-25 Tamar Christina <tamar.christina@arm.com>
27902
27903 PR target/88530
27904 * common/config/aarch64/aarch64-common.c
27905 (struct aarch64_option_extension): Add is_synthetic.
27906 (all_extensions): Use it.
27907 (TARGET_OPTION_INIT_STRUCT): Define hook.
27908 (struct gcc_targetm_common): Moved to end.
27909 (all_extensions_by_on): New.
27910 (opt_ext_cmp, typedef opt_ext): New.
27911 (aarch64_option_init_struct): New.
27912 (aarch64_contains_opt): New.
27913 (aarch64_get_extension_string_for_isa_flags): Output smallest set.
27914 * config/aarch64/aarch64-option-extensions.def
27915 (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
27916 (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
27917 sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
27918 Set is_synthetic to false.
27919 (crypto): Set is_synthetic to true.
27920 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
27921 SYNTHETIC.
27922
27923 2019-02-25 Tamar Christina <tamar.christina@arm.com>
27924
27925 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
27926 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
27927 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
27928 vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
27929 vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
27930 vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
27931 vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
27932 vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
27933 Rename ...
27934 (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
27935 vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
27936 vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
27937 vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
27938 vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
27939 vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
27940 vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
27941 vfmlsl_laneq_high_f16): ... To this.
27942 * config/arm/neon.md: Update comments.
27943
27944 2019-02-25 Tamar Christina <tamar.christina@arm.com>
27945
27946 * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
27947 vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
27948 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
27949 vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
27950 vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
27951 vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
27952 vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
27953 vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
27954 Rename ...
27955 (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
27956 vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
27957 vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
27958 vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
27959 vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
27960 vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
27961 vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
27962 vfmlslq_laneq_high_f16): ... To this.
27963
27964 2019-02-25 Alexander Monakov <amonakov@ispras.ru>
27965
27966 PR rtl-optimization/86096
27967 * df-scan.c (df_mw_compare): Do not check mw_reg fields when
27968 comparing mw_order values.
27969
27970 2019-02-25 Jakub Jelinek <jakub@redhat.com>
27971
27972 PR target/89434
27973 * config/arm/arm.md (*subsi3_carryin_const): Use
27974 arm_neg_immediate_operand predicate instead of
27975 arm_not_immediate_operand, "L" constraint instead of "K" and
27976 print it using %n2 instead of %B2.
27977 (*subsi3_carryin_const0): New define_insn.
27978 (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
27979 instead of arm_not_operand and "I" constraint instead of "K" and
27980 print it using %n3 instead of %B2. Instead of using match_dup 2 add
27981 another match_operand and in the condition check that it is negation
27982 of operands[2].
27983 (*subsi3_carryin_compare_const0): New define_ins.
27984 (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
27985 *subsi3_carryin_const.
27986 (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
27987 split into *subsi3_carryin_compare_const0 if the highpart is zero.
27988
27989 PR target/89438
27990 * config/arm.vfp.md (*negdf2_vfp): Use
27991 gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
27992 * config/arm/neon.md (neon_copysignf<mode>): Likewise.
27993
27994 2019-02-24 Jakub Jelinek <jakub@redhat.com>
27995
27996 PR rtl-optimization/89445
27997 * simplify-rtx.c (simplify_ternary_operation): Don't use
27998 simplify_merge_mask on operands that may trap.
27999 * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
28000 SCALAR_FLOAT_MODE_P checks. For integral division by zero, if
28001 second operand is CONST_VECTOR, check if any element could be zero.
28002 Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
28003 their operands can trap.
28004
28005 2019-02-23 Martin Sebor <msebor@redhat.com>
28006
28007 * gimple-ssa-sprintf.c (target_strtol): Rename...
28008 (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX.
28009 (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to
28010 check for range error.
28011
28012 2019-02-23 H.J. Lu <hongjiu.lu@intel.com>
28013
28014 PR driver/69471
28015 * opts-common.c (prune_options): Also prune joined switches
28016 with Negative and RejectNegative.
28017 * config/i386/i386.opt (march=): Add Negative(march=).
28018 (mtune=): Add Negative(mtune=).
28019 * doc/options.texi: Document Negative used together with Joined
28020 and RejectNegative.
28021
28022 2019-02-22 Martin Sebor <msebor@redhat.com>
28023
28024 * doc/extend.texi (Other Builtins): Add
28025 __builtin_is_constant_evaluated.
28026
28027 2019-02-22 Richard Biener <rguenther@suse.de>
28028
28029 PR tree-optimization/87609
28030 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
28031
28032 2019-02-22 Jeff Law <law@redhat.com>
28033
28034 PR rtl-optimization/87761
28035 * config/mips/mips.md: Add new combiner pattern to recognize
28036 a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
28037
28038 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com>
28039
28040 PR target/89324
28041 * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
28042 destination register in peepholes generating patterns for ADDS/SUBS.
28043 (add<mode>3_compare0,
28044 *addsi3_compare0_uxtw, add<mode>3_compareC,
28045 add<mode>3_compareV_imm, add<mode>3_compareV,
28046 *adds_<optab><ALLX:mode>_<GPI:mode>,
28047 *subs_<optab><ALLX:mode>_<GPI:mode>,
28048 *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
28049 *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
28050 *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
28051 *sub<mode>3_compare0, *subsi3_compare0_uxtw,
28052 sub<mode>3_compare1): Allow stack pointer for source register.
28053 * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
28054
28055 2019-02-22 Martin Sebor <msebor@redhat.com>
28056
28057 PR tree-optimization/88993
28058 PR tree-optimization/88853
28059 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
28060 New helper.
28061 (sprintf_dom_walker::call_info::is_string_func): New helper.
28062 (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
28063 for formatted string functions.
28064 (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
28065
28066 2019-02-22 Martin Sebor <msebor@redhat.com>
28067
28068 PR c/89425
28069 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
28070 unreachable subexpressions.
28071
28072 2019-02-22 H.J. Lu <hongjiu.lu@intel.com>
28073 Hongtao Liu <hongtao.liu@intel.com>
28074 Sunil K Pandey <sunil.k.pandey@intel.com>
28075
28076 PR target/87007
28077 * config/i386/i386-passes.def: Add
28078 pass_remove_partial_avx_dependency.
28079 * config/i386/i386-protos.h
28080 (make_pass_remove_partial_avx_dependency): New.
28081 * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
28082 New function.
28083 (pass_data_remove_partial_avx_dependency): New.
28084 (pass_remove_partial_avx_dependency): Likewise.
28085 (make_pass_remove_partial_avx_dependency): Likewise.
28086 * config/i386/i386.md (avx_partial_xmm_update): New attribute.
28087 (*extendsfdf2): Add avx_partial_xmm_update.
28088 (truncdfsf2): Likewise.
28089 (*float<SWI48:mode><MODEF:mode>2): Likewise.
28090 (SF/DF conversion splitters): Disabled for TARGET_AVX.
28091
28092 2019-02-22 Aldy Hernandez <aldyh@redhat.com>
28093
28094 PR middle-end/85598
28095 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
28096 analysis for pass.
28097
28098 2019-02-22 Thiago Macieira <thiago.macieira@intel.com>
28099
28100 PR target/89444
28101 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
28102 (PTA_SKYLAKE): Add PTA_AES.
28103 (PTA_GOLDMONT): Likewise.
28104
28105 2019-02-22 Sudakshina Das <sudi.das@arm.com>
28106
28107 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
28108 instruction if enabled.
28109 (aarch64_override_options): Remove reference to return address key.
28110
28111 2019-02-22 Richard Biener <rguenther@suse.de>
28112
28113 PR tree-optimization/89440
28114 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
28115 not necessary assert.
28116
28117 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
28118
28119 PR fortran/72741
28120 * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
28121 (oacc_replace_fn_attrib_attr): ... this new function.
28122 * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
28123 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
28124
28125 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28126
28127 * config/arm/arm-cpus.in (ares): Rename to...
28128 (neoverse-n1): ... This. Add ares as alias.
28129 * config/arm/arm-tables.opt: Regenerate.
28130 * config/arm/arm-tune.md: Likewise.
28131 * doc/invoke.txt (ARM Options): Document neoverse-n1.
28132
28133 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28134
28135 * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
28136 * config/aarch64/aarch64-tune.md: Regenerate.
28137 * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
28138
28139 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28140
28141 * config/aarch64/aarch64.c (ares_tunings): Rename to...
28142 (neoversen1_tunings): ... This.
28143 * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
28144 (neoverse-n1): New CPU.
28145 * config/aarch64/aarch64-tune.md: Regenerate.
28146 * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
28147
28148 2019-02-22 Richard Biener <rguenther@suse.de>
28149
28150 PR middle-end/87609
28151 * cfghooks.h (dependence_hash): New typedef.
28152 (struct copy_bb_data): New type.
28153 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
28154 (duplicate_block): Likewise.
28155 * cfghooks.c (duplicate_block): Pass down copy_bb_data.
28156 (copy_bbs): Create and pass down copy_bb_data.
28157 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
28158 (rtl_duplicate_bb): Likewise.
28159 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
28160 remap dependence info.
28161
28162 2019-02-22 Richard Biener <rguenther@suse.de>
28163
28164 PR tree-optimization/87609
28165 * tree-core.h (tree_base): Document special clique values.
28166 * tree-inline.c (remap_dependence_clique): Do not use the
28167 special clique value of one.
28168 (maybe_set_dependence_info): Use clique one.
28169 (clear_dependence_clique): New callback.
28170 (compute_dependence_clique): Clear clique one from all refs
28171 before assigning it (again).
28172
28173 2019-02-21 Martin Sebor <msebor@redhat.com>
28174
28175 * doc/extend.texi (__clear_cache): Correct signature.
28176
28177 2019-02-21 Ian Lance Taylor <iant@golang.org>
28178
28179 PR go/89170
28180 * varasm.c (decode_addr_const): Call lookup_constant_def rather
28181 than output_constant_def.
28182 (add_constant_to_table): New static function.
28183 (output_constant_def): Call add_constant_to_table.
28184 (tree_output_constant_def): Likewise.
28185
28186 2019-02-21 Jakub Jelinek <jakub@redhat.com>
28187
28188 PR c++/89285
28189 * builtins.c (fold_builtin_arith_overflow): If first two args are
28190 INTEGER_CSTs, set intres and ovfres to constants rather than calls
28191 to ifn.
28192
28193 2019-02-21 H.J. Lu <hongjiu.lu@intel.com>
28194
28195 PR target/87412
28196 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
28197 error for -mindirect-branch/-mfunction-return with incompatible
28198 -fcf-protection.
28199
28200 2019-02-21 Jakub Jelinek <jakub@redhat.com>
28201
28202 PR bootstrap/88714
28203 * constraints.md (q): Remove.
28204 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
28205 instead of q.
28206
28207 2019-02-21 Martin Jambor <mjambor@suse.cz>
28208
28209 PR hsa/89302
28210 * omp-general.c (omp_extract_for_data): Removed a duplicate call
28211 to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
28212 (omp_adjust_for_condition): ...here. Added necessary parameters.
28213 * omp-general.h (omp_adjust_for_condition): Updated declaration.
28214 * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
28215 proper values to new parameters of omp_adjust_for_condition.
28216
28217 2019-02-20 Jakub Jelinek <jakub@redhat.com>
28218
28219 PR middle-end/89412
28220 * expr.c (expand_assignment): If result is a MEM, use change_address
28221 instead of simplify_gen_subreg.
28222
28223 2019-02-20 Jakub Jelinek <jakub@redhat.com>
28224 David Malcolm <dmalcolm@redhat.com>
28225
28226 PR middle-end/89091
28227 * fold-const.c (decode_field_reference): Return NULL_TREE if
28228 lang_hooks.types.type_for_size returns NULL. Check it before
28229 overwriting *exp_. Use return NULL_TREE instead of return 0.
28230
28231 2019-02-20 Jakub Jelinek <jakub@redhat.com>
28232
28233 PR middle-end/88074
28234 PR middle-end/89415
28235 * toplev.c (do_compile): Double the emin/emax exponents to workaround
28236 buggy mpc_norm.
28237
28238 2019-02-20 Uroš Bizjak <ubizjak@gmail.com>
28239
28240 PR target/89397
28241 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
28242 TARGET_SSE in addition to TARGET_SSE_MATH.
28243
28244 (ix86_excess_precision): Ditto.
28245 (ix86_float_exceptions_rounding_supported_p): Ditto.
28246 (use_rsqrt_p): Ditto.
28247 * config/i386/sse.md (rsqrt<mode>2): Ditto.
28248
28249 2019-02-20 David Malcolm <dmalcolm@redhat.com>
28250
28251 PR c/89410
28252 * diagnostic-show-locus.c (layout::calculate_line_spans): Use
28253 linenum_arith_t when determining if two adjacent line spans are
28254 close enough to merge.
28255 (diagnostic_show_locus): Use linenum_arith_t when iterating over
28256 lines within each line_span.
28257
28258 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
28259
28260 PR target/86487
28261 * lra-constraints.c(uses_hard_regs_p): Fix handling of
28262 paradoxical SUBREGS.
28263
28264 2019-02-20 Li Jia He <helijia@linux.ibm.com>
28265
28266 PR target/88100
28267 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
28268 <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
28269 ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
28270 range checking it.
28271
28272 2019-02-19 Jonathan Wakely <jwakely@redhat.com>
28273
28274 * config/gcn/gcn.c (print_operand): Fix typo.
28275
28276 2019-02-19 Richard Biener <rguenther@suse.de>
28277
28278 PR middle-end/88074
28279 * toplev.c (do_compile): Initialize mpfr's exponent range
28280 based on available float modes.
28281
28282 2019-02-19 Eric Botcazou <ebotcazou@adacore.com>
28283
28284 * rtlanal.c (get_initial_register_offset): Fall back to the estimate
28285 as long as the epilogue isn't completed.
28286
28287 2019-02-18 Martin Sebor <msebor@redhat.com>
28288
28289 * doc/cpp.texi (Conditional syntax): Add __has_attribute,
28290 __has_cpp_attribute, and __has_include.
28291
28292 2019-02-18 Martin Sebor <msebor@redhat.com>
28293
28294 * doc/invoke.texi (-Wreturn-type): Correct and expand.
28295
28296 2019-02-18 Martin Sebor <msebor@redhat.com>
28297
28298 PR middle-end/89294
28299 * tree.c (valid_constant_size_p): Avoid assuming size is a constant
28300 expression.
28301 * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
28302
28303 2019-02-18 Richard Biener <rguenther@suse.de>
28304
28305 PR tree-optimization/89296
28306 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
28307 of no-warning flag to cases that might emit the bogus warning.
28308
28309 2019-02-18 Jakub Jelinek <jakub@redhat.com>
28310
28311 PR bootstrap/88714
28312 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
28313 "q" constraint.
28314 * config/arm/vfp.md (*movdi_vfp): Likewise.
28315 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
28316 "q" constraint for operands[0].
28317
28318 PR target/89369
28319 * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
28320 *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
28321 pattern in a temporary buffer.
28322 (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather
28323 than 64-operands[2].
28324
28325 PR target/89361
28326 * config/s390/s390.c (s390_indirect_branch_attrvalue,
28327 s390_indirect_branch_settings): Define unconditionally.
28328 (s390_set_current_function): Likewise, but guard the whole body except
28329 the s390_indirect_branch_settings call with
28330 #if S390_USE_TARGET_ATTRIBUTE.
28331 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
28332
28333 * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
28334 *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
28335 Use HOST_WIDE_INT_M1U instead of ~(0ULL).
28336 (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
28337 HOST_WIDE_INT_1U instead of 1ULL.
28338 (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
28339 to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
28340 (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
28341 z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
28342 instead of 1UL.
28343 (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
28344 instead of 1ul.
28345
28346 2019-02-18 Martin Jambor <mjambor@suse.cz>
28347
28348 PR tree-optimization/89209
28349 * tree-sra.c (create_access_replacement): New optional parameter
28350 reg_tree. Use it as a type if non-NULL and access type is not of
28351 a register type.
28352 (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
28353 to create_access_replacement.
28354 (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
28355 Check lacc is non-NULL before attempting to re-create it on the RHS.
28356
28357 2019-02-18 Martin Liska <mliska@suse.cz>
28358
28359 PR ipa/89306
28360 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
28361 by default.
28362 (symbol_table::free_edge): Recycle m_summary_id.
28363 * cgraph.h (get_summary_id): New.
28364 (symbol_table::release_symbol): Set m_summary_id to -1
28365 by default.
28366 (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
28367 * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
28368 function_summary to fast_function_summary.
28369 * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
28370 * ipa-pure-const.c (class funct_state_summary_t):
28371 Switch from function_summary to fast_function_summary.
28372 * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
28373 (class ipa_ref_opt_summary_t): Switch from function_summary
28374 to fast_function_summary.
28375 * symbol-summary.h (class function_summary_base): New class
28376 that is created from base of former function_summary.
28377 (function_summary_base::unregister_hooks): New.
28378 (class function_summary): Inherit from function_summary_base.
28379 (class call_summary_base): New class
28380 that is created from base of former call_summary.
28381 (class call_summary): Inherit from call_summary_base.
28382 (struct is_same): New.
28383 (class fast_function_summary): New summary class.
28384 (class fast_call_summary): New summary class.
28385 * vec.h (vec_safe_grow_cleared): New function.
28386
28387 2019-02-18 Martin Liska <mliska@suse.cz>
28388
28389 * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
28390 (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
28391 * doc/tm.texi: Document new target hook.
28392 * doc/tm.texi.in: Likewise.
28393 * target.def: Add new target macro.
28394 * gcc.c (find_fortran_preinclude_file): Do not search multilib
28395 suffixes.
28396
28397 2019-02-17 Alan Modra <amodra@gmail.com>
28398
28399 PR target/89271
28400 * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
28401 output reg on add insn.
28402 (<bd>tf_<mode> split): Likewise. Match predicates with insn.
28403
28404 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
28405
28406 PR target/89372
28407 * config/i386/sse.md (ssedoublemode): Remove V4HI.
28408 (PMULHRSW): Likewise.
28409 (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
28410 TARGET_AVX2.
28411 (ssse3_pmulhrswv4hi3): New expander.
28412
28413 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
28414
28415 * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
28416 MMX. Add isa attribute.
28417
28418 2019-02-16 Jakub Jelinek <jakub@redhat.com>
28419
28420 PR rtl-optimization/66152
28421 * builtins.h (c_readstr): Declare.
28422 * builtins.c (c_readstr): Remove forward declaration. Add
28423 null_terminated_p argument, if false, read all bytes from the
28424 string instead of stopping after '\0'.
28425 * expr.c (string_cst_read_str): New function.
28426 (store_expr): Use string_cst_read_str instead of
28427 builtin_strncpy_read_str. Try to store by pieces the whole
28428 exp_len first, and only if that fails, split it up into
28429 store by pieces followed by clear_storage. Formatting fix.
28430
28431 * config/i386/i386.md (*movqi_internal): Remove static from
28432 buf variable. Use output_asm_insn (buf, operands); return "";
28433 instead of return buf;.
28434 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
28435 *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
28436 *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
28437
28438 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
28439
28440 * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
28441 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
28442 * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
28443 (CC1_SPEC): Likewise.
28444 * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
28445
28446 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
28447
28448 * asan.c (asan_emit_stack_protection): Use full-sized mask to align
28449 the base address on 64-bit strict-alignment platforms.
28450
28451 2019-02-15 H.J. Lu <hongjiu.lu@intel.com>
28452
28453 * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
28454
28455 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
28456
28457 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
28458
28459 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com>
28460
28461 PR rtl-optimization/88308
28462 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
28463 on copied instruction.
28464
28465 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
28466
28467 * final.c (insn_current_reference_address): Replace test on JUMP_P
28468 with test on jump_to_label_p.
28469 * config/visium/visium-passes.def: New file.
28470 * config/visium/t-visium (PASSES_EXTRA): Define.
28471 * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
28472 * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
28473 (TRAMPOLINE_ALIGNMENT): Define.
28474 * config/visium/visium.c (visium_option_override): Do not register
28475 the machine-specific reorg pass here.
28476 (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
28477 for the GR6.
28478 (output_branch): Adjust threshold for long branch instruction.
28479 * config/visium/visium.md (cpu): Move around.
28480 (length): Adjust for the GR6.
28481
28482 2019-02-15 Richard Biener <rguenther@suse.de>
28483 Jakub Jelinek <jakub@redhat.com>
28484
28485 PR tree-optimization/89278
28486 * tree-loop-distribution.c: Include tree-eh.h.
28487 (generate_memset_builtin, generate_memcpy_builtin): Call
28488 rewrite_to_non_trapping_overflow on builtin->size before passing it
28489 to force_gimple_operand_gsi.
28490
28491 2019-02-15 Jakub Jelinek <jakub@redhat.com>
28492
28493 PR other/89342
28494 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
28495 optimize_debug.
28496 * opth-gen.awk: Likewise.
28497
28498 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
28499
28500 * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
28501 Enable MMX, SSE and SSE2 by default.
28502 * config/i386/i386.c (ix86_option_override_internal): Do not
28503 explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
28504
28505 2019-02-14 Jakub Jelinek <jakub@redhat.com>
28506
28507 PR rtl-optimization/89354
28508 * combine.c (make_extraction): Punt if extraction_mode is narrower
28509 than len bits.
28510
28511 2019-02-14 Maya Rashish <coypu@sdf.org>
28512
28513 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
28514 * config/netbsd-d.c: New file.
28515 * config/t-netbsd: Add netbsd-d.o
28516
28517 2018-02-14 Steve Ellcey <sellcey@marvell.com>
28518
28519 * config/aarch64/aarch64.c (aarch64_attribute_table): Change
28520 affects_type_identity to true for aarch64_vector_pcs.
28521 (aarch64_comp_type_attributes): New function.
28522 (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
28523
28524 2019-02-14 Tamar Christina <tamar.christina@arm.com>
28525
28526 PR target/88850
28527 * config/arm/iterators.md (ANY64): Add V4HF.
28528
28529 2019-02-14 Martin Liska <mliska@suse.cz>
28530
28531 PR rtl-optimization/89242
28532 * dce.c (delete_unmarked_insns): Call free_dominance_info we
28533 process a transformation.
28534
28535 2019-02-14 Jakub Jelinek <jakub@redhat.com>
28536
28537 PR tree-optimization/89314
28538 * fold-const.c (fold_binary_loc): Cast strlen argument to
28539 const char * before dereferencing it. Formatting fixes.
28540
28541 PR middle-end/89284
28542 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
28543
28544 2019-02-13 Ian Lance Taylor <iant@golang.org>
28545
28546 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
28547 and set current index for other optimizations.
28548
28549 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
28550
28551 * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
28552 nonimmediate_operand as operand 2 predicate.
28553 (vec_set<VF2_512_256:mode>_0): Ditto.
28554 (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
28555 (*vec_concatv2si): Remove alternative 2.
28556 (*vec_concatv4si_0): Use vm constraint for alternative 0.
28557 (*vec_concatv4si_0): Remove preferred_for_speed attribute.
28558 (vec_concatv2di): Split alternatives 4,5,6 to ...
28559 (*vec_concatv2di_0) ... new pattern.
28560
28561 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
28562
28563 PR target/89190
28564 * config/arm/arm.c (ldm_stm_operation_p) Set
28565 addr_reg_in_reglist correctly for first register.
28566 (load_multiple_sequence): Remove dead base check.
28567 (gen_ldm_seq): Correctly set write_back for Thumb-1.
28568
28569 2019-02-13 Tamar Christina <tamar.christina@arm.com>
28570
28571 PR target/88847
28572 * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
28573 Expose as @aarch64_pred_mov.
28574 * config/aarch64/aarch64.c (aarch64_classify_address):
28575 Use expand_insn which legitimizes operands.
28576
28577 2019-02-13 Martin Liska <mliska@suse.cz>
28578
28579 * builtins.h (expand_builtin_with_bounds): Remove declaration.
28580 * calls.c (struct arg_data): Remove special_slot, pointer_arg
28581 and pointer_offset fields.
28582 (initialize_argument_information): Remove usage of dead
28583 fields.
28584 * cgraph.h (struct cgraph_thunk_info): Remove
28585 add_pointer_bounds_args.
28586 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
28587 fields.
28588 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
28589 fields.
28590 * config/i386/i386.c (ix86_function_arg_advance): Remove
28591 unrelated comment.
28592 (struct builtin_isa): Remove leaf_p and nothrow_p fields.
28593 (def_builtin): Remove usage of dead fields.
28594 (ix86_add_new_builtins): Likewise.
28595 * ipa-fnsummary.c (compute_fn_summary): Likewise.
28596 * ipa-icf.c (sem_function::equals_wpa): Likewise.
28597 (sem_function::init): Likewise.
28598 (sem_variable::merge): Likewise.
28599 * ipa-visibility.c (function_and_variable_visibility): Likewise.
28600 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
28601 * lto-cgraph.c (lto_output_node): Likewise.
28602 (lto_output_varpool_node): Likewise.
28603 (input_node): Likewise.
28604 (input_varpool_node): Likewise.
28605 * lto-streamer-out.c (lto_output): Likewise.
28606 * tree-inline.c (expand_call_inline): Remove usage of
28607 assign_stmts.
28608 * tree-inline.h (struct copy_body_data): Likewise.
28609 * varpool.c (varpool_node::dump): Likewise.
28610
28611 2019-02-13 Jakub Jelinek <jakub@redhat.com>
28612
28613 PR middle-end/89303
28614 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
28615 into pt->vars_contains_escaped_heap instead of setting
28616 pt->vars_contains_escaped_heap to it.
28617
28618 PR middle-end/89281
28619 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
28620 INTVAL (size), compare it to GET_MODE_MASK instead of
28621 1 << GET_MODE_BITSIZE.
28622
28623 PR target/89290
28624 * config/i386/predicates.md (x86_64_immediate_operand): Allow
28625 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
28626 -mcmodel=large.
28627
28628 2019-02-13 Martin Liska <mliska@suse.cz>
28629
28630 PR lto/88858
28631 * cfgrtl.c (remove_barriers_from_footer): New function.
28632 (try_redirect_by_replacing_jump): Use it.
28633 (cfg_layout_redirect_edge_and_branch): Likewise.
28634
28635 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
28636
28637 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
28638 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
28639 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
28640 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
28641 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
28642 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
28643 New BU_CRYPTO_2.
28644 * config/rs6000/rs6000.c (builtin_function_type)
28645 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
28646 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
28647 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
28648 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
28649 vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
28650
28651 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
28652
28653 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
28654 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
28655
28656 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
28657
28658 PR target/89229
28659 * config/i386/i386.md (*movoi_internal_avx): Revert revision
28660 268678 and revision 268657.
28661 (*movti_internal): Likewise.
28662
28663 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
28664
28665 PR target/89233
28666 * config/s390/s390.c (s390_decompose_address): Update comment.
28667 (s390_check_qrst_address): Reject invalid address forms after
28668 LRA.
28669
28670 2019-02-12 Martin Liska <mliska@suse.cz>
28671
28672 PR lto/88876
28673 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
28674 we need default values of funct_state for a function that
28675 is not optimized.
28676
28677 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
28678
28679 * asan.c (asan_expand_mark_ifn): Take into account the alignment of
28680 the object to pick the size of stores on strict-alignment platforms.
28681
28682 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
28683 (*movdi_insn_sp32): Likewise.
28684 (*movdi_insn_sp64): Likewise.
28685
28686 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
28687
28688 PR lto/88677
28689 * cgraphunit.c (analyze_functions): Clear READONLY flag for external
28690 types that needs constructiong.
28691 * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
28692
28693 2019-02-12 Richard Biener <rguenther@suse.de>
28694
28695 PR tree-optimization/89253
28696 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
28697 duplicate the loop.
28698
28699 2019-02-11 David Malcolm <dmalcolm@redhat.com>
28700
28701 PR lto/88147
28702 * input.c (selftest::test_line_offset_overflow): New selftest.
28703 (selftest::input_c_tests): Call it.
28704
28705 2019-02-11 Martin Sebor <msebor@redhat.com>
28706
28707 PR tree-optimization/88771
28708 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
28709 when -Wstringop-overflow is set.
28710 (builtin_memref::builtin_memref): Adjust excessive upper bound
28711 only when lower bound is not excessive.
28712 (maybe_diag_overlap): Detect and diagnose excessive bounds via
28713 -Wstringop-ovefflow.
28714 (maybe_diag_offset_bounds): Rename...
28715 (maybe_diag_access_bounds): ...to this.
28716 (check_bounds_or_overlap): Adjust for name change above.
28717
28718 2019-02-11 Martin Sebor <msebor@redhat.com>
28719
28720 PR c++/87996
28721 * builtins.c (max_object_size): Move from here...
28722 * builtins.h (max_object_size): ...and here...
28723 * tree.c (max_object_size): ...to here...
28724 * tree.h (max_object_size): ...and here.
28725
28726 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
28727
28728 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
28729 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
28730 for correct semantics.
28731
28732 2019-02-11 Alan Modra <amodra@gmail.com>
28733
28734 * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
28735 -mlongcall and -mpltseq.
28736 (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
28737 (RS/6000 and PowerPC Options <-mpltseq>): Document.
28738 * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
28739 * config/rs6000/sysv4.opt (mpltseq): New option.
28740 * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
28741 (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
28742 support is lacking. Don't allow -mpltseq with -mbss-plt.
28743 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
28744 -mpltseq given for ELFv1.
28745 * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
28746 Only use UNSPEC_PLTSEQ for inline PLT calls.
28747 (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only
28748 use UNSPEC_PLTSEQ for inline PLT calls.
28749 (rs6000_indirect_call_template_1, rs6000_longcall_ref),
28750 (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
28751 uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
28752 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
28753 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
28754 (pltseq_mtctr_<mode>): Likewise.
28755
28756 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28757
28758 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
28759 Solaris ld.
28760 * configure: Regenerate.
28761
28762 2019-02-11 Jakub Jelinek <jakub@redhat.com>
28763
28764 PR bootstrap/88714
28765 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
28766 instead of r.
28767
28768 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
28769
28770 * function.c (assign_parm_setup_block): Use the stored
28771 size, not the passed size, when allocating stack-space,
28772 also for a parameter with alignment larger than
28773 MAX_SUPPORTED_STACK_ALIGNMENT.
28774
28775 2019-02-11 Martin Liska <mliska@suse.cz>
28776
28777 PR ipa/89009
28778 * ipa-cp.c (build_toporder_info): Remove usage of a param.
28779 * ipa-inline.c (inline_small_functions): Likewise.
28780 * ipa-pure-const.c (propagate_pure_const): Likewise.
28781 (propagate_nothrow): Likewise.
28782 * ipa-reference.c (propagate): Likewise.
28783 * ipa-utils.c (struct searchc_env): Remove unused field.
28784 (searchc): Always search across AVAIL_INTERPOSABLE.
28785 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
28786 the only called IPA pure const can properly not propagate
28787 across interposable boundary.
28788 * ipa-utils.h (ipa_reduced_postorder): Remove param.
28789
28790 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
28791
28792 * config/nds32/nds32.md (call_internal, call_value_internal,
28793 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
28794
28795 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
28796
28797 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
28798 typo.
28799
28800 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
28801
28802 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
28803 in comments
28804
28805 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
28806
28807 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
28808
28809 2019-02-10 Jakub Jelinek <jakub@redhat.com>
28810
28811 PR tree-optimization/89268
28812 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
28813 if preds is non-NULL.
28814
28815 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
28816
28817 PR lto/89272
28818 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
28819 polymorphic types.
28820
28821 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
28822
28823 * config/nds32/nds32.md (trap): New pattern.
28824
28825 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
28826
28827 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
28828 dwarf span.
28829
28830 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
28831
28832 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
28833 to split POST_INC.
28834
28835 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
28836
28837 * ipa-visibility.c (localize_node): Also do not localize
28838 LDPR_PREVAILING_DEF_IRONLY_EXP.
28839
28840 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
28841
28842 PR lto/87957
28843 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
28844 instead of type_with_linkage.
28845
28846 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
28847
28848 PR ipa/88755
28849 * params.def (uninlined-function-insns, uninlined-function-time,
28850 uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
28851 bound so we don't get overflows.
28852
28853 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
28854
28855 * config/rs6000/rs6000-string.c (expand_compare_loop,
28856 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
28857 memcmp/strncmp.
28858
28859 2019-02-09 Jakub Jelinek <jakub@redhat.com>
28860
28861 PR middle-end/89246
28862 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
28863 If !node->definition and TYPE_ARG_TYPES is non-NULL, use
28864 TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
28865
28866 2019-02-09 Alan Modra <amodra@gmail.com>
28867
28868 PR target/88343
28869 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
28870 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
28871 setup.
28872
28873 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
28874
28875 PR middle-end/88560
28876 * lra-constraints.c (process_alt_operands): Don't increase reject
28877 for memory when offset memory is required.
28878
28879 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
28880
28881 * config/s390/vector.md: Implement vector copysign.
28882
28883 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
28884
28885 * expr.c (expand_constructor): Correct indentations.
28886
28887 2019-02-08 Richard Biener <rguenther@suse.de>
28888
28889 PR tree-optimization/89247
28890 * tree-if-conv.c: Include tree-cfgcleanup.h.
28891 (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
28892 (tree_if_conversion): Pass through predicate vector.
28893 (pass_if_conversion::execute): Do CFG cleanup and SSA update
28894 inline, see if any if-converted loops we refrece in
28895 LOOP_VECTORIZED calls vanished and fixup.
28896 * tree-if-conv.h (tree_if_conversion): Adjust prototype.
28897
28898 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
28899
28900 * config/s390/constraints.md (jdd): New constraint.
28901
28902 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
28903
28904 PR target/89229
28905 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
28906 upper 16 vector registers without TARGET_AVX512VL.
28907 (*movti_internal): Likewise.
28908
28909 2019-02-08 Jakub Jelinek <jakub@redhat.com>
28910
28911 PR rtl-optimization/89234
28912 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
28913 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
28914 (copy_reg_eh_region_note_backward): Likewise.
28915
28916 2019-02-08 Richard Biener <rguenther@suse.de>
28917
28918 PR middle-end/89223
28919 * tree-data-ref.c (initialize_matrix_A): Fail if constant
28920 doesn't fit in HWI.
28921 (analyze_subscript_affine_affine): Handle failure from
28922 initialize_matrix_A.
28923
28924 2019-02-08 Jakub Jelinek <jakub@redhat.com>
28925
28926 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
28927 cfun everywhere.
28928
28929 2019-02-07 David Malcolm <dmalcolm@redhat.com>
28930
28931 PR tree-optimization/86637
28932 PR tree-optimization/89235
28933 * tree-vect-loop.c (optimize_mask_stores): Add an
28934 auto_purge_vect_location sentinel to ensure that vect_location is
28935 purged on exit.
28936 * tree-vectorizer.c
28937 (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
28938 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
28939 to ensure that vect_location is purged on exit.
28940 (pass_slp_vectorize::execute): Likewise, replacing the manual
28941 reset.
28942 * tree-vectorizer.h (class auto_purge_vect_location): New class.
28943
28944 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28945
28946 * config/aarch64/iterators.md (max_opp): New code_attr.
28947 (USMAX): New code iterator.
28948 * config/aarch64/predicates.md (aarch64_smin): New predicate.
28949 (aarch64_smax): Likewise.
28950 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
28951 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
28952 MINUS (MAX MIN).
28953
28954 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
28955
28956 PR target/89229
28957 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
28958 for TARGET_AVX512VL.
28959 (*movti_internal): Set mode to TI for TARGET_AVX512VL.
28960
28961 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
28962
28963 * config/s390/s390-builtin-types.def: Add new types.
28964 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
28965 (s390_vec_xlw4): Make the memory operand into a const pointer.
28966 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
28967 float.
28968 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
28969 a new vector type with the alignment of the scalar memory operand.
28970
28971 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
28972 Jakub Jelinek <jakub@redhat.com>
28973
28974 PR bootstrap/88714
28975 * config/arm/arm-protos.h (valid_operands_ldrd_strd,
28976 arm_count_ldrdstrd_insns): New declarations.
28977 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
28978 MINUS.
28979 (valid_operands_ldrd_strd): New function.
28980 (arm_count_ldrdstrd_insns): New function.
28981 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
28982 sets instead of single DImode set and define new insns to match this.
28983
28984 2019-02-07 Tamar Christina <tamar.christina@arm.com>
28985
28986 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
28987 Make it a C initializer.
28988
28989 2019-02-07 Tamar Christina <tamar.christina@arm.com>
28990
28991 PR/target 88850
28992 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
28993
28994 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28995
28996 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
28997 Use neon_dot<q> for type.
28998 (neon_<sup>dot_lane<vsi2qi>): Likewise.
28999
29000 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29001
29002 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
29003 Use neon_dot<q> for type.
29004 (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
29005 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
29006
29007 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
29008
29009 PR rtl-optimization/89225
29010 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
29011 sizes check.
29012
29013 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
29014
29015 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
29016 after restoring registers saved to allocate the frame on Windows.
29017
29018 2019-02-06 Richard Biener <rguenther@suse.de>
29019
29020 PR tree-optimization/89182
29021 * graphite.h (cached_scalar_evolution_in_region): Declare.
29022 * graphite.c (struct seir_cache_key): New.
29023 (struct sese_scev_hash): Likewise.
29024 (seir_cache): New global.
29025 (cached_scalar_evolution_in_region): New function.
29026 (graphite_transform_loops): Allocate and release seir_cache.
29027 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
29028 cached_scalar_evolution_in_region.
29029 * graphite-scop-detection.c (scop_detection::can_represent_loop):
29030 Simplify.
29031 (scop_detection::graphite_can_represent_expr: Use
29032 cached_scalar_evolution_in_region.
29033 (scop_detection::stmt_simple_for_scop_p): Likewise.
29034 (find_params_in_bb): Likewise.
29035 (gather_bbs::before_dom_children): Likewise.
29036 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
29037 (add_loop_constraints): Likewise.
29038
29039 2019-02-06 Jakub Jelinek <jakub@redhat.com>
29040
29041 PR middle-end/89210
29042 * fold-const-call.c (fold_const_vec_convert): Pass true as last
29043 operand to new_unary_operation only if both element types are integral
29044 and it isn't a widening conversion. Return NULL_TREE if
29045 new_unary_operation failed.
29046
29047 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
29048
29049 PR target/88856
29050 * config/s390/s390.md: Remove load and test FP splitter.
29051
29052 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
29053
29054 PR target/89112
29055 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
29056 expand_compare_loop, expand_block_compare_gpr,
29057 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
29058 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
29059 #include "profile-count.h" and "predict.h" for types and functions
29060 needed to work with REG_BR_PROB notes.
29061
29062 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
29063
29064 PR target/89112
29065 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
29066 for the long branch case.
29067
29068 2019-02-05 Jakub Jelinek <jakub@redhat.com>
29069
29070 PR target/89188
29071 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
29072 can throw, non-call exceptions are enabled and we can't delete
29073 dead exceptions or alter cfg. Set must_clean if
29074 delete_insn_and_edges returns true, don't set it blindly for calls.
29075 Assert that delete_unreachable_blocks is called only if can_alter_cfg.
29076
29077 PR rtl-optimization/89195
29078 * combine.c (make_extraction): For MEMs, don't extract bytes outside
29079 of the original MEM.
29080
29081 2019-02-05 Martin Liska <mliska@suse.cz>
29082
29083 PR gcov-profile/89000
29084 * gcov.c (function_summary): Remove argument.
29085 (file_summary): New function.
29086 (print_usage): Replace tabs with spaces.
29087 (generate_results): Use new function file_summary.
29088
29089 2019-02-05 Jakub Jelinek <jakub@redhat.com>
29090
29091 PR target/89186
29092 * optabs.c (prepare_cmp_insn): Pass x and y to
29093 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
29094
29095 2019-02-05 Richard Biener <rguenther@suse.de>
29096
29097 PR middle-end/89150
29098 * bitmap.h (struct bitmap_obstack): Do not mark GTY.
29099 (struct bitmap_element): Drop chain_prev so we properly recurse on
29100 the prev member, supporting tree views.
29101 (struct bitmap_head): GTY skip the obstack member.
29102
29103 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
29104
29105 PR c/88698
29106 * doc/extend.texi (Vector Extensions): Add an example of using vector
29107 types together with x86 intrinsics.
29108
29109 2019-02-04 Alan Modra <amodra@gmail.com>
29110
29111 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
29112 str[] size to 160, and comment.
29113
29114 2019-02-04 Alan Modra <amodra@gmail.com>
29115
29116 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
29117 (rs6000_pltseq_template): Guard output of TLS markers with
29118 TARGET_TLS_MARKERS.
29119 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
29120 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
29121 to use inline PLT sequences.
29122 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
29123 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
29124 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
29125
29126 2019-02-04 Martin Liska <mliska@suse.cz>
29127
29128 PR ipa/88985
29129 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
29130 out when ipa_fn_summaries does not contain entry for callee.
29131
29132 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
29133
29134 * config/sparc/sparc.h: Remove superfluous blank lines.
29135 * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
29136 (got_register_rtx): ...this.
29137 (sparc_got): Adjust to above renaming.
29138 (sparc_tls_got): Likewise.
29139 (sparc_delegitimize_address): Likewise.
29140 (sparc_output_mi_thunk): Likewise.
29141 (sparc_init_pic_reg): Likewise.
29142 (save_local_or_in_reg_p): Fix test on the GOT register.
29143 (USE_HIDDEN_LINKONCE): Move around.
29144 (get_pc_thunk_name): Likewise.
29145 (gen_load_pcrel_sym): Likewise.
29146 (load_got_register): Likewise.
29147
29148 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
29149
29150 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
29151 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
29152
29153 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
29154
29155 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
29156 into consideration.
29157
29158 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
29159
29160 * config.gcc (with_nds32_lib, glibc):
29161 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
29162 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
29163 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
29164
29165 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
29166
29167 PR target/89071
29168 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
29169 Do not prefer (v,v) alternative for non-AVX targets and (m,v)
29170 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
29171 (*rcpsf2_sse): Ditto.
29172 (*rsqrtsf2_sse): Ditto.
29173 (sse4_1_round<mode<2): Ditto.
29174
29175 2019-02-03 Richard Biener <rguenther@suse.de>
29176
29177 PR debug/87295
29178 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
29179 orig.
29180
29181 2019-02-02 Jakub Jelinek <jakub@redhat.com>
29182
29183 PR middle-end/87887
29184 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
29185 Punt with warning on aggregate return or argument types. Ignore
29186 type/mode checking for uniform arguments.
29187
29188 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
29189
29190 * combine.c (try_combine): Do not print "Can't combine" messages unless
29191 printing failed combination attempts.
29192
29193 2019-02-01 Martin Jambor <mjambor@suse.cz>
29194
29195 PR hsa/87863
29196 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
29197 segment and global segment variables before making them static.
29198
29199 2019-02-01 Martin Jambor <mjambor@suse.cz>
29200
29201 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
29202 missed optimization dump with dump_enabled_p.
29203
29204 2019-02-01 Richard Biener <rguenther@suse.de>
29205
29206 PR middle-end/88597
29207 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
29208 the instantiate cache.
29209 (instantiate_scev_binary): Elide second operand procesing
29210 if equal to the first.
29211 * tree-chrec.c (chrec_contains_symbols): Add visited set.
29212 (chrec_contains_undetermined): Likewise.
29213 (tree_contains_chrecs): Likewise.
29214
29215 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
29216
29217 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
29218
29219 2019-02-01 Jakub Jelinek <jakub@redhat.com>
29220
29221 PR tree-optimization/89143
29222 * wide-int-range.h (wide_int_range_absu): Declare.
29223 * wide-int-range.cc (wide_int_range_absu): New function.
29224 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
29225
29226 PR tree-optimization/88107
29227 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
29228 instead of assertion that eh_region_outermost is non-NULL, if it
29229 is NULL, set *ALL to true and return NULL.
29230 (move_sese_region_to_fn): Adjust caller, if all is set, call
29231 duplicate_eh_regions with NULL region.
29232
29233 2019-02-01 Richard Biener <rguenth@suse.de>
29234
29235 PR rtl-optimization/88593
29236 * mode-switching.c (optimize_mode_switching): Free dominators before
29237 calling cleanup_cfg.
29238
29239 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
29240
29241 PR tree-optimization/88932
29242 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
29243
29244 2019-01-31 Jakub Jelinek <jakub@redhat.com>
29245
29246 PR middle-end/89137
29247 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
29248 bogus clang warning.
29249
29250 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
29251
29252 PR target/89071
29253 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
29254 alternative to avoid partial SSE register stall for TARGET_AVX.
29255 (truncdfsf2): Ditto.
29256 (sse4_1_round<mode>2): Ditto.
29257
29258 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
29259
29260 PR tree-optimization/89008
29261 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
29262 process anything of the form X * 0.
29263
29264 2019-01-31 Richard Biener <rguenther@suse.de>
29265
29266 PR tree-optimization/89135
29267 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
29268 with abnormal preds.
29269
29270 2019-01-31 Jakub Jelinek <jakub@redhat.com>
29271
29272 PR sanitizer/89124
29273 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
29274 always_inline callees into no_sanitize_address callers.
29275
29276 2019-01-31 Richard Biener <rguenther@suse.de>
29277
29278 PR rtl-optimization/89115
29279 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
29280
29281 2019-01-30 Martin Sebor <msebor@redhat.com>
29282
29283 PR other/89106
29284 * doc/extend.texi (cast to a union): Correct and expand.
29285
29286 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
29287
29288 PR rtl-optimization/87246
29289 * lra-constraints.c (simplify_operand_subreg): Reload memory
29290 in subreg if the address became invalid.
29291
29292 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
29293
29294 PR target/87064
29295 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
29296 Disable for little-endian.
29297
29298 2019-01-30 Richard Biener <rguenther@suse.de>
29299
29300 PR rtl-optimization/89115
29301 * opts.c (default_options_optimization): Reduce
29302 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
29303 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
29304 to the default.
29305
29306 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
29307
29308 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
29309 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
29310 type of vector element when vec_extract is implemented by direct
29311 move.
29312
29313 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
29314
29315 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
29316
29317 2019-01-30 Richard Biener <rguenther@suse.de>
29318
29319 PR tree-optimization/89111
29320 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
29321 canonicalization to appropriately sized access types.
29322
29323 2019-01-30 Jakub Jelinek <jakub@redhat.com>
29324
29325 PR c++/89105
29326 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
29327 for arguments to functions that are TU-local and shouldn't be
29328 referenced by assembly.
29329
29330 2019-01-30 Ulrich Drepper <drepper@redhat.com>
29331
29332 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
29333 after '='.
29334
29335 2019-01-29 Martin Sebor <msebor@redhat.com>
29336
29337 PR c/88956
29338 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
29339
29340 2019-01-29 Jakub Jelinek <jakub@redhat.com>
29341
29342 PR c++/66676
29343 PR ipa/89104
29344 * omp-simd-clone.c (simd_clone_clauses_extract)
29345 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
29346 OMP_CLAUSE_ALIGNED_ALIGNMENT.
29347
29348 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
29349
29350 * config.gcc: Force .init_array for ARC.
29351
29352 2019-01-29 Richard Biener <rguenther@suse.de>
29353
29354 PR debug/87295
29355 * dwarf2out.c (collect_skeleton_dies): New helper.
29356 (copy_decls_for_unworthy_types): Call it.
29357 (build_abbrev_table): Assert we do not try to replace
29358 DW_AT_signature refs with local refs.
29359
29360 2019-01-28 Jakub Jelinek <jakub@redhat.com>
29361
29362 PR middle-end/89002
29363 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
29364 for lastprivate/linear IV, push gimplify context around gimplify_assign
29365 and, if it needed any temporaries, pop it into a gimple bind around the
29366 sequence.
29367
29368 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
29369
29370 * common.opt (-Wattribute-alias): Remove "no-" from name.
29371 Make -Wattribute-alias command line option and
29372 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
29373
29374 2019-01-28 Jakub Jelinek <jakub@redhat.com>
29375
29376 PR target/89073
29377 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
29378 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
29379 x86 ISA options.
29380 (bmi2): Add missing @opindex.
29381 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
29382 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
29383 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
29384 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
29385 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
29386 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
29387 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
29388 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
29389 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
29390 xsavec, xsaveopt and xsaves options.
29391
29392 2019-01-28 Richard Biener <rguenther@suse.de>
29393
29394 PR debug/89076
29395 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
29396 support removal.
29397
29398 2019-01-28 Richard Biener <rguenther@suse.de>
29399
29400 PR tree-optimization/88739
29401 * tree-cfg.c (verify_types_in_gimple_reference): Verify
29402 BIT_FIELD_REFs only are applied to mode-precision operands
29403 when they are integral.
29404 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
29405 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
29406 BIT_FIELD_REFs of non-mode-precision integral operands.
29407
29408 2019-01-27 Jakub Jelinek <jakub@redhat.com>
29409
29410 PR target/87214
29411 * config/i386/sse.md
29412 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
29413 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
29414 first constants in pairs are multiples of 2. Formatting fixes.
29415 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
29416 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
29417 first constants in each quadruple are multiples of 4. Formatting fixes.
29418
29419 2019-01-26 Martin Jambor <mjambor@suse.cz>
29420
29421 PR ipa/88933
29422 * tree-inline.c: Include tree-cfgcleanup.h.
29423 (delete_unreachable_blocks_update_callgraph): Move...
29424 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
29425 ...here, make externally visible, make second argument bool, adjust
29426 all callers.
29427 * tree-cfgcleanup.c: Include cgraph.h.
29428 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
29429 Declare.
29430 * ipa-prop.c: Include tree-cfgcleanup.h.
29431 (ipcp_transform_function): Call
29432 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
29433
29434 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
29435
29436 PR rtl-optimization/88846
29437 * ira.c (process_set_for_memref_referenced_p): New.
29438 (memref_referenced_p): Add new param. Use
29439 process_set_for_memref_referenced_p. Add new switch cases.
29440 (memref_used_between_p): Pass new arg to memref_referenced_p.
29441
29442 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
29443
29444 PR target/88469
29445 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
29446 argument ABI_BREAK. Set to true if the calculated alignment has
29447 changed in gcc-9. Check bit-fields for their base type alignment.
29448 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
29449 (aarch64_function_arg_boundary): Likewise.
29450 (aarch64_gimplify_va_arg_expr): Likewise.
29451
29452 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
29453
29454 PR middle-end/89037
29455 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
29456 instead of accessing TREE_INT_CST_ELT directly.
29457
29458 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
29459
29460 * doc/sourcebuild.texi (Environment attributes): Add fenv and
29461 fenv_exceptions description.
29462
29463 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
29464
29465 PR rtl-optimization/87763
29466 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
29467 Allow SUBREG when matching CC_NZmode compare.
29468
29469 2019-01-25 Richard Biener <rguenther@suse.de>
29470
29471 PR tree-optimization/89049
29472 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
29473 Look at the pattern stmt to determine if the stmt is vectorized.
29474
29475 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
29476
29477 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
29478 (pred_mov<mode>): Handle all-register forms using both a new
29479 alternative and a split.
29480
29481 2019-01-25 Richard Biener <rguenther@suse.de>
29482
29483 PR tree-optimization/86865
29484 * graphite-scop-detection.c (scop_detection::can_represent_loop):
29485 Reject non-do-while loops.
29486
29487 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
29488
29489 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
29490 * config/rs6000/constraints.md (Q constraint): Use REG_P.
29491 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
29492 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
29493 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
29494 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
29495 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
29496 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
29497 vlogical_operand, gpc_reg_operand, int_reg_operand,
29498 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
29499 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
29500 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
29501 (save_world_operation, restore_world_operation, lmw_operation,
29502 stmw_operation): Use MEM_P and REG_P.
29503 (tie_operand): Use MEM_P.
29504 (vrsave_operation, crsave_operation): Use REG_P.
29505 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
29506 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
29507 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
29508 (call_operand): Use HARD_REGISTER_P.
29509 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
29510 Use CONST_INT_P.
29511 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
29512 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
29513 quad_aligned_load_p, replace_swapped_aligned_store,
29514 recombine_lvx_pattern, replace_swapped_aligned_load,
29515 recombine_stvx_pattern): Use MEM_P.
29516 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
29517 Use MEM_P and SYMBOL_REF_P.
29518 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
29519 (insn_is_swappable_p): Use REG_P and MEM_P.
29520 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
29521 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
29522 Use CONST_INT_P.
29523 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
29524 Use CONST_DOUBLE_P.
29525 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
29526 CONST_WIDE_INT_P.
29527 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
29528 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
29529 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
29530 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
29531 reg_or_subregno:
29532 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
29533 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
29534 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
29535 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
29536 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
29537 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
29538 rs6000_split_logical_di): Use CONST_INT_P.
29539 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
29540 REG_P and SYMBOL_REF_P.
29541 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
29542 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
29543 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
29544 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
29545 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
29546 (small_data_operand, print_operand_address): Use CONST_INT_P and
29547 SYMBOL_REF_P.
29548 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
29549 (rs6000_init_hard_regno_mode_ok, direct_move_p):
29550 Use HARD_REGISTER_NUM_P.
29551 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
29552 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
29553 SUBREG_P and SYMBOL_REF_P.
29554 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
29555 and HARD_REGISTER_NUM_P.
29556 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
29557 reg_or_subregno.
29558 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
29559 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
29560 MEM_P and REG_P.
29561 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
29562 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
29563 find_addr_reg): Use REG_P.
29564 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
29565 (rs6000_emit_le_vsx_move): Use SUBREG_P.
29566 (offsettable_ok_by_alignment, constant_pool_expr_p,
29567 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
29568 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
29569 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
29570 rs6000_assemble_integer, create_TOC_reference,
29571 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
29572 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
29573 (rs6000_split_vec_extract_var): Use reg_or_subregno.
29574 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
29575 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
29576 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
29577 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
29578 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
29579 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
29580 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
29581 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
29582 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
29583 and cbranch<mode>4): Use CONST_INT_P.
29584 (multiple define_splits): Use REG_P and SUBREG_P.
29585 (define_expands call, call_value): Use MEM_P.
29586 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
29587 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
29588 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
29589 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
29590 and HARD_REGISTER_NUM_P.
29591 (multiple define_splits): Use HARD_REGISTER_NUM_P.
29592
29593 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
29594
29595 PR rtl-optimization/88948
29596 * rtl.h (prepare_copy_insn): New prototype.
29597 * gcse.c (prepare_copy_insn): New function, split out from
29598 process_insert_insn.
29599 (process_insert_insn): Use prepare_copy_insn.
29600 * store-motion.c (replace_store_insn): Use prepare_copy_insn
29601 instead of gen_move_insn.
29602
29603 2019-01-24 Jakub Jelinek <jakub@redhat.com>
29604
29605 PR debug/89006
29606 * config/i386/i386.c (ix86_pic_register_p): Return true for
29607 UNSPEC_SET_GOT too.
29608
29609 PR tree-optimization/88964
29610 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
29611 punt if HONOR_SNANS (chrec).
29612
29613 PR middle-end/89015
29614 * tree-nested.c (convert_nonlocal_reference_stmt,
29615 convert_local_reference_stmt, convert_tramp_reference_stmt,
29616 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
29617 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
29618 or GIMPLE_OMP_TASK.
29619
29620 PR tree-optimization/89027
29621 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
29622 for "omp simd array" variables.
29623
29624 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
29625
29626 PR target/88469
29627 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
29628 force the alignment of m_val.
29629
29630 2019-01-24 Richard Biener <rguenther@suse.de>
29631
29632 PR lto/87187
29633 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
29634 When in "legacy" debug mode make sure to reset self-origins.
29635
29636 2019-01-24 Martin Liska <mliska@suse.cz>
29637
29638 PR gcov-profile/88994
29639 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
29640 result will be always smaller or equal to the original.
29641 * gcov.c (mangle_name): Fix else branch where we should
29642 also copy to PTR and shift the pointer.
29643
29644 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
29645
29646 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
29647 * vr-values.c (find_case_label_ranges): Fix a comment typo.
29648
29649 2019-01-23 Xuepeng Guo <xuepeng.guo@intel.com>
29650
29651 * common/config/i386/i386-common.c
29652 (OPTION_MASK_ISA_ENQCMD_SET,
29653 OPTION_MASK_ISA_ENQCMD_UNSET): New macros.
29654 (ix86_handle_option): Handle -menqcmd.
29655 * config.gcc (enqcmdintrin.h): New header file.
29656 * config/i386/cpuid.h (bit_ENQCMD): New bit.
29657 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
29658 -menqcmd.
29659 * config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New
29660 function type.
29661 * config/i386/i386-builtin.def (__builtin_ia32_enqcmd,
29662 __builtin_ia32_enqcmds): New builtins.
29663 * config/i386/i386-c.c (__ENQCMD__): New macro.
29664 * config/i386/i386-option.c (ix86_target_string): Add
29665 -menqcmd.
29666 (ix86_valid_target_attribute_inner_p): Likewise.
29667 * config/i386/i386-expand.c
29668 (ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and
29669 IX86_BUILTIN_ENQCMDS.
29670 * config/i386/i386.h (TARGET_ENQCMD): New.
29671 * config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New.
29672 (@enqcmd<enqcmd_sfx>_<mode>): New insn pattern.
29673 (movdir64b_<mode>): Parameterize to enable share expansion code
29674 with ENQCMD in function ix86_expand_builtin.
29675 * config/i386/i386.opt: Add -menqcmd.
29676 * config/i386/immintrin.h: Include enqcmdintrin.h.
29677 * config/i386/enqcmdintrin.h: New intrinsic file.
29678 * doc/invoke.texi: Add -menqcmd.
29679
29680 2019-01-23 Bin Cheng <bin.cheng@arm.com>
29681 Steve Ellcey <sellcey@marvell.com>
29682
29683 PR target/85711
29684 * recog.c (address_operand): Return false on wrong mode for address.
29685 (constrain_operands): Check for mode with 'p' constraint.
29686
29687 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
29688
29689 PR target/88998
29690 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
29691 Disparage MMX alternative.
29692 (sse2_cvtpd2pi): Ditto.
29693 (sse2_cvttpd2pi): Ditto.
29694
29695 2019-01-23 David Malcolm <dmalcolm@redhat.com>
29696
29697 PR driver/89014
29698 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
29699 use-after-free of the result of
29700 aarch64_get_extension_string_for_isa_flags.
29701
29702 2019-01-23 Jakub Jelinek <jakub@redhat.com>
29703
29704 PR c/44715
29705 * doc/extend.texi: Document break and continue behavior in
29706 statement expressions.
29707
29708 2019-01-23 Richard Biener <rguenther@suse.de>
29709
29710 PR tree-optimization/89008
29711 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
29712 not leave another stray operand.
29713
29714 2019-01-23 Jakub Jelinek <jakub@redhat.com>
29715
29716 * BASE-VER: Bump to 9.0.1.
29717
29718 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
29719
29720 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
29721 thunk that returns by reference, use the type of the return object
29722 of the thunk instead of that of the alias to build the dereference.
29723
29724 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
29725
29726 * config/arc/atomic.md: Add operand to DMB instruction.
29727
29728 2019-01-23 Jakub Jelinek <jakub@redhat.com>
29729
29730 PR tree-optimization/88964
29731 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
29732 build_zero_cst instead of build_int_cst. Return false for loop
29733 invariants which honor signed zeros.
29734
29735 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
29736
29737 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
29738
29739 2019-01-22 Jakub Jelinek <jakub@redhat.com>
29740
29741 PR target/88965
29742 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
29743 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
29744 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
29745
29746 PR middle-end/88968
29747 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
29748 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
29749
29750 PR target/87064
29751 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
29752 Disable for little endian.
29753
29754 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
29755
29756 PR target/88469
29757 * config/arm/arm.c (arm_needs_double_word_align): Check
29758 DECL_BIT_FIELD_TYPE.
29759
29760 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
29761 H.J. Lu <hongjiu.lu@intel.com>
29762
29763 PR target/88909
29764 * config/i386/i386-builtin.def: Add mask2 to all builtin
29765 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
29766 SPECIAL_ARGS.
29767 * config/i386/i386.c (BDESC): Add mask2 to the definition.
29768 (BDESC_FIRST): Likewise.
29769 (define_builtin): Add an argument for mask2. Updated to handle
29770 both ix86_isa_flags and ix86_isa_flags2.
29771 (define_builtin_const): Likewise.
29772 (define_builtin_pure): Likewise.
29773 (define_builtin2): Deleted.
29774 (define_builtin_const2): Likewise.
29775 (builtin_description): Add a member, mask2.
29776 (bdesc_*): Add mask2 to builtin initializations.
29777 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
29778 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
29779 support.
29780 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
29781
29782 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
29783
29784 PR target/88954
29785 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
29786 noplt attribute.
29787
29788 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
29789
29790 PR target/88469
29791 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
29792 alignment is dominated by a bitfield with 64-bit aligned base type.
29793 (arm_function_arg): Emit a warning if the alignment has changed since
29794 earlier GCC releases.
29795 (arm_function_arg_boundary): Likewise.
29796 (arm_setup_incoming_varargs): Likewise.
29797
29798 2019-01-22 Richard Biener <rguenther@suse.de>
29799
29800 PR tree-optimization/88862
29801 * graphite-scop-detection.c
29802 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
29803
29804 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
29805
29806 * doc/extend.tex (AMD GCN Function Attributes): New section.
29807 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
29808 * doc/invoke.texi (AMD GCN Options): New section.
29809 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
29810
29811 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
29812
29813 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
29814 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
29815
29816 2019-01-22 Jakub Jelinek <jakub@redhat.com>
29817
29818 PR tree-optimization/88044
29819 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
29820 is false in the first iteration, but !every_iteration, return false
29821 instead of true with niter->niter zero.
29822
29823 PR rtl-optimization/88904
29824 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
29825 any nonequal registers before processing BB_END (b).
29826
29827 PR target/88905
29828 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
29829 GET_MODE (op0).
29830 (expand_binop_directly, expand_doubleword_clz,
29831 expand_doubleword_popcount, expand_ctz, expand_ffs,
29832 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
29833
29834 PR rtl-optimization/49429
29835 PR target/49454
29836 PR rtl-optimization/86334
29837 PR target/88906
29838 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
29839 addressable from here...
29840 (emit_block_op_via_libcall): ... to here.
29841
29842 2019-01-22 Richard Biener <rguenther@suse.de>
29843
29844 * tree-vect-loop.c (vect_analyze_loop_operations): Use
29845 auto_vec for cost vector to fix memleak.
29846 (vectorize_fold_left_reduction): Properly gather SLP defs.
29847 (vectorizable_comparison): Do not swap operands to properly
29848 gather SLP defs.
29849
29850 2019-01-22 Alan Modra <amodra@gmail.com>
29851
29852 PR target/88614
29853 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
29854 stays a reg. Allow a const_int.
29855 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
29856 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
29857 (IS_NOMARK_TLSGETADDR): Define.
29858 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
29859 (rs6000_output_tlsargs): New function.
29860 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
29861 __tls_get_addr call takes an arg.
29862 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
29863 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
29864 delete split..
29865 (call_value_nonlocal_sysv): ..or here, delete split.
29866 (tls_gdld_nomark): Delete.
29867 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
29868 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
29869 (call_value_nonlocal_sysv): Likewise.
29870 (call_value_nonlocal_sysv_secure): Likewise.
29871 (call_value_nonlocal_aix): Likewise.
29872 (call_value_indirect_aix): Likewise.
29873 (call_value_indirect_elfv2): Likewise.
29874 (call_value_local32, call_value_local64): Disable for no-mark tls.
29875 (call_value_local_aix): Likewise.
29876
29877 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
29878
29879 PR target/88938
29880 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
29881 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
29882
29883 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
29884
29885 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
29886 string contents as hash_map keys.
29887
29888 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
29889
29890 PR c/88928
29891 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
29892 for rvalue context. Handle rvalues correctly. Use min_align_of_type
29893 instead of TYPE_ALIGN.
29894 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
29895 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
29896 pointer from TYPE_STUB_DECL.
29897
29898 2019-01-21 Richard Biener <rguenther@suse.de>
29899
29900 PR tree-optimization/88934
29901 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
29902 at the possibly non-constant operand.
29903 (vect_get_constant_vectors): Adjust.
29904
29905 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
29906
29907 PR target/71659
29908 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
29909 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
29910 instead of _X86INTRIN_H_INCLUDED.
29911 * onfig/i386/clwbintrin.h: Likewise.
29912 * config/i386/pkuintrin.h: Likewise.
29913 * config/i386/prfchwintrin.h: Likewise.
29914 * config/i386/rdseedintrin.h: Likewise.
29915 * config/i386/wbnoinvdintrin.h: Likewise.
29916 * config/i386/xsavecintrin.h: Likewise.
29917 * config/i386/xsavesintrin.h: Likewise.
29918 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
29919 * config/i386/xsaveintrin.h: Likewise.
29920 * config/i386/xsaveoptintrin.h: Likewise.
29921 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
29922 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
29923 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
29924 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
29925 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
29926 * config/i386/immintrin.h: Here.
29927
29928 2019-01-20 Martin Jambor <mjambor@suse.cz>
29929
29930 PR ipa/87615
29931 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
29932 with aa_walk_budget.
29933 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
29934 aa_walk_budget_p parameter.
29935 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
29936 walk. Updated all callers.
29937 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
29938 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
29939 unmodified_parm.
29940 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
29941 parameter info. Extract info from fbi. Pass fbi to recursive calls
29942 and to unmodified_parm.
29943 (phi_result_unknown_predicate): New parameter fbi, removed parameter
29944 info, updated call to will_be_nonconstant_expr_predicate.
29945 (param_change_prob): New parameter fbi, limit AA walking.
29946 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
29947 calls to various above functions.
29948 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
29949 parameter. Use it to limit AA walking.
29950 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
29951 fbi, limit AA walk.
29952 (detect_type_change): New parameter fbi, pass it on to
29953 detect_type_change_from_memory_writes.
29954 (detect_type_change_ssa): Likewise.
29955 (aa_overwalked): Removed.
29956 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
29957 accordingly, adjust to the neew AA limiting scheme.
29958 (parm_ref_data_preserved_p): Likewise.
29959 (ipa_compute_jump_functions_for_edge): Adjust call to
29960 get_dynamic_type.
29961 (ipa_analyze_call_uses): Likewise.
29962 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
29963 (ipa_analyze_node): Initialize aa_walk_budget.
29964 (ipcp_transform_function): Likewise.
29965 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
29966 to get_dynamic_type.
29967
29968 2019-01-19 Jakub Jelinek <jakub@redhat.com>
29969
29970 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
29971 outside of #if CHECKING_P code.
29972
29973 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
29974
29975 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
29976 New function, split out from...
29977 (loop_versioning::analyze_stride): ...here.
29978 (loop_versioning::find_per_loop_multiplication): Use gassign.
29979 (loop_versioning::analyze_term_using_scevs): Return a success code.
29980 (loop_versioning::analyze_arbitrary_term): New function.
29981 (loop_versioning::analyze_address_fragment): Use
29982 analyze_arbitrary_term if all else fails.
29983
29984 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
29985
29986 PR target/88892
29987 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
29988 operands.
29989
29990 2019-01-18 Richard Biener <rguenther@suse.de>
29991
29992 PR tree-optimization/88903
29993 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
29994 scalar stmts a SLP shift amount is composed of when detecting
29995 shifts by scalars.
29996
29997 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
29998
29999 PR target/88799
30000 * config/arm/arm-cpus.in (mp): New feature.
30001 (sec): New feature.
30002 (fgroup ARMv7ve): Add mp and sec features.
30003 (arch armv7-a): Add options to allow mp and sec extensions.
30004 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
30005 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
30006 extenstions to the base architecture.
30007 (cpu cortex-a8): Add sec extension to the base architecture.
30008 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
30009 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
30010 variants down to the base v7-a varaint.
30011 * config/arm/t-multilib (v7_a_arch_variants): New variable.
30012 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
30013 of permitted extensions for -march=armv7-a and for
30014 -mcpu=generic-armv7-a.
30015
30016 2019-01-18 Martin Liska <mliska@suse.cz>
30017
30018 * params.def: Fix comment.
30019 * tree-profile.c (gimple_init_gcov_profiler): Bump function
30020 name.
30021 (gimple_gen_ic_func_profiler): Likewise.
30022
30023 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30024
30025 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
30026 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
30027 and put in error checks for stack protector guard options.
30028 (aarch64_stack_protect_guard): New.
30029 (TARGET_STACK_PROTECT_GUARD): Define.
30030 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
30031 (reg_stack_protect_address<mode>): New.
30032 (stack_protect_set): Adjust for SSP_GLOBAL.
30033 (stack_protect_test): Likewise.
30034 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
30035 (-mstack-protector-guard): Likewise.
30036 (-mstack-protector-guard-offset): Likewise.
30037
30038 2019-01-18 Jakub Jelinek <jakub@redhat.com>
30039
30040 PR tree-optimization/86214
30041 * tree-inline.h (struct copy_body_data): Add
30042 add_clobbers_to_eh_landing_pads member.
30043 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
30044 (copy_edges_for_bb): Call it if EH edge destination is <
30045 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
30046 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
30047 if flag_stack_reuse != SR_NONE and clear it afterwards.
30048
30049 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
30050
30051 PR target/85596
30052 * doc/install.texi (with-multilib-list): Document for aarch64.
30053
30054 2019-01-18 Jakub Jelinek <jakub@redhat.com>
30055
30056 PR target/88734
30057 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
30058 (("..."))) with ("...").
30059
30060 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
30061
30062 * doc/extend.texi (Built-in Functions for Memory Model Aware
30063 Atomic Operations): Document atomic fetch and nand.
30064
30065 2019-01-18 Martin Liska <mliska@suse.cz>
30066 Richard Biener <rguenther@suse.de>
30067
30068 PR middle-end/88587
30069 * cgraph.h (create_version_clone_with_body): Add new argument
30070 with attributes.
30071 * cgraphclones.c (cgraph_node::create_version_clone): Add
30072 DECL_ATTRIBUTES to a newly created decl. And call
30073 valid_attribute_p so that proper cl_target_optimization_node
30074 is set for the newly created declaration.
30075 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
30076 for declaration.
30077 (expand_target_clones): Do not call valid_attribute_p, it must
30078 be already done.
30079 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
30080 vector types.
30081
30082 2019-01-17 Jakub Jelinek <jakub@redhat.com>
30083
30084 PR target/88734
30085 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
30086 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
30087 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
30088
30089 2019-01-17 Martin Sebor <msebor@redhat.com>
30090
30091 PR middle-end/88273
30092 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
30093 Handle anti-ranges the same as no range at all.
30094
30095 2018-01-17 Steve Ellcey <sellcey@cavium.com>
30096
30097 * config/aarch64/aarch64.c (cgraph.h): New include.
30098 (intl.h): New include.
30099 (supported_simd_type): New function.
30100 (currently_supported_simd_type): Ditto.
30101 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
30102 (aarch64_simd_clone_adjust): Ditto.
30103 (aarch64_simd_clone_usable): Ditto.
30104 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
30105 (TARGET_SIMD_CLONE_ADJUST): Ditto.
30106 (TARGET_SIMD_CLONE_USABLE): Ditto.
30107 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
30108 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
30109 call.
30110
30111 2019-01-17 Martin Sebor <msebor@redhat.com>
30112
30113 PR tree-optimization/88800
30114 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
30115 NO_WARNING bit here. Avoid folding out-of-bounds calls.
30116 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
30117 redundant argument. Add new argument and issue diagnostics under
30118 its control. Detect out-of-bounds access even with warnings
30119 disabled.
30120 (check_bounds_or_overlap): Change return type. Add argument.
30121 (wrestrict_dom_walker::check_call): Adjust.
30122 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
30123 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
30124 check_bounds_or_overlap's return value.
30125 (handle_builtin_stxncpy): Same.
30126 (handle_builtin_strcat): Same.
30127
30128 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
30129 Kwok Cheung Yeung <kcy@codesourcery.com>
30130 Julian Brown <julian@codesourcery.com>
30131 Tom de Vries <tom@codesourcery.com>
30132
30133 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
30134
30135 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
30136
30137 * doc/sourcebuild.texi: Document dg-require-effective-target
30138 llvm_binutils and offload_gcn.
30139
30140 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
30141 Kwok Cheung Yeung <kcy@codesourcery.com>
30142 Julian Brown <julian@codesourcery.com>
30143 Tom de Vries <tom@codesourcery.com>
30144
30145 * doc/sourcebuild.texi: Document dg-required-effective-target
30146 exceptions.
30147
30148 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
30149 Kwok Cheung Yeung <kcy@codesourcery.com>
30150 Julian Brown <julian@codesourcery.com>
30151 Tom de Vries <tom@codesourcery.com>
30152 Jan Hubicka <hubicka@ucw.cz>
30153 Martin Jambor <mjambor@suse.cz>
30154
30155 * config.gcc: Add amdgcn*-*-amdhsa configuration.
30156 * configure.ac: Check for dlopen.
30157 * configure: Regenerate.
30158
30159 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
30160 Kwok Cheung Yeung <kcy@codesourcery.com>
30161 Julian Brown <julian@codesourcery.com>
30162 Tom de Vries <tom@codesourcery.com>
30163 Jan Hubicka <hubicka@ucw.cz>
30164 Martin Jambor <mjambor@suse.cz>
30165
30166 * common/config/gcn/gcn-common.c: New file.
30167 * config/gcn/driver-gcn.c: New file.
30168 * config/gcn/gcn-builtins.def: New file.
30169 * config/gcn/gcn-hsa.h: New file.
30170 * config/gcn/gcn-modes.def: New file.
30171 * config/gcn/gcn-opts.h: New file.
30172 * config/gcn/gcn-passes.def: New file.
30173 * config/gcn/gcn-protos.h: New file.
30174 * config/gcn/gcn-run.c: New file.
30175 * config/gcn/gcn-tree.c: New file.
30176 * config/gcn/gcn.c: New file.
30177 * config/gcn/gcn.h: New file.
30178 * config/gcn/gcn.opt: New file.
30179 * config/gcn/t-gcn-hsa: New file.
30180
30181 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
30182 Kwok Cheung Yeung <kcy@codesourcery.com>
30183 Julian Brown <julian@codesourcery.com>
30184 Tom de Vries <tom@codesourcery.com>
30185 Jan Hubicka <hubicka@ucw.cz>
30186 Martin Jambor <mjambor@suse.cz>
30187
30188 * config/gcn/constraints.md: New file.
30189 * config/gcn/gcn-valu.md: New file.
30190 * config/gcn/gcn.md: New file.
30191 * config/gcn/predicates.md: New file.
30192
30193 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
30194
30195 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
30196 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
30197 (stmt_uses_0_or_null_in_undefined_way): Likewise.
30198 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
30199
30200 2019-01-17 Tamar Christina <tamar.christina@arm.com>
30201
30202 PR target/88851
30203 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
30204 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
30205 it and document registers.
30206
30207 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30208
30209 * config/aarch64/aarch64.c (ares_tunings): Define.
30210 * config/aarch64/aarch64-cores.def (ares): Use the above.
30211
30212 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
30213
30214 PR target/88794
30215 Revert:
30216 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
30217
30218 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
30219 (_mm512_fixupimm_round_pd): Update parameters and builtin.
30220 (_mm512_maskz_fixupimm_round_pd): Ditto.
30221 (_mm512_fixupimm_round_ps): Ditto.
30222 (_mm512_maskz_fixupimm_round_ps): Ditto.
30223 (_mm_fixupimm_round_sd): Ditto.
30224 (_mm_maskz_fixupimm_round_sd): Ditto.
30225 (_mm_fixupimm_round_ss): Ditto.
30226 (_mm_maskz_fixupimm_round_ss): Ditto.
30227 (_mm512_fixupimm_pd): Ditto.
30228 (_mm512_maskz_fixupimm_pd): Ditto.
30229 (_mm512_fixupimm_ps): Ditto.
30230 (_mm512_maskz_fixupimm_ps): Ditto.
30231 (_mm_fixupimm_sd): Ditto.
30232 (_mm_maskz_fixupimm_sd): Ditto.
30233 (_mm_fixupimm_ss): Ditto.
30234 (_mm_maskz_fixupimm_ss): Ditto.
30235 (_mm512_mask_fixupimm_round_pd): Update builtin.
30236 (_mm512_mask_fixupimm_round_ps): Ditto.
30237 (_mm_mask_fixupimm_round_sd): Ditto.
30238 (_mm_mask_fixupimm_round_ss): Ditto.
30239 (_mm512_mask_fixupimm_pd): Ditto.
30240 (_mm512_mask_fixupimm_ps): Ditto.
30241 (_mm_mask_fixupimm_sd): Ditto.
30242 (_mm_mask_fixupimm_ss): Ditto.
30243 * config/i386/avx512vlintrin.h:
30244 (_mm256_fixupimm_pd): Update parameters and builtin.
30245 (_mm256_maskz_fixupimm_pd): Ditto.
30246 (_mm256_fixupimm_ps): Ditto.
30247 (_mm256_maskz_fixupimm_ps): Ditto.
30248 (_mm_fixupimm_pd): Ditto.
30249 (_mm_maskz_fixupimm_pd): Ditto.
30250 (_mm_fixupimm_ps): Ditto.
30251 (_mm_maskz_fixupimm_ps): Ditto.
30252 (_mm256_mask_fixupimm_pd): Update builtin.
30253 (_mm256_mask_fixupimm_ps): Ditto.
30254 (_mm_mask_fixupimm_pd): Ditto.
30255 (_mm_mask_fixupimm_ps): Ditto.
30256 * config/i386/i386-builtin-types.def: Add new types and remove
30257 useless ones.
30258 * config/i386/i386-builtin.def: Update builtin definitions.
30259 * config/i386/i386.c: Handle new builtin types and remove useless ones.
30260 * config/i386/sse.md: Update VFIXUPIMM* patterns.
30261 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
30262 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
30263 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
30264 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
30265 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
30266 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
30267 * config/i386/subst.md:
30268 (round_saeonly_sd_mask_operand4): Add new subst_attr.
30269 (round_saeonly_sd_mask_op4): Ditto.
30270 (round_saeonly_expand_operand5): Ditto.
30271 (round_saeonly_expand): Update.
30272
30273 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
30274
30275 PR target/88794
30276 Revert:
30277 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
30278
30279 * config/i386/sse.md: Combine VFIXUPIMM* patterns
30280 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
30281 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
30282 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
30283 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
30284 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
30285 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
30286
30287 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
30288
30289 PR target/88794
30290 Revert:
30291 2018-12-15 Jakub Jelinek <jakub@redhat.com>
30292
30293 PR target/88489
30294 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
30295 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
30296 instead of UNSPEC_FIXUPIMM.
30297
30298 2019-01-17 Richard Biener <rguenther@suse.de>
30299
30300 PR lto/86736
30301 * dwarf2out.c (want_pubnames): Never generate pubnames sections
30302 and friends for the LTO part of debug info.
30303
30304 2019-01-17 Jakub Jelinek <jakub@redhat.com>
30305
30306 PR tree-optimization/86214
30307 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
30308 if x == y.
30309
30310 PR rtl-optimization/88870
30311 * dce.c (deletable_insn_p): Never delete const/pure calls that can
30312 throw if we can't alter the cfg or delete dead exceptions.
30313 (mark_insn): Don't call find_call_stack_args for such calls.
30314
30315 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
30316
30317 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
30318 prototypes for vec_st.
30319 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
30320 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
30321 mainly on signed/unsigned long long and double.
30322
30323 2019-01-16 David Malcolm <dmalcolm@redhat.com>
30324
30325 PR target/88861
30326 * combine.c (delete_noop_moves): Convert to "bool" return,
30327 returning true if any edges are eliminated.
30328 (combine_instructions): Also return true if delete_noop_moves
30329 returns true.
30330
30331 2019-01-16 Tamar Christina <tamar.christina@arm.com>
30332
30333 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
30334 correct max nunits for endian swap.
30335 (aarch64_expand_fcmla_builtin): Correct subreg code.
30336 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
30337 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
30338 lane endianness.
30339
30340 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
30341
30342 * config/alpha/alpha.c (alpha_gimplify_va_arg):
30343 Handle split indirect COMPLEX_TYPE arguments.
30344
30345 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
30346
30347 PR target/86891
30348 * config/aarch64/aarch64-modes.def: Add comment about how the carry
30349 bit is set by add and compare.
30350 (CC_ADC): New CC_MODE.
30351 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
30352 to cache the code and mode of X. Adjust the shape of a CC_Cmode
30353 comparison. Add detection for CC_ADCmode.
30354 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
30355 CC_ADCmode.
30356 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
30357 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
30358 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
30359 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
30360 to eliminate the need for zero-extending the operands.
30361 (add<mode>3_compareC_imm): Delete. Merge into ...
30362 (add<mode>3_compareC): ... this. Restructure the comparison to
30363 eliminate the need for zero-extending the operands.
30364 (add<mode>3_carryin): Use LTU for the overflow detection.
30365 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
30366 Reexpress comparison for overflow.
30367 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
30368 (add<mode>3_carryinC): Likewise.
30369 (add<mode>3_carryinV): Use LTU for carry between partials.
30370 * config/aarch64/predicates.md (aarch64_carry_operation): Update
30371 handling of CC_Cmode and add CC_ADCmode.
30372 (aarch64_borrow_operation): Likewise.
30373
30374 2019-01-16 Tamar Christina <tamar.christina@arm.com>
30375
30376 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands):
30377 Remove patternmode.
30378 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
30379 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
30380 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>):
30381 Remove endianness conversion.
30382
30383 2019-01-16 Martin Liska <mliska@suse.cz>
30384
30385 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
30386 for GCC driver.
30387 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
30388 a new argument.
30389 * gcc.c (add_sysrooted_hdrs_prefix): New function.
30390 (path_prefix_reset): Move up in the source file.
30391 (find_fortran_preinclude_file): Make complex search for the
30392 fortran header files.
30393
30394 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
30395
30396 * godump.c (go_output_typedef): When outputting a typedef, refer
30397 to the underlying type by its name and not its structure.
30398
30399 2019-01-15 David Malcolm <dmalcolm@redhat.com>
30400
30401 PR c++/88795
30402 * tree.c (build_function_type): Assert that arg_types is not
30403 error_mark_node.
30404
30405 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
30406
30407 PR inline-asm/52813
30408 * doc/extend.texi: Document that listing the stack pointer in the
30409 clobber list of an asm is a deprecated feature.
30410 * common.opt (Wdeprecated): Moved from c-family/c.opt.
30411 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
30412 warning instead of an error for clobbers of the stack pointer.
30413 Add a note explaining why.
30414
30415 2019-01-15 Richard Biener <rguenther@suse.de>
30416
30417 PR debug/88046
30418 * dwarf2out.c (gen_member_die): Do not generate inheritance
30419 DIEs late.
30420
30421 2019-01-15 Richard Biener <rguenther@suse.de>
30422
30423 PR tree-optimization/88855
30424 * tree-if-conv.c (combine_blocks): Collect
30425 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
30426
30427 2019-01-15 Tom de Vries <tdevries@suse.de>
30428
30429 PR target/80547
30430 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
30431 lhs == NULL_TREE for gang-level reduction.
30432
30433 2019-01-15 Richard Biener <rguenther@suse.de>
30434 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
30435
30436 PR ipa/88788
30437 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
30438 return true if SSA_NAME is already marked in visited bitmap.
30439 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
30440
30441 2019-01-15 Jakub Jelinek <jakub@redhat.com>
30442
30443 PR tree-optimization/88775
30444 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
30445 equal == 0 equality pointer comparisons some more if compared in
30446 integral types and either one points to an automatic var and the
30447 other to a global, or we can prove at least one points to the middle
30448 or both point to start or both point to end.
30449
30450 2019-01-14 Andi Kleen <ak@linux.intel.com>
30451
30452 * Makefile.in: Lower autofdo sampling rate by 10x.
30453 * Makefile.tpl: Dito.
30454
30455 2019-01-14 Tom Honermann <tom@honermann.net>
30456
30457 * defaults.h: Define CHAR8_TYPE.
30458
30459 2019-01-14 Martin Sebor <msebor@redhat.com>
30460
30461 PR target/88638
30462 * doc/extend.texi (Darwin Format Checks): Clarify.
30463
30464 2019-01-14 Richard Biener <rguenther@suse.de>
30465
30466 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
30467 whether we are in (simplify ...) or (match ...) context.
30468
30469 2019-01-14 Jakub Jelinek <jakub@redhat.com>
30470
30471 PR rtl-optimization/88796
30472 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
30473 * cfgexpand.c (stack_protect_prologue): Initialize
30474 crtl->stack_protect_guard_decl.
30475 * function.c (stack_protect_epilogue): Use it instead of calling
30476 targetm.stack_protect_guard again.
30477 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
30478 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
30479 crtl->stack_protect_guard_decl.
30480 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
30481 on the returned MEM_EXPR.
30482
30483 2019-01-12 Tom de Vries <tdevries@suse.de>
30484
30485 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
30486 vector length using -fopenacc-dim.
30487
30488 2019-01-12 Tom de Vries <tdevries@suse.de>
30489
30490 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
30491 lengths into account.
30492
30493 2019-01-12 Svante Signell <svante.signell@gmail.com>
30494
30495 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
30496 (TARGET_CAN_SPLIT_STACK): Define.
30497 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
30498
30499 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
30500
30501 * params.def (inline-unit-growth): Set to 40.
30502
30503 2019-01-12 Jakub Jelinek <jakub@redhat.com>
30504
30505 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
30506
30507 2019-01-12 Tom de Vries <tdevries@suse.de>
30508
30509 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
30510 region calling vector-partitionable routine, set default_vector_length
30511 to WARP_SIZE.
30512
30513 2019-01-12 Tom de Vries <tdevries@suse.de>
30514
30515 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
30516 variable default_vector_length.
30517
30518 2019-01-12 Tom de Vries <tdevries@suse.de>
30519
30520 PR middle-end/88703
30521 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
30522 from oacc_default_dims, as oacc_validate_dims would do it, and apply
30523 dimensions limits.
30524
30525 2019-01-12 Tom de Vries <tdevries@suse.de>
30526
30527 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
30528 (nvptx_goacc_validate_dims): Add used parameter.
30529 * doc/tm.texi: Regenerate.
30530 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
30531 argument to call to targetm.goacc.validate_dims.
30532 (default_goacc_validate_dims): Add used
30533 parameter.
30534 * target.def (validate_dims): Add used parameter in DEFHOOK.
30535 * targhooks.h (default_goacc_validate_dims): Add used parameter.
30536
30537 2019-01-11 Jakub Jelinek <jakub@redhat.com>
30538
30539 PR middle-end/85956
30540 PR lto/88733
30541 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
30542 field.
30543 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
30544 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
30545 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
30546 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
30547
30548 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
30549
30550 PR rtl-optimization/87305
30551 * lra-assigns.c
30552 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
30553 for little endian pseudos used as paradoxical subreg.
30554
30555 2019-01-11 Jakub Jelinek <jakub@redhat.com>
30556
30557 PR tree-optimization/88693
30558 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
30559 for STRING_CSTs that don't contain any NUL characters in the first
30560 TREE_STRING_LENGTH bytes.
30561
30562 2019-01-11 Alan Modra <amodra@gmail.com>
30563
30564 PR 88777
30565 PR 88614
30566 * genattrtab.c (min_fn): Don't translate values.
30567 (min_attr_value): Return INT_MAX when the value can't be calculated.
30568 Return minimum among any values that can be calculated.
30569 (max_attr_value): Adjust.
30570
30571 2019-01-11 Jakub Jelinek <jakub@redhat.com>
30572
30573 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
30574
30575 2019-01-11 Steve Ellcey <sellcey@marvell.com>
30576
30577 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
30578 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
30579 (aarch64_return_call_with_max_clobbers): New function.
30580 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
30581 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
30582 argument.
30583 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
30584 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
30585 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
30586 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
30587 * cselib.c (cselib_process_insn): Add argument to
30588 targetm.hard_regno_call_part_clobbered call.
30589 * ira-conflicts.c (ira_build_conflicts): Ditto.
30590 * ira-costs.c (ira_tune_allocno_costs): Ditto.
30591 * lra-constraints.c (inherit_reload_reg): Ditto.
30592 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
30593 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
30594 argument. Call targetm.return_call_with_max_clobbers.
30595 Add argument to targetm.hard_regno_call_part_clobbered call.
30596 (calls_have_same_clobbers_p): New function.
30597 (process_bb_lives): Add call_insn and last_call_insn variables.
30598 Pass call_insn to check_pseudos_live_through_calls.
30599 Modify if stmt to check targetm.return_call_with_max_clobbers.
30600 Update setting of flush variable.
30601 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
30602 to false.
30603 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
30604 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
30605 targetm.hard_regno_call_part_clobbered call.
30606 * reginfo.c (choose_hard_reg_mode): Ditto.
30607 * regrename.c (check_new_reg_p): Ditto.
30608 * reload.c (find_equiv_reg): Ditto.
30609 * reload1.c (emit_reload_insns): Ditto.
30610 * sched-deps.c (deps_analyze_insn): Ditto.
30611 * sel-sched.c (init_regs_for_mode): Ditto.
30612 (mark_unavailable_hard_regs): Ditto.
30613 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
30614 * target.def (hard_regno_call_part_clobbered): Add insn argument.
30615 (return_call_with_max_clobbers): New target function.
30616 * doc/tm.texi: Regenerate.
30617 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
30618 * hooks.c (hook_bool_uint_mode_false): Change to
30619 hook_bool_insn_uint_mode_false.
30620 * hooks.h (hook_bool_uint_mode_false): Ditto.
30621
30622 2019-01-11 Steve Ellcey <sellcey@marvell.com>
30623
30624 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
30625 (aarch64_remove_extra_call_preserved_regs): New function.
30626 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
30627 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
30628 * doc/tm.texi: Regenerate.
30629 * final.c (get_call_reg_set_usage): Call new hook.
30630 * target.def (remove_extra_call_preserved_regs): New hook.
30631 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
30632 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
30633
30634 2019-01-11 Jakub Jelinek <jakub@redhat.com>
30635
30636 PR bootstrap/88714
30637 * passes.c (finish_optimization_passes): Call print_combine_total_stats
30638 inside of pass_combine_1 dump rather than pass_profile_1.
30639
30640 2019-01-11 Tom de Vries <tdevries@suse.de>
30641
30642 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
30643 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
30644 (PTX_NUM_PER_WORKER_BARRIERS): Define.
30645 (nvptx_apply_dim_limits): Prevent vector_length 64 and
30646 num_workers 16.
30647
30648 2019-01-11 Tom de Vries <tdevries@suse.de>
30649
30650 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
30651
30652 2019-01-11 Jan Beulich <jbeulich@suse.com>
30653
30654 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
30655 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
30656 sse2_cvtsi2sd): Add {l}.
30657 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
30658 syntax.
30659
30660 2019-01-10 Jakub Jelinek <jakub@redhat.com>
30661
30662 PR target/88785
30663 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
30664 define_expand.
30665 (*float<floatunssuffix>v2div2sf2): New define_insn.
30666 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
30667 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
30668 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
30669 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
30670 match_operands with "const0_operand" "C".
30671
30672 2019-01-10 Tamar Christina <tamar.christina@arm.com>
30673
30674 * config/aarch64/aarch64-builtins.c
30675 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
30676 (aarch64_init_simd_builtins): ...Here
30677
30678 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
30679
30680 PR rtl-optimization/87305
30681 * lra-assigns.c
30682 (setup_live_pseudos_and_spill_after_risky_transforms): Check
30683 allocation for big endian pseudos used as paradoxical subregs and
30684 spill them if it is wrong.
30685 * lra-constraints.c (lra_constraints): Add a comment.
30686
30687 2019-01-10 Richard Biener <rguenther@suse.de>
30688
30689 PR tree-optimization/88792
30690 * tree-ssa-pre.c (get_representative_for): Do not return a
30691 value-number here.
30692
30693 2019-01-10 Jakub Jelinek <jakub@redhat.com>
30694
30695 PR middle-end/84877
30696 PR bootstrap/88450
30697 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
30698 (assign_parm_setup_block): Do the argument slot realignment here
30699 instead.
30700
30701 2019-01-10 Stefan Agner <stefan@agner.ch>
30702
30703 PR target/88648
30704 * config/arm/arm.c (arm_option_override_internal): Force
30705 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
30706
30707 2019-01-10 Jakub Jelinek <jakub@redhat.com>
30708
30709 PR c/88568
30710 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
30711 DECL_EXTERNAL.
30712
30713 2019-01-10 Tamar Christina <tamar.christina@arm.com>
30714
30715 * config/arm/arm-builtins.c
30716 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
30717 (MAC_LANE_PAIR_QUALIFIERS): New.
30718 (arm_expand_builtin_args): Use it.
30719 (arm_expand_builtin_1): Likewise.
30720 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
30721 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
30722 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
30723 * config/arm/arm_neon.h:
30724 (vcadd_rot90_f16): New.
30725 (vcaddq_rot90_f16): New.
30726 (vcadd_rot270_f16): New.
30727 (vcaddq_rot270_f16): New.
30728 (vcmla_f16): New.
30729 (vcmlaq_f16): New.
30730 (vcmla_lane_f16): New.
30731 (vcmla_laneq_f16): New.
30732 (vcmlaq_lane_f16): New.
30733 (vcmlaq_laneq_f16): New.
30734 (vcmla_rot90_f16): New.
30735 (vcmlaq_rot90_f16): New.
30736 (vcmla_rot90_lane_f16): New.
30737 (vcmla_rot90_laneq_f16): New.
30738 (vcmlaq_rot90_lane_f16): New.
30739 (vcmlaq_rot90_laneq_f16): New.
30740 (vcmla_rot180_f16): New.
30741 (vcmlaq_rot180_f16): New.
30742 (vcmla_rot180_lane_f16): New.
30743 (vcmla_rot180_laneq_f16): New.
30744 (vcmlaq_rot180_lane_f16): New.
30745 (vcmlaq_rot180_laneq_f16): New.
30746 (vcmla_rot270_f16): New.
30747 (vcmlaq_rot270_f16): New.
30748 (vcmla_rot270_lane_f16): New.
30749 (vcmla_rot270_laneq_f16): New.
30750 (vcmlaq_rot270_lane_f16): New.
30751 (vcmlaq_rot270_laneq_f16): New.
30752 (vcadd_rot90_f32): New.
30753 (vcaddq_rot90_f32): New.
30754 (vcadd_rot270_f32): New.
30755 (vcaddq_rot270_f32): New.
30756 (vcmla_f32): New.
30757 (vcmlaq_f32): New.
30758 (vcmla_lane_f32): New.
30759 (vcmla_laneq_f32): New.
30760 (vcmlaq_lane_f32): New.
30761 (vcmlaq_laneq_f32): New.
30762 (vcmla_rot90_f32): New.
30763 (vcmlaq_rot90_f32): New.
30764 (vcmla_rot90_lane_f32): New.
30765 (vcmla_rot90_laneq_f32): New.
30766 (vcmlaq_rot90_lane_f32): New.
30767 (vcmlaq_rot90_laneq_f32): New.
30768 (vcmla_rot180_f32): New.
30769 (vcmlaq_rot180_f32): New.
30770 (vcmla_rot180_lane_f32): New.
30771 (vcmla_rot180_laneq_f32): New.
30772 (vcmlaq_rot180_lane_f32): New.
30773 (vcmlaq_rot180_laneq_f32): New.
30774 (vcmla_rot270_f32): New.
30775 (vcmlaq_rot270_f32): New.
30776 (vcmla_rot270_lane_f32): New.
30777 (vcmla_rot270_laneq_f32): New.
30778 (vcmlaq_rot270_lane_f32): New.
30779 (vcmlaq_rot270_laneq_f32): New.
30780 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
30781 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180,
30782 vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180,
30783 vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180,
30784 vcmlaq_lane270): New.
30785 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
30786 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
30787 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
30788 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
30789 (arm_option_reconfigure_globals): Use them.
30790 * config/arm/iterators.md (VDF, VQ_HSF): New.
30791 (VCADD, VCMLA): New.
30792 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
30793 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>):
30794 New.
30795 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
30796 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
30797
30798 2019-01-10 Tamar Christina <tamar.christina@arm.com>
30799
30800 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
30801 Add qualifier_lane_pair_index.
30802 (emit-rtl.h): Include.
30803 (TYPES_QUADOP_LANE_PAIR): New.
30804 (aarch64_simd_expand_args): Use it.
30805 (aarch64_simd_expand_builtin): Likewise.
30806 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum):
30807 New.
30808 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
30809 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
30810 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
30811 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
30812 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
30813 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF,
30814 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
30815 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF,
30816 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
30817 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF,
30818 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
30819 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
30820 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
30821 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
30822 Add __ARM_FEATURE_COMPLEX.
30823 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0,
30824 fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180,
30825 fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180,
30826 fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
30827 fcmlaq_lane270): New.
30828 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
30829 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,
30830 aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New.
30831 * config/aarch64/arm_neon.h:
30832 (vcadd_rot90_f16): New.
30833 (vcaddq_rot90_f16): New.
30834 (vcadd_rot270_f16): New.
30835 (vcaddq_rot270_f16): New.
30836 (vcmla_f16): New.
30837 (vcmlaq_f16): New.
30838 (vcmla_lane_f16): New.
30839 (vcmla_laneq_f16): New.
30840 (vcmlaq_lane_f16): New.
30841 (vcmlaq_rot90_lane_f16): New.
30842 (vcmla_rot90_laneq_f16): New.
30843 (vcmla_rot90_lane_f16): New.
30844 (vcmlaq_rot90_f16): New.
30845 (vcmla_rot90_f16): New.
30846 (vcmlaq_laneq_f16): New.
30847 (vcmla_rot180_laneq_f16): New.
30848 (vcmla_rot180_lane_f16): New.
30849 (vcmlaq_rot180_f16): New.
30850 (vcmla_rot180_f16): New.
30851 (vcmlaq_rot90_laneq_f16): New.
30852 (vcmlaq_rot270_laneq_f16): New.
30853 (vcmlaq_rot270_lane_f16): New.
30854 (vcmla_rot270_laneq_f16): New.
30855 (vcmlaq_rot270_f16): New.
30856 (vcmla_rot270_f16): New.
30857 (vcmlaq_rot180_laneq_f16): New.
30858 (vcmlaq_rot180_lane_f16): New.
30859 (vcmla_rot270_lane_f16): New.
30860 (vcadd_rot90_f32): New.
30861 (vcaddq_rot90_f32): New.
30862 (vcaddq_rot90_f64): New.
30863 (vcadd_rot270_f32): New.
30864 (vcaddq_rot270_f32): New.
30865 (vcaddq_rot270_f64): New.
30866 (vcmla_f32): New.
30867 (vcmlaq_f32): New.
30868 (vcmlaq_f64): New.
30869 (vcmla_lane_f32): New.
30870 (vcmla_laneq_f32): New.
30871 (vcmlaq_lane_f32): New.
30872 (vcmlaq_laneq_f32): New.
30873 (vcmla_rot90_f32): New.
30874 (vcmlaq_rot90_f32): New.
30875 (vcmlaq_rot90_f64): New.
30876 (vcmla_rot90_lane_f32): New.
30877 (vcmla_rot90_laneq_f32): New.
30878 (vcmlaq_rot90_lane_f32): New.
30879 (vcmlaq_rot90_laneq_f32): New.
30880 (vcmla_rot180_f32): New.
30881 (vcmlaq_rot180_f32): New.
30882 (vcmlaq_rot180_f64): New.
30883 (vcmla_rot180_lane_f32): New.
30884 (vcmla_rot180_laneq_f32): New.
30885 (vcmlaq_rot180_lane_f32): New.
30886 (vcmlaq_rot180_laneq_f32): New.
30887 (vcmla_rot270_f32): New.
30888 (vcmlaq_rot270_f32): New.
30889 (vcmlaq_rot270_f64): New.
30890 (vcmla_rot270_lane_f32): New.
30891 (vcmla_rot270_laneq_f32): New.
30892 (vcmlaq_rot270_lane_f32): New.
30893 (vcmlaq_rot270_laneq_f32): New.
30894 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
30895 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
30896 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
30897 (FCADD, FCMLA): New.
30898 (rot): New.
30899 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
30900
30901 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
30902
30903 PR other/16615
30904
30905 * config/pa/pa.c: Change "can not" to "cannot".
30906 * gimple-ssa-evrp-analyze.c: Likewise.
30907 * ipa-icf.c: Likewise.
30908 * ipa-polymorphic-call.c: Likewise.
30909 * ipa-pure-const.c: Likewise.
30910 * lra-constraints.c: Likewise.
30911 * lra-remat.c: Likewise.
30912 * reload1.c: Likewise.
30913 * reorg.c: Likewise.
30914 * tree-ssa-uninit.c: Likewise.
30915
30916 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
30917
30918 PR other/16615
30919
30920 * Makefile.in: Mechanically replace "can not" with "cannot".
30921 * alias.c: Likewise.
30922 * builtins.c: Likewise.
30923 * calls.c: Likewise.
30924 * cgraph.c: Likewise.
30925 * cgraph.h: Likewise.
30926 * cgraphclones.c: Likewise.
30927 * cgraphunit.c: Likewise.
30928 * combine-stack-adj.c: Likewise.
30929 * combine.c: Likewise.
30930 * common/config/i386/i386-common.c: Likewise.
30931 * config/aarch64/aarch64.c: Likewise.
30932 * config/alpha/sync.md: Likewise.
30933 * config/arc/arc.c: Likewise.
30934 * config/arc/predicates.md: Likewise.
30935 * config/arm/arm-c.c: Likewise.
30936 * config/arm/arm.c: Likewise.
30937 * config/arm/arm.h: Likewise.
30938 * config/arm/arm.md: Likewise.
30939 * config/arm/cortex-r4f.md: Likewise.
30940 * config/csky/csky.c: Likewise.
30941 * config/csky/csky.h: Likewise.
30942 * config/darwin-f.c: Likewise.
30943 * config/epiphany/epiphany.md: Likewise.
30944 * config/i386/i386.c: Likewise.
30945 * config/i386/sol2.h: Likewise.
30946 * config/m68k/m68k.c: Likewise.
30947 * config/mcore/mcore.h: Likewise.
30948 * config/microblaze/microblaze.md: Likewise.
30949 * config/mips/20kc.md: Likewise.
30950 * config/mips/sb1.md: Likewise.
30951 * config/nds32/nds32.c: Likewise.
30952 * config/nds32/predicates.md: Likewise.
30953 * config/pa/pa.c: Likewise.
30954 * config/rs6000/e300c2c3.md: Likewise.
30955 * config/rs6000/rs6000.c: Likewise.
30956 * config/s390/s390.h: Likewise.
30957 * config/sh/sh.c: Likewise.
30958 * config/sh/sh.md: Likewise.
30959 * config/spu/vmx2spu.h: Likewise.
30960 * cprop.c: Likewise.
30961 * dbxout.c: Likewise.
30962 * df-scan.c: Likewise.
30963 * doc/cfg.texi: Likewise.
30964 * doc/extend.texi: Likewise.
30965 * doc/fragments.texi: Likewise.
30966 * doc/gty.texi: Likewise.
30967 * doc/invoke.texi: Likewise.
30968 * doc/lto.texi: Likewise.
30969 * doc/md.texi: Likewise.
30970 * doc/objc.texi: Likewise.
30971 * doc/rtl.texi: Likewise.
30972 * doc/tm.texi: Likewise.
30973 * dse.c: Likewise.
30974 * emit-rtl.c: Likewise.
30975 * emit-rtl.h: Likewise.
30976 * except.c: Likewise.
30977 * expmed.c: Likewise.
30978 * expr.c: Likewise.
30979 * fold-const.c: Likewise.
30980 * genautomata.c: Likewise.
30981 * gimple-fold.c: Likewise.
30982 * hard-reg-set.h: Likewise.
30983 * ifcvt.c: Likewise.
30984 * ipa-comdats.c: Likewise.
30985 * ipa-cp.c: Likewise.
30986 * ipa-devirt.c: Likewise.
30987 * ipa-fnsummary.c: Likewise.
30988 * ipa-icf.c: Likewise.
30989 * ipa-inline-transform.c: Likewise.
30990 * ipa-inline.c: Likewise.
30991 * ipa-polymorphic-call.c: Likewise.
30992 * ipa-profile.c: Likewise.
30993 * ipa-prop.c: Likewise.
30994 * ipa-pure-const.c: Likewise.
30995 * ipa-reference.c: Likewise.
30996 * ipa-split.c: Likewise.
30997 * ipa-visibility.c: Likewise.
30998 * ipa.c: Likewise.
30999 * ira-build.c: Likewise.
31000 * ira-color.c: Likewise.
31001 * ira-conflicts.c: Likewise.
31002 * ira-costs.c: Likewise.
31003 * ira-int.h: Likewise.
31004 * ira-lives.c: Likewise.
31005 * ira.c: Likewise.
31006 * ira.h: Likewise.
31007 * loop-invariant.c: Likewise.
31008 * loop-unroll.c: Likewise.
31009 * lower-subreg.c: Likewise.
31010 * lra-assigns.c: Likewise.
31011 * lra-constraints.c: Likewise.
31012 * lra-eliminations.c: Likewise.
31013 * lra-lives.c: Likewise.
31014 * lra-remat.c: Likewise.
31015 * lra-spills.c: Likewise.
31016 * lra.c: Likewise.
31017 * lto-cgraph.c: Likewise.
31018 * lto-streamer-out.c: Likewise.
31019 * postreload-gcse.c: Likewise.
31020 * predict.c: Likewise.
31021 * profile-count.h: Likewise.
31022 * profile.c: Likewise.
31023 * recog.c: Likewise.
31024 * ree.c: Likewise.
31025 * reload.c: Likewise.
31026 * reload1.c: Likewise.
31027 * reorg.c: Likewise.
31028 * resource.c: Likewise.
31029 * rtl.def: Likewise.
31030 * rtl.h: Likewise.
31031 * rtlanal.c: Likewise.
31032 * sched-deps.c: Likewise.
31033 * sched-ebb.c: Likewise.
31034 * sched-rgn.c: Likewise.
31035 * sel-sched-ir.c: Likewise.
31036 * sel-sched.c: Likewise.
31037 * shrink-wrap.c: Likewise.
31038 * simplify-rtx.c: Likewise.
31039 * symtab.c: Likewise.
31040 * target.def: Likewise.
31041 * toplev.c: Likewise.
31042 * tree-call-cdce.c: Likewise.
31043 * tree-cfg.c: Likewise.
31044 * tree-complex.c: Likewise.
31045 * tree-core.h: Likewise.
31046 * tree-eh.c: Likewise.
31047 * tree-inline.c: Likewise.
31048 * tree-loop-distribution.c: Likewise.
31049 * tree-nrv.c: Likewise.
31050 * tree-profile.c: Likewise.
31051 * tree-sra.c: Likewise.
31052 * tree-ssa-alias.c: Likewise.
31053 * tree-ssa-dce.c: Likewise.
31054 * tree-ssa-dom.c: Likewise.
31055 * tree-ssa-forwprop.c: Likewise.
31056 * tree-ssa-loop-im.c: Likewise.
31057 * tree-ssa-loop-ivcanon.c: Likewise.
31058 * tree-ssa-loop-ivopts.c: Likewise.
31059 * tree-ssa-loop-niter.c: Likewise.
31060 * tree-ssa-phionlycprop.c: Likewise.
31061 * tree-ssa-phiopt.c: Likewise.
31062 * tree-ssa-propagate.c: Likewise.
31063 * tree-ssa-threadedge.c: Likewise.
31064 * tree-ssa-threadupdate.c: Likewise.
31065 * tree-ssa-uninit.c: Likewise.
31066 * tree-ssanames.c: Likewise.
31067 * tree-streamer-out.c: Likewise.
31068 * tree.c: Likewise.
31069 * tree.h: Likewise.
31070 * vr-values.c: Likewise.
31071
31072 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
31073
31074 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
31075 (ix86_split_xorsign): Ditto.
31076 * config/i386/i386.c (ix86_expand_xorsign): New function.
31077 (ix86_split_xorsign): Ditto.
31078 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
31079 (xorsign<mode>3): New expander.
31080 (xorsign<mode>3_1): New insn_and_split pattern.
31081 * config/i386/sse.md (xorsign<mode>3): New expander.
31082
31083 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
31084
31085 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
31086 (*tablejump_sp64): Likewise.
31087 (*tablejump<P:mode>): ...this.
31088 (*call_address_sp32): Merge into...
31089 (*call_address_sp64): Likewise.
31090 (*call_address<P:mode>): ...this.
31091 (*call_symbolic_sp32): Merge into...
31092 (*call_symbolic_sp64): Likewise.
31093 (*call_symbolic<P:mode>): ...this.
31094 (call_value): Remove constraint and add predicate.
31095 (*call_value_address_sp32): Merge into...
31096 (*call_value_address_sp64): Likewise.
31097 (*call_value_address<P:mode>): ...this.
31098 (*call_value_symbolic_sp32): Merge into...
31099 (*call_value_symbolic_sp64): Likewise.
31100 (*call_value_symbolic<P:mode>): ...this.
31101 (*sibcall_symbolic_sp32): Merge into...
31102 (*sibcall_symbolic_sp64): Likewise.
31103 (*sibcall_symbolic<P:mode>): ...this.
31104 (sibcall_value): Remove constraint and add predicate.
31105 (*sibcall_value_symbolic_sp32): Merge into...
31106 (*sibcall_value_symbolic_sp64): Likewise.
31107 (*sibcall_value_symbolic<P:mode>): ...this.
31108 (window_save): Minor tweak.
31109 (*branch_sp32): Merge into...
31110 (*branch_sp64): Likewise.
31111 (*branch<P:mode>): ...this.
31112
31113 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
31114 James Clarke <jrtc27@jrtc27.com>
31115
31116 PR target/84010
31117 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
31118 consistently in TLS address generation and adjust code to the renaming
31119 of patterns. Mark calls to __tls_get_addr as const.
31120 * config/sparc/sparc.md (tgd_hi22): Turn into...
31121 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
31122 (tgd_lo10): Turn into...
31123 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
31124 (tgd_add32): Merge into...
31125 (tgd_add64): Likewise.
31126 (tgd_add<P:mode>): ...this and use Pmode throughout.
31127 (tldm_hi22): Turn into...
31128 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
31129 (tldm_lo10): Turn into...
31130 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
31131 (tldm_add32): Merge into...
31132 (tldm_add64): Likewise.
31133 (tldm_add<P:mode>): ...this and use Pmode throughout.
31134 (tldm_call32): Merge into...
31135 (tldm_call64): Likewise.
31136 (tldm_call<P:mode>): ...this and use Pmode throughout.
31137 (tldo_hix22): Turn into...
31138 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
31139 (tldo_lox10): Turn into...
31140 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
31141 (tldo_add32): Merge into...
31142 (tldo_add64): Likewise.
31143 (tldo_add<P:mode>): ...this and use Pmode throughout.
31144 (tie_hi22): Turn into...
31145 (tie_hi22<P:mode>): ...this and use Pmode throughout.
31146 (tie_lo10): Turn into...
31147 (tie_lo10<P:mode>): ...this and use Pmode throughout.
31148 (tie_ld64): Use DImode throughout.
31149 (tie_add32): Merge into...
31150 (tie_add64): Likewise.
31151 (tie_add<P:mode>): ...this and use Pmode throughout.
31152 (tle_hix22_sp32): Merge into...
31153 (tle_hix22_sp64): Likewise.
31154 (tle_hix22<P:mode>): ...this and use Pmode throughout.
31155 (tle_lox22_sp32): Merge into...
31156 (tle_lox22_sp64): Likewise.
31157 (tle_lox22<P:mode>): ...this and use Pmode throughout.
31158 (*tldo_ldub_sp32): Merge into...
31159 (*tldo_ldub_sp64): Likewise.
31160 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
31161 (*tldo_ldub1_sp32): Merge into...
31162 (*tldo_ldub1_sp64): Likewise.
31163 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
31164 (*tldo_ldub2_sp32): Merge into...
31165 (*tldo_ldub2_sp64): Likewise.
31166 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
31167 (*tldo_ldsb1_sp32): Merge into...
31168 (*tldo_ldsb1_sp64): Likewise.
31169 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
31170 (*tldo_ldsb2_sp32): Merge into...
31171 (*tldo_ldsb2_sp64): Likewise.
31172 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
31173 (*tldo_ldub3_sp64): Use DImode throughout.
31174 (*tldo_ldsb3_sp64): Likewise.
31175 (*tldo_lduh_sp32): Merge into...
31176 (*tldo_lduh_sp64): Likewise.
31177 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
31178 (*tldo_lduh1_sp32): Merge into...
31179 (*tldo_lduh1_sp64): Likewise.
31180 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
31181 (*tldo_ldsh1_sp32): Merge into...
31182 (*tldo_ldsh1_sp64): Likewise.
31183 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
31184 (*tldo_lduh2_sp64): Use DImode throughout.
31185 (*tldo_ldsh2_sp64): Likewise.
31186 (*tldo_lduw_sp32): Merge into...
31187 (*tldo_lduw_sp64): Likewise.
31188 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
31189 (*tldo_lduw1_sp64): Use DImode throughout.
31190 (*tldo_ldsw1_sp64): Likewise.
31191 (*tldo_ldx_sp64): Likewise.
31192 (*tldo_stb_sp32): Merge into...
31193 (*tldo_stb_sp64): Likewise.
31194 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
31195 (*tldo_sth_sp32): Merge into...
31196 (*tldo_sth_sp64): Likewise.
31197 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
31198 (*tldo_stw_sp32): Merge into...
31199 (*tldo_stw_sp64): Likewise.
31200 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
31201 (*tldo_stx_sp64): Use DImode throughout.
31202
31203 2018-01-09 Sudakshina Das <sudi.das@arm.com>
31204
31205 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
31206 check configure option to set BTI and Return Address Signing.
31207 * configure.ac: Add --enable-standard-branch-protection and
31208 --disable-standard-branch-protection.
31209 * configure: Regenerated.
31210 * doc/install.texi: Document the same.
31211
31212 2018-01-09 Sudakshina Das <sudi.das@arm.com>
31213 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
31214
31215 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
31216 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
31217 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
31218 if bti is enabled.
31219 * config/aarch64/aarch64-bti-insert.c: New file.
31220 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
31221 pass.
31222 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
31223 new bti pass.
31224 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
31225 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
31226 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
31227 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
31228
31229 2018-01-09 Sudakshina Das <sudi.das@arm.com>
31230
31231 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
31232 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
31233 Disable bti for -mbranch-protection=none.
31234 (aarch64_handle_standard_branch_protection): Enable bti for
31235 -mbranch-protection=standard.
31236 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
31237 -mbranch-protection.
31238 (aarch64_bti_enabled): Check if bti is enabled.
31239 * config/aarch64/aarch64.opt: Declare target variable.
31240 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
31241
31242 2018-01-09 Sudakshina Das <sudi.das@arm.com>
31243
31244 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
31245 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
31246 (aarch64_expand_epilogue): Likewise.
31247 (aarch64_output_mi_thunk): Likewise.
31248 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
31249 TAILCALL_ADDR_REGS to x16 and x17.
31250 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
31251
31252 2018-01-09 Sudakshina Das <sudi.das@arm.com>
31253
31254 * config/aarch64/aarch64-option-extensions.def: Define
31255 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
31256 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
31257 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
31258 (AARCH64_FL_PREDRES): New.
31259 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
31260 AARCH64_FL_PREDRES by default.
31261 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
31262
31263 2018-01-09 Sudakshina Das <sudi.das@arm.com>
31264
31265 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
31266 ARMv8.5-A.
31267 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
31268 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
31269 * doc/invoke.texi: Document ARMv8.5-A.
31270
31271 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
31272
31273 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
31274 (xorsign<mode>3): Likewise.
31275
31276 2019-01-09 Jelinek <jakub@redhat.com>
31277
31278 PR middle-end/88758
31279 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
31280 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
31281
31282 PR rtl-optimization/88331
31283 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
31284 not currently_expanding_to_rtl.
31285
31286 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
31287
31288 * doc/invoke.texi (-Os): Remove trailing spaces.
31289 (-finline-functions): Remove reference to -O2.
31290
31291 2019-01-08 Jakub Jelinek <jakub@redhat.com>
31292
31293 PR rtl-optimization/79593
31294 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
31295
31296 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
31297 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
31298
31299 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
31300
31301 PR bootstrap/88721
31302 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
31303 to -1 on entry.
31304
31305 PR debug/88723
31306 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
31307 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
31308
31309 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
31310
31311 PR target/88717
31312 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
31313 ix86_avx_u128_mode_entry.
31314
31315 2019-01-08 Martin Liska <mliska@suse.cz>
31316
31317 PR tree-optimization/88753
31318 * tree-switch-conversion.c (switch_conversion::build_one_array):
31319 Come up with local variable constructor. Convert first to
31320 type of constructor values.
31321
31322 2019-01-08 Richard Biener <rguenther@suse.de>
31323
31324 PR tree-optimization/86554
31325 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
31326 rpo_avail): Move earlier.
31327 (visit_nary_op): When value-numbering to expressions
31328 with different overflow behavior make sure there's an
31329 available expression on the path.
31330
31331 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
31332
31333 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
31334 aarch64_parse_branch_protection,
31335 struct aarch64_branch_protect_type,
31336 aarch64_handle_no_branch_protection,
31337 aarch64_handle_standard_branch_protection,
31338 aarch64_validate_mbranch_protection,
31339 aarch64_handle_pac_ret_protection,
31340 aarch64_handle_attr_branch_protection,
31341 accepted_branch_protection_string,
31342 aarch64_pac_ret_subtypes,
31343 aarch64_branch_protect_types,
31344 aarch64_handle_pac_ret_leaf): Define.
31345 (aarch64_override_options_after_change_1, aarch64_override_options):
31346 Add check for accepted_branch_protection_string.
31347 (aarch64_option_save): Save accepted_branch_protection_string.
31348 (aarch64_option_restore): Save accepted_branch_protection_string.
31349 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
31350 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
31351 msign-return-address.
31352 * doc/invoke.texi: Add mbranch-protection.
31353
31354 2019-01-08 Alan Modra <amodra@gmail.com>
31355
31356 PR target/88614
31357 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
31358 Delete "unknownp" parameter. Adjust callers. Handle
31359 CONST_INT, PLUS, MINUS, and MULT.
31360 (attr_value_aligned): Renamed from or_attr_value.
31361 (min_attr_value): Return INT_MIN for unhandled rtl case..
31362 (min_fn): ..and translate to INT_MAX here.
31363 (write_length_unit_log): Modify to cope without "unknown".
31364 (write_attr_value): Handle IF_THEN_ELSE.
31365
31366 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
31367
31368 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
31369 optimization for masked stores.
31370
31371 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
31372
31373 PR middle-end/88567
31374 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
31375 output vector directly to duplicate_and_interleave instead of
31376 going through a temporary. Postpone insertion of ctor_seq to
31377 the end of the loop.
31378
31379 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
31380
31381 PR target/86891
31382 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
31383 unsigned_p. Handle signed and unsigned overflow correction as
31384 required.
31385 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
31386 prototype.
31387 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
31388 for operand 2.
31389 (add<mode>3_compareV_imm): Make this callable for expanding.
31390 (subv<GPI:mode>4): Use register_operand for operand 1. Use
31391 aarch64_plus_operand for operand 2.
31392 (subv<GPI:mode>_insn): New insn pattern.
31393 (subv<GPI:mode>_imm): Likewise.
31394 (negv<GPI:mode>3): New expand pattern.
31395 (negv<GPI:mode>_insn): New insn pattern.
31396 (negv<GPI:mode>_cmp_only): Likewise.
31397 (cmpv<GPI:mode>_insn): Likewise.
31398 (subvti4): Use register_operand for operand 1. Update call to
31399 aarch64_expand_subvti.
31400 (usubvti4): Likewise.
31401 (negvti3): New expand pattern.
31402 (negdi_carryout): New insn pattern.
31403 (negvdi_carryinV): New insn pattern.
31404 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
31405 version the named version.
31406 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
31407 operands.
31408 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
31409 patterns.
31410 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
31411 patterns.
31412 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
31413 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
31414 (sub<mode>3_carryinCV): Delete.
31415 (sub<GPI:mode>3_carryinV): New expand pattern.
31416 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
31417
31418 2019-01-07 Richard Biener <rguenther@suse.de>
31419
31420 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
31421 of tree_operand_hash.
31422
31423 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
31424
31425 PR tree-optimization/88598
31426 * tree.h (single_nonzero_element): Declare.
31427 * tree.c (single_nonzero_element): New function.
31428 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
31429 if I is the only nonzero element of CST.
31430
31431 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
31432
31433 PR tree-optimization/88598
31434 * tree.h (initializer_each_zero_or_onep): Declare.
31435 * tree.c (initializer_each_zero_or_onep): New function.
31436 (signed_or_unsigned_type_for): Handle float types too.
31437 (unsigned_type_for, signed_type_for): Update comments accordingly.
31438 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
31439 x & { 0 or -1, 0 or -1, ... }.
31440
31441 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
31442
31443 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
31444 with x86_64-pc-linux-gnu.
31445
31446 2019-01-07 Tom de Vries <tdevries@suse.de>
31447
31448 PR target/85486
31449 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
31450 function.
31451 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
31452 routines.
31453
31454 2019-01-07 Jakub Jelinek <jakub@redhat.com>
31455
31456 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
31457 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
31458 TARGET_AVX512F as condition.
31459
31460 PR debug/88723
31461 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
31462 const_not_ok_for_debug_p target hook.
31463 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
31464 on UNSPEC and subexpressions thereof if all subexpressions of the
31465 UNSPEC are CONSTANT_P.
31466
31467 PR tree-optimization/88676
31468 * tree-ssa-phiopt.c (two_value_replacement): New function.
31469 (tree_ssa_phiopt_worker): Call it.
31470
31471 PR sanitizer/88619
31472 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
31473 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
31474
31475 PR c++/85052
31476 * tree-vect-generic.c: Include insn-config.h and recog.h.
31477 (expand_vector_piecewise): Add defaulted ret_type argument,
31478 if non-NULL, use that in preference to type for the result type.
31479 (expand_vector_parallel): Formatting fix.
31480 (do_vec_conversion, do_vec_narrowing_conversion,
31481 expand_vector_conversion): New functions.
31482 (expand_vector_operations_1): Call expand_vector_conversion
31483 for VEC_CONVERT ifn calls.
31484 * internal-fn.def (VEC_CONVERT): New internal function.
31485 * internal-fn.c (expand_VEC_CONVERT): New function.
31486 * fold-const-call.c (fold_const_vec_convert): New function.
31487 (fold_const_call): Use it for CFN_VEC_CONVERT.
31488 * doc/extend.texi (__builtin_convertvector): Document.
31489
31490 2019-01-07 Tom de Vries <tdevries@suse.de>
31491
31492 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
31493 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
31494 vector_red_partition, vector_red_sym): New global variables.
31495 (nvptx_option_override): Initialize vector_red_sym.
31496 (nvptx_declare_function_name): Restore red_partition register.
31497 (nvptx_file_end): Emit code to declare the vector reduction variables.
31498 (nvptx_output_red_partition): New function.
31499 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
31500 large vector reductions.
31501 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
31502 (nvptx_init_builtins): Add VECTOR_ADDR.
31503 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
31504 Handle nvptx_expand_shared_addr.
31505 (nvptx_get_shared_red_addr): Add vector argument and handle large
31506 vectors.
31507 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
31508 large vectors.
31509 (nvptx_goacc_reduction_init): Likewise.
31510 (nvptx_goacc_reduction_fini): Likewise.
31511 (nvptx_goacc_reduction_teardown): Likewise.
31512 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
31513 init,fini,teardown}.
31514 (nvptx_init_axis_predicate): Initialize vector_red_partition.
31515 (nvptx_set_current_function): Init vector_red_partition.
31516 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
31517 (nvptx_red_partition): New insn.
31518 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
31519
31520 2019-01-07 Tom de Vries <tdevries@suse.de>
31521
31522 PR target/85381
31523 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
31524 empty loops.
31525
31526 2019-01-07 Tom de Vries <tdevries@suse.de>
31527
31528 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
31529 (nvptx_option_override): Init oacc_bcast_partition.
31530 (nvptx_init_oacc_workers): New function.
31531 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
31532 (nvptx_needs_shared_bcast): New function.
31533 (nvptx_find_par): Generalize to enable vectors to use shared-memory
31534 to propagate state.
31535 (nvptx_shared_propagate): Initialize vector bcast partition and
31536 synchronization state.
31537 (nvptx_single): Generalize to enable vectors to use shared-memory
31538 to propagate state.
31539 (nvptx_process_pars): Likewise.
31540 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
31541 * config/nvptx/nvptx.h (struct machine_function): Add
31542 bcast_partition and sync_bar members.
31543
31544 2019-01-07 Tom de Vries <tdevries@suse.de>
31545
31546 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
31547 (nvptx_apply_dim_limits): New function.
31548 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
31549 PTX_WARP_SIZE.
31550
31551 2019-01-07 Tom de Vries <tdevries@suse.de>
31552
31553 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
31554 as late as possible.
31555
31556 2019-01-07 Tom de Vries <tdevries@suse.de>
31557
31558 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
31559 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
31560 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
31561 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
31562 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
31563
31564 2019-01-07 Tom de Vries <tdevries@suse.de>
31565
31566 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
31567
31568 2019-01-07 Tom de Vries <tdevries@suse.de>
31569
31570 * omp-offload.c (oacc_get_min_dim): New function.
31571 * omp-offload.h (oacc_get_min_dim): Declare.
31572
31573 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
31574
31575 PR target/88521
31576 * config/i386/i386.c (function_value_ms_64): Return small sturct in
31577 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
31578
31579 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
31580
31581 PR tree-opt/86020
31582 Revert:
31583 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
31584
31585 * ipa-inline.c (edge_badness): Use inlined_time instead of
31586 inline_summaries->get.
31587
31588 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
31589
31590 * opts.c (enable_fdo_optimizations): Enable
31591 version-loops-for-strides, loop-interchange, unrol-and-jam
31592 and tree-loop-distribution.
31593 * invoke.texi: Document newly enabled options.
31594
31595 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
31596
31597 * doc/invoke.texi (max-inline-insns-small): New parameters.
31598 * ipa-inline.c (want_early_inline_function_p): simplify.
31599 (want_inline_small_function_p): Fix pasto from previous patch;
31600 use max-inline-insns-small bound.
31601 * params.def (max-inline-insns-small): New param.
31602 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
31603 variables correctly.
31604
31605 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
31606
31607 * doc/invoke.texi: Document max-inline-insns-size,
31608 uninlined-function-insns, uninlined-function-time,
31609 uninlined-thunk-insns and uninlined-thunk-time.
31610 * params.def: Add max-inline-insns-size,
31611 uninlined-function-insns, uninlined-function-time,
31612 uninlined-thunk-insns and uninlined-thunk-time.
31613 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
31614 new parameters.
31615 * ipa-inline.c (can_inline_edge_by_limits_p,
31616 want_inline_small_function_p): Use new parameters.
31617
31618 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
31619
31620 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
31621
31622 2019-01-05 Jakub Jelinek <jakub@redhat.com>
31623
31624 PR middle-end/82564
31625 PR target/88620
31626 * expr.c (expand_assignment): For calls returning VLA structures
31627 if to_rtx is not a MEM, force it into a stack temporary.
31628
31629 PR debug/88635
31630 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
31631 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
31632 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
31633 subexpressions of both operands.
31634 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
31635 subrtxes are CONSTANT_P.
31636 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
31637 2018-11-09 changes.
31638
31639 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
31640
31641 * params.def (hot-bb-count-ws-permille): Set to 990.
31642
31643 2019-01-04 Martin Sebor <msebor@redhat.com>
31644
31645 PR c/88546
31646 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
31647 leaf.
31648
31649 2019-01-04 Martin Sebor <msebor@redhat.com>
31650
31651 PR c/88363
31652 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
31653
31654 2019-01-04 Jakub Jelinek <jakub@redhat.com>
31655
31656 * gdbinit.in: Turn off pagination for the skip commands, restore
31657 it to previous state afterwards.
31658
31659 2019-01-04 Jakub Jelinek <jakub@redhat.com>
31660
31661 PR target/88594
31662 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
31663 of GET_MODE (opN) as modes of the libcall arguments.
31664
31665 2019-01-04 Jan Beulich <jbeulich@suse.com>
31666
31667 * config/i386/sse.md
31668 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
31669 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
31670 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
31671 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
31672 avx512f_vmcmp<mode>3<round_saeonly_name>,
31673 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
31674 avx512f_maskcmp<mode>3,
31675 <avx512>_cvt<ssemodesuffix>2mask<mode>,
31676 <avx512>_cvt<ssemodesuffix>2mask<mode>,
31677 *<avx512>_cvtmask2<ssemodesuffix><mode>,
31678 *<avx512>_cvtmask2<ssemodesuffix><mode>,
31679 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
31680 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
31681 <avx512>_gt<mode>3<mask_scalar_merge_name>,
31682 <avx512>_gt<mode>3<mask_scalar_merge_name>,
31683 <avx512>_testm<mode>3<mask_scalar_merge_name>,
31684 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
31685 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
31686 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
31687 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
31688 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
31689 avx512cd_maskb_vec_dup<mode>,
31690 avx512cd_maskw_vec_dup<mode>,
31691 avx512dq_fpclass<mode><mask_scalar_merge_name>,
31692 avx512dq_vmfpclass<mode>,
31693 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
31694 instead of =Yk.
31695
31696 2019-01-03 Martin Sebor <msebor@redhat.com>
31697
31698 PR tree-optimization/88659
31699 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
31700
31701 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
31702
31703 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
31704 unaligned vsx and avoid lxvd2x/stxvd2x.
31705 (gen_lvx_v4si_move): New function.
31706
31707 2019-01-03 Tom de Vries <tdevries@suse.de>
31708
31709 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
31710 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
31711 function.
31712 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
31713
31714 2019-01-03 Tom de Vries <tdevries@suse.de>
31715
31716 * config/nvptx/nvptx.c (struct offload_attrs): New.
31717 (populate_offload_attrs): New function. Factor mask extraction out of
31718 nvptx_reorg. Add extraction of dimensions.
31719 (nvptx_reorg): Use populate_offload_attrs.
31720
31721 2019-01-03 Tom de Vries <tdevries@suse.de>
31722
31723 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
31724 cases for oacc_min_dims_p and routine_p. Add asserts for
31725 oacc_default_dims_p and offload_region_p.
31726
31727 2019-01-03 Tom de Vries <tdevries@suse.de>
31728
31729 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
31730 factored out of ...
31731 (nvptx_goacc_validate_dims): ... here.
31732
31733 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
31734
31735 PR tree-optimization/85574
31736 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
31737 structure.
31738 (struct ssa_equip_hash_traits): Declare.
31739 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
31740
31741 2019-01-03 Jakub Jelinek <jakub@redhat.com>
31742
31743 PR debug/88644
31744 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
31745 change it to qualified_type.
31746
31747 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
31748
31749 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
31750 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
31751
31752 2019-01-02 Martin Sebor <msebor@redhat.com>
31753 Jeff Law <law@redhat.com>
31754
31755 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
31756 (get_range_strlen_tree): Update appropriately.
31757 (get_range_strlen)
31758 * gimple-fold.h (get_range_strlen): Drop unused last argument.
31759
31760 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
31761 rather than set_range_info.
31762 * tree-ssa-strlen.c (set_strlen_range): Extracted from
31763 maybe_set_strlen_range. Handle potentially boundary crossing
31764 cases more conservatively.
31765 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
31766 Call set_strlen_range.
31767 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
31768
31769 PR middle-end/88663
31770 * gimple-fold.c (get_range_strlen): Update prototype to no longer
31771 need the flexp argument.
31772 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
31773 from calls to get_range_strlen. Update comments. Just update
31774 VAL for an unterminated const char array and let the reset of the
31775 code handle it normally. No longer try to set *flexp. Adjust
31776 return value.
31777 (get_range_strlen): Update for the new get_range_strlen API.
31778 (get_maxval_strlen): Similarly.
31779 (gimple_fold_builtin_strlen): Handle update meaning of return value
31780 from get_range_strlen.
31781 * gimple-ssa-sprintf.c (get_string_length): Update for the new
31782 get_range_strlen API.
31783
31784 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
31785
31786 PR lto/88130
31787 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
31788 false at WPA time when body was removed.
31789
31790 2019-01-02 Martin Liska <mliska@suse.cz>
31791
31792 PR tree-optimization/88650
31793 * predict.c (set_even_probabilities): Calculate probability
31794 remainer only when really used.
31795
31796 2019-01-02 Richard Biener <rguenther@suse.de>
31797
31798 PR middle-end/88651
31799 * tree-data-ref.c (analyze_subscript_affine_affine): Use
31800 widest_ints when mangling max_stmt_execution results.
31801
31802 2019-01-02 Richard Biener <rguenther@suse.de>
31803
31804 PR tree-optimization/88621
31805 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
31806 bitfields when canoncalizing.
31807
31808 2019-01-02 Richard Biener <rguenther@suse.de>
31809
31810 PR target/87545
31811 * config/i386/x86-tune-costs.h (intel_cost): Adjust
31812 cost of cheap SSE instruction.
31813
31814 2019-01-02 Richard Biener <rguenther@suse.de>
31815
31816 PR ipa/85574
31817 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
31818 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
31819 function.
31820 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
31821 set after UIDs before splitting them.
31822
31823 2019-01-01 Martin Sebor <msebor@redhat.com>
31824 Jeff Law <law@redhat.com>
31825
31826 * gimple-fold.c (get_range_strlen_tree): Record if the computed
31827 length is optimistic. If it is, then arrange to compute the
31828 conservative length as well.
31829
31830 * gimple-fold.h (get_range_strlen): Update prototype.
31831 * builtins.c (check_access): Update call to get_range_strlen to use
31832 c_strlen_data pointer. Change various variable accesses to instead
31833 pull data from the c_strlen_data structure.
31834 (check_strncat_sizes, expand_builtin_strncat): Likewise.
31835 * calls.c (maybe_warn_nonstring_arg): Likewise.
31836 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
31837 minimum length if maximum lengh is unknown.
31838 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
31839 that used c_strlen, it's no longer needed. Restructure slightly.
31840 (format_string): Set unlikely range appropriately.
31841 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
31842 formatting issues.
31843 (get_range_strlen): Accept c_strlen_data pointer for external
31844 call sites as well. Pass through to call to internal get_range_strlen.
31845 Adjust minlen, maxlen and maxbound as needed.
31846 (get_maxval_strlen): Update comments.
31847 (gimple_fold_builtin_strlen): Update call to get_range_strlen
31848 to use c_strlen_data pointer. Change variable accesses to instead
31849 use c_strlen_data data members.
31850
31851 * gimple-fold.c (get_range_strlen): Update prototype.
31852 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
31853 local variables. Use pdata to return information to caller.
31854 Update calls to get_range_strlen. Update pdata->maxbound.
31855 (get_range_strlen -- static version): Similarly.
31856 (get_range_strlen -- extern version): Update for internal
31857 get_range_strlen API change. Convert to external data format.
31858 (get_maxval_strlen): Similarly.
31859
31860 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
31861
31862 * coverage.c (get_coverage_counts): Use current_function_decl.
31863 * profile.c (read_thunk_profile): New function.
31864 (branch_prob): Add THUNK parameter.
31865 * tree-profile.c (tree_profiling): Handle thunks.
31866 * value-prof.c (init_node_map): Handle thunks.
31867 * value-prof.h (branch_prob): Upate prototype.
31868 (read_thunk_profile): Declare.
31869
31870 2019-01-01 Jakub Jelinek <jakub@redhat.com>
31871
31872 Update copyright years.
31873
31874 * gcc.c (process_command): Update copyright notice dates.
31875 * gcov-dump.c (print_version): Ditto.
31876 * gcov.c (print_version): Ditto.
31877 * gcov-tool.c (print_version): Ditto.
31878 * gengtype.c (create_file): Ditto.
31879 * doc/cpp.texi: Bump @copying's copyright year.
31880 * doc/cppinternals.texi: Ditto.
31881 * doc/gcc.texi: Ditto.
31882 * doc/gccint.texi: Ditto.
31883 * doc/gcov.texi: Ditto.
31884 * doc/install.texi: Ditto.
31885 * doc/invoke.texi: Ditto.
31886 \f
31887 Copyright (C) 2019 Free Software Foundation, Inc.
31888
31889 Copying and distribution of this file, with or without modification,
31890 are permitted in any medium without royalty provided the copyright
31891 notice and this notice are preserved.