[ARM] Rename *_compute_save_reg_mask ()
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2017-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2
3         * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
4         (arm_compute_save_core_reg_mask): This.
5         (thumb1_compute_save_reg_mask): Rename into ...
6         (thumb1_compute_save_core_reg_mask): This.
7         (arm_compute_save_reg0_reg12_mask): Adapt comment.
8         (arm_compute_frame_layout): Likewise.
9
10 2017-06-06  Richard Biener  <rguenther@suse.de>
11
12         PR tree-optimization/80974
13         * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
14         keep or clear leaders SSA info.
15
16 2017-06-06  Tom de Vries  <tom@codesourcery.com>
17
18         * config/nvptx/nvptx.c (split_mode_p): New function.
19         (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
20
21 2017-06-06  Tom de Vries  <tom@codesourcery.com>
22
23         * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
24
25 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
26
27         PR bootstrap/80978
28         * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
29         profile.
30
31 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
32
33         * shrink-wrap.c (handle_simple_exit): Update profile.
34         (try_shrink_wrapping): Upate profile.
35
36 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
37
38         * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
39         (tree_guess_outgoing_edge_probabilities): New.
40         * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
41         * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
42
43 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
44
45         * ipa-split.c (split_function): Initialize return bb profile.
46
47 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
48
49         * profile.c (compute_branch_probabilities): Also initialize
50         EXIT_BLOCK profile.
51
52 2017-06-06  Richard Biener  <rguenther@suse.de>
53
54         PR tree-optimization/80928
55         * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
56         (vect_analyze_loop_operations): Properly guard analysis for
57         pure SLP case.
58         (vect_transform_loop): Likewise.
59         (vect_analyze_loop_2): Also reset SLP type on PHIs.
60         (vect_model_induction_cost): Do not cost for pure SLP.
61         (vectorizable_induction): Pass in SLP node, implement SLP vectorization
62         of induction in inner loop vectorization.
63         * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
64         (vect_get_and_check_slp_defs): Handle vect_induction_def.
65         (vect_build_slp_tree): Likewise.  Handle PHIs as terminating the
66         recursion.
67         (vect_analyze_slp_cost_1): Cost induction.
68         (vect_detect_hybrid_slp_stmts): Handle PHIs.
69         (vect_get_slp_vect_defs): Likewise.
70         * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
71         (vect_transform_stmt): Handle SLP reductions.
72         * tree-vectorizer.h (vectorizable_induction): Adjust.
73
74 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
75
76         * config/rs6000/rs6000.c (make_resolver_func): Update
77         init_lowered_empty_function call.
78
79 2017-06-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
80
81         * doc/invoke.texi: Document the -fprofile-abs-path option.
82         * common.opt (fprofile-abs-path): New option.
83         * gcov-io.h (gcov_write_filename): Declare.
84         * gcov-io.c (gcov_write_filename): New function.
85         * coverage.c (coverage_begin_function): Use gcov_write_filename.
86         * profile.c (output_location): Likewise.
87
88 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
89
90         * shring-wrap.c: Revert accidental commit.
91
92 2017-06-05  Volker Reichelt  <v.reichelt@netcologne.de>
93
94         * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
95
96 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
97
98         * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
99         new edge.
100         * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
101         profile in callgraph edge.
102         * profile-count.h (apply_probability): If THIS is 0, then result is 0
103         (apply_scale): Likewise.
104         * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
105         Also scale profile when inlining function with zero profile.
106         (initialize_cfun): Update exit block profile even when it is zero.
107         * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
108         when profile is read.
109
110 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
111
112         * config/rs6000/rs6000.c (toplevel): Include attribs.h.
113         (CLONE_*): New constants to define the processors we can generate
114         code for with the target_clone attribute.
115         (rs6000_clone_map): New array to identify which clone processors
116         the current program is running on.
117         (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
118         target_clone attribute.
119         (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
120         (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
121         (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
122         (cpu_expand_builtin): Add support for target_clone attribute.
123         (rs6000_valid_attribute_p): Allow "default" attribute.
124         (get_decl_name): New debug function to simplify printing the
125         current function name in debugging statements.
126         (rs6000_clone_priority): New functions to support the target_clone
127         attribute, and be able to generate code to switch between ISA 2.05
128         through ISA 3.0 (power6 through power9).
129         (rs6000_compare_version_priority): Likewise.
130         (rs6000_get_function_versions_dispatcher): Likewise.
131         (make_resolver_func): Likewise.
132         (add_condition_to_bb): Likewise.
133         (dispatch_function_versions): Likewise.
134         (rs6000_generate_version_dispatcher_body): Likewise.
135         (rs6000_can_inline_p): Call get_decl_name for debugging usage.
136         (fusion_gpr_load_p): Fix a spacing issue.
137         * doc/extend.texi (Common Function Attributes): Document that the
138         PowerPC supports the target_clone attribute.
139
140 2017-06-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
141
142         * config/arm/arm.h: explain F symbol found in description of ARM
143         register allocation in its legend.
144
145 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
146
147         * config/mips/frame-header-opt.c: Include profile-count.h.
148         * config/riscv/riscv.c: Include profile-count.h
149
150 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
151
152         * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
153         update profile.
154         (sm_set_flag_if_changed): Add bbs field.
155         (execute_sm_if_changed_flag_set): Pass BBS.
156         (execute_sm): Update.
157
158 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
159
160         * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
161         New pattern.
162
163 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
164
165         * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
166         (peephole2): New peephole2 to emit the above.
167         * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
168
169 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
170
171         * config/aarch64/aarch64.c (define_peephole2 above
172         *sub_<shift>_<mode>): New peephole.
173
174 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
175
176         * config/i386/i386.c (make_resolver_func): Update.
177         * Makefile.in: Add profile-count.h and profile-count.o
178         * auto-profile.c (afdo_indirect_call): Update to new API.
179         (afdo_set_bb_count): Update.
180         (afdo_propagate_edge): Update.
181         (afdo_propagate_circuit): Update.
182         (afdo_calculate_branch_prob): Update.
183         (afdo_annotate_cfg): Update.
184         * basic-block.h: Include profile-count.h
185         (struct edge_def): Turn count to profile_count.
186         (struct basic_block_def): Likewie.
187         (REG_BR_PROB_BASE): Move to profile-count.h
188         (RDIV): Move to profile-count.h
189         * bb-reorder.c (max_entry_count): Turn to profile_count.
190         (find_traces): Update.
191         (rotate_loop):Update.
192         (connect_traces):Update.
193         (sanitize_hot_paths):Update.
194         * bt-load.c (migrate_btr_defs): Update.
195         * cfg.c (RDIV): Remove.
196         (init_flow): Use alloc_block.
197         (alloc_block): Uninitialize count.
198         (unchecked_make_edge): Uninitialize count.
199         (check_bb_profile): Update.
200         (dump_edge_info): Update.
201         (dump_bb_info): Update.
202         (update_bb_profile_for_threading): Update.
203         (scale_bbs_frequencies_int): Update.
204         (scale_bbs_frequencies_gcov_type): Update.
205         (scale_bbs_frequencies_profile_count): New.
206         * cfg.h (update_bb_profile_for_threading): Update.
207         (scale_bbs_frequencies_profile_count): Declare.
208         * cfgbuild.c (compute_outgoing_frequencies): Update.
209         (find_many_sub_basic_blocks): Update.
210         * cfgcleanup.c (try_forward_edges): Update.
211         (try_crossjump_to_edge): Update.
212         * cfgexpand.c (expand_gimple_tailcall): Update.
213         (construct_exit_block): Update.
214         * cfghooks.c (verify_flow_info): Update.
215         (dump_bb_for_graph): Update.
216         (split_edge): Update.
217         (make_forwarder_block): Update.
218         (duplicate_block): Update.
219         (account_profile_record): Update.
220         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
221         (get_estimated_loop_iterations): Update.
222         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
223         (single_likely_exit): Update.
224         * cfgloopmanip.c (scale_loop_profile): Update.
225         (loopify): Update.
226         (set_zero_probability): Update.
227         (lv_adjust_loop_entry_edge): Update.
228         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
229         (purge_dead_edges): Update.
230         (rtl_account_profile_record): Update.
231         * cgraph.c (cgraph_node::create): Uninitialize count.
232         (symbol_table::create_edge): Uninitialize count.
233         (cgraph_update_edges_for_call_stmt_node): Update.
234         (cgraph_edge::dump_edge_flags): Update.
235         (cgraph_node::dump): Update.
236         (cgraph_edge::maybe_hot_p): Update.
237         * cgraph.h: Include profile-count.h
238         (create_clone), create_edge, create_indirect_edge): Update.
239         (cgraph_node): Turn count to profile_count.
240         (cgraph_edge0: Likewise.
241         (make_speculative, clone): Update.
242         (create_edge): Update.
243         (init_lowered_empty_function): Update.
244         * cgraphclones.c (cgraph_edge::clone): Update.
245         (duplicate_thunk_for_node): Update.
246         (cgraph_node::create_clone): Update.
247         * cgraphunit.c (cgraph_node::analyze): Update.
248         (cgraph_node::expand_thunk): Update.
249         * final.c (dump_basic_block_info): Update.
250         * gimple-streamer-in.c (input_bb): Update.
251         * gimple-streamer-out.c (output_bb): Update.
252         * graphite.c (print_global_statistics): Update.
253         (print_graphite_scop_statistics): Update.
254         * hsa-brig.c: Include basic-block.h.
255         * hsa-dump.c: Include basic-block.h.
256         * hsa-gen.c (T sum_slice): Update.
257         (convert_switch_statements):Update.
258         * hsa-regalloc.c: Include basic-block.h.
259         * ipa-chkp.c (chkp_produce_thunks): Update.
260         * ipa-cp.c (struct caller_statistics): Update.
261         (init_caller_stats): Update.
262         (gather_caller_stats): Update.
263         (ipcp_cloning_candidate_p): Update.
264         (good_cloning_opportunity_p): Update.
265         (get_info_about_necessary_edges): Update.
266         (dump_profile_updates): Update.
267         (update_profiling_info): Update.
268         (update_specialized_profile): Update.
269         (perhaps_add_new_callers): Update.
270         (decide_about_value): Update.
271         (ipa_cp_c_finalize): Update.
272         * ipa-devirt.c (struct odr_type_warn_count): Update.
273         (struct decl_warn_count): Update.
274         (struct final_warning_record): Update.
275         (possible_polymorphic_call_targets): Update.
276         (ipa_devirt): Update.
277         * ipa-fnsummary.c (redirect_to_unreachable): Update.
278         * ipa-icf.c (sem_function::merge): Update.
279         * ipa-inline-analysis.c (do_estimate_edge_time): Update.
280         * ipa-inline.c (compute_uninlined_call_time): Update.
281         (compute_inlined_call_time): Update.
282         (want_inline_small_function_p): Update.
283         (want_inline_self_recursive_call_p): Update.
284         (edge_badness): Update.
285         (lookup_recursive_calls): Update.
286         (recursive_inlining): Update.
287         (inline_small_functions): Update.
288         (dump_overall_stats): Update.
289         (dump_inline_stats): Update.
290         * ipa-profile.c (ipa_profile_generate_summary): Update.
291         (ipa_propagate_frequency): Update.
292         (ipa_profile): Update.
293         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
294         * ipa-utils.c (ipa_merge_profiles): Update.
295         * loop-doloop.c (doloop_modify): Update.
296         * loop-unroll.c (report_unroll): Update.
297         (unroll_loop_runtime_iterations): Update.
298         * lto-cgraph.c (lto_output_edge): Update.
299         (lto_output_node): Update.
300         (input_node): Update.
301         (input_edge): Update.
302         (merge_profile_summaries): Update.
303         * lto-streamer-in.c (input_cfg): Update.
304         * lto-streamer-out.c (output_cfg): Update.
305         * mcf.c (create_fixup_graph): Update.
306         (adjust_cfg_counts): Update.
307         (sum_edge_counts): Update.
308         * modulo-sched.c (sms_schedule): Update.
309         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
310         * predict.c (maybe_hot_count_p): Update.
311         (probably_never_executed): Update.
312         (dump_prediction): Update.
313         (combine_predictions_for_bb): Update.
314         (propagate_freq): Update.
315         (handle_missing_profiles): Update.
316         (counts_to_freqs): Update.
317         (rebuild_frequencies): Update.
318         (force_edge_cold): Update.
319         * predict.h: Include profile-count.h
320         (maybe_hot_count_p, counts_to_freqs): UPdate.
321         * print-rtl-function.c: Do not include cfg.h
322         * print-rtl.c: Include basic-block.h
323         * profile-count.c: New file.
324         * profile-count.h: New file.
325         * profile.c (is_edge_inconsistent): Update.
326         (correct_negative_edge_counts): Update.
327         (is_inconsistent): Update.
328         (set_bb_counts): Update.
329         (read_profile_edge_counts): Update.
330         (compute_frequency_overlap): Update.
331         (compute_branch_probabilities): Update; Initialize and deinitialize
332         gcov_count tables.
333         (branch_prob): Update.
334         * profile.h (bb_gcov_counts, edge_gcov_counts): New.
335         (edge_gcov_count): New.
336         (bb_gcov_count): New.
337         * shrink-wrap.c (try_shrink_wrapping): Update.
338         * tracer.c (better_p): Update.
339         * trans-mem.c (expand_transaction): Update.
340         (ipa_tm_insert_irr_call): Update.
341         (ipa_tm_insert_gettmclone_call): Update.
342         * tree-call-cdce.c: Update.
343         * tree-cfg.c (gimple_duplicate_sese_region): Update.
344         (gimple_duplicate_sese_tail): Update.
345         (gimple_account_profile_record): Update.
346         (execute_fixup_cfg): Update.
347         * tree-inline.c (copy_bb): Update.
348         (copy_edges_for_bb): Update.
349         (initialize_cfun): Update.
350         (freqs_to_counts): Update.
351         (copy_cfg_body): Update.
352         (expand_call_inline): Update.
353         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
354         * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
355         (try_unroll_loop_completely): Update.
356         (try_peel_loop): Update.
357         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
358         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
359         * tree-ssa-loop-split.c (connect_loops): Update.
360         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
361         * tree-ssa-reassoc.c (branch_fixup): Update.
362         * tree-ssa-tail-merge.c (replace_block_by): Update.
363         * tree-ssa-threadupdate.c (create_block_for_threading): Update.
364         (compute_path_counts): Update.
365         (update_profile): Update.
366         (recompute_probabilities): Update.
367         (update_joiner_offpath_counts): Update.
368         (estimated_freqs_path): Update.
369         (freqs_to_counts_path): Update.
370         (clear_counts_path): Update.
371         (ssa_fix_duplicate_block_edges): Update.
372         (duplicate_thread_path): Update.
373         * tree-switch-conversion.c (case_bit_test_cmp): Update.
374         (struct switch_conv_info): Update.
375         * tree-tailcall.c (decrease_profile): Update.
376         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
377         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
378         * value-prof.c (check_counter): Update.
379         (gimple_divmod_fixed_value): Update.
380         (gimple_mod_pow2): Update.
381         (gimple_mod_subtract): Update.
382         (gimple_ic_transform): Update.
383         (gimple_stringop_fixed_value): Update.
384         * value-prof.h (gimple_ic): Update.
385
386 2017-06-02  Carl Love  <cel@us.ibm.com>
387
388         * config/rs6000/rs6000-c: Add support for built-in functions
389         vector double vec_doublee (vector signed int);
390         vector double vec_doublee (vector unsigned int);
391         vector double vec_doublee (vector float);
392         vector double vec_doubleh (vector signed int);
393         vector double vec_doubleh (vector unsigned int);
394         vector double vec_doubleh (vector float);
395         vector double vec_doublel (vector signed int);
396         vector double vec_doublel (vector unsigned int);
397         vector double vec_doublel (vector float);
398         vector double vec_doubleo (vector signed int);
399         vector double vec_doubleo (vector unsigned int);
400         vector double vec_doubleo (vector float);.
401         * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
402         DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
403         UNS_DOUBLEL.
404         * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
405         unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
406         unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
407         VS_sxwsp.
408         * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
409         vec_doublel, vec_doubleh.
410         * doc/extend.texi: Update the built-in documentation file for the
411         new built-in functions.
412
413 2017-06-02  David Malcolm  <dmalcolm@redhat.com>
414
415         PR jit/80954
416         * ipa-inline-analysis.c (free_growth_caches): Set
417         edge_removal_hook_holder to NULL after removing it.
418
419 2017-06-02  Sudakshina Das  <sudi.das@arm.com>
420
421         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
422         comparision with zero.
423
424 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
425         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
426         for early expansion of vec_min and vec_max builtins.
427         (builtin_function_type): Add min/max unsigned variants to those
428         identified as having unsigned arguments.
429
430 2017-06-02  Olivier Hainque  <hainque@adacore.com>
431
432         * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
433
434 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
435
436         * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
437         Use VALL_F16 iterator rather than VALL.
438
439 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
440
441         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
442         Emit CBNZ inside loop when doing a strong exchange and comparing
443         against zero.  Generate the CC flags after the loop.
444
445 2017-06-02  David Edelsohn  <dje.gcc@gmail.com>
446
447         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
448         (dl_section_ref): New.
449         (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
450         On AIX, append an expression to subtract the size of the
451         section length to dl_section_ref.
452
453 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
454
455         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
456         for early expansion of vector absolute builtins.
457
458 2017-06-02  Richard Biener  <rguenther@suse.de>
459
460         * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
461         what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
462
463 2017-06-02  Richard Biener  <rguenther@suse.de>
464
465         PR tree-optimization/80948
466         * tree-tailcall.c (find_tail_calls): Track stmts to move in
467         stmt order as well.
468
469 2017-06-02  Richard Biener  <rguenther@suse.de>
470
471         * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
472         PHIs are ok.
473         * tree-vect-stmts.c (process_use): Do not mark backedge defs
474         for inductions as relevant.
475
476 2017-06-02  Richard Biener  <rguenther@suse.de>
477
478         * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
479         (vectorizable_induction): ... this.  Remove dead code.
480
481 2017-06-02  Eric Botcazou  <ebotcazou@adacore.com>
482
483         * builtins. (expand_builtin_alloca): Remove second parameter and
484         infer its value from the first parameter instead.
485         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
486
487 2017-06-02  Jakub Jelinek  <jakub@redhat.com>
488
489         PR rtl-optimization/80903
490         * loop-doloop.c (add_test): Unshare sequence.
491
492 2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
493
494         * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
495
496 2017-06-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
497
498         * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
499         static.
500         (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
501         xlogue_layout::get_instance, logue_layout::xlogue_layout,
502         sp_valid_at, fp_valid_at, choose_basereg): Formatting.
503         (xlogue_layout::get_stub_rtx): Make static.
504         (xlogue_layout::get_stub_name): Avoid const-cast, make static.
505         (xlogue_layout::compute_stub_managed_regs): Rename to...
506         (xlogue_layout::count_stub_managed_regs): ...this.
507         (xlogue_layout::is_stub_managed_reg): New function.
508         (xlogue_layout::m_stub_names): Rename to...
509         (xlogue_layout::s_stub_names): ...this, make static.
510         (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
511         xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
512         xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
513         xlogue_layout::s_stub_names): Instantiate statics.
514         (stub_managed_regs): Remove.
515         (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
516         (disable_call_ms2sysv_xlogues): Rename to...
517         (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
518         (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
519         warning logic.
520         (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
521         change after reload_completed.
522         (ix86_can_use_return_insn_p): Use the ix86_frame data structure
523         directly.
524         (ix86_expand_prologue): Likewise.
525         (ix86_expand_epilogue): Likewise.
526         (ix86_expand_split_stack_prologue): Likewise.
527         (ix86_compute_frame_layout): Remove frame parameter ...
528         (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
529         (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
530         only if necessary.
531         (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
532         (ix86_frame): Move from here ...
533         * config/i386/i386.h (ix86_frame): ... to here.
534         (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
535         complete ix86_frame data structure instead.  Remove some_ld_name.
536
537 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
538
539         * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
540         symbols that hold a DECL_VALUE_EXPR.
541
542 2017-06-01  Martin Jambor  <mjambor@suse.cz>
543
544         PR tree-optimization/80898
545         * tree-sra.c (process_subtree_disqualification): Removed.
546         (disqualify_candidate): Do not acll
547         process_subtree_disqualification.
548         (subtree_mark_written_and_enqueue): New function.
549         (propagate_all_subaccesses): Set grp_write of LHS subtree if the
550         RHS has been disqualified and re-queue LHS if necessary.  Apart
551         from that, ignore disqualified RHS.
552
553 2017-06-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
554
555         * config/s390/s390.c (s390_emit_epilogue): Disable early return
556         address fetch for z10 or later.
557
558 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
559
560         * config/arc/arc.md (tst_movb): Add guard when splitting.
561
562 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
563
564         * config/arc/arc.c (arc_can_eliminate): Test against
565         arc_frame_pointer_needed.
566
567 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
568
569         * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
570         to prevent store reordering.
571         * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
572         (type): Add block type.
573         (stack_tie): Define special instruction to be used in
574         expand_prologue.
575
576 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
577
578         * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
579         constraint. It is not valid for the pattern.
580         (noncommutative_binary_comparison): Likewise.
581
582 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
583
584         * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
585         scaled addresses.
586
587 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
588
589         * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
590         be used by the reg-alloc.
591
592 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
593
594         * config/arc/arc.md (mulsi3): Avoid use of hard registers before
595         reg-alloc when having mul64 or mul32x16 instructions.
596         (mulsidi3): Likewise.
597         (umulsidi3): Likewise.
598         (mulsi32x16): New pattern.
599         (mulsi64): Likewise.
600         (mulsidi64): Likewise.
601         (umulsidi64): Likewise.
602         (MUL32x16_REG): Define.
603         (mul64_600): Use MUL32x16_REG.
604         (mac64_600): Likewise.
605         (umul64_600): Likewise.
606         (umac64_600): Likewise.
607
608 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
609
610         * config/arc/arc.md (mulsi3_700): Make it commutative.
611
612 2017-06-01  Jose E. Marchesi  <jose.marchesi@oracle.com>
613
614         * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
615         type for movstouw.
616         (*sign_extendsidi2_insn): Likewise for movstosw.
617
618 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
619
620         * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
621         the type of the input discriminant value.  Convert the
622         discriminant value of signedness vary.
623
624 2017-06-01  Volker Reichelt  <v.reichelt@netcologne.de>
625
626         * doc/invoke.texi (-Wcatch-value): Document new shortcut.
627         Add to -Wall section.
628
629 2017-06-01  Richard Biener  <rguenther@suse.de>
630
631         PR middle-end/66313
632         * fold-const.c (fold_plusminus_mult_expr): If the factored
633         factor may be zero use a wrapping type for the inner operation.
634         * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
635         and handle moved defs.
636         (process_assignment): Properly guard the unary op case.  Return a
637         tri-state indicating that moving the stmt before the call may allow
638         to continue.  Pass through to_move.
639         (find_tail_calls): Handle moving unrelated defs before
640         the call.
641
642 2017-05-31  Segher Boessenkool  <segher@kernel.crashing.org>
643
644         PR target/80618
645         * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
646         splitter result in the canonical way.
647
648 2017-05-31  Uros Bizjak  <ubizjak@gmail.com>
649
650         * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
651         also for 32bit target.  Update insn attributes.
652         (zero-extendsidi2 splitter): Allow all registers for operand 1.
653
654 2017-05-31  Sebastian Peryt  <sebastian.peryt@intel.com>
655
656         * config/i386/avx512fintrin.h (_mm_mask_max_sd)
657         (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
658         (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
659         (_mm_maskz_min_ss): New intrinsics.
660
661 2017-05-31  Martin Liska  <mliska@suse.cz>
662
663         * tree-vect-loop.c (vect_create_epilog_for_reduction):
664         Change comment style to one we normally use.
665         (vectorizable_reduction): Likewise.
666         (vectorizable_induction): Likewise.
667         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
668         (vectorizable_call): Likewise.
669         (vectorizable_simd_clone_call): Likewise.
670         (vectorizable_conversion): Likewise.
671         (vectorizable_assignment): Likewise.
672         (vectorizable_shift): Likewise.
673         (vectorizable_operation): Likewise.
674         (vectorizable_store): Likewise.
675         (vectorizable_load): Likewise.
676         * tree-vectorizer.h: Likewise.
677
678 2017-05-31  Alexander Monakov  <amonakov@ispras.ru>
679
680         * passes.c (emergency_dump_function): New.
681         * tree-pass.h (emergency_dump_function): Declare.
682         * plugin.c (plugins_internal_error_function): Remove.
683         * plugin.h (plugins_internal_error_function): Remove declaration.
684         * toplev.c (internal_error_function): New static function.  Use it...
685         (general_init): ...here.
686
687 2017-05-31  Graham Markall  <graham.markall@embecosm.com>
688
689         * config/arc/arc.c (arc_print_operand): Handle constant operands.
690         (arc_rtx_costs): Add costs for new patterns.
691         * config/arc/arc.md: Additional *add_n and *sub_n patterns.
692         * config/arc/predicates.md: Add _1_2_3_operand predicate.
693
694 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
695
696         * tree-ssa-strlen.c (get_next_strinfo): New function.
697         (get_stridx_plus_constant): Use it.
698         (zero_length_string): Likewise.
699         (adjust_related_strinfos): Likewise.
700         (adjust_last_stmt): Likewise.
701
702 2017-05-31  Richard Biener  <rguenther@suse.de>
703
704         PR target/80880
705         * config/i386/i386.c (ix86_expand_builtin): Remove assert
706         for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
707
708 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
709
710         * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
711         loop_vinfo argument and use of dependence distance vectors.
712         Check instead whether the two references differ only in their
713         initial value and assume that they have the same alignment if the
714         difference is a multiple of the vector alignment.
715         (vect_analyze_data_refs_alignment): Update call accordingly.
716
717 2017-05-31  Martin Liska  <mliska@suse.cz>
718
719         PR target/79155
720         * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
721
722 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
723
724         * tree-vect-loop-manip.c (create_intersect_range_checks_index)
725         (create_intersect_range_checks): Move from ...
726         * tree-data-ref.c (create_intersect_range_checks_index)
727         (create_intersect_range_checks): ... to here.
728         (create_runtime_alias_checks): New function factored from ...
729         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
730         here.  Call above function.
731         * tree-data-ref.h (create_runtime_alias_checks): New function.
732
733 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
734
735         * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
736         segment length for dr_b and compute it in wide_int.
737
738 2017-05-31  Richard Biener  <rguenther@suse.de>
739
740         PR tree-optimization/80906
741         * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
742         and pass through iv_map.
743         (copy_bb_and_scalar_dependences): Adjust.
744         (translate_pending_phi_nodes): Likewise.
745         (copy_loop_close_phi_args): Handle code-generating IVs instead
746         of ICEing.
747
748 2017-05-30  David Malcolm  <dmalcolm@redhat.com>
749
750         * diagnostic-color.c (color_dict): Add "type-diff".
751         (parse_gcc_colors): Update comment.
752         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
753         -fdiagnostics-show-template-tree and -fno-elide-type.
754         (GCC_COLORS): Add type-diff to example.
755         (type-diff=): New.
756         (-fdiagnostics-show-template-tree): New.
757         (-fno-elide-type): New.
758         * pretty-print.c (pp_format): Pass quote and formatters[argno] to
759         the pp_format_decoder callback.  Call any m_format_postprocessor's
760         "handle" method.
761         (pretty_printer::pretty_printer): Initialize
762         m_format_postprocessor.
763         (pretty_printer::~pretty_printer): Delete any
764         m_format_postprocessor.
765         * pretty-print.h (printer_fn): Add bool and const char ** parameters.
766         (class format_postprocessor): New class.
767         (struct pretty_printer::format_decoder): Document the new parameters.
768         (struct pretty_printer::m_format_postprocessor): New field.
769         * tree-diagnostic.c (default_tree_printer): Update for new
770         bool and const char ** params.
771         * tree-diagnostic.h (default_tree_printer): Likewise.
772
773 2017-05-30  Segher Boessenkool  <segher@kernel.crashing.org>
774
775         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
776         (lwa_operand): Delete rs6000_gen_cell_microcode test.
777         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
778         rs6000_gen_cell_microcode code.
779         (rs6000_final_prescan_insn): Delete.
780         (rs6000_opt_vars): Delete the "gen-cell-microcode" and
781         "warn-cell-microcode" entries.
782         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
783         * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
784         throughout.  Change cc_reg_not_micro_cr0_operand to
785         cc_reg_not_cr0_operand throughout.
786         (*extendhi<mode>2_noload): Delete.
787         * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
788         (mwarn-cell-microcode): Delete.
789         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
790         -mgen-cell-microcode and -mwarn-cell-microcode.
791
792 2017-05-30  Uros Bizjak  <ubizjak@gmail.com>
793
794         PR target/80833
795         * config/i386/constraints.md (Yd): New constraint.
796         (Ye): Ditto.
797         * config/i386/i386.md (*movti_internal): Add (?r, Ye)
798         and (?Yd, r) alternatives.  Update insn attributes.
799         * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
800         and (?*Yd, r) alternatives.  Update insn attributes.
801         (double-mode inter-unit splitters): Add new GR<->XMM splitters.
802
803 2017-05-30  Pierre-Marie de Rodat  <derodat@adacore.com>
804
805         * gimplify.c (gimplify_modify_expr): Don't create a
806         DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
807         function.
808
809 2017-05-30  Wilco Dijkstra  <wdijkstr@arm.com>
810
811         * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
812
813 2017-05-30  Richard Biener  <rguenther@suse.de>
814
815         * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
816         and reduc_def fields.
817         (STMT_VINFO_REDUC_TYPE): New define.
818         (STMT_VINFO_REDUC_DEF): Likewise.
819         (vect_force_simple_reduction): Adjust prototype.
820         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
821         (vect_is_simple_reduction): Remove check_reduction argument.
822         (vect_force_simple_reduction): Adjust and set
823         STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
824         (vectorizable_reduction): Do not re-do reduction analysis
825         but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
826         * tree-parloops.c (gather_scalar_reductions): Adjust.
827
828 2017-05-30  Richard Biener  <rguenther@suse.de>
829
830         PR middle-end/80901
831         * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
832         split_edge code.
833
834 2017-05-24  Robin Dapp  <rdapp@linux.vnet.ibm.com>
835
836         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
837         Introduce unknown_misalignment parameter and remove vf.
838         (vect_peeling_hash_get_lowest_cost):
839         Pass unknown_misalignment parameter.
840         (vect_enhance_data_refs_alignment):
841         Fix unsupportable data ref treatment.
842
843 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
844
845         * tree-vect-data-refs.c (vect_get_data_access_cost):
846         Workaround for SLP handling.
847         (vect_enhance_data_refs_alignment):
848         Compute costs for doing no peeling at all, compare to the best
849         peeling costs so far and avoid peeling if cheaper.
850
851 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
852
853         * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
854         Return peeling info and set costs to zero for unlimited cost
855         model.
856         (vect_enhance_data_refs_alignment): Also inspect all datarefs
857         with unknown misalignment. Compute and costs for unknown
858         misalignment, compare them to the costs for known misalignment
859         and choose the cheapest for peeling.
860
861 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
862
863         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
864         (vect_get_peeling_costs_all_drs): Create function.
865         (vect_peeling_hash_get_lowest_cost):
866         Use vect_get_peeling_costs_all_drs.
867         (vect_peeling_supportable): Create function.
868         (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
869
870 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
871
872         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
873         DR_HAS_NEGATIVE_STEP.
874         (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
875         (vect_enhance_data_refs_alignment): Use.
876         (vect_duplicate_ssa_name_ptr_info): Use.
877         * tree-vectorizer.h (dr_misalignment): Use.
878         (known_alignment_for_access_p): Use.
879
880 2017-05-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
881
882         PR target/78838
883         * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
884         .lowtext.
885         (has_section_name): New function.
886
887 2017-05-30  Martin Liska  <mliska@suse.cz>
888
889         PR other/80909
890         * auto-profile.c (get_function_decl_from_block): Fix
891         parenthesis.
892
893 2017-05-30  Richard Biener  <rguenther@suse.de>
894
895         PR middle-end/80876
896         * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
897
898 2017-05-30  Martin Liska  <mliska@suse.cz>
899
900         * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
901         * dumpfile.h (struct dump_file_info): Remove ctors.
902
903 2017-05-30  Martin Liska  <mliska@suse.cz>
904
905         * predict.def: Fix GNU coding style.
906
907 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
908
909         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
910         Mark 'to' argument with ATTRIBUTE_UNUSED.
911
912 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
913
914         * config/xtensa/xtensa.c (xtensa_emit_call): Use
915         HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
916         (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
917         format string.
918
919 2017-05-29  Eric Botcazou  <ebotcazou@adacore.com>
920
921         * doc/install.texi (Options specification): Restore entry of
922         --enable-sjlj-exceptions.
923
924 2017-05-27  Michael Eager  <eager@eagercon.com>
925
926         Revert:
927         2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
928
929         See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
930
931         * config/microblaze/microblaze.h
932         (FIXED_REGISTERS): Update in macro.
933         (CALL_USED_REGISTERS): Update in macro.
934
935 2017-05-27  François-Xavier Coudett  <fxcoudert@gcc.gnu.org>
936
937         * doc/install.texi: Add links to macOS binary distributions.
938
939 2017-05-27  Jakub Jelinek  <jakub@redhat.com>
940
941         PR bootstrap/80887
942         Revert:
943         2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
944
945         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
946
947 2017-05-26  Martin Liska  <mliska@suse.cz>
948
949         * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
950
951 2017-05-26  Martin Liska  <mliska@suse.cz>
952
953         * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
954         always leading ';; '.
955         (dump_bb_info): Likewise.
956         (brief_dump_cfg): Likewise.
957         * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
958         * dumpfile.c: Remove usage of TDF_VERBOSE.
959         * dumpfile.h (enum dump_kind): Likewise.
960         (dump_gimple_bb_header): Do not use TDF_COMMENT.
961         * print-tree.c (debug_verbose): Remove.
962         * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
963         (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
964         * tree-diagnostic.c (default_tree_printer): Replace
965         TDF_DIAGNOSTIC with TDF_SLIM.
966
967 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
968
969         * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
970         in parameter loop, rather than loop_vinfo.
971         (create_intersect_range_checks): Ditto.
972         (vect_create_cond_for_alias_checks): Update call to above functions.
973
974 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
975
976         PR tree-optimization/80815
977         * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
978         for merging runtime alias checks.  Handle negative DR_STEPs.
979
980 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
981
982         * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
983         Move from ...
984         * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
985         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
986         out code pruning runtime alias checks.
987         * tree-data-ref.c (prune_runtime_alias_test_list): New function
988         factored out from above.
989         * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
990         Move from ...
991         * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
992         ... to here.
993         (prune_runtime_alias_test_list): New decalaration.
994
995 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
996
997         * tree-vect-data-refs.c (compare_tree): Rename and move ...
998         * tree-data-ref.c (data_ref_compare_tree): ... to here.
999         * tree-data-ref.h (data_ref_compare_tree): New decalaration.
1000         * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
1001         (operator==, comp_dr_with_seg_len_pair): Ditto.
1002         (vect_prune_runtime_alias_test_list): Ditto.
1003
1004 2017-05-26  Martin Liska  <mliska@suse.cz>
1005
1006         PR ipa/80663
1007         * params.def: Bound partial-inlining-entry-probability param.
1008
1009 2017-05-26  Marek Polacek  <polacek@redhat.com>
1010
1011         PR sanitizer/80875
1012         * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
1013         can be negated.
1014
1015 2017-05-26  Richard Biener  <rguenther@suse.de>
1016
1017         PR tree-optimization/80842
1018         * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
1019         value.
1020
1021 2017-05-26  Richard Biener  <rguenther@suse.de>
1022
1023         PR tree-optimization/80844
1024         * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
1025
1026 2017-05-25  Sebastian Peryt  <sebastian.peryt@intel.com>
1027
1028         * doc/md.texi (Machine Constraints): Update x86 family
1029         machine constraints section to match 'config/i386/constraints.md'.
1030
1031 2017-05-25  Volker Reichelt  <v.reichelt@netcologne.de>
1032
1033         * doc/invoke.texi (-Wcatch-value=): Document new warning option.
1034
1035 2017-05-25  Nathan Sidwell  <nathan@acm.org>
1036
1037         * doc/invoke.texi (--enable-languages): Update documentation.
1038
1039 2017-05-25  Martin Liska  <mliska@suse.cz>
1040
1041         * dumpfile.c: Add TDF_FOLDING.
1042         * dumpfile.h (enum dump_kind): Likewise.
1043         * genmatch.c (dt_simplify::gen_1): Use it.
1044
1045 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
1046
1047         * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
1048
1049 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
1050
1051         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
1052         * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
1053
1054 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
1055
1056         * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
1057         * match.pd (X == C): Rewrite it here.
1058         (with_possible_nonzero_bits, with_possible_nonzero_bits2,
1059         with_certain_nonzero_bits2): New predicates.
1060         * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
1061
1062 2017-05-24  Nathan Sidwell  <nathan@acm.org>
1063
1064         * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
1065         avoid warning.
1066
1067         * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
1068         warning.
1069
1070 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
1071
1072         * config/powerpcspe: New port.  Files are copied from the rs6000
1073         port, with "rs6000" in filenames replaced by "powerpcspe".
1074
1075 2017-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
1076
1077         PR rtl-optimization/80754
1078         * lra-remat.c (do_remat): Add overlap checks for dst_regno.
1079
1080 2017-05-24  Sheldon Lobo  <smlobo@sheldon.us.oracle.com>
1081
1082         * config/sparc/sparc.md (length): Return the correct value for -mflat
1083         sibcalls to match output_sibcall.
1084
1085 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
1086
1087         PR bootstrap/80860
1088         PR bootstrap/80843
1089         * config/rs6000/rs6000.c (struct machine_function): Add new field
1090         n_components.
1091         (rs6000_get_separate_components): Init that field, use it.
1092         (rs6000_components_for_bb): Use the field.
1093
1094 2017-05-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1095
1096         * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
1097
1098 2017-05-24  Peter Bergner  <bergner@vnet.ibm.com>
1099
1100         PR middle-end/80823
1101         * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
1102
1103 2017-05-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1104
1105         PR target/80725
1106         * config/s390/s390.c (s390_check_qrst_address): Check incoming
1107         address against address_operand predicate.
1108         * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
1109
1110 2017-05-24  Eric Botcazou  <ebotcazou@adacore.com>
1111
1112         * var-tracking.c (track_expr_p): Do not return 0 for tracked record
1113         parameters passed indirectly.
1114
1115 2017-05-23  Uros Bizjak  <ubizjak@gmail.com>
1116
1117         * config/i386/i386.md (*movdi_internal): Remove SSE4
1118         alternative 18 (?r, *v).  Update insn attributes.
1119         (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
1120         Update insn attributes.
1121         (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
1122         Update insn attributes.
1123         * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
1124         alternative 1 (r, v). Remove isa attribute.
1125         * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
1126         Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
1127         and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
1128
1129 2017-05-23  Tom de Vries  <tom@codesourcery.com>
1130
1131         * doc/sourcebuild.texi (Directives, Verify compiler message): Document
1132         dg-line directive.
1133
1134 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
1135
1136         * cgraphunit.c (symbol_table::process_new_functions): Update.
1137         * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
1138         (inline_generate_summary): Rename to ...
1139         (ipa_fn_summary_generate): ... this one.
1140         (inline_read_summary): Rename to ...
1141         (ipa_fn_summary_read): ... this one.
1142         (inline_write_summary): Rename to ...
1143         (ipa_fn_summary_write): ... this one.
1144         (inline_free_summary): Rename to ...
1145         (ipa_free_fn_summary): ... this one.
1146         (pass_data_local_fn_summary, pass_local_fn_summary,
1147         make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
1148         pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
1149         pass_data_ipa_fn_summary, pass_ipa_fn_summary,
1150         make_pass_ipa_fn_summary): New.
1151         * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
1152         inline_write_summary, inline_free_summary): Remove.
1153         (ipa_free_fn_summary) : New.
1154         * ipa-inline.c (ipa_inline): Update.
1155         (pass_ipa_inline): Do not generate summaries.
1156         * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
1157         Remove.
1158         * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
1159         and add pass_ipa_fn_summary.
1160         * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
1161         New.
1162         (make_pass_inline_parameters): Remove.
1163
1164 2017-05-23  Thomas Schwinge  <thomas@codesourcery.com>
1165
1166         * omp-low.c (struct omp_context): Remove "default_kind" member.
1167         Adjust all users.
1168
1169         * omp-offload.c (execute_oacc_device_lower): Remove the
1170         parallelism dimensions function attributes for unparallelized
1171         OpenACC kernels constructs.
1172
1173 2017-05-23  Martin Liska  <mliska@suse.cz>
1174
1175         * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
1176         functions.
1177         (cgraph_edge::make_speculative): Likewise.
1178         (cgraph_edge::resolve_speculation): Likewise.
1179         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
1180         (cgraph_node::dump): Likewise.
1181         * cgraph.h: Likewise.
1182         * cgraphunit.c (analyze_functions): Likewise.
1183         (symbol_table::compile): Likewise.
1184         * ipa-cp.c (print_all_lattices): Likewise.
1185         (determine_versionability): Likewise.
1186         (initialize_node_lattices): Likewise.
1187         (ipcp_verify_propagated_values): Likewise.
1188         (estimate_local_effects): Likewise.
1189         (update_profiling_info): Likewise.
1190         (create_specialized_node): Likewise.
1191         (perhaps_add_new_callers): Likewise.
1192         (decide_about_value): Likewise.
1193         (decide_whether_version_node): Likewise.
1194         (identify_dead_nodes): Likewise.
1195         (ipcp_store_bits_results): Likewise.
1196         * ipa-devirt.c (dump_targets): Likewise.
1197         (ipa_devirt): Likewise.
1198         * ipa-icf.c (sem_item::dump): Likewise.
1199         (sem_function::equals): Likewise.
1200         (sem_variable::equals): Likewise.
1201         (sem_item_optimizer::read_section): Likewise.
1202         (sem_item_optimizer::execute): Likewise.
1203         (congruence_class::dump): Likewise.
1204         * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
1205         (dump_inline_summary): Likewise.
1206         (estimate_node_size_and_time): Likewise.
1207         (inline_analyze_function): Likewise.
1208         * ipa-inline-transform.c (inline_call): Likewise.
1209         * ipa-inline.c (report_inline_failed_reason): Likewise.
1210         (want_early_inline_function_p): Likewise.
1211         (edge_badness): Likewise.
1212         (update_edge_key): Likewise.
1213         (inline_small_functions): Likewise.
1214         * ipa-profile.c (ipa_profile): Likewise.
1215         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
1216         (ipa_make_edge_direct_to_target): Likewise.
1217         (remove_described_reference): Likewise.
1218         (ipa_impossible_devirt_target): Likewise.
1219         (propagate_controlled_uses): Likewise.
1220         (ipa_print_node_params): Likewise.
1221         (ipcp_transform_function): Likewise.
1222         * ipa-pure-const.c (pure_const_read_summary): Likewise.
1223         (propagate_pure_const): Likewise.
1224         * ipa-reference.c (generate_summary): Likewise.
1225         (read_write_all_from_decl): Likewise.
1226         (propagate): Likewise.
1227         (ipa_reference_read_optimization_summary): Likewise.
1228         * ipa-utils.c (ipa_merge_profiles): Likewise.
1229         * ipa.c (walk_polymorphic_call_targets): Likewise.
1230         (symbol_table::remove_unreachable_nodes): Likewise.
1231         (ipa_single_use): Likewise.
1232         * passes.c (execute_todo): Likewise.
1233         * predict.c (drop_profile): Likewise.
1234         * symtab.c (symtab_node::get_dump_name): New function.
1235         (symtab_node::dump_name): Likewise.
1236         (symtab_node::dump_asm_name): Likewise.
1237         (symtab_node::dump_references): Likewise.
1238         (symtab_node::dump_referring): Likewise.
1239         (symtab_node::dump_base): Likewise.
1240         (symtab_node::debug_symtab): Likewise.
1241         * tree-sra.c (convert_callers_for_node): Likewise.
1242         * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
1243         * value-prof.c (init_node_map): Likewise.
1244
1245 2017-05-23  Martin Liska  <mliska@suse.cz>
1246
1247         * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
1248         and symtab_node::debug_symtab to symbol_table::debug.
1249         * cgraphunit.c (analyze_functions): Use the renamed function.
1250         (symbol_table::compile): Likewise.
1251         * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
1252         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
1253         * passes.c (execute_todo): Likewise.
1254         * symtab.c (symbol_table::dump): New function.
1255         * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
1256
1257 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
1258
1259         * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
1260         that nonconst implies exec.
1261
1262 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
1263
1264         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
1265         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
1266         (inline_edge_summary_vec): Turn into ...
1267         (ipa_call_summaries): ... this one.
1268         (redirect_to_unreachable, edge_set_predicate,
1269         evaluate_properties_for_edge, inline_summary_alloc,
1270         reset_ipa_call_summary, reset_inline_summary,
1271         inline_summary_t::duplicate): Update.
1272         (inline_edge_duplication_hook): Turn to ...
1273         (ipa_call_summary_t::duplicate): ... this one.
1274         (inline_edge_removal_hook): Turn to ...
1275         (ipa_call_summary_t::remove): ... this one.
1276         (dump_inline_edge_summary): Turn to ...
1277         (dump_ipa_call_summary): ... this one.
1278         (estimate_function_body_sizes): Update.
1279         (inline_update_callee_summaries): Update.
1280         (remap_edge_change_prob): Update.
1281         (remap_edge_summaries): Update.
1282         (inline_merge_summary): Update.
1283         (do_estimate_edge_time): Update.
1284         (inline_generate_summary): Update.
1285         (inline_read_section): Update.
1286         (inline_read_summary): Update.
1287         (inline_free_summary): Update.
1288         * ipa-inline.c (can_inline_edge_p): Update.
1289         (compute_inlined_call_time): Update.
1290         (want_inline_small_function_p): Update.
1291         (edge_badness): Update.
1292         (early_inliner): Update.
1293         * ipa-inline.h (inline_edge_summary): Turn to ...
1294         (ipa_call_summary): ... this one.
1295         (ipa_call_summary_t): New class.
1296         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
1297         (ipa_call_summaries): New.
1298         (inline_edge_summary): Remove.
1299         (estimate_edge_growth): Update.
1300         * ipa-profile.c (ipa_propagate_frequency_1): Update.
1301         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
1302         * ipa-split.c (execute_split_functions): Update.
1303         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
1304
1305 2017-05-23  Tom de Vries  <tom@codesourcery.com>
1306
1307         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
1308         attributes): Document rdrand effective target.
1309
1310 2017-05-23  Tom de Vries  <tom@codesourcery.com>
1311
1312         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
1313         attributes): Sort alphabetically.
1314
1315 2017-05-23  Georg-Johann Lay  <avr@gjlay.de>
1316
1317         * config/avr/genmultilib.awk: Use gsub instead of gensub.
1318
1319 2017-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
1320
1321         PR target/80718
1322         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
1323         V2DF/V2DI splat into two separate patterns, one that handles
1324         registers, and the other that only handles memory.  Drop support
1325         for splatting from a GPR on ISA 2.07 and then splitting the
1326         splat into direct move and splat.
1327         (vsx_splat_<mode>_reg): Likewise.
1328         (vsx_splat_<mode>_mem): Likewise.
1329
1330 2017-05-22  Segher Boessenkool  <segher@kernel.crashing.org>
1331
1332         * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
1333
1334 2017-05-22  Jakub Jelinek  <jakub@redhat.com>
1335
1336         PR middle-end/80809
1337         * omp-low.c (finish_taskreg_remap): New function.
1338         (finish_taskreg_scan): If unit size of ctx->record_type
1339         is non-constant, unshare the size expression and replace
1340         decls in it with possible outer var refs.
1341
1342         PR middle-end/80809
1343         * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
1344         GOVD_SHARED rather than GOVD_PRIVATE with it.
1345         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
1346         GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
1347
1348         PR middle-end/80853
1349         * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
1350         as last argument to build_outer_var_ref for pointer bases of array
1351         section reductions.
1352
1353 2017-05-19  Martin Sebor  <msebor@redhat.com>
1354
1355         * print-tree.c (print_node): Print DECL_READ_P flag.
1356
1357 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
1358
1359         * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
1360         * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
1361         * cgraph.c: Likewise.
1362         * cgraphunit.c: Likewise.
1363         * gengtype.c: Likewise.
1364         * ipa-cp.c: Likewise.
1365         * ipa-devirt.c: Likewise.
1366         * ipa-icf.c: Likewise.
1367         * ipa-predicate.c: Likewise.
1368         * ipa-profile.c: Likewise.
1369         * ipa-prop.c: Likewise.
1370         * ipa-split.c: Likewise.
1371         * ipa.c: Likewise.
1372         * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
1373         edge_predicate_pool, dump_inline_hints,
1374         inline_summary::account_size_time, redirect_to_unreachable,
1375         edge_set_predicate, set_hint_predicate,
1376         evaluate_conditions_for_known_args, evaluate_properties_for_edge,
1377         inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
1378         inline_summary_t::remove, remap_hint_predicate_after_duplication,
1379         inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
1380         ipa_call_summary_t::remove, initialize_growth_caches,
1381         free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
1382         debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
1383         mark_modified, unmodified_parm_1, unmodified_parm,
1384         unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
1385         set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
1386         compute_bb_predicates, will_be_nonconstant_expr_predicate,
1387         will_be_nonconstant_predicate, record_modified_bb_info,
1388         get_minimal_bb, record_modified, param_change_prob,
1389         phi_result_unknown_predicate, predicate_for_phi_result,
1390         array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
1391         estimate_function_body_sizes, compute_inline_parameters,
1392         compute_inline_parameters_for_curren, pass_data_inline_parameters,
1393         estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
1394         inline_update_callee_summaries, remap_edge_change_prob,
1395         remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
1396         inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
1397         inline_analyze_function, inline_summary_t::insert,
1398         inline_generate_summary, read_ipa_call_summary, inline_read_section,
1399         inline_read_summary, write_ipa_call_summary, inline_write_summary,
1400         inline_free_summary): Move to ipa-fnsummary.h
1401         (predicate_t): Remove.
1402         * ipa-fnsummary.c: New file.
1403         * ipa-inline.h:  Do not include sreal.h and ipa-predicate.h
1404         (enum inline_hints_vals, inline_hints, agg_position_info,
1405         INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
1406         inline_summaries, ipa_call_summary, ipa_call_summary_t,
1407         ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
1408         dump_inline_summary, dump_inline_hints, inline_generate_summary,
1409         inline_read_summary, inline_write_summary, inline_free_summary,
1410         inline_analyze_function, initialize_inline_failed,
1411         inline_merge_summary, inline_update_overall_summary,
1412         compute_inline_parameters): Move to ipa-fnsummary.h
1413         * ipa-fnsummary.h: New file.
1414         * ipa-inline-transform.h: Include ipa-inline.h.
1415         * ipa-inline.c: LIkewise.
1416
1417 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
1418
1419         * ipa-inline.c (edge_badness): Use inlined_time instead of
1420         inline_summaries->get.
1421
1422 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
1423
1424         * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
1425
1426 2017-05-22  Nathan Sidwell  <nathan@acm.org>
1427
1428         * doc/invoke.texi (fdump-translation-unit): Delete documentation.
1429         (fdump-lang): Document 'raw' option.
1430         * dumpfile.h (TDI_tu): Delete.
1431         * dumpfile.c (dump_files): Remove translation-unit.
1432         (FIRST_AUTO_NUMBERED_DUMP): Decrement.
1433
1434 2017-05-22  Georg-Johann Lay  <avr@gjlay.de>
1435
1436         * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
1437         command option from $(AWK) call.
1438         * config/avr/genmultilib.awk: Simplify and rewrite so that it
1439         generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
1440         [FORMAT]: Remove handling of variable.
1441         * config/avr/t-multilib: Regenerate.
1442
1443 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
1444
1445         * ipa-inline-analysis.c (inline_summary::reset): Do not reset
1446         self_time.
1447         (dump_inline_summary): Do not print self_time.
1448         (estimate_function_body_sizes): Do not set self_time.
1449         (compute_inline_parameters): Likewise.
1450         (inline_read_section, inline_write_summary): Do not stream self_time.
1451         * ipa-inline.h (inline_summary): Drop self_time.
1452
1453 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
1454
1455         * ipa-inline-analysis.c (account_size_time): Rename to ...
1456         (inline_summary::account_size_time): ... this one.
1457         (reset_ipa_call_summary): Turn to ...
1458         (ipa_call_summary::reset): ... this one.
1459         (reset_inline_summary): Turn to ...
1460         (inline_summary::reset): ... this one.
1461         (inline_summary_t::remove): Update.
1462         (inline_summary_t::duplicate): Update.
1463         (ipa_call_summary_t::remove): Update.
1464         (dump_inline_summary): Update.
1465         (estimate_function_body_sizes): Update.
1466         (compute_inline_parameters): Update.
1467         (estimate_node_size_and_time): Update.
1468         (inline_merge_summary): Update.
1469         (inline_update_overall_summary): Update.
1470         (inline_read_section): Update.
1471         (inline_write_summary): Update.
1472         * ipa-inline.h (inline_summary): Rename entry to size_time_table;
1473         add account_size_time and reset member functions.
1474         (ipa_call_summary): Add reset function.
1475         * ipa-predicate.h (predicate::operator &): Constify.
1476
1477 2017-05-22  Richard Biener  <rguenther@suse.de>
1478
1479         * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
1480
1481 2017-05-19  Jason Merrill  <jason@redhat.com>
1482
1483         * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
1484
1485 2017-05-19  Marek Polacek  <polacek@redhat.com>
1486
1487         PR sanitizer/80800
1488         * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
1489         TYPE_OVERFLOW_WRAPS checks.
1490
1491 2017-05-19  Thomas Schwinge  <thomas@codesourcery.com>
1492
1493         * tree-core.h (enum omp_clause_default_kind): Add
1494         "OMP_CLAUSE_DEFAULT_PRESENT".
1495         * tree-pretty-print.c (dump_omp_clause): Handle it.
1496         * gimplify.c (enum gimplify_omp_var_data): Add
1497         "GOVD_MAP_FORCE_PRESENT".
1498         (gimplify_adjust_omp_clauses_1): Map it to
1499         "GOMP_MAP_FORCE_PRESENT".
1500         (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
1501
1502         * gimplify.c (oacc_default_clause): Clarify.
1503
1504 2017-05-19  Nathan Sidwell  <nathan@acm.org>
1505
1506         LANG_HOOK_REGISTER_DUMPS
1507         * toplev.c (general_init): Call register dump lang hook.
1508         * doc/invoke.texi: Document -fdump-lang option family.
1509         * dumpfile.c (dump_files): Remove class dump here.
1510         (FIRST_AUTO_NUMBERED_DUMP): Adjust.
1511         * dumpfile.h (tree_dump_index): Remove TDI_class.
1512         * langhooks-def.h (lhd_register_dumps): Declare.
1513         (LANG_HOOKS_REGISTER_DUMPS): Define.
1514         (LANG_HOOKS_INITIALIZER): Add it.
1515         * langhooks.c (lhd_register_dumps): Define.
1516         * langhooks.h (struct lang_hooks): Add register_dumps.
1517
1518 2017-05-19  Nathan Sidwell  <nathan@acm.org>
1519
1520         * context.h (context::set_passes): New.
1521         * context.c (context::context): Do not create pass manager.
1522         * toplev.c (general_init): Create pass manager here.
1523
1524 2017-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
1525
1526         * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
1527         use this splitter if two add or or instructions would also work for
1528         the constant we want to generate.
1529
1530 2017-05-19  Richard Biener  <rguenther@suse.de>
1531
1532         PR build/80821
1533         * genmatch.c (dt_node::gen_kids_1): Add missing scope around
1534         predicate evaluation.
1535
1536 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
1537
1538         * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
1539         add ctor.
1540         * ipa-inline.c (want_inline_small_function_p): Do not cast to
1541         unsigned.
1542
1543 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
1544
1545         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
1546         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
1547         (inline_edge_summary_vec): Turn into ...
1548         (ipa_call_summaries): ... this one.
1549         (redirect_to_unreachable, edge_set_predicate,
1550         evaluate_properties_for_edge, inline_summary_alloc,
1551         reset_ipa_call_summary, reset_inline_summary,
1552         inline_summary_t::duplicate): Update.
1553         (inline_edge_duplication_hook): Turn to ...
1554         (ipa_call_summary_t::duplicate): ... this one.
1555         (inline_edge_removal_hook): Turn to ...
1556         (ipa_call_summary_t::remove): ... this one.
1557         (dump_inline_edge_summary): Turn to ...
1558         (dump_ipa_call_summary): ... this one.
1559         (estimate_function_body_sizes): Update.
1560         (inline_update_callee_summaries): Update.
1561         (remap_edge_change_prob): Update.
1562         (remap_edge_summaries): Update.
1563         (inline_merge_summary): Update.
1564         (do_estimate_edge_time): Update.
1565         (inline_generate_summary): Update.
1566         (inline_read_section): Update.
1567         (inline_read_summary): Update.
1568         (inline_free_summary): Update.
1569         * ipa-inline.c (can_inline_edge_p): Update.
1570         (compute_inlined_call_time): Update.
1571         (want_inline_small_function_p): Update.
1572         (edge_badness): Update.
1573         (early_inliner): Update.
1574         * ipa-inline.h (inline_edge_summary): Turn to ...
1575         (ipa_call_summary): ... this one.
1576         (ipa_call_summary_t): New class.
1577         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
1578         (ipa_call_summaries): New.
1579         (inline_edge_summary): Remove.
1580         (estimate_edge_growth): Update.
1581         * ipa-profile.c (ipa_propagate_frequency_1): Update.
1582         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
1583         * ipa-split.c (execute_split_functions): Update.
1584         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
1585
1586 2017-05-19  Richard Biener  <rguenther@suse.de>
1587
1588         PR middle-end/80764
1589         * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
1590
1591 2017-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
1592
1593         * config/rs6000/rs6000.c (struct machine_function): Add field
1594         fpr_is_wrapped_separately.
1595         (rs6000_get_separate_components): Use 64 components.  Handle the
1596         new FPR components.
1597         (rs6000_components_for_bb): Handle the FPR components.
1598         (rs6000_emit_prologue_components): Handle the FPR components.
1599         (rs6000_emit_epilogue_components): Handle the FPR components.
1600         (rs6000_set_handled_components): Handle the FPR components.
1601         (rs6000_emit_prologue): Don't output prologue code for those FPRs
1602         that are already separately shrink-wrapped.
1603         (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
1604         that are already separately shrink-wrapped.
1605
1606 2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
1607
1608         PR target/80510
1609         * config/rs6000/predicates.md (simple_offsettable_mem_operand):
1610         New predicate.
1611
1612         * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
1613         (define_peephole2 for Altivec d-form load): Add peepholes to catch
1614         cases where the register allocator uses a move and an offsettable
1615         memory operation to/from a FPR register on ISA 2.06/2.07.
1616         (define_peephole2 for Altivec d-form store): Likewise.
1617
1618 2017-05-18  Uros Bizjak  <ubizjak@gmail.com>
1619
1620         PR target/80799
1621         * config/i386/mmx.md (*mov<mode>_internal): Enable
1622         alternatives 11, 12, 13 and 14 also for 32bit targets.
1623         Remove alternatives 15, 16, 17 and 18.
1624         * config/i386/sse.md (vec_concatv2di): Change
1625         alternative (!x, *y) to (x, ?!*Yn).
1626
1627 2017-05-18  Paolo Carlini  <paolo.carlini@oracle.com>
1628
1629         * dumpfile.h (enum dump_kind): Remove stray comma.
1630
1631 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
1632
1633         * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
1634         * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
1635         predicate::num_conditions
1636         (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
1637         (CHANGED): turn into predicate::changed.
1638         (agg_position_info): Move to ipa-predicate.h
1639         (add_condition, predicate::add_clause, predicate::operator &=,
1640         predicate::or_with, predicate::evaluate, predicate::probability,
1641         dump_condition, dump_clause, predicate::dump,
1642         predicate::remap_after_duplication, predicate::remap_after_inlining,
1643         predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
1644         (evaluate_conditions_for_known_args): Update.
1645         (set_cond_stmt_execution_predicate): Update.
1646         * ipa-inline.h: Include ipa-predicate.h
1647         (condition, inline_param_summary, conditions, agg_position_info,
1648         predicate): Move to ipa-predicate.h
1649         * ipa-predicate.c: New file.
1650         * ipa-predicate.h: New file.
1651
1652 2017-05-18  Wilco Dijkstra  <wdijkstr@arm.com>
1653
1654         * final.c (leaf_function_p): Check we are not in a sequence.
1655
1656 2017-05-18  Martin Liska  <mliska@suse.cz>
1657
1658         * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
1659         * dumpfile.c (dump_register): Use new enum dump_kind.
1660         (get_dump_file_name): Likewise.
1661         (dump_enable_all): Likewise.
1662         (dump_switch_p_1): Likewise.
1663         (enable_rtl_dump_file): Remove usage of TDF_RTL.
1664         * dumpfile.h (enum dump_kind): New enum type.
1665         (struct dump_file_info): Create constructor and
1666         format fields and comments.
1667         * passes.c (pass_manager::register_one_dump_file):
1668         Use num dump_kind.
1669         * statistics.c (statistics_early_init): Likewise.
1670         * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
1671         TDF_TREE with TDF_SLIM.
1672         (gather_memory_references_ref): Likewise.
1673
1674 2017-05-18  Martin Liska  <mliska@suse.cz>
1675
1676         * vec.h (struct vnull): Use it.
1677
1678 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
1679
1680         * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
1681         (true_predicate, false_predicate, true_predicate_p,
1682         false_predicate_p): Remove.
1683         (single_cond_predicate, not_inlined_predicate): Turn to member function
1684         in ipa-inline.h
1685         (add_condition): Update.
1686         (add_clause): Turn to...
1687         (predicate::add_clause): ... this one; update; allow passing NULL
1688         as parameter.
1689         (and_predicates): Turn to ...
1690         (predicate::operator &=): ... this one.
1691         (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
1692         (or_predicates): Turn to ...
1693         (predicate::or_with): ... this one.
1694         (evaluate_predicate): Turn to ...
1695         (predicate::evaluate): ... this one.
1696         (predicate_probability): Turn to ...
1697         (predicate::probability): ... this one.
1698         (dump_condition): Update.
1699         (dump_predicate): Turn to ...
1700         (predicate::dump): ... this one.
1701         (account_size_time): Update.
1702         (edge_set_predicate): Update.
1703         (set_hint_predicate): UPdate.
1704         (evaluate_conditions_for_known_args): Update.
1705         (evaluate_properties_for_edge): Update.
1706         (remap_predicate_after_duplication): Turn to...
1707         (predicate::remap_after_duplication): ... this one.
1708         (remap_hint_predicate_after_duplication): Update.
1709         (inline_summary_t::duplicate): UPdate.
1710         (dump_inline_edge_summary): Update.
1711         (dump_inline_summary): Update.
1712         (set_cond_stmt_execution_predicate): Update.
1713         (set_switch_stmt_execution_predicate): Update.
1714         (compute_bb_predicates): Update.
1715         (will_be_nonconstant_expr_predicate): Update.
1716         (will_be_nonconstant_predicate): Update.
1717         (phi_result_unknown_predicate): Update.
1718         (predicate_for_phi_result): Update.
1719         (array_index_predicate): Update.
1720         (estimate_function_body_sizes): Update.
1721         (estimate_node_size_and_time): Update.
1722         (estimate_ipcp_clone_size_and_time): Update.
1723         (remap_predicate): Rename to ...
1724         (predicate::remap_after_inlining): ... this one.
1725         (remap_hint_predicate): Update.
1726         (inline_merge_summary): Update.
1727         (inline_update_overall_summary): Update.
1728         (estimate_size_after_inlining): Update.
1729         (read_predicate): Rename to ...
1730         (predicate::stream_in): ... this one.
1731         (read_inline_edge_summary): Update.
1732         (write_predicate): Rename to ...
1733         (predicate::stream_out): ... this one.
1734         (write_inline_edge_summary): Update.
1735         * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
1736         (clause_t): Turn to uint32_t
1737         (predicate): Turn to class; implement constructor and operators
1738         ==, !=, &
1739         (size_time_entry): Update.
1740         (inline_summary): Update.
1741         (inline_edge_summary): Update.
1742
1743 2017-05-18  Marc Glisse  <marc.glisse@inria.fr>
1744
1745         * fold-const.c (fold_binary_loc): Move transformation...
1746         * match.pd (C - X CMP X): ... here.
1747
1748 2017-05-18  Sheldon Lobo  <sheldon.lobo@oracle.com>
1749
1750         * config/sparc/sparc.c (sparc_option_override): Set function
1751         alignment for -mcpu=niagara7 to 64 to match the I$ line.
1752         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
1753         latency to 1.
1754         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
1755         latency to 2.
1756         * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
1757
1758 2017-05-18  Marek Polacek  <polacek@redhat.com>
1759
1760         PR sanitizer/80797
1761         * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
1762         (pass_ubsan::execute): Call gimple_assign_single_p instead of
1763         gimple_assign_load_p.
1764
1765 2017-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
1766
1767         PR middle-end/80692
1768         * real.c (do_compare): Give decimal_do_compare preference over
1769         comparing just the signs.
1770
1771 2017-05-17  Uros Bizjak  <ubizjak@gmail.com>
1772
1773         * doc/md.texi (Canonicalization of Instructions): Describe the
1774         canonical form of instructions that inherently set a condition
1775         code register.
1776
1777 2017-05-17  Peter Bergner  <bergner@vnet.ibm.com>
1778
1779         PR middle-end/80775
1780         * tree-cfg.c: Move deletion of unreachable case statements to after
1781         the merging of consecutive case labels.
1782
1783 2017-05-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1784
1785         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
1786         readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
1787         restoring of callee-saved registers.
1788
1789 2017-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1790
1791         * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
1792         * config/visium/visium.c (single_set_and_flags): Likewise.
1793         * config/visium/visium.md (Substitutions): Likewise.
1794
1795 2017-05-17  Martin Liska  <mliska@suse.cz>
1796
1797         * cfg.c: Introduce dump_flags_t type and
1798         use it instead of int type.
1799         * cfg.h: Likewise.
1800         * cfghooks.c: Likewise.
1801         * cfghooks.h (struct cfg_hooks): Likewise.
1802         * cfgrtl.c: Likewise.
1803         * cfgrtl.h: Likewise.
1804         * cgraph.c (cgraph_node::get_body): Likewise.
1805         * coretypes.h: Likewise.
1806         * domwalk.c: Likewise.
1807         * domwalk.h: Likewise.
1808         * dumpfile.c (struct dump_option_value_info): Likewise.
1809         (dump_enable_all): Likewise.
1810         (dump_switch_p_1): Likewise.
1811         (opt_info_switch_p): Likewise.
1812         * dumpfile.h (enum tree_dump_index): Likewise.
1813         (struct dump_file_info): Likewise.
1814         * genemit.c: Likewise.
1815         * generic-match-head.c: Likewise.
1816         * gengtype.c (open_base_files): Likewise.
1817         * gimple-pretty-print.c: Likewise.
1818         * gimple-pretty-print.h: Likewise.
1819         * graph.c (print_graph_cfg): Likewise.
1820         * graphite-scop-detection.c (dot_all_sese): Likewise.
1821         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
1822         * loop-unroll.c (report_unroll): Likewise.
1823         * passes.c (pass_manager::register_one_dump_file): Likewise.
1824         * print-tree.c: Likewise.
1825         * statistics.c: Likewise.
1826         * tree-cfg.c: Likewise.
1827         * tree-cfg.h: Likewise.
1828         * tree-dfa.c: Likewise.
1829         * tree-dfa.h: Likewise.
1830         * tree-dump.c (dump_function): Likewise.
1831         * tree-dump.h (struct dump_info): Likewise.
1832         * tree-pretty-print.c: Likewise.
1833         * tree-pretty-print.h: Likewise.
1834         * tree-ssa-live.c: Likewise.
1835         * tree-ssa-live.h: Likewise.
1836         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
1837         * tree-vect-loop.c: Likewise.
1838         * tree-vect-slp.c: Likewise.
1839
1840 2017-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
1841             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1842
1843         PR tree-optimization/80457
1844         * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
1845         of all arguments to a statement as scalar_to_vec operations.
1846         (vectorizable_call): Adjust call to vect_model_simple_cost for
1847         new parameter.
1848         (vectorizable_conversion): Likewise.
1849         (vectorizable_assignment): Likewise.
1850         (vectorizable_shift): Likewise.
1851         (vectorizable_operation): Likewise.
1852         (vectorizable_comparison): Likewise.
1853         (vect_is_simple_cond): Record the def types for operands.
1854         (vectorizable_condition): Likewise, call vect_model_simple_cost.
1855         * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
1856         for statement argument count.
1857
1858 2017-05-16  Carl Love  <cel@us.ibm.com>
1859
1860         * config/rs6000/rs6000-c: Add support for built-in functions
1861         vector unsigned long long vec_bperm (vector unsigned long long,
1862                                              vector unsigned char)
1863         vector signed long long vec_mule (vector signed int,
1864                                           vector signed int)
1865         vector unsigned long long vec_mule (vector unsigned int,
1866                                             vector unsigned int)
1867         vector signed long long vec_mulo (vector signed int,
1868                                           vector signed int)
1869         vector unsigned long long vec_mulo (vector unsigned int,
1870                                             vector unsigned int)
1871         vector signed char vec_sldw (vector signed char,
1872                                      vector signed char,
1873                                      const int)
1874         vector unsigned char vec_sldw (vector unsigned char,
1875                                        vector unsigned char,
1876                                        const int)
1877         vector signed short vec_sldw (vector signed short,
1878                                       vector signed short,
1879                                       const int)
1880         vector unsigned short vec_sldw (vector unsigned short,
1881                                         vector unsigned short,
1882                                         const int)
1883         vector signed int vec_sldw (vector signed int,
1884                                     vector signed int,
1885                                     const int)
1886         vector unsigned int vec_sldw (vector unsigned int,
1887                                       vector unsigned int,
1888                                       const int)
1889         vector signed long long vec_sldw (vector signed long long,
1890                                           vector signed long long,
1891                                           const int)
1892         vector unsigned long long vec_sldw (vector unsigned long long,
1893                                             vector unsigned long long,
1894                                             const int)
1895         * config/rs6000/rs6000-c: Add support for built-in functions
1896         * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
1897         * config/rs6000/altivec.h: Add defintion for vec_sldw.
1898         * doc/extend.texi: Update the built-in documentation for the
1899         new built-in functions.
1900
1901 2017-05-16  Marek Polacek  <polacek@redhat.com>
1902
1903         PR sanitizer/80536
1904         PR sanitizer/80386
1905         * tree.c (save_expr): Don't fold the expression.
1906
1907 2017-05-16  Uros Bizjak  <ubizjak@gmail.com>
1908
1909         * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
1910         to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
1911         and (?*y,m).  Update insn attributes.
1912
1913 2017-05-16  Martin Liska  <mliska@suse.cz>
1914
1915         * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
1916         flags argument of print_gimple_stmt, print_gimple_expr,
1917         print_generic_stmt and print_generic_expr.
1918         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
1919         * coretypes.h: Likewise.
1920         * except.c (dump_eh_tree): Likewise.
1921         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
1922         * gimple-pretty-print.h: Likewise.
1923         * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
1924         (backprop::push_to_worklist): Likewise.
1925         (backprop::pop_from_worklist): Likewise.
1926         (backprop::process_use): Likewise.
1927         (backprop::intersect_uses): Likewise.
1928         (note_replacement): Likewise.
1929         * gimple-ssa-store-merging.c
1930         (pass_store_merging::terminate_all_aliasing_chains): Likewise.
1931         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
1932         (pass_store_merging::execute): Likewise.
1933         * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
1934         (ssa_base_cand_dump_callback): Likewise.
1935         (dump_incr_vec): Likewise.
1936         (replace_refs): Likewise.
1937         (replace_mult_candidate): Likewise.
1938         (create_add_on_incoming_edge): Likewise.
1939         (create_phi_basis): Likewise.
1940         (insert_initializers): Likewise.
1941         (all_phi_incrs_profitable): Likewise.
1942         (introduce_cast_before_cand): Likewise.
1943         (replace_one_candidate): Likewise.
1944         * gimplify.c (gimplify_expr): Likewise.
1945         * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
1946         (set_rename): Likewise.
1947         (rename_uses): Likewise.
1948         (copy_loop_phi_nodes): Likewise.
1949         (add_close_phis_to_merge_points): Likewise.
1950         (copy_loop_close_phi_args): Likewise.
1951         (copy_cond_phi_args): Likewise.
1952         (graphite_copy_stmts_from_block): Likewise.
1953         (translate_pending_phi_nodes): Likewise.
1954         * graphite-poly.c (print_pdr): Likewise.
1955         (dump_gbb_cases): Likewise.
1956         (dump_gbb_conditions): Likewise.
1957         (print_scop_params): Likewise.
1958         * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
1959         (build_cross_bb_scalars_use): Likewise.
1960         (gather_bbs::before_dom_children): Likewise.
1961         * hsa-dump.c (dump_hsa_immed): Likewise.
1962         * ipa-cp.c (print_ipcp_constant_value): Likewise.
1963         (get_replacement_map): Likewise.
1964         * ipa-inline-analysis.c (dump_condition): Likewise.
1965         (estimate_function_body_sizes): Likewise.
1966         * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
1967         (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
1968         * ipa-prop.c (ipa_dump_param): Likewise.
1969         (ipa_print_node_jump_functions_for_edge): Likewise.
1970         (ipa_modify_call_arguments): Likewise.
1971         (ipa_modify_expr): Likewise.
1972         (ipa_dump_param_adjustments): Likewise.
1973         (ipa_dump_agg_replacement_values): Likewise.
1974         (ipcp_modif_dom_walker::before_dom_children): Likewise.
1975         * ipa-pure-const.c (check_stmt): Likewise.
1976         (pass_nothrow::execute): Likewise.
1977         * ipa-split.c (execute_split_functions): Likewise.
1978         * omp-offload.c (dump_oacc_loop_part): Likewise.
1979         (dump_oacc_loop): Likewise.
1980         * trans-mem.c (tm_log_emit): Likewise.
1981         (tm_memopt_accumulate_memops): Likewise.
1982         (dump_tm_memopt_set): Likewise.
1983         (dump_tm_memopt_transform): Likewise.
1984         * tree-cfg.c (gimple_verify_flow_info): Likewise.
1985         (print_loop): Likewise.
1986         * tree-chkp-opt.c (chkp_print_addr): Likewise.
1987         (chkp_gather_checks_info): Likewise.
1988         (chkp_get_check_result): Likewise.
1989         (chkp_remove_check_if_pass): Likewise.
1990         (chkp_use_outer_bounds_if_possible): Likewise.
1991         (chkp_reduce_bounds_lifetime): Likewise.
1992         * tree-chkp.c (chkp_register_addr_bounds): Likewise.
1993         (chkp_mark_completed_bounds): Likewise.
1994         (chkp_register_incomplete_bounds): Likewise.
1995         (chkp_mark_invalid_bounds): Likewise.
1996         (chkp_maybe_copy_and_register_bounds): Likewise.
1997         (chkp_build_returned_bound): Likewise.
1998         (chkp_get_bound_for_parm): Likewise.
1999         (chkp_build_bndldx): Likewise.
2000         (chkp_get_bounds_by_definition): Likewise.
2001         (chkp_generate_extern_var_bounds): Likewise.
2002         (chkp_get_bounds_for_decl_addr): Likewise.
2003         * tree-chrec.c (chrec_apply): Likewise.
2004         * tree-data-ref.c (dump_data_reference): Likewise.
2005         (dump_subscript): Likewise.
2006         (dump_data_dependence_relation): Likewise.
2007         (analyze_overlapping_iterations): Likewise.
2008         * tree-inline.c (expand_call_inline): Likewise.
2009         (tree_function_versioning): Likewise.
2010         * tree-into-ssa.c (dump_defs_stack): Likewise.
2011         (dump_currdefs): Likewise.
2012         (dump_names_replaced_by): Likewise.
2013         (dump_update_ssa): Likewise.
2014         (update_ssa): Likewise.
2015         * tree-object-size.c (pass_object_sizes::execute): Likewise.
2016         * tree-parloops.c (build_new_reduction): Likewise.
2017         (try_create_reduction_list): Likewise.
2018         (ref_conflicts_with_region): Likewise.
2019         (oacc_entry_exit_ok_1): Likewise.
2020         (oacc_entry_exit_single_gang): Likewise.
2021         * tree-pretty-print.h: Likewise.
2022         * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
2023         (get_scalar_evolution): Likewise.
2024         (add_to_evolution): Likewise.
2025         (get_loop_exit_condition): Likewise.
2026         (analyze_evolution_in_loop): Likewise.
2027         (analyze_initial_condition): Likewise.
2028         (analyze_scalar_evolution): Likewise.
2029         (instantiate_scev): Likewise.
2030         (number_of_latch_executions): Likewise.
2031         (gather_chrec_stats): Likewise.
2032         (final_value_replacement_loop): Likewise.
2033         (scev_const_prop): Likewise.
2034         * tree-sra.c (dump_access): Likewise.
2035         (disqualify_candidate): Likewise.
2036         (create_access): Likewise.
2037         (reject): Likewise.
2038         (maybe_add_sra_candidate): Likewise.
2039         (create_access_replacement): Likewise.
2040         (analyze_access_subtree): Likewise.
2041         (analyze_all_variable_accesses): Likewise.
2042         (sra_modify_assign): Likewise.
2043         (initialize_constant_pool_replacements): Likewise.
2044         (find_param_candidates): Likewise.
2045         (decide_one_param_reduction): Likewise.
2046         (replace_removed_params_ssa_names): Likewise.
2047         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
2048         * tree-ssa-copy.c (dump_copy_of): Likewise.
2049         (copy_prop_visit_cond_stmt): Likewise.
2050         * tree-ssa-dce.c (mark_operand_necessary): Likewise.
2051         * tree-ssa-dom.c (pass_dominator::execute): Likewise.
2052         (record_equivalences_from_stmt): Likewise.
2053         * tree-ssa-dse.c (compute_trims): Likewise.
2054         (delete_dead_call): Likewise.
2055         (delete_dead_assignment): Likewise.
2056         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
2057         (forward_propagate_into_cond): Likewise.
2058         (pass_forwprop::execute): Likewise.
2059         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
2060         * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
2061         Likewise.
2062         (move_computations_worker): Likewise.
2063         (execute_sm): Likewise.
2064         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
2065         (remove_exits_and_undefined_stmts): Likewise.
2066         (remove_redundant_iv_tests): Likewise.
2067         * tree-ssa-loop-ivopts.c (dump_use): Likewise.
2068         (adjust_iv_update_pos): Likewise.
2069         * tree-ssa-math-opts.c (bswap_replace): Likewise.
2070         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
2071         (value_replacement): Likewise.
2072         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
2073         * tree-ssa-pre.c (print_pre_expr): Likewise.
2074         (get_representative_for): Likewise.
2075         (create_expression_by_pieces): Likewise.
2076         (insert_into_preds_of_block): Likewise.
2077         (eliminate_insert): Likewise.
2078         (eliminate_dom_walker::before_dom_children): Likewise.
2079         (eliminate): Likewise.
2080         (remove_dead_inserted_code): Likewise.
2081         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
2082         * tree-ssa-reassoc.c (get_rank): Likewise.
2083         (eliminate_duplicate_pair): Likewise.
2084         (eliminate_plus_minus_pair): Likewise.
2085         (eliminate_not_pairs): Likewise.
2086         (undistribute_ops_list): Likewise.
2087         (eliminate_redundant_comparison): Likewise.
2088         (update_range_test): Likewise.
2089         (optimize_range_tests_var_bound): Likewise.
2090         (optimize_vec_cond_expr): Likewise.
2091         (rewrite_expr_tree): Likewise.
2092         (rewrite_expr_tree_parallel): Likewise.
2093         (linearize_expr): Likewise.
2094         (break_up_subtract): Likewise.
2095         (linearize_expr_tree): Likewise.
2096         (attempt_builtin_powi): Likewise.
2097         (attempt_builtin_copysign): Likewise.
2098         (transform_stmt_to_copy): Likewise.
2099         (transform_stmt_to_multiply): Likewise.
2100         (dump_ops_vector): Likewise.
2101         * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
2102         (print_scc): Likewise.
2103         (set_ssa_val_to): Likewise.
2104         (visit_reference_op_store): Likewise.
2105         (visit_use): Likewise.
2106         (sccvn_dom_walker::before_dom_children): Likewise.
2107         (run_scc_vn): Likewise.
2108         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
2109         Likewise.
2110         (expr_hash_elt::print): Likewise.
2111         (const_and_copies::pop_to_marker): Likewise.
2112         (const_and_copies::record_const_or_copy_raw): Likewise.
2113         * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
2114         * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
2115         (dump_predicates): Likewise.
2116         (find_uninit_use): Likewise.
2117         (warn_uninitialized_phi): Likewise.
2118         (pass_late_warn_uninitialized::execute): Likewise.
2119         * tree-ssa.c (verify_vssa): Likewise.
2120         (verify_ssa): Likewise.
2121         (maybe_optimize_var): Likewise.
2122         * tree-vrp.c (dump_value_range): Likewise.
2123         (dump_all_value_ranges): Likewise.
2124         (dump_asserts_for): Likewise.
2125         (register_edge_assert_for_2): Likewise.
2126         (vrp_visit_cond_stmt): Likewise.
2127         (vrp_visit_switch_stmt): Likewise.
2128         (vrp_visit_stmt): Likewise.
2129         (vrp_visit_phi_node): Likewise.
2130         (simplify_cond_using_ranges_1): Likewise.
2131         (fold_predicate_in): Likewise.
2132         (evrp_dom_walker::before_dom_children): Likewise.
2133         (evrp_dom_walker::push_value_range): Likewise.
2134         (evrp_dom_walker::pop_value_range): Likewise.
2135         (execute_early_vrp): Likewise.
2136
2137 2017-05-16  Richard Biener  <rguenther@suse.de>
2138
2139         * dwarf2out.c (loc_list_from_tree_1): Do not create
2140         DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
2141
2142 2017-05-16  Richard Biener  <rguenther@suse.de>
2143
2144         * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
2145         just generated.
2146         (note_variable_value_in_expr): If we resolved the decl ref
2147         do not push to the stack.
2148
2149 2017-05-16  Matthew Wahab  <matthew.wahab@arm.com>
2150
2151         * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
2152         operations in fast-math mode.
2153         (vaddq_f16): Likewise.
2154         (vmul_f16): Likewise.
2155         (vmulq_f16): Likewise.
2156         (vsub_f16): Likewise.
2157         (vsubq_f16): Likewise.
2158         * config/arm/neon.md (add<mode>3): New.
2159         (sub<mode>3): New.
2160         (fma:<VH:mode>3): New.  Also remove outdated comment.
2161         (mul<mode>3): New.
2162
2163 2017-05-16  Martin Liska  <mliska@suse.cz>
2164
2165         PR ipa/79849.
2166         PR ipa/79850.
2167         * ipa-devirt.c (warn_types_mismatch): Fix typo.
2168         (odr_types_equivalent_p): Likewise.
2169
2170 2017-05-15  Sylvestre Ledru  <sylvestre@debian.org>
2171
2172         * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
2173
2174 2017-05-15  Uros Bizjak  <ubizjak@gmail.com>
2175
2176         PR target/80425
2177         * config/i386.i386.md (*zero_extendsidi2): Do not penalize
2178         non-interunit SSE move alternatives with '?'.
2179         (zero-extendsidi peephole2): New peephole to skip intermediate
2180         general register in SSE zero-extend sequence.
2181
2182 2017-05-15  Jeff Law  <law@redhat.com>
2183
2184         * reorg.c (relax_delay_slots): Create a new variable to hold
2185         the temporary target rather than clobbering TARGET_LABEL.
2186
2187         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
2188         missing argument to extract_bit_field call.
2189         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
2190
2191 2017-05-15  Martin Liska  <mliska@suse.cz>
2192
2193         PR driver/31468
2194         * gcc.c (process_command): Do not allow empty argument of -o option.
2195
2196 2017-05-15  Renlin Li  <renlin.li@arm.com>
2197
2198         * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
2199         * config/aarch64/aarch64.c (aarch64_expand_call): Define.
2200         * config/aarch64/constraints.md (Usf): Add long call check.
2201         * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
2202         (call_value): Likewise.
2203         (sibcall): Likewise.
2204         (sibcall_value): Likewise.
2205         (call_insn): New.
2206         (call_value_insn): New.
2207         (sibcall_insn): Update rtx pattern.
2208         (sibcall_value_insn): Likewise.
2209         (call_internal): Remove.
2210         (call_value_internal): Likewise.
2211         (sibcall_internal): Likewise.
2212         (sibcall_value_internal): Likewise.
2213         (call_reg): Likewise.
2214         (call_symbol): Likewise.
2215         (call_value_reg): Likewise.
2216         (call_value_symbol): Likewise.
2217
2218 2017-05-14  Krister Walfridsson  <krister.walfridsson@gmail.com>
2219
2220         PR target/80600
2221         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
2222
2223 2017-05-14  Uros Bizjak  <ubizjak@gmail.com>
2224
2225         * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
2226         compatible with CCGOCmode and with CCZmode.
2227
2228 2017-05-14  Martin Sebor  <msebor@redhat.com>
2229
2230         PR middle-end/77671
2231         * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
2232         (gimple_fold_builtin_snprintf): Same.
2233         * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
2234         (gimple_fold_builtin_snprintf): Same.
2235         * gimple-ssa-sprintf.c (get_format_string): Correct the detection
2236         of character types.
2237         (is_call_safe): New function.
2238         (try_substitute_return_value): Call it.
2239         (try_simplify_call): New function.
2240         (pass_sprintf_length::handle_gimple_call): Call it.
2241
2242 2017-05-14  Martin Sebor  <msebor@redhat.com>
2243
2244         PR middle-end/80669
2245         * builtins.c (expand_builtin_stpncpy): Simplify.
2246
2247 2017-05-14  Daniel Santos  <daniel.santos@pobox.com>
2248
2249         * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
2250         * config/i386/i386.h
2251         (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
2252         (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
2253         (struct machine_function): Add new members call_ms2sysv,
2254         call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
2255         (struct machine_frame_state): New fields sp_realigned and
2256         sp_realigned_offset.
2257         * config/i386/i386.c
2258         (enum xlogue_stub): New enum.
2259         (enum xlogue_stub_sets): New enum.
2260         (class xlogue_layout): New class.
2261         (struct ix86_frame): New fields stack_realign_allocate_offset,
2262         stack_realign_offset and outlined_save_offset.  Modify comments to
2263         detail stack layout when using out-of-line stubs.
2264         (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
2265         (ix86_option_override_internal): Add sorry() for TARGET_SEH and
2266         -mcall-ms2sysv-xlogues.
2267         (stub_managed_regs): New static variable.
2268         (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
2269         registers managed by out-of-line stub.
2270         (disable_call_ms2sysv_xlogues): New function.
2271         (ix86_compute_frame_layout): Modify re-alignment calculations, disable
2272         m->call_ms2sysv when appropriate and compute frame layout for
2273         out-of-line stubs.
2274         (sp_valid_at, fp_valid_at): New inline functions.
2275         (choose_basereg): New function.
2276         (choose_baseaddr): Add align parameter, use choose_basereg and modify
2277         all callers.
2278         (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
2279         Use align parameter of choose_baseaddr to generated aligned SSE movs
2280         when possible.
2281         (pro_epilogue_adjust_stack): Modify to track
2282         machine_frame_state::sp_realigned.
2283         (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
2284         (ix86_nsaved_sseregs): Likewise.
2285         (ix86_emit_save_regs): Likewise.
2286         (ix86_emit_save_regs_using_mov): Likewise.
2287         (ix86_emit_save_sse_regs_using_mov): Likewise.
2288         (get_scratch_register_on_entry): Likewise.
2289         (gen_frame_set): New function.
2290         (gen_frame_load): Likewise.
2291         (gen_frame_store): Likewise.
2292         (emit_outlined_ms2sysv_save): Likewise.
2293         (emit_outlined_ms2sysv_restore): Likewise.
2294         (ix86_expand_prologue): Modify stack re-alignment code and call
2295         emit_outlined_ms2sysv_save when appropriate.
2296         (ix86_emit_leave): Clear machine_frame_state::sp_realigned.  Add
2297         parameter rtx_insn *insn, which allows the function to be used to only
2298         generate the notes.
2299         (ix86_expand_epilogue): Modify validity checks of frame and stack
2300         pointers, and call emit_outlined_ms2sysv_restore when appropriate.
2301         (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
2302         * config/i386/predicates.md
2303         (save_multiple): New predicate.
2304         (restore_multiple): Likewise.
2305         * config/i386/sse.md
2306         (save_multiple<mode>): New pattern.
2307         (save_multiple_realign<mode>): Likewise.
2308         (restore_multiple<mode>): Likewise.
2309         (restore_multiple_and_return<mode>): Likewise.
2310         (restore_multiple_leave_return<mode>): Likewise.
2311         * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
2312
2313 2017-05-14  Julia Koval  <julia.koval@intel.com>
2314
2315         * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
2316         * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
2317         (__builtin_ia32_xsetbv): New builtins.
2318         * config/i386/i386.c (ix86_expand_special_args_builtin):
2319         Process new types.
2320         (ix86_expand_builtin): Special expand for new intrinsics.
2321         * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
2322         (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
2323         * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
2324
2325 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2326
2327         * cfganal.c (inverted_post_order_compute): Change argument type
2328         to vec *.
2329         * cfganal.h (inverted_post_order_compute): Adjust prototype.
2330         * df-core.c (rest_of_handle_df_initialize): Adjust.
2331         (rest_of_handle_df_finish): Likewise.
2332         (df_analyze_1): Likewise.
2333         (df_analyze): Likewise.
2334         (loop_inverted_post_order_compute): Change argument to be a vec *.
2335         (df_analyze_loop): Adjust.
2336         (df_get_n_blocks): Likewise.
2337         (df_get_postorder): Likewise.
2338         * df.h (struct df_d): Change field to be a vec.
2339         * lcm.c (compute_laterin): Adjust.
2340         (compute_available): Likewise.
2341         * lra-lives.c (lra_create_live_ranges_1): Likewise.
2342         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
2343         * tree-ssa-pre.c (compute_antic): Likewise.
2344
2345 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2346
2347         * cfganal.c (connect_infinite_loops_to_exit): Adjust.
2348         (depth_first_search::depth_first_search): Change structure init
2349         function to this constructor.
2350         (depth_first_search::add_bb): Rename function to this member.
2351         (depth_first_search::execute): Likewise.
2352         (flow_dfs_compute_reverse_finish): Adjust.
2353
2354 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2355
2356         * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
2357         (longest_simple_path): Likewise.
2358         * shrink-wrap.c (spread_components): Likewise.
2359         (disqualify_problematic_components): Likewise.
2360         (emit_common_heads_for_components): Likewise.
2361         (emit_common_tails_for_components): Likewise.
2362         (insert_prologue_epilogue_for_components): Likewise.
2363
2364 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2365
2366         * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
2367         auto_sbitmap.
2368
2369 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2370
2371         * df-core.c (df_set_blocks): Start using auto_bitmap.
2372         (df_compact_blocks): Likewise.
2373         * df-problems.c (df_rd_confluence_n): Likewise.
2374         * df-scan.c (df_insn_rescan_all): Likewise.
2375         (df_process_deferred_rescans): Likewise.
2376         (df_update_entry_block_defs): Likewise.
2377         (df_update_exit_block_uses): Likewise.
2378         (df_entry_block_bitmap_verify): Likewise.
2379         (df_exit_block_bitmap_verify): Likewise.
2380         (df_scan_verify): Likewise.
2381         * lra-constraints.c (lra_constraints): Likewise.
2382         (undo_optional_reloads): Likewise.
2383         (lra_undo_inheritance): Likewise.
2384         * lra-remat.c (calculate_gen_cands): Likewise.
2385         (do_remat): Likewise.
2386         * lra-spills.c (assign_spill_hard_regs): Likewise.
2387         (spill_pseudos): Likewise.
2388         * tree-ssa-pre.c (bitmap_set_and): Likewise.
2389         (bitmap_set_subtract_values): Likewise.
2390
2391 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2392
2393         * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
2394         management with auto_bitmap.
2395         (fix_inter_tick): Likewise.
2396         (fix_recovery_deps): Likewise.
2397         * ira.c (add_store_equivs): Likewise.
2398         (find_moveable_pseudos): Likewise.
2399         (split_live_ranges_for_shrink_wrap): Likewise.
2400         * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
2401         (rtx_reuse_manager::seen_def_p): Likewise.
2402         (rtx_reuse_manager::set_seen_def): Likewise.
2403         * print-rtl.h (class rtx_reuse_manager): Likewise.
2404
2405 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2406
2407         * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
2408         lifetime.
2409         (migrate_btr_def): Likewise.
2410         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
2411         * df-core.c (loop_post_order_compute): Likewise.
2412         (loop_inverted_post_order_compute): Likewise.
2413         * hsa-common.h: Likewise.
2414         * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
2415         * init-regs.c (initialize_uninitialized_regs): Likewise.
2416         * ipa-inline.c (resolve_noninline_speculation): Likewise.
2417         (inline_small_functions): Likewise.
2418         * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
2419         * ira.c (combine_and_move_insns): Likewise.
2420         (build_insn_chain): Likewise.
2421         * loop-invariant.c (find_invariants): Likewise.
2422         * lower-subreg.c (propagate_pseudo_copies): Likewise.
2423         * predict.c (tree_predict_by_opcode): Likewise.
2424         (predict_paths_leading_to): Likewise.
2425         (predict_paths_leading_to_edge): Likewise.
2426         (estimate_loops_at_level): Likewise.
2427         (estimate_loops): Likewise.
2428         * shrink-wrap.c (try_shrink_wrapping): Likewise.
2429         (spread_components): Likewise.
2430         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
2431         * tree-loop-distribution.c (rdg_build_partitions): Likewise.
2432         * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
2433         * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
2434         * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
2435         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
2436         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
2437         * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
2438         (mark_threaded_blocks): Likewise.
2439         (thread_through_all_blocks): Likewise.
2440         * tree-ssa.c (verify_ssa): Likewise.
2441         (execute_update_addresses_taken): Likewise.
2442         * tree-ssanames.c (verify_ssaname_freelists): Likewise.
2443
2444 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2445
2446         * cfganal.c (mark_dfs_back_edges): Replace manual stack with
2447         auto_vec.
2448         (post_order_compute): Likewise.
2449         (inverted_post_order_compute): Likewise.
2450         (pre_and_rev_post_order_compute_fn): Likewise.
2451
2452 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2453
2454         * genrecog.c (int_set::int_set): Explicitly construct our
2455         auto_vec base class.
2456         * vec.h (auto_vec::auto_vec): New constructor.
2457
2458 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2459
2460         * bitmap.h (class auto_bitmap): New constructor taking
2461         bitmap_obstack * argument.
2462
2463 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2464
2465         * bitmap.h (class auto_bitmap): Change type of m_bits to
2466         bitmap_head, and adjust ctor / dtor and member operators.
2467
2468 2017-05-13  Uros Bizjak  <ubizjak@gmail.com>
2469
2470         * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
2471         when returned register mode doesn't match original mode.
2472
2473 2017-05-12  Jeff Law  <law@redhat.com>
2474             Jakub Jelinek  <jakub@redhat.com>
2475
2476         * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
2477         we look for cc setter after the compare-elim changes.
2478         * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
2479         within the vector to match what compare-elim now expects.
2480         (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
2481         (xorsi3_flags, one_cmplsi2_flags): Likewise.
2482
2483         * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
2484         after the compare-elim changes.
2485         * config/rx/rx.md (abssi2_flags): Fix order of patterns within
2486         the vector to match what compare-elim now expects.
2487         (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
2488         (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
2489         (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
2490         (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
2491         (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
2492
2493         * config/visium/visium.c (single_set_and_flags): Fix where
2494         we look for cc setter after the compare-elim changes.
2495         * config/visium/visium.md (flags_subst_logic): Fix order of patterns
2496         with the vector to match what compare-elim now expects.
2497         (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
2498         (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
2499         (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
2500         (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
2501         (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
2502         (neg<mode>2_insn_set_overflow): Likewise.
2503
2504 2017-05-12  Jim Wilson  <jim.wilson@linaro.org>
2505
2506         PR middle-end/79794
2507         * expmed.c (extract_bit_field_1): Add alt_rtl argument.  Before
2508         maybe_expand_insn call, set ops[0].target.  If still set after call,
2509         set alt_rtl.  Add extra arg to recursive calls.
2510         (extract_bit_field): Add alt_rtl argument.  Pass to
2511         extract_bit_field.
2512         * expmed.h (extract_bit_field): Fix prototype.
2513         * expr.c (emit_group_load_1, copy_blkmode_from_reg)
2514         (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
2515         to extract_bit_field_calls.
2516         (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
2517         Pass alt_rtl to extract_bit_field calls.
2518         * calls.c (store_unaligned_arguments_into_psuedos)
2519         load_register_parameters): Pass extra NULL to extract_bit_field calls.
2520         * optabs.c (maybe_legitimize_operand): Clear op->target when call
2521         gen_reg_rtx.
2522         * optabs.h (struct expand_operand): Add target bitfield.
2523
2524 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
2525
2526         * compare-elim.c (try_eliminate_compare): Canonicalize
2527         operation with embedded compare to
2528         [(set (reg:CCM) (compare:CCM (operation) (immediate)))
2529          (set (reg) (operation)].
2530
2531         * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
2532
2533 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
2534
2535         PR target/80723
2536         * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
2537         cost of adding a carry flag for ADC instruction.
2538         [case MINUS]: Ignore the cost of subtracting a carry flag
2539         for SBB instruction.
2540
2541 2017-05-12  Steven Munroe  <munroesj@gcc.gnu.org>
2542
2543         * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
2544         and x86intrin.h
2545         * config/rs6000/bmiintrin.h: New file.
2546         * config/rs6000/bmi2intrin.h: New file.
2547         * config/rs6000/x86intrin.h: New file.
2548
2549 2017-05-12  Jeff Law  <law@redhat.com>
2550
2551         * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
2552         markers.
2553
2554 2017-05-12  Peter Bergner  <bergner@vnet.ibm.com>
2555
2556         PR middle-end/80707
2557         * tree-cfg.c: Remove cfg edges of unreachable case statements.
2558
2559 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
2560
2561         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
2562         early expansion of vector divide builtins.
2563         (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
2564         builtins identified as having unsigned arguments.
2565
2566 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
2567
2568         * config/rs6000/rs6000.c (gimple-fold.h): New #include.
2569         (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
2570         expansion of vector logical operations (and, andc, or, xor,
2571         nor, orc, nand).
2572
2573 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
2574
2575         * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
2576         * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
2577
2578 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
2579
2580         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
2581         early GIMPLE expansion of vector multiplies.
2582
2583 2017-05-12  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
2584
2585         * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
2586         TARGET_HAVE_MOVT conditional.
2587         (movt splitter): Likewise.
2588
2589 2017-05-12  Richard Biener  <rguenther@suse.de>
2590
2591         * tree-ssa-sccvn.h (has_VN_INFO): Declare.
2592         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
2593         Fold all stmts not inplace.
2594
2595 2017-05-12  Richard Biener  <rguenther@suse.de>
2596
2597         PR tree-optimization/80713
2598         * tree-ssa-pre.c (remove_dead_inserted_code): Clear
2599         inserted_exprs bit for not removed stmts.
2600
2601 2017-05-12  Thomas Schwinge  <thomas@codesourcery.com>
2602
2603         PR middle-end/69921
2604         * tree-parloops.c (create_parallel_loop): Set "oacc kernels
2605         parallelized" attribute for parallelized OpenACC kernels.
2606         * omp-offload.c (execute_oacc_device_lower): Use it.
2607
2608         * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
2609         Set "oacc kernels" attribute.
2610         * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
2611         parameter.  Adjust all users.
2612         (oacc_fn_attrib_kernels_p): Remove function.
2613         * omp-offload.c (execute_oacc_device_lower): Look for "oacc
2614         kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
2615         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
2616         * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
2617         assert "oacc kernels" attribute is set.
2618
2619 2017-05-11  Carl Love  <cel@us.ibm.com>
2620
2621         * config/rs6000/rs6000-c: Add support for built-in functions
2622         vector unsigned char vec_popcnt (vector signed char)
2623         vector unsigned char vec_popcnt (vector unsigned char)
2624         vector unsigned short vec_popcnt (vector signed short)
2625         vector unsigned short vec_popcnt (vector unsigned short)
2626         vector unsigned int vec_popcnt (vector signed int)
2627         vector unsigned int vec_popcnt (vector unsigned int)
2628         vector unsigned long long vec_popcnt (vector signed long long)
2629         vector unsigned long long vec_popcnt (vector unsigned long long)
2630         vector signed long long vec_slo (vector signed long long,
2631                                          vector signed char)
2632         vector signed long long vec_slo (vector signed long long,
2633                                          vector unsigned char)
2634         vector unsigned long long vec_slo (vector unsigned long long,
2635                                            vector signed char)
2636         vector unsigned long long vec_slo (vector unsigned long long,
2637                                            vector unsigned char)
2638         * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
2639         VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
2640         * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
2641         vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
2642         * doc/extend.texi: Update the built-in documentation file for the
2643         new built-in functions.
2644
2645 2017-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
2646
2647         * attribs.h (sorted_attr_string): Move machine independent
2648         functions for target clone support from the i386 port to common
2649         code.  Rename ix86_function_versions to common_function_versions.
2650         Rename make_name to make_unique_name.
2651         (common_function_versions): Likewise.
2652         (make_unique_name): Likewise.
2653         (make_dispatcher_decl): Likewise.
2654         (is_function_default_version): Likewise.
2655         * attribs.c (attr_strcmp): Likewise.
2656         (sorted_attr_string): Likewise.
2657         (common_function_versions): Likewise.
2658         (make_unique_name): Likewise.
2659         (make_dispatcher_decl): Likewise.
2660         (is_function_default_version): Likewise.
2661         * config/i386/i386.c (attr_strcmp): Likewise.
2662         (sorted_attr_string): Likewise.
2663         (ix86_function_versions): Likewise.
2664         (make_name): Likewise.
2665         (make_dispatcher_decl): Likewise.
2666         (is_function_default_version): Likewise.
2667         (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
2668
2669 2017-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2670
2671         PR target/80695
2672         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
2673         Account for direct move costs for vec_construct of integer
2674         vectors.
2675
2676 2017-05-11  Uros Bizjak  <ubizjak@gmail.com>
2677
2678         PR target/80706
2679         * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
2680         (UNSPEC_STX_ATOMIC): Ditto.
2681         (loaddi_via_sse): New insn.
2682         (storedi_via_sse): Ditto.
2683         (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
2684         Update corresponding peephole2 patterns.
2685         (atomic_storedi_fpu): Ditto.
2686
2687 2017-05-11  Julia Koval  <julia.koval@intel.com>
2688
2689         * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
2690         (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
2691         New intrinsics.
2692         * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
2693         (__builtin_ia32_rsqrt14ss_mask): New builtins.
2694         * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
2695
2696 2017-05-11  Nathan Sidwell  <nathan@acm.org>
2697
2698         * graphite-poly.c: Include dumpfile.h.
2699
2700         * dumpfle.h (dump_function): Declare here ...
2701         * tree-dump.h (dump_function): ... not here.
2702         * dumpfile.c: #include tree-cfg.h.
2703         (dump_function): Move here from ...
2704         * tree-dump.c (dump_function): ... here.
2705         * gimplify.c: #include splay-tree.h, not tree-dump.h.
2706         * graphite-poly.c: Don't include tree-dump.h.
2707         * cgraphclones.c: Include dumpfile.h not tree-dump.h.
2708         * print-tree.c: Likewise.
2709         * stor-layout.c: Likewise.
2710         * tree-nested.c: Likewise.
2711
2712         * dumpfile.c (dump_start): Use TDF_FLAGS.
2713         (dump_enable_all): Fix TDF_KIND check thinko.
2714
2715 2017-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2716
2717         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2718         array entries to represent two legal parameterizations of the
2719         overloaded __builtin_cmpb function, as represented by the
2720         P6_OV_BUILTIN_CMPB constant.
2721         (altivec_resolve_overloaded_builtin): Add special case handling
2722         for the __builtin_cmpb function, as represented by the
2723         P6_OV_BUILTIN_CMPB constant.
2724         * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
2725         (BU_P6_64BIT_2): New macro.
2726         (BU_P6_OVERLOAD_2): New macro
2727         (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
2728         (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
2729         (CMPB): Add overload support to represent both 32-bit and 64-bit
2730         compare-bytes function.
2731         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
2732         support for TARGET_CMPB.
2733         * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
2734         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
2735         documentation of the __builtin_cmpb overloaded built-in function.
2736
2737 2017-05-11  Richard Biener  <rguenther@suse.de>
2738
2739         PR tree-optimization/80705
2740         * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
2741         bases are not vectorizable.
2742
2743 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2744
2745         * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
2746         when counting register pressure.
2747
2748 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2749
2750         * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
2751         (iv_ca_more_deps): Renamed to ...
2752         (iv_ca_compare_deps): ... this.
2753         (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
2754
2755 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2756
2757         * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
2758         to ...
2759         (determine_group_iv_costs): ... here.
2760         (find_inv_vars_cb): Record inv var if it's not recorded before.
2761
2762 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2763
2764         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
2765         (get_shiftadd_cost): Ditto.
2766
2767 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2768
2769         * tree-ssa-address.c: Include header file.
2770         (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
2771         address.
2772         (add_to_parts): Refactor.
2773         (addr_to_parts): New parameter.  Update use of move_hint_to_base.
2774         (create_mem_ref): Update use of addr_to_parts.  Re-associate addr
2775         in new order.
2776
2777 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2778
2779         PR tree-optimization/53090
2780         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
2781         COMP_IV_EXPR_2.
2782         (extract_cond_operands): Detect condition with IV on both sides
2783         and return COMP_IV_EXPR_2.
2784         (find_interesting_uses_cond): Add iv_use for both IVs in condition.
2785         (rewrite_use_compare): Simplify by removing call to function
2786         extract_cond_operands.
2787
2788 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2789
2790         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
2791         (extract_cond_operands): Detect condition comparing against non-
2792         invariant bound and return appropriate enum value.
2793         (find_interesting_uses_cond): Update use of extract_cond_operands.
2794         Handle its return value accordingly.
2795         (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
2796
2797 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2798
2799         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
2800         nonlinear iv_use computation in loop invariant sensitive way.
2801
2802 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2803
2804         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
2805         (find_iv_candidates): Call relate_compare_use_with_all_cands.
2806
2807 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2808
2809         * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
2810         (dump_cand): Support iv_cand.inv_exprs.
2811         (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
2812         for candidates.
2813         (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
2814         iv_cand.inv_exprs.
2815
2816 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2817
2818         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
2819         from ...
2820         * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
2821         as local function.  Include necessary header files.
2822         * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
2823
2824 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2825
2826         * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
2827
2828 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2829
2830         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
2831         operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
2832         RSHIFT_EXPR and BIT_NOT_EXPR.
2833
2834 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2835
2836         * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
2837         (adjust_setup_cost): New parameter supporting round up adjustment.
2838         (struct address_cost_data): Delete.
2839         (force_expr_to_var_cost): Don't bound cost with spill_cost.
2840         (split_address_cost, ptr_difference_cost): Delete.
2841         (difference_cost, compare_aff_trees, record_inv_expr): Delete.
2842         (struct ainc_cost_data): New struct.
2843         (get_address_cost_ainc): New function.
2844         (get_address_cost, get_computation_cost): Reimplement.
2845         (determine_group_iv_cost_address): Record inv_expr for all uses of
2846         a group.
2847         (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
2848         (iv_ca_has_deps): Reimplemented to ...
2849         (iv_ca_more_deps): ... this.  Check if NEW_CP introduces more deps
2850         than OLD_CP.
2851         (iv_ca_extend): Call iv_ca_more_deps.
2852
2853 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2854
2855         * tree-ssa-address.c (struct mem_address): Move to header file.
2856         (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
2857         * tree-ssa-address.h (struct mem_address): Move from C file.
2858         (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
2859
2860 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2861
2862         * tree-affine.h (aff_combination_type): New interface.
2863         (aff_combination_zero_p): Remove static.
2864         (aff_combination_const_p): New interface.
2865         (aff_combination_singleton_var_p): New interfaces.
2866
2867 2017-05-11  Richard Biener  <rguenther@suse.de>
2868
2869         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
2870         Skip unreachable blocks and destinations.
2871         (eliminate): Move stmt removal and fixup ...
2872         (fini_eliminate): ... here.  Skip inserted exprs.
2873         (pass_pre::execute): Move fini_pre after fini_eliminate.
2874         * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
2875         (tail_merge_optimize): Run cleanup_tree_cfg if requested by
2876         PRE to get rid of dead code that has invalid SSA form and
2877         split critical edges again.
2878
2879 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2880
2881         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
2882
2883 2017-05-11  Richard Biener  <rguenther@suse.de>
2884
2885         * passes.c (execute_function_todo): Verify loops if they are
2886         said to be up-to-date.
2887         * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
2888         * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
2889
2890 2017-05-10  John David Anglin  <danglin@gcc.gnu.org>
2891
2892         PR target/80090
2893         * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
2894         handle calling assemble_external ourself.
2895
2896         PR target/79027
2897         * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
2898         modes with zero size.  Enhance comment.
2899
2900 2017-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2901
2902         * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
2903         built-ins for vec_xl and vec_xst with short and char pointer
2904         arguments.
2905
2906 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
2907
2908         * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
2909         (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
2910         (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
2911         (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
2912         (_mm_maskz_min_round_ss): New intrinsics.
2913         * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
2914         (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
2915         * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
2916         (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
2917         (__builtin_ia32_minss_mask_round): New builtins.
2918         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
2919         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
2920         * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
2921         Rename to ...
2922         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
2923         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
2924         Change to ...
2925         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
2926         ... this.
2927
2928 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
2929
2930         * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
2931         (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
2932         (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
2933         (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
2934         (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
2935         (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
2936         (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
2937         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
2938         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
2939         * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
2940         (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
2941         (__builtin_ia32_mulss_mask_round): New builtins.
2942         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
2943         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
2944         * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
2945         Rename to ...
2946         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
2947         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
2948         Change to ...
2949         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
2950         ... this.
2951
2952 2017-05-10  Julia Koval  <julia.koval@intel.com>
2953
2954         * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
2955         (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
2956         (_mm256_setr_m128i): New intrinsics.
2957
2958 2017-05-10  Julia Koval  <julia.koval@intel.com>
2959
2960         * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
2961         (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
2962         (_mm_maskz_rcp14_ss): New intrinsics.
2963         * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
2964         (__builtin_ia32_rcp14ss_mask): New builtins.
2965         * config/i386/sse.md (srcp14<mode>_mask): New pattern.
2966
2967 2017-05-10  Peter Bergner  <bergner@vnet.ibm.com>
2968
2969         PR tree-optimization/51513
2970         * tree-cfg.c (gimple_seq_unreachable_p): New function.
2971         (assert_unreachable_fallthru_edge_p): Use it.
2972         (group_case_labels_stmt): Likewise.
2973         * tree-cfg.h: Prototype it.
2974         * stmt.c: Include cfghooks.h and tree-cfg.h.
2975         (emit_case_dispatch_table) <gap_label>: New local variable.
2976         Use it to fill dispatch table gaps.
2977         Test for default_label before updating probabilities.
2978         (expand_case) <default_label>: Remove unneeded initialization.
2979         Test for unreachable default case statement and remove its edge.
2980         Set default_label accordingly.
2981         * tree-ssa-ccp.c (optimize_unreachable): Update comment.
2982
2983 2017-05-10  Carl Love  <cel@us.ibm.com>
2984
2985         * config/rs6000/rs6000-c: Add support for built-in functions
2986         vector signed char        vec_neg (vector signed char)
2987         vector signed short int   vec_neg (vector short int)
2988         vector signed int         vec_neg (vector signed int)
2989         vector signed long long   vec_neg (vector signed long long)
2990         vector float              vec_neg (vector float)
2991         vector double             vec_neg (vector double)
2992         * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
2993         overload.
2994         * config/rs6000/altivec.h: Add define for vec_neg
2995         * doc/extend.texi: Update the built-in documentation for the
2996         new built-in functions.
2997
2998 2017-05-10  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2999
3000         PR tree-optimization/77644
3001         * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
3002
3003 2017-05-10  Nathan Sidwell  <nathan@acm.org>
3004
3005         * dumpfile.h (TDI_lang_all): New.
3006         (TDF_KIND): New. Renumber others
3007         (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
3008         than bits.
3009         * dumpfile.c (dump_files): Mark language dumps as TDF_LANG.  add
3010         lang-all.
3011         (get_dump_file_name): Adjust suffix generation.
3012         (dump_enable_all): Use TDF_KIND.
3013         * doc/invoke.texi (-fdump-lang-all): Document.
3014
3015         * dumpfile.h: Tabify.
3016
3017 2017-05-10  Wilco Dijkstra  <wdijkstr@arm.com>
3018
3019         PR target/80671
3020         * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
3021         Move member access before delete.
3022
3023 2017-05-10  Alexandre Oliva <aoliva@redhat.com>
3024
3025         * tree-inline.c (expand_call_inline): Split block at stmt
3026         before the call.
3027
3028 2017-05-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3029
3030         PR target/68163
3031         * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
3032         are now unused after splitting mov{sf,sd}_hardfloat.
3033         (f32_lr2): Likewise.
3034         (f32_lm): Likewise.
3035         (f32_lm2): Likewise.
3036         (f32_li): Likewise.
3037         (f32_li2): Likewise.
3038         (f32_lv): Likewise.
3039         (f32_sr): Likewise.
3040         (f32_sr2): Likewise.
3041         (f32_sm): Likewise.
3042         (f32_sm2): Likewise.
3043         (f32_si): Likewise.
3044         (f32_si2): Likewise.
3045         (f32_sv): Likewise.
3046         (f32_dm): Likewise.
3047         (f32_vsx): Likewise.
3048         (f32_av): Likewise.
3049         (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
3050         For movsf, order stores so the VSX stores occur before the GPR
3051         store which encourages the register allocator to use a traditional
3052         FPR instead of a GPR.  For movsd, order the stores so that the GPR
3053         store comes before the VSX stores to allow the power6 to work.
3054         This is due to the power6 not having a 32-bit integer store
3055         instruction from a FPR.
3056         (movsf_hardfloat): Likewise.
3057         (movsd_hardfloat): Likewise.
3058
3059 2017-05-09  Martin Sebor  <msebor@redhat.com>
3060
3061         PR translation/80280
3062         * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
3063         added in r247778.
3064
3065         PR translation/80280
3066         * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
3067         data member added in r247778.
3068         (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
3069
3070 2017-05-09  Nathan Sidwell  <nathan@acm.org>
3071
3072         * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
3073
3074         * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
3075         typedefs.
3076
3077 2017-05-09  Marek Polacek  <polacek@redhat.com>
3078
3079         * doc/invoke.texi: Fix typo.
3080
3081 2017-05-09  Richard Biener  <rguenther@suse.de>
3082
3083         * tree-vrp.c (vrp_val_is_max): Adjust comment.
3084         (vrp_val_is_min): Likewise.
3085         (set_value_range_to_value): Likewise.
3086         (set_value_range_to_nonnegative): Likewise.
3087         (gimple_assign_nonzero_p): Likewise.
3088         (gimple_stmt_nonzero_p): Likewise.
3089         (vrp_int_const_binop): Likewise.  Remove unreachable case.
3090         (adjust_range_with_scev): Adjust comments.
3091         (compare_range_with_value): Likewise.
3092         (extract_range_from_phi_node): Likewise.
3093         (test_for_singularity): Likewise.
3094
3095 2017-05-09  Richard Biener  <rguenther@suse.de>
3096
3097         * tree-vrp.c (get_single_symbol): Add assert that we don't
3098         get overflowed constants as invariant part.
3099         (compare_values_warnv): Add comment before the TREE_NO_WARNING
3100         checks.  Use wi::cmp instead of recursing for integer constants.
3101         (compare_values): Just ignore whether we assumed undefined
3102         overflow instead of failing the compare.
3103         (extract_range_for_var_from_comparison_expr): Add comment before the
3104         TREE_NO_WARNING sets.
3105         (test_for_singularity): Likewise.
3106         (extract_range_from_comparison): Do not disable optimization
3107         when we assumed undefined overflow.
3108         (extract_range_basic): Remove init of unused var.
3109
3110 2017-05-09  Richard Biener  <rguenther@suse.de>
3111
3112         * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
3113         (extract_range_from_multiplicative_op_1): Adjust.
3114         (extract_range_from_binary_expr_1): Use int_const_binop.
3115
3116 2017-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3117
3118         PR target/80101
3119         * config/rs6000/power6.md: Replace store_data_bypass_p calls with
3120         rs6000_store_data_bypass_p in seven define_bypass directives and
3121         in several comments.
3122         * config/rs6000/rs6000-protos.h: Add prototype for
3123         rs6000_store_data_bypass_p function.
3124         * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
3125         function implements slightly different (rs6000-specific) semantics
3126         than store_data_bypass_p, returning false rather than aborting
3127         with assertion error when arguments do not satisfy the
3128         requirements of store data bypass.
3129         (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
3130         rs6000_store_data_bypass_p.
3131
3132 2017-05-08  Max Filippov  <jcmvbkbc@gmail.com>
3133
3134         * config/xtensa/xtensa-protos.h
3135         (xtensa_initial_elimination_offset): New declaration.
3136         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
3137         New function. Move its body from the INITIAL_ELIMINATION_OFFSET
3138         macro definition, add case for FRAME_POINTER_REGNUM when
3139         FRAME_GROWS_DOWNWARD.
3140         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
3141         (INITIAL_ELIMINATION_OFFSET): Replace body with call to
3142         xtensa_initial_elimination_offset.
3143
3144 2017-05-08  Nathan Sidwell  <nathan@acm.org>
3145
3146         * doc/invoke.texi: Alphabetize -fdump options.
3147
3148 2017-05-08  Martin Sebor  <msebor@redhat.com>
3149
3150         PR translation/80280
3151         * config/sol2-c.c (solaris_pragma_align): Correct quoting.
3152
3153 2017-05-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3154
3155         * target.def (compute_frame_layout): New optional target hook.
3156         * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
3157         * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
3158         * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
3159         target hook.
3160         * reload1.c (verify_initial_elim_offsets): Likewise.
3161         * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
3162         (use_simple_return_p): Call arm_compute_frame_layout if needed.
3163         (arm_get_frame_offsets): Split up into this ...
3164         (arm_compute_frame_layout): ... and this function.
3165
3166 2017-05-08  Richard Sandiford  <richard.sandiford@arm.com>
3167
3168         * config/aarch64/constraints.md (Usa): New constraint.
3169         * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
3170
3171 2017-05-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3172
3173         * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
3174         with_multilib_list after it has been checked.
3175
3176 2017-05-08  Richard Biener  <rguenther@suse.de>
3177
3178         * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
3179         (bitmap_set_subtract_values): Likewise.
3180
3181 2017-05-08  Richard Biener  <rguenther@suse.de>
3182
3183         * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
3184         (gimple_assign_nonzero): ... this and remove strict_overflow_p
3185         argument.
3186         (gimple_stmt_nonzero_warnv_p): Rename to ...
3187         (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
3188         argument.
3189         (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
3190         (extract_range_basic): Adjust, do not disable propagation on
3191         strict overflow sensitive simplification.
3192         (vrp_visit_cond_stmt): Likewise.
3193
3194 2017-05-05  Jan Hubicka  <hubicka@ucw.cz>
3195
3196         * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
3197         body size unconditionally.
3198
3199 2017-05-07  Jeff Law  <law@redhat.com>
3200
3201         Revert:
3202         2017-05-06  Jeff Law  <law@redhat.com>
3203         PR tree-optimization/78496
3204         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
3205         code.
3206
3207         PR tree-optimization/78496
3208         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
3209         (simplify_stmt_using_ranges): Call it.
3210         (vrp_dom_walker::before_dom_children): Extract equivalences
3211         from an ASSERT_EXPR with an equality comparison against a
3212         constant.
3213
3214 2017-05-06  Jeff Law  <law@redhat.com>
3215
3216         PR tree-optimization/78496
3217         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
3218         code.
3219
3220         PR tree-optimization/78496
3221         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
3222         (simplify_stmt_using_ranges): Call it.
3223         (vrp_dom_walker::before_dom_children): Extract equivalences
3224         from an ASSERT_EXPR with an equality comparison against a
3225         constant.
3226
3227 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
3228
3229         * lra-constraints.c (lra_copy_reg_equiv): New function.
3230         (split_reg): Use it to copy equivalence information from the
3231         original register to the spill register.
3232
3233 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
3234
3235         PR rtl-optimization/75964
3236         * simplify-rtx.c (simplify_const_relational_operation): Remove
3237         invalid handling of comparisons of integer ABS.
3238
3239 2017-05-06  Uros Bizjak  <ubizjak@gmail.com>
3240
3241         * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
3242         initialize to zero.
3243         (init_regs): Remove declaration.
3244         (function_arg_advance_32): Initialize error_p as boolean variable.
3245
3246 2017-05-05  Nathan Sidwell  <nathan@acm.org>
3247
3248         * store-motion.c (remove_reachable_equiv_notes): Reformat long
3249         lines.  Use for (;;).
3250
3251 2017-05-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3252
3253         * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
3254         (rs6000_init_cost): Initialize rs6000_vect_nonmem.
3255         (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
3256         (rs6000_finish_cost): Avoid vectorizing simple copy loops with
3257         VF=2 that require versioning.
3258
3259 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
3260
3261         * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
3262         int.
3263
3264 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
3265
3266         * diagnostic.h (diagnostic_override_option_index): Convert from
3267         macro to inline function.
3268
3269 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
3270
3271         * diagnostic.c (last_module_changed_p): New function.
3272         (set_last_module): New function.
3273         (diagnostic_report_current_module): Convert macro usage to
3274         the above functions.
3275         * diagnostic.h (diagnostic_context::last_module): Strengthen
3276         from const line_map * to const line_map_ordinary *.
3277         (diagnostic_last_module_changed): Delete macro.
3278         (diagnostic_set_last_module): Delete macro.
3279
3280 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
3281
3282         * diagnostic.c (diagnostic_impl): Replace report_diagnostic
3283         with diagnostic_report_diagnostic.
3284         (diagnostic_n_impl_richloc): Likewise.
3285         * diagnostic.h (report_diagnostic): Delete macro.
3286         * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
3287         with diagnostic_report_diagnostic.
3288         * substring-locations.c (format_warning_va): Likewise.
3289
3290 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
3291
3292         * diagnostic.c (diagnostic_report_diagnostic): Eliminate
3293         save/restor of format_spec.  Move option-printing code to...
3294         (print_option_information): ...this new function, and
3295         reimplement by simply printing to the pretty_printer,
3296         rather than appending to the format string.
3297
3298 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
3299
3300         * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
3301         handling logic into...
3302         (update_effective_level_from_pragmas): ...this new function.
3303
3304 2017-05-04  Andrew Waterman  <andrew@sifive.com>
3305
3306         * config/riscv/riscv.opt (mstrict-align): New option.
3307         * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it.  Update comment.
3308         (SLOW_UNALIGNED_ACCESS): Define.
3309         (riscv_slow_unaligned_access): Declare.
3310         * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
3311         field.
3312         (riscv_slow_unaligned_access): New variable.
3313         (rocket_tune_info): Set slow_unaligned_access to true.
3314         (optimize_size_tune_info): Set slow_unaligned_access to false.
3315         (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
3316         (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
3317         (riscv_option_override): Set riscv_slow_unaligned_access.
3318         * doc/invoke.texi: Add -mstrict-align to RISC-V.
3319
3320 2017-05-04  Kito Cheng  <kito.cheng@gmail.com>
3321
3322         * config/riscv/riscv.md: Unify indentation.
3323
3324 2017-05-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
3325
3326         PR target/79038
3327         PR target/79202
3328         PR target/79203
3329         * config/rs6000/rs6000.md (u code attribute): Add FIX and
3330         UNSIGNED_FIX.
3331         (extendsi<mode>2): Add support for doing sign extension via
3332         VUPKHSW and XXPERMDI if the value is in Altivec registers and we
3333         don't have ISA 3.0 instructions.
3334         (extendsi<mode>2 splitter): Likewise.
3335         (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
3336         generate the normal insns since SImode can now go in vector
3337         registers.  Disallow the special UNSPECs needed for previous
3338         machines to hide SImode being used.  Add new insns
3339         fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
3340         (fix_trunc<mode>si2_stfiwx): Likewise.
3341         (fix_trunc<mode>si2_internal): Likewise.
3342         (fixuns_trunc<mode>si2): Likewise.
3343         (fixuns_trunc<mode>si2_stfiwx): Likewise.
3344         (fctiw<u>z_<mode>_smallint): Likewise.
3345         (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
3346         of floating point to 32-bit integer from doing a direct move to
3347         the GPR registers to do a store.
3348         (fctiwz_<mode>): Break long line.
3349
3350 2017-05-05  Bin Cheng  <bin.cheng@arm.com>
3351
3352         * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
3353         * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
3354         (addr_list, addr_offset_valid_p): New.
3355         (split_address_groups): Check offset validity with above function.
3356         (gt-tree-ssa-loop-ivopts.h): Include header file.
3357
3358 2017-05-05  Nathan Sidwell  <nathan@acm.org>
3359
3360         * config.gcc (arm*-*-*): Add missing 'fi'.
3361
3362 2017-05-05  Steve Ellcey  <sellcey@cavium.com>
3363
3364         * doc/invoke.texi (-fopt-info): Explicitly say order of options
3365         included in -fopt-info does not matter.
3366         * doc/optinfo.texi (-fopt-info): Fix description of default
3367         behavour. Explicitly say order of options included in -fopt-info
3368         does not matter.
3369
3370 2017-05-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3371
3372         * config.gcc: Allow combinations of aprofile and rmprofile values for
3373         --with-multilib-list.
3374         * config/arm/t-multilib: New file.
3375         * config/arm/t-aprofile: Remove initialization of MULTILIB_*
3376         variables.  Remove setting of ISA and floating-point ABI in
3377         MULTILIB_OPTIONS and MULTILIB_DIRNAMES.  Set architecture and FPU in
3378         MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
3379         and MULTILIB_DIRNAMES respectively.  Add comment to introduce all
3380         matches.  Add architecture matches for marvel-pj4 and generic-armv7-a
3381         CPU options.
3382         * config/arm/t-rmprofile: Likewise except for the matches changes.
3383         * doc/install.texi (--with-multilib-list): Document the combination of
3384         aprofile and rmprofile values and warn about pitfalls in doing that.
3385
3386 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
3387
3388         * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
3389         (movdi_aarch64): Likewise.
3390
3391 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
3392
3393         PR tree-optimization/80632
3394         * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
3395         field.
3396         (build_arrays): Initialize it for virtual phis.
3397         (fix_phi_nodes): Use it for virtual phis.
3398
3399         PR tree-optimization/80558
3400         * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
3401         [x, y] op z into [x op, y op z] for op & or | if conditions
3402         are met.
3403
3404 2017-05-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
3405             Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
3406
3407         PR target/71607
3408         * config/arm/arm.md (use_literal_pool): Remove.
3409         (64-bit immediate split): No longer takes cost into consideration
3410         if arm_disable_literal_pool is enabled.
3411         * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
3412         used when arm_disable_literal_pool is enabled.
3413         (arm_max_const_double_inline_cost): Remove use of
3414         arm_disable_literal_pool.
3415         (push_minipool_fix): Add assert.
3416         (arm_reorg): Add return if arm_disable_literal_pool is enabled.
3417         * config/arm/vfp.md (no_literal_pool_df_immediate): New.
3418         (no_literal_pool_sf_immediate): New.
3419
3420 2017-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3421
3422         PR tree-optimization/80613
3423         * tree-ssa-dce.c (propagate_necessity): Remove cases for
3424         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
3425
3426 2017-05-05  Richard Biener  <rguenther@suse.de>
3427
3428         * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
3429
3430 2017-05-05  Georg-Johann Lay  <avr@gjlay.de>
3431
3432         * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
3433         of this flag from insn conditions due to removal from r247495.
3434
3435 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
3436
3437         * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
3438         New function.
3439         (arm_early_store_addr_dep_ptr): Likewise.
3440         * config/arm/aarch-common-protos.h
3441         (arm_early_load_addr_dep_ptr): Add prototype.
3442         (arm_early_store_addr_dep_ptr): Likewise.
3443         * config/arm/cortex-a53.md: Add new bypasses.
3444
3445 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
3446
3447         * tree.c (next_type_uid): Change type to unsigned.
3448         (type_hash_canon): Decrement back next_type_uid if
3449         freeing a type node with the highest TYPE_UID.  For INTEGER_TYPEs
3450         also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
3451         if possible.
3452
3453 2017-05-04  Martin Sebor  <msebor@redhat.com>
3454
3455         * builtins.c: Fix a trivial typo in a comment.
3456
3457         PR middle-end/79234
3458         * builtins.c (check_sizes): Adjust to handle reading past the end.
3459         Avoid printing excessive upper bound of ranges.  Use %E to print
3460         tree nodes instead of converting them to %wu.
3461         (expand_builtin_memchr): New function.
3462         (compute_dest_size): Rename...
3463         (compute_objsize): ...to this.
3464         (expand_builtin_memcpy): Adjust.
3465         (expand_builtin_mempcpy): Adjust.
3466         (expand_builtin_strcat): Adjust.
3467         (expand_builtin_strcpy): Adjust.
3468         (check_strncat_sizes): Adjust.
3469         (expand_builtin_strncat): Adjust.
3470         (expand_builtin_strncpy): Adjust and simplify.
3471         (expand_builtin_memset): Adjust.
3472         (expand_builtin_bzero): Adjust.
3473         (expand_builtin_memcmp): Adjust.
3474         (expand_builtin): Handle memcmp.
3475         (maybe_emit_chk_warning): Check strncat just once.
3476
3477 2017-05-04  Martin Sebor  <msebor@redhat.com>
3478
3479         PR preprocessor/79214
3480         PR middle-end/79222
3481         PR middle-end/79223
3482         * builtins.c (check_sizes): Add inlining context and issue
3483         warnings even when -Wno-system-headers is set.
3484         (check_strncat_sizes): Same.
3485         (expand_builtin_strncat): Same.
3486         (expand_builtin_memmove): New function.
3487         (expand_builtin_stpncpy): Same.
3488         (expand_builtin): Handle memmove and stpncpy.
3489
3490 2017-05-04  Bin Cheng  <bin.cheng@arm.com>
3491
3492         * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
3493         which is not used any more.
3494
3495 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
3496
3497         * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
3498
3499 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
3500
3501         * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
3502         (cortexa53_tunings): Likewise.
3503         (cortexa57_tunings): Likewise.
3504         (cortexa72_tunings): Likewise.
3505         (cortexa73_tunings): Likewise.
3506
3507 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
3508
3509         * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
3510         Set loop alignment to 8.
3511
3512 2017-05-04  Martin Sebor  <msebor@redhat.com>
3513
3514         PR translation/80280
3515         * builtins.c (expand_builtin_object_size): Add missing quoting to
3516         %D and like directives.
3517         * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
3518         (hsa_type_for_tree_type): Same.
3519         (verify_function_arguments): Same.
3520         * symtab.c (symbol_table::change_decl_assembler_name): Same.
3521         * varasm.c (get_section): Same.
3522         (mark_weak): Same.
3523
3524 2017-05-04  Martin Sebor  <msebor@redhat.com>
3525
3526         PR translation/80280
3527         * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
3528
3529 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
3530
3531         * config/aarch64/aarch64.c (generic_addrcost_table):
3532         Change HI/TI mode setting.
3533
3534 2017-05-04  Martin Jambor  <mjambor@suse.cz>
3535
3536         PR tree-optimization/80622
3537         * tree-sra.c (comes_initialized_p): New function.
3538         (build_accesses_from_assign): Only set write lazily when
3539         comes_initialized_p is false.
3540         (analyze_access_subtree): Use comes_initialized_p.
3541         (propagate_subaccesses_across_link): Assert !comes_initialized_p
3542         instead of testing for PARM_DECL.
3543
3544 2017-05-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3545
3546         * config/aarch64/aarch64.md (prefetch); Adjust predicate and
3547         constraint on operand 0 to allow more general addressing modes.
3548         Adjust output template.
3549         * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
3550         New function.
3551         * config/aarch64/aarch64-protos.h
3552         (aarch64_address_valid_for_prefetch_p): Declare prototype.
3553         * config/aarch64/constraints.md (Dp): New address constraint.
3554         * config/aarch64/predicates.md (aarch64_prefetch_operand): New
3555         predicate.
3556
3557 2017-05-04  Jan Hubicka  <hubicka@ucw.cz>
3558
3559         * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
3560         update use of estimate_ipcp_clone_size_and_time.
3561         (estimate_local_effects): Update use of
3562         estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
3563         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
3564         * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
3565         Return nonspecialized time.
3566
3567 2017-05-04  Richard Biener  <rguenther@suse.de>
3568
3569         * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
3570         for the last VUSE which def dominates the PHI.  Directly call
3571         maybe_skip_until.
3572         (get_continuation_for_phi_1): Remove.
3573
3574 2017-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
3575
3576         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
3577         to explain the use of truncating division.  Cap the number of
3578         iterations to the maximum given by nb_iterations_upper_bound,
3579         if defined.
3580
3581 2017-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3582
3583         * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
3584         * configure: Regenerate.
3585         * config.in: Regenerate.
3586         * config/i386/driver-mingw32.c: new file.
3587         * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
3588         * config.host: Link driver-mingw32.o on MinGW host.
3589         * doc/install.texi: Document new --enable-mingw-wildcard configure
3590         option.
3591
3592 2017-05-04  Marek Polacek  <polacek@redhat.com>
3593
3594         PR tree-optimization/80612
3595         * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
3596
3597 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
3598             Andre Simoes Dias Vieira  <andre.simoesdiasvieira@arm.com>
3599
3600         * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
3601         (movt splitter): Likewise.
3602         * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
3603         to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
3604         (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
3605         block for Thumb-1 with MOVT.
3606         (thumb2_legitimate_address_p): Move code block ...
3607         (can_avoid_literal_pool_for_label_p): ... into this new function.
3608         (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
3609         literal pool.
3610         (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
3611         * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
3612         "M-profile targets with the MOVT instruction".
3613
3614 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
3615
3616         * gcc/config/arm/arm-builtins.c (arm_init_builtins): Rename
3617         __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
3618         __builtin_arm_stfscr to __builtin_arm_set_fpscr.
3619
3620 2017-05-04  Martin Liska  <mliska@suse.cz>
3621
3622         * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
3623         variable cond_code.
3624
3625 2017-05-04  Richard Biener  <rguenther@suse.de>
3626
3627         * tree.c (array_at_struct_end_p): Handle arrays at struct
3628         end with flexarrays more conservatively.  Refactor and treat
3629         arrays of arrays or aggregates more strict.  Fix
3630         VIEW_CONVERT_EXPR handling.  Remove allow_compref argument.
3631         * tree.c (array_at_struct_end_p): Adjust prototype.
3632         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
3633         * gimple-fold.c (get_range_strlen): Likewise.
3634         * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
3635
3636 2017-05-04  Richard Biener  <rguenther@suse.de>
3637
3638         PR tree-optimization/31130
3639         * tree-vrp.c (needs_overflow_infinity): Remove as always returning
3640         false.
3641         (supports_overflow_infinity): Likewise.
3642         (is_negative_overflow_infinity): Likewise.
3643         (is_positive_overflow_infinity): Likewise.
3644         (is_overflow_infinity): Likewise.
3645         (stmt_overflow_infinity): Likewise.
3646         (overflow_infinity_range_p): Likewise.
3647         (usable_range_p): Remove as always returning true.
3648         (make_overflow_infinity): Remove.
3649         (negative_overflow_infinity): Likewise.
3650         (positive_overflow_infinity): Likewise.
3651         (avoid_overflow_infinity): Likewise.
3652         (set_value_range): Adjust accordingly.
3653         (set_value_range_to_nonnegative): Likewise, remove now unused
3654         overflow_infinity arg.
3655         (vrp_operand_equal_p): Adjust.
3656         (update_value_range): Likewise.
3657         (range_int_cst_singleton_p): Likewise.
3658         (operand_less_p): Likewise.
3659         (compare_values_warnv): Likewise.
3660         (extract_range_for_var_from_comparison_expr): Likewise.
3661         (vrp_int_const_binop): Likewise.
3662         (zero_nonzero_bits_from_vr): Likewise.
3663         (extract_range_from_multiplicative_op_1): Likewise.
3664         (extract_range_from_binary_expr_1): Likewise.
3665         (extract_range_from_unary_expr): Likewise.
3666         (extract_range_from_comparison): Likewise.
3667         (extract_range_basic): Likewise.
3668         (adjust_range_with_scev): Likewise.
3669         (compare_ranges): Likewise.
3670         (compare_range_with_value): Likewise.
3671         (dump_value_range): Likewise.
3672         (test_for_singularity): Likewise, remove strict_overflow_p parameter
3673         never used.
3674         (simplify_cond_using_ranges): Adjust.
3675
3676 2017-05-04  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
3677
3678         * brig-builtins.def: Added a builtin for class_f64.
3679         * builtin-types.def: Added a builtin type needed by class_f64.
3680
3681 2017-05-03  Jason Merrill  <jason@redhat.com>
3682
3683         * timevar.def: Add TV_CONSTEXPR.
3684
3685 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
3686
3687         * common.opt (fdiagnostics-parseable-fixits): Fix typo.
3688
3689 2017-05-03  Martin Jambor  <mjambor@suse.cz>
3690
3691         * ipa-prop.c (ipa_update_after_lto_read): Removed.
3692         * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
3693         * ipa-cp.c (ipcp_propagate_stage): Do not call
3694         ipa_update_after_lto_read.
3695         * ipa-inline.c (ipa_inline): Likewise.
3696
3697 2017-05-03  Martin Jambor  <mjambor@suse.cz>
3698
3699         * ipa-prop.h (ipa_edge_args): Make a class.  Mark with for_user GTY
3700         tag.  Added a default constructor and a destructor.
3701         (ipa_edge_args_sum_t): New class;
3702         (ipa_edge_args_sum): Declare.
3703         (ipa_edge_args_vector): Remove declaration.
3704         (IPA_EDGE_REF): Use ipa_edge_args_sum.
3705         (ipa_free_edge_args_substructures): Remove declaration.
3706         (ipa_check_create_edge_args): Use ipa_edge_args_sum.
3707         (ipa_edge_args_info_available_for_edge_p): Likewise.
3708         * ipa-prop.c (ipa_edge_args_vector): Removed.
3709         (edge_removal_hook_holder): Likewise.
3710         (edge_duplication_hook_holder): Likewise.
3711         (ipa_edge_args_sum): New variable.
3712         (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
3713         ipa_edge_args_vector.
3714         (ipa_free_edge_args_substructures): Likewise.
3715         (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
3716         ipa_edge_args_vector.
3717         (ipa_edge_removal_hook): Turned into method
3718         ipa_edge_args_sum_t::remove.
3719         (ipa_edge_duplication_hook): Turned into method
3720         ipa_edge_args_sum_t::duplicate.
3721         (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
3722         registering edge hooks.
3723         (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
3724         * ipa-inline-analysis.c (estimate_function_body_sizes): Test
3725         ipa_edge_args_sum instead of ipa_edge_args_vector.
3726         * ipa-profile.c (ipa_profile): Likewise.
3727
3728 2017-05-03  Martin Jambor  <mjambor@suse.cz>
3729
3730         * symbol-summary.h (function_summary): New method exists.
3731         (function_summary::symtab_removal): Deallocate through release.
3732         (call_summary): New class.
3733         (gt_ggc_mx): New overload.
3734         (gt_pch_nx): Likewise.
3735         (gt_pch_nx): Likewise.
3736
3737 2017-05-03  Jeff Law  <law@redhat.com>
3738
3739         PR tree-optimization/78496
3740         * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
3741         from simplify_cond_using_ranges.  Split off code to walk
3742         backwards through casts into ...
3743         (simplify_cond_using_ranges_2): New function.
3744         (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
3745         (execute_vrp): After identifying jump threads, call
3746         simplify_cond_using_ranges_2.
3747
3748 2017-05-03  Jan Hubicka  <hubicka@ucw.cz>
3749
3750         PR bootstrap/80609
3751         * ipa-inline.h (inline_summary): Add ctor.
3752         (create_ggc): Do not use ggc_cleared_alloc.
3753
3754 2017-05-03  Jeff Downs  <heydowns@somuchpressure.net>
3755             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3756
3757         * gcc.c (handle_braces): Support escaping in switch matching
3758         text.
3759         * doc/invoke.texi (Spec Files): Document it.
3760         Remove superfluous @code markup in items.
3761
3762 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
3763
3764         * diagnostic-show-locus.c (struct column_range): New struct.
3765         (get_affected_columns): New function.
3766         (get_printed_columns): New function.
3767         (struct correction): New struct.
3768         (correction::ensure_capacity): New function.
3769         (correction::ensure_terminated): New function.
3770         (struct line_corrections): New struct.
3771         (line_corrections::~line_corrections): New dtor.
3772         (line_corrections::add_hint): New function.
3773         (layout::print_trailing_fixits): Reimplement in terms of the new
3774         classes.
3775         (selftest::test_overlapped_fixit_printing): New function.
3776         (selftest::diagnostic_show_locus_c_tests): Call it.
3777
3778 2017-05-03  Nathan Sidwell  <nathan@acm.org>
3779
3780         Canonicalize canonical type hashing
3781         * tree.h (type_hash_canon_hash): Declare.
3782         * tree.c (type_hash_list, attribute_hash_list): Move into
3783         type_hash_canon_hash.
3784         (build_type_attribute_qual_variant): Break out hash code calc into
3785         type_hash_canon_hash.
3786         (type_hash_canon_hash): New.  Generic type hash computation.
3787         (build_range_type_1, build_array_type_1, build_function_type,
3788         build_method_type_directly, build_offset_type, build_complex_type,
3789         make_vector_type): Call it.
3790
3791 2017-05-03  Richard Biener  <rguenther@suse.de>
3792
3793         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
3794         When all DRs have unknown misaligned do not always peel
3795         when there is a store but apply the same costing model as if
3796         there were only loads.
3797
3798 2017-05-03  Richard Biener  <rguenther@suse.de>
3799
3800         Revert
3801         PR tree-optimization/80492
3802         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
3803         compare_base_decls returning dont-know properly.
3804
3805 2017-05-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3806
3807         * config/arm/iterators.md (CCSI): New mode iterator.
3808         (arch): New mode attribute.
3809         * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
3810         (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
3811         (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This.  Use CCSI
3812         code iterator for success result mode.
3813         * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
3814         the corresponding new insn generators.
3815
3816 2017-05-03  Bin Cheng  <bin.cheng@arm.com>
3817
3818         Revert r247509
3819         2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3820         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
3821
3822 2017-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
3823
3824         * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
3825         (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
3826         (DDR_A): Wrap DDR argument in brackets.
3827         (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
3828         (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
3829         (DDR_REVERSED_P): Likewise.
3830
3831 2017-05-03  Jakub Jelinek  <jakub@redhat.com>
3832
3833         PR tree-optimization/79472
3834         * tree-switch-conversion.c (struct switch_conv_info): Add
3835         contiguous_range and default_case_nonstandard fields.
3836         (collect_switch_conv_info): Compute contiguous_range and
3837         default_case_nonstandard fields, don't clear final_bb if
3838         contiguous_range and only the default case doesn't have the required
3839         structure.
3840         (check_all_empty_except_final): Set default_case_nonstandard instead
3841         of failing if contiguous_range and the default case doesn't have empty
3842         block.
3843         (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
3844         and only the default case doesn't have the required constants.  Skip
3845         virtual phis.
3846         (gather_default_values): Skip virtual phis.  Allow non-NULL CASE_LOW
3847         if default_case_nonstandard.
3848         (build_constructors): Build constant 1 just once.  Assert that default
3849         values aren't inserted in between cases if contiguous_range.  Skip
3850         virtual phis.
3851         (build_arrays): Skip virtual phis.
3852         (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
3853         (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
3854         Handle virtual phis.
3855         (gen_inbound_check): Handle default_case_nonstandard case.
3856         (process_switch): Adjust check_final_bb caller.  Call
3857         gather_default_values with the first non-default case instead of
3858         default case if default_case_nonstandard.
3859
3860 2017-05-02  Nathan Sidwell  <nathan@acm.org>
3861
3862         * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
3863         check.  Fix formatting.
3864
3865 2017-05-02  Jan Hubicka  <hubicka@ucw.cz>
3866
3867         * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
3868         errors when comparing specialized and unspecialized times.
3869
3870 2017-05-02  David Malcolm  <dmalcolm@redhat.com>
3871
3872         * diagnostic-show-locus.c
3873         (layout::should_print_annotation_line_p): Make private.
3874         (layout::print_annotation_line): Make private.
3875         (layout::annotation_line_showed_range_p): Make private.
3876         (layout::show_ruler): Make private.
3877         (layout::print_source_line): Make private.  Pass in line and
3878         line_width, rather than calling location_get_source_line.  Drop
3879         returned value.
3880         (layout::print_leading_fixits): New method.
3881         (layout::print_any_fixits): Rename to...
3882         (layout::print_trailing_fixits): ...this, and make private.
3883         Don't print newline fixits.
3884         (diagnostic_show_locus): Move logic for printing one row into...
3885         (layout::print_line): ...this new function.  Move the
3886         location_get_source_line call and error-handling from
3887         print_source_line to here.  Call print_leading_fixits, and rename
3888         print_any_fixits to print_trailing_fixits.
3889         (selftest::test_fixit_insert_containing_newline): Update now that
3890         newlines are partially supported.
3891         (selftest::test_fixit_insert_containing_newline_2): New test.
3892         (selftest::test_fixit_replace_containing_newline): Update comments.
3893         (selftest::diagnostic_show_locus_c_tests): Call the new test.
3894         * edit-context.c (class added_line): New class.
3895         (class edited_line): Describe newline handling in comment.
3896         (edited_line::actually_edited_p): New method.
3897         (edited_line::print_content): Delete redundant decl.
3898         (edited_line::m_predecessors): New field.
3899         (edited_file::print_content): Call edited_line::print_content.
3900         (edited_file::print_diff): Update to support newlines.
3901         (edited_file::print_diff_hunk): Likewise.
3902         (edited_file::print_run_of_changed_lines): New function.
3903         (edited_file::print_diff_line): Convert to...
3904         (print_diff_line): ...this.
3905         (edited_file::get_effective_line_count): New function.
3906         (edited_line::edited_line): Initialize new field m_predecessors.
3907         (edited_line::~edited_line): Clean up m_predecessors.
3908         (edited_line::apply_fixit): Handle newlines.
3909         (edited_line::get_effective_line_count): New function.
3910         (edited_line::print_content): New function.
3911         (edited_line::print_diff_lines): New function.
3912         (selftest::test_applying_fixits_insert_containing_newline): New
3913         test.
3914         (selftest::test_applying_fixits_replace_containing_newline): New
3915         test.
3916         (selftest::insert_line): New function.
3917         (selftest::test_applying_fixits_multiple_lines): Add example of
3918         inserting a line.
3919         (selftest::edit_context_c_tests): Call the new tests.
3920
3921 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3922
3923         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
3924         parameter cand.  Update dump information.
3925         (get_computation_cost): Update uses.
3926
3927 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3928
3929         * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
3930         (get_computation_aff): Reorder parameters.  Use get_computation_aff_1.
3931         (get_computation_at, rewrite_use_address): Update use of
3932         get_computation_aff.
3933
3934 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3935
3936         * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
3937         (get_computation): Delete.
3938         (get_computation_cost): Implement like get_computation_cost_at.
3939         Use get_computation_at.
3940         (get_computation_cost_at): Delete.
3941         (rewrite_use_nonlinear_expr): Use get_computation_at.
3942         (rewrite_use_compare, remove_unused_ivs): Ditto.
3943
3944 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3945
3946         * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
3947
3948 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3949
3950         * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
3951         (ivopts_global_cost_for_size): Rename parameter and update uses.
3952         (iv_ca_recount_cost): Update uses.
3953         (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
3954         candidates seperately in n_invs and n_cands.
3955         (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
3956
3957 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3958
3959         * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
3960         (find_inv_vars_cb): New.
3961         (find_depends): Renamed to ...
3962         (find_inv_vars): ... this.
3963         (add_candidate_1, force_var_cost): Call find_inv_vars.
3964         (split_address_cost, determine_group_iv_cost_cond): Ditto.
3965
3966 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3967
3968         * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
3969         inv_vars.  Add inv_exprs.
3970         (struct iv_cand): Rename depends_on to inv_vars.
3971         (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
3972         max_inv_var_id/n_inv_var_uses.  Move max_inv_expr_id around.
3973         Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
3974         (dump_cand): Dump inv_vars.
3975         (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
3976         (record_invariant, find_depends, add_candidate_1): Ditto.
3977         (set_group_iv_cost, force_var_cost): Ditto.
3978         (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
3979         (get_computation_cost_at, get_computation_cost): Ditto.
3980         (determine_group_iv_cost_generic): Ditto.
3981         (determine_group_iv_cost_address): Ditto.
3982         (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
3983         (determine_group_iv_costs): Ditto.
3984         (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
3985         (iv_ca_set_remove_invariants): Renamed to ...
3986         (iv_ca_set_remove_invs): ... this.  Support inv_vars and inv_exprs.
3987         (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
3988         (iv_ca_set_add_invariants):  Renamed to ...
3989         (iv_ca_set_add_invs): ... this.  Support inv_vars and inv_exprs.
3990         (iv_ca_set_cp): Use iv_ca_set_add_invs.
3991         (iv_ca_has_deps): Support inv_vars and inv_exprs.
3992         (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
3993         (create_new_ivs): Remove useless dump.
3994
3995 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3996
3997         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
3998         iv_cand code.
3999         (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
4000         (iv_ca_set_no_cp, create_new_iv): Ditto.
4001
4002 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
4003
4004         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
4005
4006 2017-05-02  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
4007
4008         * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
4009         function tree_check2.
4010
4011 2017-05-02  Martin Liska  <mliska@suse.cz>
4012
4013         * doc/gcov.texi: Add missing preposition.
4014         * gcov.c (function_info::function_info): Properly fill up
4015         all member variables.
4016
4017 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
4018
4019         * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
4020
4021 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
4022
4023         * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
4024
4025 2017-05-02  Martin Liska  <mliska@suse.cz>
4026
4027         PR lto/77954.
4028         * lto-streamer-in.c (lto_read_tree_1): Remove
4029         LTO_STREAMER_DEBUG.
4030         * lto-streamer.c (struct tree_hash_entry): Likewise.
4031         (struct tree_entry_hasher): Likewise.
4032         (tree_entry_hasher::hash): Likewise.
4033         (tree_entry_hasher::equal): Likewise.
4034         (lto_streamer_init): Likewise.
4035         (lto_orig_address_map): Likewise.
4036         (lto_orig_address_get): Likewise.
4037         (lto_orig_address_remove): Likewise.
4038         * lto-streamer.h: Likewise.
4039         * tree-streamer-in.c (streamer_alloc_tree): Likewise.
4040         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
4041
4042 2017-05-02  Sebastian Peryt  <sebastian.peryt@intel.com>
4043
4044         * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
4045         (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
4046         (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
4047         (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
4048         (mm_maskz_sub_round_ss, _mm_mask_add_sd)
4049         (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
4050         (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
4051         (mm_maskz_sub_ss): New intrinsics.
4052         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
4053         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
4054         * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
4055         (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
4056         (__builtin_ia32_subss_mask_round): New builtins.
4057         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
4058         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
4059         * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
4060         Renamed to ...
4061         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
4062         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
4063         Changed to ...
4064         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
4065         ... this.
4066
4067 2017-05-02  Martin Jambor  <mjambor@suse.cz>
4068
4069         PR tree-optimization/78687
4070         * tree-sra.c (access): New field parent.
4071         (process_subtree_disqualification): New function.
4072         (disqualify_candidate): Call it.
4073         (build_accesses_from_assign): Reset write flag if creating an
4074         assighnment link.
4075         (build_access_subtree): Fill in parent field and also prpagate
4076         down grp_write flag.
4077         (create_artificial_child_access): New parameter set_grp_write, set
4078         grp_write to its value.
4079         (propagate_subaccesses_across_link): Also propagate grp_write flag
4080         values.
4081         (propagate_all_subaccesses): Push the closest parent back to work
4082         queue if add_access_to_work_queue returned true.
4083
4084 2017-05-02  Richard Biener  <rguenther@suse.de>
4085
4086         * common.opt (fstrict-overflow): Alias negative to fwrapv.
4087         * doc/invoke.texi (fstrict-overflow): Remove all traces of
4088         -fstrict-overflow documentation.
4089         * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
4090         (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
4091         flag_strict_overflow.
4092         * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
4093         * lto-opts.c (lto_write_options): Do not stream it.
4094         * lto-wrapper.c (merge_and_complain): Do not handle it.
4095         * opts.c (default_options_table): Do not set -fstrict-overflow.
4096         (finish_options): Likewise do not clear it when sanitizing.
4097         * simplify-rtx.c (simplify_const_relational_operation): Do not
4098         test flag_strict_overflow.
4099
4100 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
4101
4102         * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
4103         using enabled attribute.
4104         (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
4105         (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
4106         (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
4107         (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
4108         (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
4109         (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
4110         (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
4111         (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
4112         (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
4113         (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
4114
4115 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
4116
4117         * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
4118
4119 2017-05-02  Richard Biener  <rguenther@suse.de>
4120
4121         PR tree-optimization/80591
4122         Revert
4123         2017-04-10  Richard Biener  <rguenther@suse.de>
4124
4125         * tree-ssa-structalias.c (find_func_aliases): Properly handle
4126         asm inputs.
4127
4128 2017-05-02  Richard Biener  <rguenther@suse.de>
4129
4130         PR tree-optimization/80549
4131         * tree-cfgcleanup.c (mfb_keep_latches): New helper.
4132         (cleanup_tree_cfg_noloop): Create forwarders to known loop
4133         headers if they do not have a preheader.
4134
4135 2017-05-02  Martin Liska  <mliska@suse.cz>
4136
4137         PR other/80589
4138         * common.opt: Fix typo.
4139         * doc/invoke.texi: Likewise.
4140
4141 2017-05-01  Jan Beulich  <jbeulich@suse.com>
4142
4143         * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
4144         swapping, add (x,x,m,x,n) alternative.
4145
4146 2017-05-01  Nathan Sidwell  <nathan@acm.org>
4147
4148         * calls.c (combine_pending_stack_adjustment_and_call): Remove
4149         unnecessary unadjusted_alignment check.
4150
4151 2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
4152
4153         PR c++/80038
4154         * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
4155         operations here.
4156         * gimplify.c (gimplify_cilk_detach): New function.
4157         (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
4158         * tree-core.h: Document EXPR_CILK_SPAWN.
4159         * tree.h (EXPR_CILK_SPAWN): Define.
4160
4161 2017-05-01  David Malcolm  <dmalcolm@redhat.com>
4162
4163         * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
4164         to use new fixit_hint representation, using the "replace" logic.
4165         (get_line_span_for_fixit_hint): Likewise.
4166         (layout::print_any_fixits): Likewise.
4167         (selftest::test_one_liner_many_fixits): Rename to...
4168         (selftest::test_one_liner_many_fixits_1): ...this, and update
4169         comment and expected output to reflect that the multiple fix-it
4170         hints are now consolidated into one insertion.
4171         (selftest::test_one_liner_many_fixits_2): New test.
4172         (selftest::test_diagnostic_show_locus_one_liner): Update for
4173         above.
4174         (selftest::test_fixit_consolidation): Update for fix-it API
4175         change.
4176         * diagnostic.c (print_parseable_fixits): Likewise.
4177         * edit-context.c (edited_line::m_line_events): Convert from
4178         auto_vec <line_event *> to auto_vec <line_event>.
4179         (class line_event): Convert from abstract base class to a concrete
4180         class, taking over the role of replace_event.
4181         (class insert_event): Delete.
4182         (class replace_event): Rename to class line_event.  Convert to
4183         half-open range.
4184         (edit_context::add_fixits): Reimplement.
4185         (edit_context::apply_insert): Delete.
4186         (edit_context::apply_replace): Rename to...
4187         (edit_context::apply_fixit): ...this.  Convert to half-open range.
4188         (edited_file::apply_insert): Delete.
4189         (edited_file::apply_replace): Rename to...
4190         (edited_file::apply_fixit): ...this.
4191         (edited_line::~edited_line): Drop deletion of events.
4192         (edited_line::apply_insert): Delete.
4193         (edited_line::apply_replace): Rename to...
4194         (edited_line::apply_fixit): ...this.  Convert to half-open range.
4195         Update for change to type of m_line_events.
4196         * edit-context.h (edit_context::apply_insert): Delete.
4197         (edit_context::apply_replace): Rename to...
4198         (edit_context::apply_fixit): ...this.
4199
4200 2017-05-01  Martin Sebor  <msebor@redhat.com>
4201
4202         * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
4203         known.
4204
4205 2017-05-01  Uros Bizjak  <ubizjak@gmail.com>
4206
4207         PR target/68491
4208         * config/i386/cpuid.h (__get_cpuid): Always return 0 when
4209         __get_cpuid_max returns 0.
4210         (__get_cpuid_count): Ditto.
4211
4212 2017-05-01  Eric Botcazou  <ebotcazou@adacore.com>
4213
4214         * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
4215         replacement expression is another instance of one of its arguments.
4216
4217 2017-05-01  Jakub Jelinek  <jakub@redhat.com>
4218
4219         PR target/79430
4220         * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
4221         check for stack push/pop autoinc.
4222         * config/i386/i386.c (ix86_agi_dependent): Return false
4223         if the only reason why modified_in_p returned true is that
4224         addr is SP based and set_insn is a push or pop.
4225
4226 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
4227
4228         * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
4229         overflow check.
4230
4231 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
4232
4233         PR ipa/79224
4234         * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
4235         (account_size_time): Use two predicates - exec_pred and
4236         nonconst_pred_ptr.
4237         (evaluate_conditions_for_known_args): Compute both clause and
4238         nonspec_clause.
4239         (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
4240         (inline_summary_t::duplicate): Update.
4241         (estimate_function_body_sizes): Caluculate exec and nonconst predicates
4242         separately.
4243         (compute_inline_parameters): Likewise.
4244         (estimate_edge_size_and_time): Update caluclation of time.
4245         (estimate_node_size_and_time): Compute both time and nonspecialized
4246         time.
4247         (estimate_ipcp_clone_size_and_time): Update.
4248         (inline_merge_summary): Update.
4249         (do_estimate_edge_time): Update.
4250         (do_estimate_edge_size): Update.
4251         (do_estimate_edge_hints): Update.
4252         (inline_read_section, inline_write_summary): Stream both new predicates.
4253         * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
4254         as argument.
4255         (compute_inlined_call_time): Cleanup.
4256         (big_speedup_p): Update.
4257         (edge_badness): Update.
4258         * ipa-inline.h (INLINE_TIME_SCALE): Remove.
4259         (size_time_entry): Replace predicate by exec_predicate and
4260         nonconst_predicate.
4261         (edge_growth_cache_entry): Cache both time nad nonspecialized time.
4262         (estimate_edge_time): Return also nonspec_time.
4263         (reset_edge_growth_cache): Update.
4264
4265 2017-04-29  Jakub Jelinek  <jakub@redhat.com>
4266
4267         PR rtl-optimization/80491
4268         * ifcvt.c (noce_process_if_block): When looking for x setter
4269         with missing else_bb, don't check only the insn right before
4270         cond_earliest, but look for the last insn that x is modified in
4271         within the same bb.
4272
4273         PR rtl-optimization/80491
4274         * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
4275
4276 2017-04-29  Marc Glisse  <marc.glisse@inria.fr>
4277
4278         PR tree-optimization/80487
4279         * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
4280
4281 2017-04-29  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4282
4283         PR tree-optimization/79697
4284         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
4285         is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
4286         (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
4287         BUILT_IN_STRNDUP.
4288         * gimple-fold.c (gimple_fold_builtin_realloc): New function.
4289         (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
4290
4291 2017-04-28  Martin Sebor  <msebor@redhat.com>
4292
4293         PR tree-optimization/80523
4294         * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
4295         (init_target_to_host_charmap, target_to_host, target_strtol10): New
4296         functions.
4297         (maybe_warn, format_directive, parse_directive): Use new functions.
4298         (pass_sprintf_length::execute): Call init_target_to_host_charmap.
4299
4300 2017-04-28  Marc Glisse  <marc.glisse@inria.fr>
4301
4302         * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
4303
4304 2017-04-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4305
4306         * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
4307         target_header_dir): Set correctly.
4308         * configure: Regenerated.
4309         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
4310         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
4311         instead of SYSTEM_HEADER_DIR.
4312
4313 2017-04-28  Jan Hubicka  <hubicka@ucw.cz>
4314
4315         * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
4316         (estimate_local_effects): Likewise.
4317         * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
4318         edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
4319         * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
4320         estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
4321         do_estimate_edge_time, estimate_edge_time): Likewise.
4322         * ipa-inline-analysis.c (estimate_node_size_and_time,
4323         estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
4324         (estimate_time_after_inlining): Remove.
4325
4326 2017-04-28  Martin Liska  <mliska@suse.cz>
4327
4328         * doc/gcov.texi: Enhance documentation of gcov.
4329
4330 2017-04-28  Martin Liska  <mliska@suse.cz>
4331
4332         * doc/gcov.texi: Sort options in alphabetic order.
4333         * doc/gcov-dump.texi: Likewise.
4334         * doc/gcov-tool.texi: Likewise.
4335         * gcov.c (print_usage): Likewise.
4336         * gcov-dump.c (print_usage): Likewise.
4337         * gcov-tool.c (print_merge_usage_message): Likewise.
4338         (print_rewrite_usage_message): Likewise.
4339         (print_overlap_usage_message): Likewise.
4340
4341 2017-04-28  Martin Liska  <mliska@suse.cz>
4342
4343         PR gcov-profile/53915
4344         * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
4345
4346 2017-04-28  Martin Liska  <mliska@suse.cz>
4347
4348         PR gcov-profile/79891
4349         * gcov.c (add_line_counts): Assign BBs to lines just if the BB
4350         is marked by compiler as living on a line.
4351         (get_cycles_count): Remove usage of the union.
4352         (output_intermediate_file): Likewise.
4353         (find_source): Fix GNU coding style.
4354         (accumulate_line_counts): Remove old non-all block mode.
4355         (output_lines): Remove usage of the union.
4356         * profile.c (output_location): Include all BBs, even if
4357         belonging to a same line (and file) as a previous BB.
4358
4359 2017-04-28  Martin Liska  <mliska@suse.cz>
4360
4361         * gcov.c (process_args): Handle new argument 'w'.
4362         (read_graph_file): Assign ID to BBs.
4363         (output_branch_count): Display BB # if verbose flag is set.
4364         (output_lines): Likewise for arcs.
4365         (print_usage): Add '--verbose' option help.
4366         * doc/gcov.texi: Document --verbose (-w) option.
4367
4368 2017-04-28  Martin Liska  <mliska@suse.cz>
4369
4370         * gcov.c (struct block_location_info): New struct.
4371         (process_file): Fill up the new structure.
4372         (read_graph_file): Replace usage of encoding by the newly added
4373         struct.
4374         (add_line_counts): Likewise.
4375         (accumulate_line_counts): Remove usage of the union.
4376         (function_info::function_info): New function.
4377         (function_info::~function_info): Likewise.
4378         (process_file): Call delete instead of release_function.
4379         (release_function): Release the function.
4380         (release_structures): Call delete instead of release_function.
4381         (solve_flow_graph): Replace usage of num_blocks.
4382         (find_exception_blocks): Likewise.
4383         (output_lines): Fix GNU coding style.
4384
4385 2017-04-28  Martin Liska  <mliska@suse.cz>
4386
4387         PR driver/56469
4388         * coverage.c (coverage_remove_note_file): New function.
4389         * coverage.h: Declare the function.
4390         * toplev.c (finalize): Clean if an error has been seen.
4391
4392 2017-04-28  Martin Liska  <mliska@suse.cz>
4393
4394         PR gcov-profile/80031
4395         * gcov-dump.c (tag_blocks): Just print number of basic blocks.
4396         * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
4397         * gcov.c (read_graph_file): Read just number of blocks.
4398         * profile.c (branch_prob): Do not stream 0 flags per a basic
4399         block.
4400
4401 2017-04-28  Martin Liska  <mliska@suse.cz>
4402
4403         * gcov-dump.c (tag_*): Add new argument to declarations.
4404         (dump_gcov_file): Likewise.
4405         (tag_blocks): Add and use new argument depth.
4406         (tag_arcs): Likewise.
4407         (tag_lines): Likewise.
4408         (tag_counters): Likewise.
4409         (tag_summary): Likewise.
4410         (dump_working_sets): Use depth to do a proper indentation.
4411
4412 2017-04-28  Jakub Jelinek  <jakub@redhat.com>
4413
4414         PR bootstrap/80531
4415         * cgraph.h (symtab_node::debug_symtab): No longer inline.
4416         * symtab.c (symtab_node::debug_symtab): Move definition here.
4417
4418 2017-04-28  Richard Biener  <rguenther@suse.de>
4419
4420         * lto-streamer.h (LTO_major_version): Bump to 7.
4421
4422 2017-04-28  Richard Biener  <rguenther@suse.de>
4423
4424         * tree-vrp.c (assert_info): New struct.
4425         (add_assert_info): New helper.
4426         (register_edge_assert_for_2): Refactor to add asserts to a vector
4427         of assert_info.
4428         (register_edge_assert_for_1): Likewise.
4429         (register_edge_assert_for): Likewise.
4430         (finish_register_edge_assert_for): New helper actually registering
4431         asserts where live on edge.
4432         (find_conditional_asserts): Adjust.
4433         (find_switch_asserts): Likewise.
4434         (evrp_dom_walker::try_find_new_range): Generalize.
4435         (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
4436
4437 2017-04-27  Marek Polacek  <polacek@redhat.com>
4438
4439         PR sanitizer/80349
4440         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
4441         arg10 and arg11 to itype.
4442
4443 2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
4444
4445         * doc/extend.texi (Object Size Checking): Improve grammar.
4446
4447 2017-04-27  Richard Earnshaw  <rearnsha@arm.com>
4448
4449         PR target/80530
4450         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
4451         that the logic for permitting reciprocal estimates matches that
4452         in use_rsqrt_p.
4453
4454 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
4455
4456         PR c++/80534
4457         * tree.c (type_cache_hasher::equal): Only compare
4458         TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
4459         (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
4460         non-aggregate element types.
4461         * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
4462         about the flag on ARRAY_TYPEs in the comment, formatting fix.
4463
4464 2017-04-27  Richard Biener  <rguenther@suse.de>
4465
4466         PR middle-end/80533
4467         * emit-rtl.c (set_mem_attributes_minus_bitpos): When
4468         stripping ARRAY_REFs from MEM_EXPR make sure we're not
4469         keeping a reference to a trailing array.
4470
4471 2017-04-27  Richard Biener  <rguenther@suse.de>
4472
4473         PR middle-end/80539
4474         * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
4475         being in loop-closed SSA form conservatively.
4476         (chrec_fold_multiply_poly_poly): Likewise.
4477
4478 2017-04-27  Tamar Christina  <tamar.christina@arm.com>
4479
4480         PR middle-end/79665
4481         * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
4482         CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
4483
4484 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
4485
4486         PR target/77728
4487         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
4488         (aarch64_function_arg_alignment): Return unsigned int again, but still
4489         ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
4490         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
4491         Don't emit -Wpsabi note.
4492         (aarch64_function_arg_boundary): Likewise.
4493         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
4494         caller.
4495
4496 2017-04-26  Nathan Sidwell  <nathan@acm.org>
4497
4498         * tree.h (crc32_unsigned_n): Declare.
4499         (crc32_unsigned, crc32_unsigned): Make inline.
4500         * tree.c (crc32_unsigned_bits): Replace with ...
4501         (crc32_unsigned_n): ... this.
4502         (crc32_unsigned, crc32_byte): Remove.
4503         (crc32_string): Remove unnecessary braces.
4504
4505 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
4506
4507         * ipa-cp.c (estimate_local_effects): Convert sreal to int.
4508         * ipa-inline-analysis.c (MAX_TIME): Remove.
4509         (account_size_time): Use sreal for time.
4510         (dump_inline_summary): Update.
4511         (estimate_function_body_sizes): Update.
4512         (estimate_edge_size_and_time): Update.
4513         (estimate_calls_size_and_time): Update.
4514         (estimate_node_size_and_time): Update.
4515         (inline_merge_summary): Update.
4516         (inline_update_overall_summary): Update.
4517         (estimate_time_after_inlining): Update.
4518         (inline_read_section): Update.
4519         (inline_write_summary): Update.
4520         * ipa-inline.c (compute_uninlined_call_time): Update.
4521         (compute_inlined_call_time): Update.
4522         (recursive_inlining): Update.
4523         (inline_small_functions): Update.
4524         (dump_overall_stats): Update.
4525         * ipa-inline.h: Include sreal.h.
4526         (size_time_entry): Turn time to sreal.
4527         (inline_summary): Turn self_time nad time to sreal.
4528
4529 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
4530
4531         * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
4532         data-streamer.h
4533         (sreal::stream_out, sreal::stream_in): New.
4534         * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
4535
4536 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
4537
4538         * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
4539         environment.
4540
4541 2017-04-25  Uros Bizjak  <ubizjak@gmail.com>
4542
4543         PR target/70799
4544         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
4545         Handle ASHIFTRT.
4546         (dimode_scalar_chain::compute_convert_gain): Ditto.
4547         (dimode_scalar_chain::make_vector_copies): Ditto.
4548         (dimode_scalar_chain::convert_reg): Ditto.
4549         (dimode_scalar_chain::convert_insn): Ditto.
4550         * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
4551         (VI248_AVX512BW_1): New mode iterator.
4552         (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
4553         <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
4554         mode iterator.
4555
4556 2017-04-25  Martin Sebor  <msebor@redhat.com>
4557
4558         PR tree-optimization/80497
4559         * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
4560         constants are representable in HOST_WIDE_INT.
4561         (parse_directive): Ditto.
4562
4563 2017-04-25  Martin Sebor  <msebor@redhat.com>
4564
4565         PR bootstrap/80486
4566         * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
4567         (new_zero_array): Adjust signature.
4568         (dom_info::dom_init): Used unsigned rather that size_t.
4569         (dom_info::dom_info): Same.
4570
4571 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4572             Jakub Jelinek  <jakub@redhat.com>
4573
4574         PR target/77728
4575         * config/arm/arm.c: Include gimple.h.
4576         (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
4577         returns negative, increment ncrn only if it returned positive.
4578         (arm_needs_doubleword_align): Return int instead of bool,
4579         ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
4580         members, but if there is any such non-FIELD_DECL
4581         > PARM_BOUNDARY aligned decl, return -1 instead of false.
4582         (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
4583         returns negative, increment nregs only if it returned positive.
4584         (arm_setup_incoming_varargs): Likewise.
4585         (arm_function_arg_boundary): Emit -Wpsabi note if
4586         arm_needs_doubleword_align returns negative, return
4587         DOUBLEWORD_ALIGNMENT only if it returned positive.
4588
4589 2017-04-25  Marek Polacek  <polacek@redhat.com>
4590
4591         PR sanitizer/80349
4592         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
4593         first argument to type.
4594
4595 2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
4596
4597         PR target/80482
4598         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
4599         type checks to test for compatibility instead of equality.
4600
4601 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4602             Jakub Jelinek  <jakub@redhat.com>
4603
4604         PR target/77728
4605         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
4606         type.
4607         (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
4608         struct.  Ignore DECL_ALIGN of decls other than FIELD_DECL for
4609         the alignment computation, but return their maximum in warn_alignment.
4610         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
4611         Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
4612         is smaller.
4613         (aarch64_function_arg_boundary): Likewise.  Simplify using MIN/MAX.
4614         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
4615         caller.
4616
4617 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
4618
4619         * config/arc/simdext.md (dmpyh): Fix typo.
4620
4621 2017-04-25  Richard Biener  <rguenther@suse.de>
4622
4623         PR tree-optimization/80492
4624         * alias.c (compare_base_decls): Handle registers with asm
4625         specification conservatively.
4626         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
4627         compare_base_decls returning dont-know properly.
4628
4629 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
4630
4631         * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
4632         (legitimate_offset_address_p): New function.
4633         (arc_legitimate_address_p): Use above function.
4634
4635 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
4636
4637         * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
4638
4639 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
4640
4641         * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
4642         ACCH registers whenever they are available.
4643
4644 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
4645
4646         * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
4647         double regs fix when not used.
4648
4649 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
4650
4651         * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
4652         core registers.
4653         (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
4654         (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
4655
4656 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
4657
4658         * config/arc/arc.c (arc_output_addsi): Check for h-register class
4659         when emitting short ADD instructions.
4660
4661 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
4662
4663         * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
4664         constraint.
4665         (cmpsi_cc_c_insn): Likewise.
4666         (cbranchsi4_scratch): Compute proper instruction length using
4667         compact_hreg_operand.
4668         * config/arc/predicates.md (compact_hreg_operand): New predicate.
4669
4670 2017-04-25  Richard Biener  <rguenther@suse.de>
4671
4672         PR middle-end/80509
4673         * passes.c (pass_manager::pass_manager): Initialize
4674         m_name_to_pass_map.
4675
4676 2017-04-25  Richard Biener  <rguenther@suse.de>
4677
4678         PR tree-optimization/79201
4679         * tree-ssa-sink.c (statement_sink_location): Handle calls.
4680
4681 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4682
4683         PR target/80464
4684         * config/s390/vector.md: Split MEM->GPR vector moves for
4685         non-s_operand addresses.
4686
4687 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4688
4689         PR target/79895
4690         * config/s390/predicates.md (reload_const_wide_int_operand): New
4691         predicate.
4692         * config/s390/s390.md ("movti"): Remove d/P alternative.
4693         ("movti_bigconst"): New pattern definition.
4694
4695 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4696
4697         PR target/80080
4698         * s390-protos.h (s390_expand_cs_hqi): Removed.
4699         (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
4700         * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
4701         modes as well as CCZ1mode and CCZmode.
4702         (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
4703         signature of s390_emit_compare_and_swap.
4704         (s390_expand_cs_hqi): Likewise, make static.
4705         (s390_expand_cs_tdsi): Generate an explicit compare before trying
4706         compare-and-swap, in some cases.
4707         (s390_expand_cs): Wrapper function.
4708         (s390_expand_atomic_exchange_tdsi): New backend specific expander for
4709         atomic_exchange.
4710         (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
4711         * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
4712         patterns for small and large integers.  Forbid symref memory operands.
4713         Move expander to s390.c.  Require cc register.
4714         ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
4715         ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
4716         ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
4717         ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
4718         symref memory operands.  Remove CC mode and call s390_match_ccmode
4719         instead.
4720         ("atomic_exchange<mode>"): Allow and implement all integer modes.
4721
4722 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4723
4724         * config/s390/s390.md (define_peephole2): New peephole to help
4725         combining the load-and-test pattern with volatile memory.
4726
4727 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4728
4729         * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
4730         with CCZmode for TARGET_Z196.
4731
4732 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
4733
4734         PR rtl-optimization/80501
4735         * combine.c (make_compound_operation_int): Set subreg_code to SET
4736         even for AND with mask of the sign bit of mode.
4737
4738         PR rtl-optimization/80500
4739         * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
4740         sum's initial value.
4741
4742 2017-04-25  Julian Brown  <julian@codesourcery.com>
4743             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
4744
4745         * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
4746
4747 2017-04-25  Marc Glisse  <marc.glisse@inria.fr>
4748
4749         * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
4750
4751 2017-04-25  Julian Brown  <julian@codesourcery.com>
4752             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
4753
4754         * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
4755         (thunderx2t99_sha): New Reservation.
4756
4757 2017-04-25  Julian Brown  <julian@codesourcery.com>
4758             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
4759
4760         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
4761         type for 1-element load.
4762
4763 2017-04-24  Marc Glisse  <marc.glisse@inria.fr>
4764
4765         * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
4766
4767 2017-04-24  Martin Jambor  <mjambor@suse.cz>
4768
4769         PR tree-optimization/80293
4770         * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
4771         char arrays not totally scalarizable if it is false.
4772         (analyze_all_variable_accesses): Pass correct value in the new
4773         parameter.  Add a statistics counter.
4774
4775 2017-04-24  Jan Hubicka  <hubicka@ucw.cz>
4776
4777         PR middle-end/79931
4778         * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
4779
4780 2017-04-24  Richard Biener  <rguenther@suse.de>
4781
4782         PR tree-optimization/80494
4783         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
4784         out for complex types.
4785
4786 2017-04-24  Richard Biener  <rguenther@suse.de>
4787
4788         * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
4789         * tree-ssa-sccvn.c (print_scc): Print SCC size.
4790         (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
4791         (DFS): Adjust and never fail.
4792         (sccvn_dom_walker::fail): Remove.
4793         (sccvn_dom_walker::before_dom_children): Adjust.
4794         (run_scc_vn): Likewise and never fail.
4795         * tree-ssa-pre.c (pass_pre::execute): Adjust.
4796         (pass_fre::execute): Likewise.
4797
4798 2017-04-24  Richard Biener  <rguenther@suse.de>
4799
4800         PR tree-optimization/79725
4801         * tree-ssa-sink.c (statement_sink_location): Return whether
4802         failure reason was zero uses.  Move that check later.
4803         (sink_code_in_bb): Deal with zero uses by removing the stmt
4804         if possible.
4805
4806 2017-04-24  Richard Biener  <rguenther@suse.de>
4807
4808         PR c++/2972
4809         * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
4810         pointer-based references.
4811
4812 2017-04-24  Richard Biener  <rguenther@suse.de>
4813
4814         PR bootstrap/79814
4815         * pass_manager.h (pass_manager::operator new): Remove.
4816         (pass_manager::operator delete): Likewise.
4817         * passes.c (pass_manager::operator new): Remove.
4818         (pass_manager::operator delete): Likewise.
4819         (pass_manager::pass_manager): Zero individual pass members.
4820
4821 2017-04-23  Uros Bizjak  <ubizjak@gmail.com>
4822
4823         PR target/70799
4824         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
4825         <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
4826         Check "XEXP (src, 1)" operand here.
4827         <case PLUS, case MINUS, case IOR, case XOR, case AND>:
4828         Check "XEXP (src, 1)" operand here.
4829         (dimode_scalar_chain::make_vector_copies): Detect count register
4830         of a shift instruction.  Zero extend count register from QImode
4831         to DImode to satisfy vector shift pattern count operand predicate.
4832         Substitute vector shift count operand with a DImode copy.
4833         (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
4834         vector register.
4835
4836 2017-04-21  Uros Bizjak  <ubizjak@gmail.com>
4837
4838         * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
4839         Remove UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
4840         (*insvqi_1_mem_rex64): Move above insv<mode>_1.  Remove
4841         UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
4842         (UNSPEC_NOREX_MEM): Remove definition.
4843
4844 2017-04-21  Richard Biener  <rguenther@suse.de>
4845
4846         PR tree-optimization/79547
4847         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
4848         Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
4849         bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
4850         without any constraints.
4851
4852 2017-04-21  Richard Biener  <rguenther@suse.de>
4853
4854         PR tree-optimization/78847
4855         * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
4856
4857 2017-04-21  Richard Biener  <rguenther@suse.de>
4858
4859         * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
4860         (build_distinct_type_copy): Likewise.
4861         (build_variant_type_copy): Likewise.
4862         * tree.c (build_qualified_type): Pass down mem-stat info.
4863         (build_distinct_type_copy): Likewise.
4864         (build_variant_type_copy): Likewise.
4865
4866 2017-04-21  Richard Biener  <rguenther@suse.de>
4867
4868         PR tree-optimization/80237
4869         * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
4870         defaulted to NULL.
4871         (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
4872         for a simplified result.
4873
4874 2016-04-21  Richard Biener  <rguenther@suse.de>
4875
4876         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
4877         sth as strict as a simple_iv but a chrec without symbols and an
4878         operand defined in the loop we are peeling (and not some subloop).
4879         (propagate_constants_for_unrolling): Propagate all constants.
4880
4881 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
4882
4883         PR target/79804
4884         * config/i386/i386.c (print_reg): Remove assert for disalowed
4885         regno values, call output_operand_lossage instead.
4886
4887 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
4888
4889         PR target/78090
4890         * config/i386/constraints.md (Yc): New register constraint.
4891         * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
4892         Use Yc constraint for alternative 2 of operand 0.  Remove
4893         preferred_for_speed attribute.
4894
4895 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
4896
4897         * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
4898         lastprivate clauses in SIMT case.
4899
4900 2017-04-20  Volker Reichelt  <v.reichelt@netcologne.de>
4901
4902         * doc/invoke.texi (-Wextra-semi): Document new warning option.
4903
4904 2017-04-20  Richard Biener  <rguenther@suse.de>
4905
4906         PR tree-optimization/57796
4907         * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
4908         as N scalar stores.
4909         (vect_model_load_cost): Cost gathers as N scalar loads.
4910
4911 2017-04-20  Richard Biener  <rguenther@suse.de>
4912
4913         * ggc-page.c (ggc_allocated_p): Rename to ...
4914         (safe_lookup_page_table_entry): ... this and return the lookup
4915         result.
4916         (gt_ggc_m_S): Use safe_lookup_page_table_entry.
4917
4918 2017-04-20  Richard Biener  <rguenther@suse.de>
4919
4920         PR tree-optimization/80453
4921         * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
4922         * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
4923         from the conditions.
4924         (vn_phi_eq): Pass them down.
4925         (vn_phi_lookup): Record them.
4926         (vn_phi_insert): Likewise.
4927
4928 2017-04-20  Matthew Fortune  <matthew.fortune@imgtec.com>
4929
4930         * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
4931         uninitialized variable warning to avoid buffer overrun.
4932
4933 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
4934
4935         PR other/71250
4936         * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
4937         is suppressed for '{ 0 }' in C.
4938
4939 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
4940
4941         * BASE-VER: Set to 8.0.0.
4942
4943 2017-04-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4944
4945         * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
4946         priority .init_array and .fini_array section with SECTION_NOTYPE
4947         flag.
4948
4949 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
4950
4951         PR middle-end/80423
4952         * tree.h (build_array_type): Add typeless_storage default argument.
4953         * tree.c (type_cache_hasher::equal): Also compare
4954         TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
4955         (build_array_type): Add typeless_storage argument, set
4956         TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
4957         recursive call.
4958         (build_nonshared_array_type): Adjust build_array_type_1 caller.
4959         (build_array_type): Likewise.  Add typeless_storage argument.
4960
4961 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4962             Jakub Jelinek  <jakub@redhat.com>
4963
4964         PR tree-optimization/80426
4965         * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
4966         operation on symbolic operands, also compute the overflow for the
4967         invariant part when the operation degenerates into a negation.
4968
4969 2017-04-19  Jakub Jelinek  <jakub@redhat.com>
4970
4971         PR debug/80461
4972         * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
4973         Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
4974
4975         PR debug/80436
4976         * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
4977
4978 2017-04-19  Georg-Johann Lay  <avr@gjlay.de>
4979
4980         PR target/80462
4981         * config/avr/avr.c (tree.h): Include it.
4982         (cgraph.h): Include it.
4983         (avr_encode_section_info): Don't warn for uninitialized progmem
4984         variable if it's just an alias.
4985
4986 2017-04-19  Richard Biener  <rguenther@suse.de>
4987
4988         PR ipa/65972
4989         * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
4990         when needed by AutoPGO.
4991
4992 2017-04-19  Paulo J. Matos  <paulo@matos-sorge.com>
4993
4994         PR lto/50345
4995         * doc/lto.texi: Remove an extra 'that'.
4996
4997 2017-04-19  Segher Boessenkool  <segher@kernel.crashing.org>
4998
4999         PR rtl-optimization/80429
5000         * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
5001         are only used in debug insns.
5002
5003 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
5004             Vladimir Makarov  <vmakarov@redhat.com>
5005
5006         * config/sparc/predicates.md (input_operand): Add comment.  Return
5007         true for any memory operand when LRA is in progress.
5008         * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
5009
5010 2017-04-18  Jeff Law  <law@redhat.com>
5011
5012         PR target/74563
5013         * mips.md ({return,simple_return}_internal): Do not overwrite
5014         operands[0].
5015
5016 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
5017
5018         PR tree-optimization/80443
5019         * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
5020         instead of adding 1, subtract -1 and similarly instead of subtracting
5021         1 add -1.
5022
5023 2017-04-18  Richard Sandiford  <richard.sandiford@arm.com>
5024
5025         PR rtl-optimization/80357
5026         * haifa-sched.c (tmp_bitmap): New variable.
5027         (model_recompute): Handle duplicate use records.
5028         (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
5029         (free_global_sched_pressure_data): Free it.
5030
5031 2017-04-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5032
5033         Revert:
5034         2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5035         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
5036         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
5037         instead of SYSTEM_HEADER_DIR.
5038
5039 2017-04-18  Jeff Law  <law@redhat.com>
5040
5041         PR middle-end/80422
5042         * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
5043         predecessors after walking up the insn chain.
5044
5045 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
5046
5047         PR debug/80263
5048         * dwarf2out.c (modified_type_die): Try harder not to emit internal
5049         sizetype type into debug info.
5050
5051 2017-04-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
5052
5053         PR target/80099
5054         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
5055         unneeded test for TARGET_UPPER_REGS_SF.
5056         * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
5057
5058 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
5059
5060         PR sanitizer/80444
5061         * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
5062         instead of gsi_after_labels.
5063
5064 2017-04-18  Jeff Law  <law@redhat.com>
5065
5066         * regcprop.c (maybe_mode_change): Avoid creating copies of the
5067         stack pointer.
5068
5069         Revert:
5070         2017-04-13  Jeff Law  <law@redhat.com>
5071         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
5072         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
5073
5074 2017-04-18  Georg-Johann Lay  <avr@gjlay.de>
5075
5076         PR target/79453
5077         * config/avr/avr.c (intl.h): Include it.
5078         (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
5079
5080 2017-04-18  Martin Liska  <mliska@suse.cz>
5081
5082         PR gcov-profile/78783
5083         * gcov-tool.c (gcov_output_files): Validate that destination
5084         file is either removed by the tool or by a user.
5085
5086 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
5087             Guy Benyei  <guybe@mellanox.com>
5088
5089         * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
5090         block, and do not negate it, the stored id is already negative.
5091
5092 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
5093
5094         * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
5095
5096 2017-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5097
5098         PR target/80098
5099         * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
5100         masks of options that should be turned off if the VSX vector
5101         options are turned off.
5102         (OTHER_P8_VECTOR_MASKS): Likewise.
5103         (OTHER_VSX_VECTOR_MASKS): Likewise.
5104         * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
5105         rs6000_disable_incompatible_switches to validate no type switches
5106         like -mvsx.
5107         (rs6000_incompatible_switch): New function to disallow turning on
5108         other vector options if -mno-vsx, -mno-power8-vector, or
5109         -mno-power9-vector are specified.
5110
5111 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
5112
5113         * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
5114
5115 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
5116
5117         * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
5118         * config/arc/arc.c (arc_decl_pretend_args): Likewise.
5119         * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
5120         (ARG_POINTER_CFA_OFFSET): Likewise.
5121
5122 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
5123
5124         * config/arc/arc.c (arc_mode_dependent_address_p): Relax
5125         conditions to take advantage of various optimizations.
5126
5127 2017-04-13  Jeff Law  <law@redhat.com>
5128
5129         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
5130         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
5131         (zero_extendsidi2_dext): Likewise.
5132
5133 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
5134
5135         PR sanitizer/80403
5136         * fold-const.c (fold_ternary_loc): Revert
5137         use op0 instead of fold_convert_loc (loc, type, arg0) part of
5138         2017-04-12 change.
5139
5140 2017-04-13  Vladimir Makarov  <vmakarov@redhat.com>
5141
5142         PR rtl-optimization/80343
5143         * lra-remat.c (update_scratch_ops): Assign original hard reg to
5144         new scratch pseudo.
5145
5146 2017-04-13  Denis Khalikov <d.khalikov@partner.samsung.com>
5147
5148         PR sanitizer/80414
5149         * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
5150         to ubsan_encode_value.
5151
5152 2017-04-13  Jeff Law  <law@redhat.com>
5153
5154         * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
5155         appearing in DEBUG_INSNs.
5156
5157 2017-04-13  Martin Liska  <mliska@suse.cz>
5158
5159         PR gcov-profile/80413
5160         * gcov-io.c (gcov_write_string): Copy to buffer just when
5161         allocated size is greater than zero.
5162
5163 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
5164
5165         PR debug/80321
5166         * dwarf2out.c (decls_for_scope): Ignore declarations of
5167         current_function_decl in BLOCK_NONLOCALIZED_VARS.
5168
5169 2017-04-12  Jan Hubicka  <hubicka@ucw.cz>
5170
5171         PR lto/69953
5172         * ipa-visibility.c (non_local_p): Fix typos.
5173         (localize_node): When localizing symbol in same comdat group,
5174         dissolve the group only when we know external symbols are going
5175         to be privatized.
5176         (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
5177
5178 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
5179
5180         PR tree-optimization/79390
5181         * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
5182         order does not result in usable sequence, retry with reversed operand
5183         order.
5184
5185         PR sanitizer/80403
5186         PR sanitizer/80404
5187         PR sanitizer/80405
5188         * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
5189         to fold_build2_loc.  Convert TREE_OPERAND (tem, 0) to type.  Use
5190         op0 instead of fold_convert_loc (loc, type, arg0).
5191
5192 2017-04-12  Jeff Law  <law@redhat.com>
5193
5194         * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
5195         has a delay slot in the generated code.
5196
5197         * config/cris/cris.md (cris_preferred_reload_class): Return
5198         GENNONACR_REGS rather than GENERAL_REGS.
5199
5200 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
5201
5202         PR c/80163
5203         * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
5204         vs. ZERO_EXTEND based on signedness of treeop0's type rather than
5205         signedness of the result type.
5206
5207 2017-04-12  Richard Biener  <rguenther@suse.de>
5208             Jeff Law  <law@redhat.com>
5209
5210         PR tree-optimization/80359
5211         * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
5212         trim stores to TARGET_MEM_REFs.
5213
5214 2017-04-12  Richard Biener  <rguenther@suse.de>
5215
5216         PR tree-optimization/79390
5217         * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
5218         threading case even more.
5219
5220 2017-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
5221
5222         PR target/80382
5223         * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
5224         for quad_address_p for TImode, instead of just not indexed_address.
5225
5226 2017-04-12  Richard Biener  <rguenther@suse.de>
5227             Bernd Edlinger  <bernd.edlinger@hotmail.de>
5228
5229         PR middle-end/79671
5230         * alias.c (component_uses_parent_alias_set_from): Handle
5231         TYPE_TYPELESS_STORAGE.
5232         (get_alias_set): Likewise.
5233         * tree-core.h (tree_type_common): Add typeless_storage flag.
5234         * tree.h (TYPE_TYPELESS_STORAGE): New macro.
5235         * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
5236         for types containing members with TYPE_TYPELESS_STORAGE.
5237         (place_field): Likewise.
5238         (layout_type): Likewise for ARRAY_TYPE.
5239         * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
5240         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
5241         TYPE_TYPELESS_STORAGE.
5242         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
5243
5244 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
5245
5246         PR sanitizer/80349
5247         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
5248         first argument to type.
5249
5250 2017-04-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5251
5252         PR target/80376
5253         PR target/80315
5254         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
5255         CONST0_RTX (mode) rather than const0_rtx where appropriate.
5256         (rs6000_expand_binop_builtin): Likewise.
5257         (rs6000_expand_ternop_builtin): Likewise; also add missing
5258         vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
5259         vshasigma built-ins.
5260         * doc/extend.texi: Document that vec_xxpermdi's third argument
5261         must be a constant.
5262
5263 2017-04-11  Uros Bizjak  <ubizjak@gmail.com>
5264
5265         * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
5266         Use shift_const cost parameter when calculating gain of STV shifts.
5267
5268 2017-04-11  Vladimir Makarov  <vmakarov@redhat.com>
5269
5270         PR rtl-optimization/70478
5271         * lra-constraints.c (process_alt_operands): Check memory for
5272         disfavoring memory insn operand.
5273
5274 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
5275
5276         PR middle-end/80100
5277         * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
5278         left shift in unsigned HOST_WIDE_INT type.
5279
5280         PR rtl-optimization/80385
5281         * simplify-rtx.c (simplify_unary_operation_1): Don't transform
5282         (not (neg X)) into (plus X -1) for complex or non-integral modes.
5283
5284         PR libgomp/80394
5285         * omp-low.c (scan_omp_task): Don't optimize away empty tasks
5286         if they have any depend clauses.
5287
5288 2017-04-11  Martin Liska  <mliska@suse.cz>
5289
5290         PR ipa/80212
5291         * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
5292         * ipa-split.c (split_function): Create a local comdat symbol
5293         if caller is in a comdat group.
5294
5295 2017-04-11  Martin Liska  <mliska@suse.cz>
5296
5297         PR ipa/80212
5298         * ipa-cp.c (determine_versionability): Handle calls_comdat_local
5299         flags.
5300
5301 2017-04-11  Martin Sebor  <msebor@redhat.com>
5302
5303         PR middle-end/80364
5304         * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
5305         always use the int type.  Use INTEGRAL_TYPE_P() rather than testing
5306         for INTEGER_TYPE.
5307         (directive::set_width, directive::set_precision, format_character):
5308         Adjust.
5309         (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
5310         INTEGER_TYPE.
5311
5312 2017-04-11  Richard Earnshaw  <rearnsha@arm.com>
5313
5314         PR target/80389
5315         * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
5316         conflict, set target->arch_name instead of target->cpu_name.
5317
5318 2017-04-11  Richard Biener  <rguenther@suse.de>
5319
5320         PR tree-optimization/80374
5321         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
5322         build_zero_cst, remove fold_convertible_p check again.
5323
5324 2017-04-11  Martin Liska  <mliska@suse.cz>
5325
5326         PR sanitizer/70878
5327         * ubsan.c (instrument_object_size): Do not instrument register
5328         variables.
5329
5330 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
5331
5332         PR target/80381
5333         * config/i386/i386-builtin-types.def
5334         (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
5335         V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
5336         V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
5337         V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
5338         V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
5339         V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
5340         V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
5341         V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
5342         V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
5343         V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
5344         V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
5345         V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
5346         V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
5347         V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
5348         V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
5349         V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
5350         V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
5351         V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
5352         * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
5353         __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
5354         __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
5355         __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
5356         __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
5357         __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
5358         __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
5359         __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
5360         __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
5361         __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
5362         __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
5363         __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
5364         __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
5365         __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
5366         __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
5367         __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
5368         __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
5369         __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
5370         __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
5371         __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
5372         __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
5373         __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
5374         __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
5375         __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
5376         __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
5377         __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
5378         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
5379         __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
5380         aliases.
5381         * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
5382         flag to second_arg_count, handle 4 argument function type _COUNT
5383         aliases, handle second_arg_count on second argument rather than last.
5384
5385 2017-04-10  Jeff Law  <law@redhat.com>
5386
5387         PR tree-optimization/80374
5388         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
5389         record anything if we can not convert integer_zero_node to the
5390         desired type.
5391
5392 2017-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5393
5394         PR target/80108
5395         * config/rs6000/rs6000.c (rs6000_option_override_internal):
5396         Enhance special handling given to the TARGET_P9_MINMAX option in
5397         relation to certain other options.
5398
5399 2017-04-10  Bin Cheng  <bin.cheng@arm.com>
5400
5401         PR tree-optimization/80153
5402         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
5403         remove POINTER_PLUS_EXPR's base part directly, rather than through
5404         aff_tree.
5405
5406 2017-04-10  Richard Biener  <rguenther@suse.de>
5407             Bin Cheng  <bin.cheng@arm.com>
5408
5409         PR tree-optimization/80153
5410         * tree-affine.c (aff_combination_to_tree): Get base pointer from
5411         the first element of pointer type aff_tree.  Build result expr in
5412         aff_tree's type.
5413         (add_elt_to_tree): Convert to type unconditionally.  Remove other
5414         fold_convert calls.
5415         * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
5416         (rewrite_use_nonlinear_expr): Check invariant using iv information.
5417
5418 2017-04-10  Richard Biener  <rguenther@suse.de>
5419
5420         * tree-ssa-structalias.c (find_func_aliases): Properly handle
5421         asm inputs.
5422
5423 2017-04-10  Vladimir Makarov  <vmakarov@redhat.com>
5424
5425         PR rtl-optimization/70478
5426         * lra-constraints.c (curr_small_class_check): New.
5427         (update_and_check_small_class_inputs): New.
5428         (process_alt_operands): Update curr_small_class_check.  Disfavor
5429         alternative insn memory operands.  Check available regs for small
5430         class operands.
5431
5432 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
5433
5434         PR target/80057
5435         * config/mips/mips.opt (-mvirt): Update description.
5436         * doc/invoke.texi (-mvirt): Likewise.
5437
5438 2017-04-10  Richard Biener  <rguenther@suse.de>
5439
5440         PR middle-end/80362
5441         * fold-const.c (fold_binary_loc): Look at unstripped ops when
5442         looking for NEGATE_EXPR in -A / -B to A / B folding.
5443
5444 2017-04-10  Martin Liska  <mliska@suse.cz>
5445
5446         PR gcov-profile/80224
5447         * gcov.c (print_usage): Fix usage string.
5448         (get_gcov_intermediate_filename): Remove.
5449         (output_gcov_file): Use both for normal and intermediate format.
5450         (generate_results): Do not initialize special file for
5451         intermediate format.
5452
5453 2017-04-10  Richard Biener  <rguenther@suse.de>
5454
5455         PR tree-optimization/80304
5456         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
5457         for safelen.
5458
5459 2017-04-10  Nathan Sidwell  <nathan@acm.org>
5460
5461         PR target/79905
5462         * config/rs6000/rs6000.c (rs6000_vector_type): New.
5463         (rs6000_init_builtins): Use it.
5464
5465 2016-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5466
5467         * config/arm/arm.md (<mrc>): Add mode to SET source.
5468         (<mrrc>): Likewise.
5469
5470 2017-04-10  Richard Biener  <rguenther@suse.de>
5471
5472         PR middle-end/80344
5473         * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
5474
5475 2017-04-10  Jakub Jelinek  <jakub@redhat.com>
5476
5477         PR target/80324
5478         * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
5479         _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
5480         _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
5481         _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
5482         _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
5483         _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
5484         _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
5485         _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
5486         _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
5487         _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
5488         _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
5489         _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
5490         _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
5491         _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
5492         _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
5493         _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
5494         _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
5495         _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
5496         _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
5497         _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
5498         _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
5499         _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
5500         _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
5501
5502 2017-04-08  Vladimir Makarov  <vmakarov@redhat.com>
5503
5504         PR rtl-optimization/70478
5505         * lra-constraints.c: Reverse the last patch.
5506
5507 2017-04-08  Andreas Tobler  <andreast@gcc.gnu.org>
5508
5509         * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
5510         Add comment for WCHAR_T.
5511
5512 2017-04-08  Martin Liska  <mliska@suse.cz>
5513
5514         Revert:
5515         2017-04-07  Martin Liska  <mliska@suse.cz>
5516
5517         PR ipa/80212
5518         * ipa-split.c (split_function): Add function part to a same comdat
5519         group.
5520
5521 2017-04-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
5522
5523         PR target/80358
5524         * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
5525
5526 2017-04-07  Pat Haugen  <pthaugen@us.ibm.com>
5527
5528         * rs6000/rs6000.c (vec_load_pendulum): Rename...
5529         (vec_pairing): ...to this.
5530         (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
5531         (rs6000_sched_init): Adjust for name change.
5532         (struct rs6000_sched_context): Likewise.
5533         (rs6000_init_sched_context): Likewise.
5534         (rs6000_set_sched_context): Likewise.
5535
5536 2017-04-07  Jakub Jelinek  <jakub@redhat.com>
5537
5538         PR target/80322
5539         PR target/80323
5540         PR target/80325
5541         PR target/80326
5542         * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
5543         intrinsics.
5544         * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
5545         _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
5546         _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
5547
5548 2017-04-07  Andreas Tobler  <andreast@gcc.gnu.org>
5549
5550         * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
5551
5552 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
5553
5554         PR rtl-optimization/70703
5555         * ira-color.c (update_conflict_hard_regno_costs): Use
5556         int64_t instead of HOST_WIDE_INT.
5557
5558 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
5559
5560         PR rtl-optimization/70478
5561         * lra-constraints.c (process_alt_operands): Disfavor alternative
5562         insn memory operands.
5563
5564 2017-04-07  Jeff Law  <law@redhat.com>
5565
5566         * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
5567         CALL and NOTE_INSN_CALL_ARG_LOCATION.
5568
5569 2017-04-07  Martin Liska  <mliska@suse.cz>
5570
5571         PR target/79889
5572         * config/aarch64/aarch64.c (aarch64_process_target_attr):
5573         Show error message instead of an ICE.
5574
5575 2017-04-07  Martin Liska  <mliska@suse.cz>
5576
5577         PR ipa/80212
5578         * ipa-split.c (split_function): Add function part to a same comdat
5579         group.
5580
5581 2017-04-07  Richard Biener  <rguenther@suse.de>
5582
5583         PR middle-end/80341
5584         * tree.c (get_unwidened): Also handle ! for_type case for
5585         INTEGER_CSTs.
5586         * convert.c (do_narrow): Split out from ...
5587         (convert_to_integer_1): ... here.  Do not pass final truncation
5588         type to get_unwidened for TRUNC_DIV_EXPR.
5589
5590 2017-04-07  Richard Biener  <rguenther@suse.de>
5591
5592         * tree-affine.c (wide_int_ext_for_comb): Take type rather
5593         than aff_tree.
5594         (aff_combination_const): Adjust.
5595         (aff_combination_scale): Likewise.
5596         (aff_combination_add_elt): Likewise.
5597         (aff_combination_add_cst): Likewise.
5598         (aff_combination_convert): Likewise.
5599         (add_elt_to_tree): Likewise.  Remove unused argument.
5600         (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
5601
5602 2017-04-07  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5603
5604         * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
5605         definition.
5606         * config/arm/arm.c (arm_default_short_enums): Use
5607         ARM_DEFAULT_SHORT_ENUMS.
5608         * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
5609
5610 2017-04-06  Jakub Jelinek  <jakub@redhat.com>
5611
5612         PR debug/80234
5613         * dwarf2out.c (gen_member_die): Handle C++17 inline static data
5614         members with redundant out-of-class redeclaration.
5615
5616 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
5617
5618         PR target/80286
5619         * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
5620         * config/i386/i386.md (*zero_extendsidi2):
5621         Add (?*x,*x) and (?*v,*v) alternatives.
5622
5623 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
5624
5625         PR target/79733
5626         * config/i386/i386.c (ix86_expand_builtin)
5627         <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
5628         mode from insn data. Convert operands to insn operand mode.
5629         Copy operands that don't satisfy insn predicate to a register.
5630
5631 2017-04-06  Sam Thursfield  <sam.thursfield@codethink.co.uk>
5632
5633         * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
5634         Update comments.
5635
5636 2017-04-06  Richard Biener  <rguenther@suse.de>
5637
5638         PR tree-optimization/80334
5639         * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
5640         preserve alignment of accesses.
5641
5642 2017-04-06  Richard Biener  <rguenther@suse.de>
5643
5644         PR tree-optimization/80262
5645         * tree-sra.c (build_ref_for_offset): Preserve address-space
5646         information.
5647         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
5648         Drop useless address-space information on MEM_REF offsets.
5649
5650 2017-04-05  Andreas Schwab  <schwab@linux-m68k.org>
5651
5652         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
5653
5654 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
5655
5656         PR rtl-optimization/70703
5657         * ira-color.c (update_conflict_hard_regno_costs): Use
5658         HOST_WIDE_INT instead of long.
5659
5660 2017-04-05  Uros Bizjak  <ubizjak@gmail.com>
5661
5662         PR target/80298
5663         * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
5664         not defined for x86_64 target.  Add -mmmx target option when __SSE2__
5665         is not defined.
5666         * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
5667         for x86_64 target.  Handle -m3dnowa option.
5668
5669 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
5670
5671         PR rtl-optimization/70703
5672         * ira-color.c (update_costs_from_allocno): Use the smallest mode.
5673         (update_conflict_hard_regno_costs): Use long instead of unsigned
5674         arithmetic for cost calculation.
5675
5676 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
5677             Bernd Edlinger  <bernd.edlinger@hotmail.de>
5678
5679         PR sanitizer/80308
5680         * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
5681         for big endian.
5682
5683 2017-04-05  Eric Botcazou  <ebotcazou@adacore.com>
5684
5685         PR target/78002
5686         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
5687         ptr_mode with Pmode throughout.
5688         * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
5689         into probe_stack_range and use DImode.
5690
5691 2017-04-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
5692
5693         PR target/79890
5694         * config/s390/s390.c (s390_register_info_gprtofpr): Return if
5695         call_eh_return is true.
5696
5697 2017-04-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5698
5699         * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
5700         Initialize last_match_fntype_index.
5701
5702 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
5703
5704         PR target/80310
5705         * tree-nvr.c: Include internal-fn.h.
5706         (pass_return_slot::execute): Ignore internal calls without
5707         direct optab.
5708
5709 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
5710             Richard Biener  <rguenther@suse.de>
5711
5712         PR c++/80297
5713         * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
5714         captures used multiple times, except for the last use.
5715         * generic-match-head.c: Include gimplify.h.
5716
5717 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
5718
5719         PR tree-optimization/79390
5720         * target.h (struct noce_if_info): Declare.
5721         * targhooks.h (default_noce_conversion_profitable_p): Declare.
5722         * target.def (noce_conversion_profitable_p): New target hook.
5723         * ifcvt.h (struct noce_if_info): New type, moved from ...
5724         * ifcvt.c (struct noce_if_info): ... here.
5725         (noce_conversion_profitable_p): Renamed to ...
5726         (default_noce_conversion_profitable_p): ... this.  No longer
5727         static nor inline.
5728         (noce_try_store_flag_constants, noce_try_addcc,
5729         noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
5730         noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
5731         instead of noce_conversion_profitable_p.
5732         * config/i386/i386.c: Include ifcvt.h.
5733         (ix86_option_override_internal): Don't override
5734         PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
5735         (ix86_noce_conversion_profitable_p): New function.
5736         (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
5737         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
5738         * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
5739         * doc/tm.texi: Regenerated.
5740
5741 2017-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5742
5743         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
5744         correction.
5745
5746 2017-04-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5747
5748         PR target/80307
5749         * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
5750         instructions for small multiply cores.
5751
5752 2017-04-04  Jeff Law  <law@redhat.com>
5753
5754         * config/mips/mips.c (mips_multi_add): Zero initialize the newly
5755         added member.
5756         (mips_expand_vec_perm_const): Initialize elements in orig_perm
5757         that are not set by the loop over the elements.
5758
5759 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
5760
5761         PR target/80286
5762         * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
5763         int mode, convert_modes it to mode as unsigned, otherwise use
5764         lowpart_subreg to mode rather than SImode.
5765         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
5766         ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
5767         Use DImode instead of SImode for the shift count operand.
5768         * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
5769         Likewise.
5770
5771 2017-04-04  Richard Biener  <rguenther@suse.de>
5772
5773         PR middle-end/80281
5774         * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
5775         arithmetic done for the negate or the plus.  Simplify.
5776         (A - (-B) -> A + B): Likewise.
5777         * fold-const.c (split_tree): Make sure to not negate pointers.
5778
5779 2017-04-04  Segher Boessenkool  <segher@kernel.crashing.org>
5780
5781         PR rtl-optimization/60818
5782         * simplify-rtx.c (simplify_binary_operation_1): Do not replace
5783         a compare of comparisons with the thing compared if this results
5784         in a different machine mode.
5785
5786 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
5787
5788         * alias.c (base_alias_check): Fix typo in comment.
5789         * cgraph.h (class ipa_polymorphic_call_context): Likewise.
5790         * cgraphunit.c (symbol_table::compile): Likewise.
5791         * collect2.c (maybe_run_lto_and_relink): Likewise.
5792         * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
5793         * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
5794         * config/avr/avr.c (avr_map_op_t): Likewise.
5795         * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
5796         * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
5797         * config/epiphany/epiphany.md (movcc): Likewise.
5798         * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
5799         * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
5800         Likewise.
5801         * config/mips/mips.c (mips_save_restore_reg): Likewise.
5802         * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
5803         * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
5804         * config/sh/sh.c (sh_rtx_costs): Likewise.
5805         * fold-const.c (fold_truth_andor): Likewise.
5806         * genautomata.c (collapse_flag): Likewise.
5807         * gengtype.h (struct type::u::s): Likewise.
5808         * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
5809         * input.c (FORMAT_AMOUNT): Likewise.
5810         * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
5811         (known_aggs_to_agg_replacement_list): Likewise.
5812         * ipa-inline-analysis.c: Likewise.
5813         * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
5814         * ipa-polymorphic-call.c
5815         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
5816         * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
5817         * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
5818         Likewise.
5819         * modulo-sched.c (apply_reg_moves): Likewise.
5820         * omp-expand.c (build_omp_regions_1): Likewise.
5821         * trans-mem.c (struct tm_wrapper_hasher): Likewise.
5822         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
5823         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
5824         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
5825         * value-prof.c: Likewise.
5826         * var-tracking.c (val_reset): Likewise.
5827
5828 2017-04-03  Richard Biener  <rguenther@suse.de>
5829
5830         PR tree-optimization/80275
5831         * fold-const.c (split_address_to_core_and_offset): Handle
5832         POINTER_PLUS_EXPR.
5833
5834 2017-04-03  Eric Botcazou  <ebotcazou@adacore.com>
5835
5836         * tree-nested.c (get_descriptor_type): Make sure that the alignment of
5837         descriptors is at least equal to that of functions.
5838
5839 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
5840
5841         * config/i386/sse.md (movdi_to_sse): Add missing DONE.
5842
5843 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
5844
5845         PR target/80250
5846         * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
5847         (mov<IMOD4:mode>): New expander.
5848         (*mov<IMOD4:mode>_internal): New insn and split pattern.
5849
5850 2017-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
5851
5852         PR rtl-optimization/79405
5853         * fwprop.c (propagations_left): New variable.
5854         (forward_propagate_into): Decrement it.
5855         (fwprop_init): Initialize it.
5856         (fw_prop): If the variable has reached zero, stop propagating.
5857         (fwprop_addr): Ditto.
5858
5859 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
5860
5861         PR debug/79255
5862         * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
5863         a FUNCTION_DECL, pass it as decl instead of origin to
5864         process_scope_var.
5865
5866 2017-03-31  Alexander Monakov  <amonakov@ispras.ru>
5867
5868         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
5869         string.
5870
5871 2017-03-31  Pat Haugen  <pthaugen@us.ibm.com>
5872
5873         PR target/80107
5874         * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
5875         TARGET_VSX_SMALL_INTEGER.
5876
5877 2017-03-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5878
5879         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
5880         reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
5881
5882 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
5883
5884         * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
5885         extraction from odd-numbered MSA register.
5886
5887 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
5888
5889         PR middle-end/80173
5890         * expmed.c (store_bit_field_1): Don't attempt to create
5891         a word subreg out of hard registers wider than word if they
5892         have HARD_REGNO_NREGS of 1 for their mode.
5893
5894         PR middle-end/80163
5895         * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
5896         conversions to integer types wider than word and pointer.
5897
5898         PR debug/80025
5899         * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
5900         (rtx_equal_for_cselib_p): Pass 0 to it.
5901         * cselib.c (cselib_hasher::equal): Likewise.
5902         (rtx_equal_for_cselib_1): Add depth argument.  If depth
5903         is 128, don't look up VALUE locs and punt.  Increment
5904         depth in recursive calls when walking VALUE locs.
5905
5906 2017-03-31  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5907
5908         * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
5909         (make_gcov_file_name): Use the canonical path name for generating
5910         the MD5 value.
5911         (read_line): Fix handling of files with ascii null bytes.
5912
5913 2017-03-30  Matthew Fortune  <matthew.fortune@imgtec.com>
5914
5915         * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
5916         to initialise a vector register instead
5917         of using a const_int.
5918
5919 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
5920
5921         PR translation/80189
5922         * gimplify.c (omp_default_clause): Use %qs instead of %s in
5923         diagnostic messages.
5924
5925 2017-03-30  Peter Bergner  <bergner@vnet.ibm.com>
5926
5927         PR target/80246
5928         * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
5929         (dfp_diex_<mode>): Update mode of operand 1.
5930         * doc/extend.texi (dxex, dxexq): Document change to return type.
5931         (diex, diexq): Document change to argument type.
5932
5933 2017-03-30  Martin Jambor  <mjambor@suse.cz>
5934
5935         PR ipa/77333
5936         * cgraph.h (cgraph_build_function_type_skip_args): Declare.
5937         * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
5938         it reflects the signature changes performed at the callee side.
5939         * cgraphclones.c (build_function_type_skip_args): Make public, renamed
5940         to cgraph_build_function_type_skip_args.
5941         (build_function_decl_skip_args): Adjust call to the above function.
5942
5943 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
5944
5945         PR target/80206
5946         * config/i386/sse.md
5947         (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
5948         register as dest whenever it is a MEM not rtx_equal_p to the
5949         corresponding dup operand, and when forcing into reg move the
5950         reg into the memory afterwards.
5951         (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
5952         Likewise.  Use <ssehalfvecmode> instead of <ssequartermode>
5953         for the force_reg mode.
5954         (avx512vl_vextractf128<mode>): Use register as dest either
5955         always when a MEM, or when it is a MEM not rtx_equal_p to the
5956         corresponding dup operand, or even not when it is a CONST_VECTOR
5957         depending on the mode and lo vs. hi.
5958         (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
5959         parens.
5960         (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
5961         (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
5962         Likewise.  Require that operands[2] is even.
5963         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
5964         Remove extraneous parens.  Require that operands[2] is a multiple
5965         of 4.
5966         (vec_extract_lo_<mode><mask_name>): Don't bother testing if
5967         operands[0] is a MEM if <mask_applied>, the predicates/constraints
5968         disallow memory then.
5969
5970 2017-03-30  Richard Biener  <rguenther@suse.de>
5971
5972         PR tree-optimization/77498
5973         * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
5974         to non-constants over backedges.
5975
5976 2017-03-29  Segher Boessenkool  <segher@kernel.crashing.org>
5977
5978         PR rtl-optimization/80233
5979         * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
5980         as last_combined_insn.  Do not test for BARRIER_P separately.
5981
5982 2017-03-29  Andreas Schwab  <schwab@suse.de>
5983
5984         PR ada/80146
5985         * calls.c (prepare_call_address): Convert funexp to Pmode before
5986         copying to temp reg.
5987
5988 2017-03-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5989
5990         PR tree-optimization/80158
5991         * gimple-ssa-strength-reduction.c (replace_mult_candidate):
5992         Handle possible future case of more than one alternate
5993         interpretation.
5994         (replace_rhs_if_not_dup): Likewise.
5995         (replace_one_candidate): Likewise.
5996
5997 2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>
5998
5999         PR rtl-optimization/80193
6000         * ira.c (ira): Do not check allocation for LRA.
6001
6002 2017-03-28  Alexander Monakov  <amonakov@ispras.ru>
6003
6004         * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
6005         (nvptx_output_simt_exit): Declare.
6006         * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
6007         cfun->machine->unisimt_location.  Handle NULL unisimt_predicate.
6008         (init_softstack_frame): Move initialization of crtl->is_leaf to...
6009         (nvptx_declare_function_name): ...here.  Emit declaration of local
6010         memory space buffer for omp_simt_enter insn.
6011         (nvptx_output_unisimt_switch): New.
6012         (nvptx_output_softstack_switch): New.
6013         (nvptx_output_simt_enter): New.
6014         (nvptx_output_simt_exit): New.
6015         * config/nvptx/nvptx.h (struct machine_function): New fields
6016         has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
6017         * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
6018         (UNSPECV_SIMT_EXIT): Ditto.
6019         (omp_simt_enter_insn): New insn.
6020         (omp_simt_enter): New expansion.
6021         (omp_simt_exit): New insn.
6022         * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
6023
6024         * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
6025         (expand_GOMP_SIMT_ENTER_ALLOC): New.
6026         (expand_GOMP_SIMT_EXIT): New.
6027         * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
6028         (GOMP_SIMT_ENTER_ALLOC): Ditto.
6029         (GOMP_SIMT_EXIT): Ditto.
6030         * target-insns.def (omp_simt_enter): New insn.
6031         (omp_simt_exit): Ditto.
6032         * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
6033         simt_dlist.
6034         (lower_rec_simd_input_clauses): Implement SIMT privatization.
6035         (lower_rec_input_clauses): Likewise.
6036         (lower_lastprivate_clauses): Handle SIMT privatization.
6037
6038         * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
6039         (ompdevlow_adjust_simt_enter): New.
6040         (find_simtpriv_var_op): New.
6041         (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
6042         IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
6043
6044         * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
6045         * tree-inline.c (expand_call_inline): Handle SIMT privatization.
6046         (copy_decl_for_dup_finish): Ditto.
6047
6048         * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
6049
6050 2017-03-28  Uros Bizjak  <ubizjak@gmail.com>
6051
6052         PR target/53383
6053         * config/i386/i386.c (ix86_option_override_internal): Always
6054         allow -mpreferred-stack-boundary=3 for 64-bit targets.
6055
6056 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
6057
6058         * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
6059
6060 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
6061
6062         * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
6063         mark new edge's irreducible flag accordign to it.
6064         (vect_do_peeling): Check loop preheader edge's irreducible flag
6065         and pass it to function slpeel_add_loop_guard.
6066
6067 2017-03-28  Richard Sandiford  <richard.sandiford@arm.com>
6068
6069         PR tree-optimization/80218
6070         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
6071         Update block frequencies and counts.
6072
6073 2017-03-28  Richard Biener  <rguenther@suse.de>
6074
6075         PR tree-optimization/78644
6076         * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
6077         of a simplification result we may not use it at all.
6078
6079 2017-03-28  Richard Biener  <rguenther@suse.de>
6080
6081         PR ipa/80205
6082         * tree-inline.c (copy_phis_for_bb): Do not create PHI node
6083         without arguments, generate default definition of a SSA name.
6084
6085 2017-03-28  Richard Biener  <rguenther@suse.de>
6086
6087         PR middle-end/80222
6088         * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
6089         TYPE_REF_CAN_ALIAS_ALL references.
6090         * fold-const.c (fold_indirect_ref_1): Likewise.
6091
6092 2017-03-28  Martin Liska  <mliska@suse.cz>
6093
6094         PR ipa/80104
6095         * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
6096         thunk call as DECL_GIMPLE_REG_P when vector or complex type.
6097
6098 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
6099             Thomas Petazzoni  <thomas.petazzoni@free-electrons.com>
6100
6101         * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
6102         (EXTRA_SPECS): Define.
6103         (SUBTARGET_EXTRA_SPECS): Likewise.
6104         (SUBTARGET_CPP_SPEC): Likewise.
6105         * config/arc/elf.h (EXTRA_SPECS): Renamed to
6106         SUBTARGET_EXTRA_SPECS.
6107         * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
6108
6109 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
6110
6111         * config/arc/simdext.md (vst64_insn): Update pattern.
6112         (vld32wh_insn): Likewise.
6113         (vld32wl_insn): Likewise.
6114         (vld64_insn): Likewise.
6115         (vld32_insn): Likewise.
6116
6117 2017-03-28  Marek Polacek  <polacek@redhat.com>
6118
6119         PR sanitizer/80067
6120         * fold-const.c (fold_comparison): Use protected_set_expr_location
6121         instead of SET_EXPR_LOCATION.
6122
6123 2017-03-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
6124
6125         * tree.c (add_expr): Avoid name lookup warning.
6126
6127 2017-03-27  Jeff Law  <law@redhat.com>
6128
6129         PR tree-optimization/80216
6130         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
6131         function name.  Limit recursion depth.
6132         (record_temporary_equivalences): Corresponding changes.
6133
6134 2017-03-27  Jonathan Wakely  <jwakely@redhat.com>
6135
6136         * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
6137         covered first.
6138
6139 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
6140
6141         PR target/80102
6142         * reg-notes.def (REG_CFA_NOTE): Define.  Use it for CFA related
6143         notes.
6144         * cfgcleanup.c (reg_note_cfa_p): New array.
6145         (insns_have_identical_cfa_notes): New function.
6146         (old_insns_match_p): Don't cross-jump in between /f
6147         and non-/f instructions.  If both i1 and i2 are frame related,
6148         verify all CFA notes, their order and content.
6149
6150 2017-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
6151
6152         PR target/78543
6153         * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
6154         HImode and SImode with zero extend to DImode to one insn.
6155         (bswap<mode>2_extenddi): Likewise.
6156         (bswapsi2_extenddi): Likewise.
6157         (bswaphi2_extendsi): Likewise.
6158         (bswaphi2): Combine bswap HImode and SImode into one insn.
6159         Separate memory insns from swapping register.
6160         (bswapsi2): Likewise.
6161         (bswap<mode>2): Likewise.
6162         (bswaphi2_internal): Delete, no longer used.
6163         (bswapsi2_internal): Likewise.
6164         (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
6165         store, and gpr<-gpr swap insns.
6166         (bswap<mode>2_store): Likewise.
6167         (bswaphi2_reg): Register only splitter, combine with the splitter.
6168         (bswaphi2 splitter): Likewise.
6169         (bswapsi2_reg): Likewise.
6170         (bswapsi2 splitter): Likewise.
6171         (bswapdi2): If we have the LDBRX and STDBRX instructions, split
6172         the insns into load, store, and register/register insns.
6173         (bswapdi2_ldbrx): Likewise.
6174         (bswapdi2_load): Likewise.
6175         (bswapdi2_store): Likewise.
6176         (bswapdi2_reg): Likewise.
6177
6178 2017-03-27  Gunther Nikl  <gnikl@users.sourceforge.net>
6179
6180         * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
6181         (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
6182
6183 2017-03-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
6184
6185         PR target/80103
6186         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
6187         add comments.
6188         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
6189         special handling for target option conflicts between dform
6190         options (-mpower9-dform, -mpower9-dform-vector,
6191         -mpower9-dform-scalar) and -mno-direct-move.
6192
6193 2017-03-27  Richard Biener  <rguenther@suse.de>
6194
6195         PR tree-optimization/80181
6196         * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
6197
6198 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
6199
6200         * config/arc/predicates.md (move_double_src_operand): Replace the
6201         call to move_double_src_operand with a call to address_operand.
6202
6203 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
6204
6205         * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
6206         * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
6207         * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
6208
6209 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
6210
6211         * config/arc/predicates.md (long_immediate_loadstore_operand):
6212         Consider scaled addresses cases.
6213
6214 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
6215
6216         * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
6217         restored when in interrupt.
6218         * config/arc/arc.md (simple_return): ARCv2 rtie instruction
6219         doesn't have delay slot.
6220
6221 2017-03-27  Richard Biener  <rguenther@suse.de>
6222
6223         PR ipa/79776
6224         * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
6225         inlined thunk clones.
6226
6227 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
6228
6229         PR sanitizer/80168
6230         * asan.c (instrument_derefs): Copy over last operand from
6231         original COMPONENT_REF to the new COMPONENT_REF with
6232         DECL_BIT_FIELD_REPRESENTATIVE.
6233         * ubsan.c (instrument_object_size): Likewise.
6234
6235 2017-03-27  Richard Biener  <rguenther@suse.de>
6236
6237         PR tree-optimization/80170
6238         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
6239         sure DR/SCEV didnt fold in constants we do not see when looking
6240         at the reference base alignment.
6241
6242 2017-03-27  Richard Biener  <rguenther@suse.de>
6243
6244         PR middle-end/80171
6245         * gimple-fold.c (fold_ctor_reference): Properly guard against
6246         NULL return value from canonicalize_constructor_val.
6247
6248 2017-03-25  Uros Bizjak  <ubizjak@gmail.com>
6249
6250         PR target/80180
6251         * config/i386/i386.c (ix86_expand_builtin)
6252         <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
6253         flags reg setting and flags reg using instructions.
6254         <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
6255         clobbering instructions to zero extend op2.
6256
6257 2017-03-25  Gerald Pfeifer  <gerald@pfeifer.com>
6258
6259         * doc/install.texi (Configuration) <--with-aix-soname>:
6260         Update link to AIX ld.
6261
6262 2017-03-25  Bernd Schmidt  <bschmidt@redhat.com>
6263
6264         PR rtl-optimization/80160
6265         PR rtl-optimization/80159
6266         * lra-assigns.c (must_not_spill_p): Tighten new test to also take
6267         reg_alternate_class into account.
6268
6269 2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>
6270
6271         PR target/80148
6272         * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
6273         to consider in curr_insn_transform.
6274
6275 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
6276
6277         * genrecog.c (validate_pattern): Add VEC_SELECT validation.
6278         * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
6279         and emit_mode_inner.
6280
6281 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6282
6283         * config/s390/s390-builtins.def: Add VXE builtins.  Add a flags
6284         argument to the overloaded builtin variants.  Use the new flag to
6285         deprecate certain builtin variants.
6286         * config/s390/s390-builtin-types.def: Add new builtin types.
6287         * config/s390/s390-builtins.h: Support new flags field for
6288         overloaded builtins.
6289         * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
6290         (s390_macro_to_expand): Enable vector float data type.
6291         (s390_cpu_cpp_builtins_internal): Indicate support of the new
6292         builtins by incrementing the __VEC__ version number.
6293         (s390_expand_overloaded_builtin): Support expansion of vec_xl and
6294         vec_xst.
6295         (s390_resolve_overloaded_builtin): Emit error messages depending
6296         on the builtin flags.
6297         * config/s390/s390.c (s390_expand_builtin): Support additional
6298         flags argument.  Change error message to match the messages
6299         emitted in s390-c.c.
6300         * config/s390/s390.md: New UNSPEC_* constants.
6301         (op_type): Add new instruction types.
6302         * config/s390/vecintrin.h: Add new builtins and test data class
6303         constants.
6304         * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
6305         (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
6306         (VEC_INEXACT, VEC_NOINEXACT): New constants.
6307         ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
6308         ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
6309         ("vec_mergel<mode>"): V_HW -> VEC_HW.
6310
6311         ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
6312         ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
6313         ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
6314         ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
6315
6316         ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
6317         ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
6318         ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
6319         ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
6320
6321         ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
6322         ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
6323         ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
6324         ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
6325         ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
6326         ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
6327         ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
6328
6329         ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
6330         ("vec_scatter_element<V_HW_4:mode>_DI")
6331         ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
6332         ("vec_fpint<mode>", "vflls")
6333         ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
6334         ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
6335         ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
6336         ("*vec_cmphe<mode>_cc"): ... these.
6337
6338         ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
6339         mode constant instead of magic value.
6340
6341 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6342
6343         * config/s390/s390.c (s390_expand_vec_compare): Support other
6344         vector floating point modes than just V2DF.
6345         (s390_expand_vcond): Likewise.
6346         (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
6347         (s390_cannot_change_mode_class): Prevent mode changes between TF
6348         and V1TF in vector registers.
6349         * config/s390/s390.md (DF, SF): New mode attributes.
6350         ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
6351         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
6352         SFmode support for VRs.
6353         * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
6354         vector fp modes.
6355         (VFT, VF_HW): New mode iterators.
6356         (vw, sdx): New mode attributes.
6357         ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
6358         ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
6359         ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
6360         ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
6361         ("vec_unorderedv2df"): Adjust the v2df only patterns to support
6362         also the new vector floating point modes.  Renaming to ...
6363
6364         ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
6365         ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
6366         ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
6367         ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
6368         ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
6369         ("vec_unordered<mode>"): ... these.
6370
6371         ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
6372         ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
6373         ("*vec_extendv2df"): New insn definitions.
6374
6375 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6376
6377         * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
6378         ("mulditi3_2", "*muldi3_sign"): New patterns.
6379         ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
6380         rename the pattern definition.
6381
6382 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6383
6384         * config/s390/s390.md ("indirect_jump"): Turn insn definition into
6385         expander.
6386         ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
6387
6388 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6389
6390         * config/s390/s390.c (s390_expand_vec_init): Use vllezl
6391         instruction if possible.
6392         * config/s390/vector.md (vec_halfnumelts): New mode
6393         attribute.
6394         ("*vec_vllezlf<mode>"): New pattern.
6395
6396 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6397
6398         * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
6399         ("popcountv4si2", "popcountv2di2"): Rename to ...
6400         ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
6401         ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
6402         condition.
6403         ("popcount<mode>2_vxe"): New pattern.
6404
6405 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6406
6407         * common/config/s390/s390-common.c (processor_flags_table): Add
6408         arch12.
6409         * config.gcc: Add arch12.
6410         * config/s390/driver-native.c (s390_host_detect_local_cpu):
6411         Default to arch12 for unknown CPU model numbers.
6412         * config/s390/s390-builtins.def: Add B_VXE builtin flag.
6413         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
6414         PROCESSOR_max sanity check.
6415         * config/s390/s390-opts.h (enum processor_type): Add
6416         PROCESSOR_ARCH12.
6417         * config/s390/s390.c (processor_table): Add arch12.
6418         (s390_expand_builtin): Add check for B_VXE flag.
6419         (s390_issue_rate): Add PROCESSOR_ARCH12.
6420         (s390_get_sched_attrmask): Likewise.
6421         (s390_get_unit_mask): Likewise.
6422         (s390_sched_score): Enable z13 scheduling for arch12.
6423         (s390_sched_reorder): Likewise.
6424         (s390_sched_variable_issue): Likewise.
6425         * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
6426         PF_VXE.
6427         (s390_tune_attr): Use z13 scheduling also for arch12.
6428         (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
6429         (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
6430         (TARGET_VXE_P): New macros.
6431         * config/s390/s390.md: Add arch12 to cpu attribute.  Add arch12
6432         and vxe to cpu_facility.  Add arch12 and vxe to enabled attribute.
6433         * config/s390/s390.opt: Add arch12 as processor_type.
6434
6435 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6436
6437         * config/s390/s390.md
6438         ("fixuns_truncdddi2", "fixuns_trunctddi2")
6439         ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
6440         ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
6441
6442         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
6443         Rename expanders to ...
6444
6445         ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
6446         ("fixuns_truncdddi2_emu"): ... these.
6447
6448         ("fixuns_trunc<mode>si2_emu"): New expander.
6449
6450         ("*fixuns_truncdfdi2_z13"): Rename to ...
6451         ("*fixuns_truncdfdi2_vx"): ... this.
6452
6453 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6454
6455         * config/s390/2964.md: Remove the single element vector compare
6456         instructions which are no longer used.
6457         * config/s390/s390.c (s390_select_ccmode): Remove handling of
6458         vector CCmodes.
6459         (s390_canonicalize_comparison): Remove handling of DFmode
6460         compares.
6461         (s390_expand_vec_compare_scalar): Remove function.
6462         (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
6463         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
6464         pattern.
6465         ("*cmp<mode>_ccs"): Add wfcdb instruction.
6466
6467 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6468
6469         * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
6470         FP zero.
6471         ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
6472         will anyway by matched by mov<mode>_64dfp.
6473
6474 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6475
6476         * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
6477         vlef/vstef.  Add missing operand to vleif.
6478
6479 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6480
6481         * config/s390/s390.c (s390_expand_vec_init): Enable vector load
6482         pair for all vector types with 64 bit elements.
6483         * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
6484         * config/s390/vector.md (V_HW_64): ... here.
6485         (V_128_NOSINGLE): New mode iterator.
6486         ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
6487         ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
6488         ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
6489         ("*vec_load_pairv2di"): Change to ...
6490         ("*vec_load_pair<mode>"): ... this one.
6491
6492 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6493
6494         * config/s390/constraints.md: Add comments.
6495         (jKK): Reject element sizes > 8 bytes.
6496         * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
6497         s_operands.
6498         * config/s390/s390.md: Add the s_operand checks formerly in
6499         s390_split_ok_p to various splitters where they are still
6500         required.
6501         * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
6502         for 128 bit vectors.  Plus two splitters.
6503
6504 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6505
6506         * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
6507         the file.
6508
6509 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6510
6511         PR target/79893
6512         * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
6513         error if the boundary argument is not constant.
6514
6515 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
6516
6517         PR rtl-optimization/80112
6518         * loop-doloop.c (doloop_condition_get): Don't check condition
6519         if cmp isn't SET with IF_THEN_ELSE src.
6520
6521 2017-03-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6522
6523         PR tree-optimization/80158
6524         * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
6525         replacing a candidate statement, also replace it for the
6526         candidate's alternate interpretation.
6527         (replace_rhs_if_not_dup): Likewise.
6528         (replace_one_candidate): Likewise.
6529
6530 2017-03-24  Richard Biener  <rguenther@suse.de>
6531
6532         PR tree-optimization/80167
6533         * graphite-isl-ast-to-gimple.c
6534         (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
6535         properly.
6536         (translate_isl_ast_to_gimple::get_rename): Likewise.
6537
6538 2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
6539
6540         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
6541         handling of certain combinations of target options, including the
6542         combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
6543         -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
6544
6545 2017-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6546
6547         PR target/71436
6548         * config/arm/arm.md (*load_multiple): Add reload_completed to
6549         matching condition.
6550
6551 2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6552             Richard Biener  <rguenth@suse.de>
6553
6554         PR tree-optimization/79908
6555         PR tree-optimization/80136
6556         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
6557         been cast away, gimplify_and_add suffices.
6558
6559 2017-03-23  Markus Trippelsdorf  <markus@trippelsdorf.de>
6560
6561         * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
6562
6563 2017-03-23  Richard Biener  <rguenther@suse.de>
6564
6565         PR tree-optimization/80032
6566         * gimplify.c (gimple_push_cleanup): Forced unconditional
6567         cleanups still have to go to the conditional_cleanups
6568         sequence.
6569
6570 2017-03-22  Jakub Jelinek  <jakub@redhat.com>
6571
6572         PR tree-optimization/80072
6573         * tree-ssa-reassoc.c (struct operand_entry): Change id field type
6574         to unsigned int.
6575         (next_operand_entry_id): Change type to unsigned int.
6576         (sort_by_operand_rank): Make sure to return the right return value
6577         even if unsigned fields are bigger than INT_MAX.
6578         (struct oecount): Change cnt and id type to unsigned int.
6579         (oecount_hasher::equal): Formatting fix.
6580         (oecount_cmp): Make sure to return the right return value
6581         even if unsigned fields are bigger than INT_MAX.
6582         (undistribute_ops_list): Change next_oecount_id type to unsigned int.
6583
6584         PR c++/80129
6585         * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
6586         TREE_READONLY on result if writing it more than once.
6587
6588         PR sanitizer/80110
6589         * doc/invoke.texi (-fsanitize=thread): Document that with
6590         -fnon-call-exceptions atomics are not able to throw
6591         exceptions.
6592
6593         PR sanitizer/80110
6594         * tsan.c: Include tree-eh.h.
6595         (instrument_builtin_call): Call maybe_clean_eh_stmt or
6596         maybe_clean_or_replace_eh_stmt where needed.
6597         (instrument_memory_accesses): Add cfg_changed argument.
6598         Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
6599         if it returned true.
6600         (tsan_pass): Adjust caller.  Return TODO_cleanup_cfg if cfg_changed.
6601
6602         PR rtl-optimization/63191
6603         * config/i386/i386.c (ix86_delegitimize_address): Turn into small
6604         wrapper function, moved the whole old content into ...
6605         (ix86_delegitimize_address_1): ... this.  New inline function.
6606         (ix86_find_base_term): Use ix86_delegitimize_address_1 with
6607         true as last argument instead of ix86_delegitimize_address.
6608
6609 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
6610
6611         * config/aarch64/aarch64.c (generic_branch_cost): Copy
6612         cortexa57_branch_cost.
6613
6614 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
6615
6616         * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
6617
6618 2017-03-21  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
6619
6620         PR target/80123
6621         * doc/md.texi (Constraints): Document wA constraint.
6622         * config/rs6000/constraints.md (wA): New.
6623         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
6624         (rs6000_init_hard_regno_mode_ok): Init wA constraint.
6625         * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
6626         * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
6627
6628 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
6629
6630         PR c++/80029
6631         * gimplify.c (is_oacc_declared): New function.
6632         (oacc_default_clause): Use it to set default flags for acc declared
6633         variables inside parallel regions.
6634         (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
6635         declared variables.
6636         (gimplify_oacc_declare): Gimplify the declare clauses.  Add the
6637         declare attribute to any decl as necessary.
6638
6639 2017-03-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6640
6641         PR target/80082
6642         * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
6643         (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
6644         * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
6645         (arm_arch_lpae): This.
6646         * config/arm/arm.c (arm_arch7ve): Rename into ...
6647         (arm_arch_lpae): This.  Define it in term of isa_bit_lpae.
6648         * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
6649         arm_arch_lpae.
6650
6651 2017-03-22  Martin Liska  <mliska@suse.cz>
6652
6653         PR target/79906
6654         * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
6655         error message instead of an ICE.
6656
6657 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6658
6659         * doc/extend.texi (6.11 Additional Floating Types): Revise.
6660
6661 2017-03-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
6662
6663         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
6664         comments.
6665         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
6666         comments.
6667
6668 2017-03-21  Martin Sebor  <msebor@redhat.com>
6669
6670         * doc/extend.texi: Use "cannot" instead of "can't."
6671         * doc/hostconfig.texi: Same.
6672         * doc/install.texi: Same.
6673         * doc/invoke.texi: Same.
6674         * doc/loop.texi: Same.
6675         * doc/md.texi: Same.
6676         * doc/objc.texi: Same.
6677         * doc/rtl.texi: Same.
6678         * doc/tm.texi: Same.
6679         * doc/tm.texi.in: Same.
6680         * doc/trouble.texi: Same.
6681
6682 2017-03-21  Alexandre Oliva <aoliva@redhat.com>
6683
6684         PR debug/63238
6685         * dwarf2out.c (struct checksum_attributes): Add at_alignment.
6686         (collect_checksum_attributes): Set it.
6687         (die_checksum_ordered): Use it.
6688
6689 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6690
6691         PR tree-optimization/79908
6692         * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
6693         change: For a VA_ARG whose LHS has been cast away, use
6694         force_gimple_operand to construct the side effects.
6695
6696 2017-03-21  David Malcolm  <dmalcolm@redhat.com>
6697
6698         PR translation/80001
6699         * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
6700         more amenable to translation.
6701         (oacc_loop_auto_partitions): Likewise.
6702
6703 2017-03-21  Marek Polacek  <polacek@redhat.com>
6704             Martin Sebor  <msebor@redhat.com>
6705
6706         PR tree-optimization/80109
6707         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
6708         on INTEGRAL_TYPE_P.
6709
6710 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
6711             Segher Boessenkool  <segher@kernel.crashing.org>
6712
6713         PR target/80125
6714         * combine.c (can_combine_p): Revert the 2017-03-20 change, only
6715         check reg_used_between_p between insn and one of succ or succ2
6716         depending on if succ is artificial insn not inserted into insn
6717         stream.
6718
6719 2017-03-21  Martin Liska  <mliska@suse.cz>
6720
6721         PR gcov-profile/80081
6722         * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
6723         * doc/gcc.texi: Include gcov-dump stuff.
6724         * doc/gcov-dump.texi: New file.
6725
6726 2017-03-21  Toma Tabacu  <toma.tabacu@imgtec.com>
6727
6728         PR rtl-optimization/79150
6729         * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
6730         conditional jump, if the jump is the last insn of the loop.
6731
6732 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6733             Richard Biener  <rguenth@suse.de>
6734
6735         PR tree-optimization/79908
6736         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
6737         been cast away, use force_gimple_operand to construct the side
6738         effects.
6739
6740 2017-03-21  Martin Liska  <mliska@suse.cz>
6741
6742         PR libfortran/79956
6743         * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
6744         to NULL.
6745
6746 2017-03-21  Brad Spengler <spender@grsecurity.net>
6747
6748         PR plugins/80094
6749         * plugin.c (htab_hash_plugin): New function.
6750         (add_new_plugin): Use it and adjust.
6751         (parse_plugin_arg_opt): Adjust.
6752         (init_one_plugin): Likewise.
6753
6754 2017-03-21  Richard Biener  <rguenther@suse.de>
6755
6756         PR tree-optimization/80032
6757         * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
6758         if set force the cleanup to happen unconditionally.
6759         (gimplify_target_expr): Push inserted clobbers with force_uncond
6760         to avoid them being removed by control-dependent DCE.
6761
6762 2017-03-21  Richard Biener  <rguenther@suse.de>
6763
6764         PR tree-optimization/80122
6765         * tree-inline.c (copy_bb): Do not expans va-arg packs or
6766         va_arg_pack_len when the inlined call stmt requires pack
6767         expansion itself.
6768         * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
6769
6770 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
6771
6772         PR sanitizer/78158
6773         * tsan.c (instrument_builtin_call): If the memory model argument
6774         is not a constant, assume it is valid.
6775
6776         PR c/67338
6777         * fold-const.c (round_up_loc): Negate divisor in unsigned type to
6778         avoid UB.
6779
6780 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
6781
6782         PR rtl-optimization/79910
6783         * combine.c (can_combine_p): Do not allow combining an I0 or I1
6784         if its dest is used by an insn before I2 (other than the combined
6785         insns themselves, which are properly handled already).
6786
6787 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
6788
6789         Revert:
6790         2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
6791
6792         * combine.c (record_used_regs): New static function.
6793         (try_combine): Handle situations where there is an additional
6794         instruction between I2 and I3 which needs to have a LOG_LINK
6795         updated.
6796
6797         Revert:
6798         2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
6799
6800         * combine.c (try_combine): Delete redundant i1 test.  Call
6801         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
6802
6803 2017-03-20  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
6804
6805         PR target/80083
6806         * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
6807         alternatives 13/14.
6808
6809 2017-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6810
6811         PR tree-optimization/80054
6812         * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
6813         the optimization if a PHI or any of its arguments is not dominated
6814         by the candidate's basis.  Use gphi* rather than gimple* as
6815         appropriate.
6816         (replace_profitable_candidates): Clean up a gimple* variable that
6817         should be a gphi* variable.
6818
6819 2017-03-20  Martin Sebor  <msebor@redhat.com>
6820
6821         PR c++/52477
6822         * doc/extend.texi (attribute constructor): Document present limitation.
6823
6824 2017-03-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
6825
6826         PR target/79963
6827         * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
6828         __POWER9_VECTOR__ #ifdef control, change template definition to
6829         use Power9-specific built-in function.
6830         (vec_any_eq): Likewise.
6831         * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
6832         to control outcomes from this test.
6833         (vector_ae_<mode>p): For VEC_F modes, likewise.
6834
6835 2017-03-20  Ian Lance Taylor  <iant@google.com>
6836
6837         * config/i386/i386.c (ix86_function_regparm): Save an extra
6838         register for -fsplit-stack with DECL_STATIC_CHAIN.
6839
6840 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
6841
6842         PR target/79912
6843         * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
6844         (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
6845
6846 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
6847
6848         * config/riscv/riscv.c (riscv_print_operand): Use "fence
6849         iorw,ow".
6850         * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
6851         iorw,iorw".
6852
6853 2017-03-20  Marek Polacek  <polacek@redhat.com>
6854
6855         PR sanitizer/80063
6856         * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
6857
6858 2017-03-20  Richard Biener  <rguenther@suse.de>
6859
6860         PR tree-optimization/80113
6861         * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
6862         allocate extra SSA name for PHI def.
6863         (add_close_phis_to_outer_loops): Likewise.
6864         (add_close_phis_to_merge_points): Likewise.
6865         (copy_loop_close_phi_args): Likewise.
6866         (copy_cond_phi_nodes): Likewise.
6867
6868 2017-03-20  Martin Liska  <mliska@suse.cz>
6869
6870         PR middle-end/79753
6871         * tree-chkp.c (chkp_build_returned_bound): Do not build
6872         returned bounds for a LHS that's not a BOUNDED_P type.
6873
6874 2017-03-20  Martin Liska  <mliska@suse.cz>
6875
6876         PR target/79769
6877         PR target/79770
6878         * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
6879         COMPLEX_CST and VECTOR_CST.
6880
6881 2017-03-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6882
6883         PR target/78857
6884         * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
6885         target operand.  A new splitter adds the clobber statement in case
6886         the target operand is dead anyway.
6887
6888 2017-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
6889
6890         * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
6891         to age-old versions of binutils and glibc.
6892
6893 2017-03-18  Segher Boessenkool  <segher@kernel.crashing.org>
6894
6895         * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
6896
6897 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
6898
6899         * doc/contrib.texi (Contributors): Add Segher Boessenkool.
6900
6901 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
6902
6903         * doc/install.texi (Specific) <arm-*-eabi>: Remove old
6904         requirement for binutils 2.13.
6905
6906 2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
6907
6908         * combine.c (try_combine): Delete redundant i1 test.  Call
6909         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
6910
6911 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com
6912
6913         * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
6914         riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
6915         contents.
6916         <riscv64-*-elf>: Re-arrange section
6917         <riscv32-*-elf>: Add a note about requiring binutils 2.28.
6918         <riscv32-*-linux>: Likewise.
6919         <riscv64-*-elf>: Likewise
6920         <riscv64-*-linux>: Likewise.
6921
6922 2017-03-17  Richard Earnshaw  <rearnsha@arm.com>
6923
6924         PR target/80052
6925         * aarch64.opt(verbose-cost-dump): Fix typo.
6926
6927 2017-03-17  Pat Haugen  <pthaugen@us.ibm.com>
6928
6929         PR target/79951
6930         * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
6931         for VECTOR_UNIT_VSX_P (<MODE>mode) too.
6932
6933 2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
6934
6935         * reload.c (find_reloads): When reloading a nonoffsettable address,
6936         use RELOAD_OTHER for it and its address reloads.
6937
6938         PR rtl-optimization/79910
6939         * combine.c (record_used_regs): New static function.
6940         (try_combine): Handle situations where there is an additional
6941         instruction between I2 and I3 which needs to have a LOG_LINK
6942         updated.
6943
6944 2017-03-17  Jeff Law  <law@redhat.com>
6945
6946         PR tree-optimization/71437
6947         * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
6948         conditional in the hash table first.
6949         (vrp_dom_walker::before_dom_children): Extract condition from
6950         ASSERT_EXPR.  Record condition, its inverion and any implied
6951         conditions as well.
6952
6953 2017-03-17  Marek Polacek  <polacek@redhat.com>
6954             Markus Trippelsdorf  <markus@trippelsdorf.de>
6955
6956         PR tree-optimization/80079
6957         * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
6958         m_stores_head.
6959
6960 2017-03-17  Richard Biener  <rguenther@suse.de>
6961
6962         PR middle-end/80075
6963         * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
6964         Properly verify the LHS before the RHS possibly claims to be
6965         handled.
6966         (stmt_could_throw_p): Hande gimple conds fully here.  Clobbers
6967         do not throw.
6968
6969 2017-03-17  Martin Jambor  <mjambor@suse.cz>
6970
6971         * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
6972         (List of -O2 options): Likewise.
6973         (-fipa-bit-cp): Replace "ipa" with "interprocedural."
6974         (-fipa-vrp) New.
6975
6976 2017-03-17  Tom de Vries  <tom@codesourcery.com>
6977
6978         * gcov-dump.c (print_usage): Print bug_report_url.
6979
6980 2017-03-17  Richard Biener  <rguenther@suse.de>
6981
6982         PR middle-end/80050
6983         * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
6984         (parser::peek): Likewise.
6985
6986 2017-03-17  Richard Biener  <rguenther@suse.de>
6987
6988         PR tree-optimization/80048
6989         * sese.c (free_sese_info): Properly release rename_map and
6990         copied_bb_map elements.
6991
6992 2017-03-16  Alexandre Oliva <aoliva@redhat.com>
6993
6994         * gimple-ssa-store-merging.c (struct imm_store_chain_info):
6995         Add linked-list forward and backlinks.  Insert on
6996         construction, remove on destruction.
6997         (class pass_store_merging): Add m_stores_head field.
6998         (pass_store_merging::terminate_and_process_all_chains):
6999         Iterate over m_stores_head list.
7000         (pass_store_merging::terminate_all_aliasing_chains):
7001         Likewise.
7002         (pass_store_merging::execute): Check for debug stmts first.
7003         Push new chains onto the m_stores_head stack.
7004
7005 2017-03-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
7006
7007         PR target/71294
7008         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
7009         SPLAT operation on ISA 2.07 64-bit systems that have direct move,
7010         but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
7011
7012 2017-03-16  Jeff Law  <law@redhat.com>
7013
7014         PR tree-optimization/71437
7015         * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
7016         member function.  Implementation moved into after_dom_children
7017         member function and into the threader's thread_outgoing_edges
7018         function.
7019         (dom_opt_dom_walker::after_dom_children): Simplify by moving
7020         some code into new thread_outgoing_edges.
7021         * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
7022         definition.  Simplify marker handling (do it here).   Assume we always
7023         have the available expression and the const/copies tables.
7024         (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
7025         and tree-vrp.c
7026         * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
7027         * tree-vrp.c (equiv_stack): No longer file scoped.
7028         (vrp_dom_walker): New class.
7029         (vrp_dom_walker::before_dom_children): New member function.
7030         (vrp_dom_walker::after_dom_children): Likewise.
7031         (identify_jump_threads):  Setup domwalker.  Use it rather than
7032         walking edges in a random order by hand.  Simplify setup/finalization.
7033         (finalize_jump_threads): Remove.
7034         (vrp_finalize): Do not call identify_jump_threads here.
7035         (execute_vrp): Do it here instead and call thread_through_all_blocks
7036         here too.
7037
7038         PR tree-optimization/71437
7039         * tree-ssa-dom.c (pfn_simplify): Add basic_block argument.  All
7040         callers changed.
7041         (simplify_stmt_for_jump_threading): Add basic_block argument.  All
7042         callers changed.
7043         (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
7044         (dom_opt_dom_walker::thread_across_edge): Remove
7045         handle_dominating_asserts argument.  All callers changed.
7046         (record_temporary_equivalences_from_stmts_at_dest): Corresponding
7047         changes.  Remove calls to lhs_of_dominating_assert.  Other
7048         uses of handle_dominating_asserts turn into unconditional code
7049         (simplify_control_stmt_condition_1): Likewise.
7050         (simplify_control_stmt_condition): Likewise.
7051         (thread_through_normal_block, thread_across_edge): Likewise.
7052         * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
7053         * tree-vrp.c (lhs_of_dominating_assert): Move here.  Return original
7054         object if it is not an SSA_NAME.
7055         (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
7056         before calling into the VRP specific simplifiers.
7057         (identify_jump_threads): Remove handle_dominating_asserts
7058         argument.
7059
7060 2017-03-16  Jakub Jelinek  <jakub@redhat.com>
7061
7062         PR fortran/79886
7063         * tree-diagnostic.c (default_tree_printer): No longer static.
7064         * tree-diagnostic.h (default_tree_printer): New prototype.
7065
7066 2017-03-16  Tamar Christina  <tamar.christina@arm.com>
7067
7068         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
7069         Change ins into fmov.
7070
7071 2017-03-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7072
7073         * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
7074         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
7075         Use h_con constraint for operand 1.
7076         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
7077         (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
7078
7079 2017-03-15  Jeff Law  <law@redhat.com>
7080
7081         PR tree-optimization/71437
7082         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
7083         (record_temporary_equivalences): Use it.
7084
7085         PR tree-optimization/71437
7086         * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
7087         tree-ssa-scopedtables.
7088         (lookup_avail_expr, build_and_record_new_cond): Likewise.
7089         (record_conditions, record_cond, vuse_eq): Likewise.
7090         (record_edge_info): Adjust to API tweak of record_conditions.
7091         (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
7092         (record_temporary_equivalences, optimize_stmt): Likewise.
7093         (eliminate_redundant_computations): Likewise.
7094         (record_equivalences_from_stmt): Likewise.
7095         * tree-ssa-scopedtables.c: Include options.h and params.h.
7096         (vuse_eq): New function, moved from tree-ssa-dom.c
7097         (build_and_record_new_cond): Likewise.
7098         (record_conditions): Likewise.  Accept vector of conditions rather
7099         than edge_equivalence structure for first argument.
7100         for the first argument.
7101         (avail_exprs_stack::lookup_avail_expr): New member function, moved
7102         from tree-ssa-dom.c.
7103         (avail_exprs_stack::record_cond): Likewise.
7104         * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
7105         from tree-ssa-dom.c.
7106         (avail_exprs_stack): Add new member functions lookup_avail_expr
7107         and record_cond.
7108         (record_conditions): Declare.
7109
7110 2017-03-15  Vladimir Makarov  <vmakarov@redhat.com>
7111
7112         PR target/80017
7113         * lra-constraints.c (process_alt_operands): Increase reject for
7114         reloading an input/output operand.
7115
7116 2017-03-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
7117
7118         PR target/79038
7119         * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
7120         insns to convert from signed/unsigned char/short to IEEE 128-bit
7121         floating point.
7122         (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
7123
7124 2017-03-15  Uros Bizjak  <ubizjak@gmail.com>
7125
7126         PR target/80019
7127         * config/i386/i386.c (ix86_vector_duplicate_value): Create
7128         subreg of inner mode for values already in registers.
7129
7130 2017-03-15  Bernd Schmidt  <bschmidt@redhat.com>
7131
7132         * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
7133         iteration reg is used after the loop.
7134
7135 2017-03-14  Martin Sebor  <msebor@redhat.com>
7136
7137         PR tree-optimization/79800
7138         * gimple-ssa-sprintf.c (format_floating: Add argument.  Handle
7139         precision in negative-positive range.
7140         (format_floating): Call non-const overload with adjusted precision.
7141
7142 2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
7143
7144         PR target/79947
7145         * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
7146         -mpowerpc-gfxopt.
7147
7148 2017-03-14  Martin Sebor  <msebor@redhat.com>
7149
7150         PR middle-end/80020
7151         * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
7152         * builtins.def (aligned_alloc): Use it.
7153
7154         PR c/79936
7155         * Makefile.in (GTFILES): Add calls.c.
7156         * calls.c: Include "gt-calls.h".
7157
7158 2017-03-14  Bernd Schmidt  <bschmidt@redhat.com>
7159
7160         PR rtl-optimization/79728
7161         * regs.h (struct target_regs): New field
7162         x_contains_allocatable_regs_of_mode.
7163         (contains_allocatable_regs_of_mode): New macro.
7164         * reginfo.c (init_reg_sets_1): Initialize it, and change
7165         contains_reg_of_mode so it includes global regs as well.
7166         * reload.c (push_reload): Use contains_allocatable_regs_of_mode
7167         rather than contains_regs_of_mode.
7168
7169 2017-03-14  Martin Liska  <mliska@suse.cz>
7170
7171         * doc/invoke.texi: Document options that can't be combined with
7172         -fcheck-pointer-bounds.
7173
7174 2017-03-14  Martin Liska  <mliska@suse.cz>
7175
7176         PR middle-end/79831
7177         * doc/invoke.texi (-Wchkp): Document the option.
7178
7179 2017-03-14  Martin Liska  <mliska@suse.cz>
7180
7181         * Makefile.in: Install gcov-dump.
7182
7183 2017-03-14  Martin Liska  <mliska@suse.cz>
7184
7185         * multiple_target.c (expand_target_clones): Bail out for
7186         an invalid attribute.
7187
7188 2017-03-14  Richard Biener  <rguenther@suse.de>
7189
7190         * alias.c (struct alias_set_entry): Pack properly.
7191         * cfgloop.h (struct loop): Likewise.
7192         * cse.c (struct set): Likewise.
7193         * ipa-utils.c (struct searchc_env): Likewise.
7194         * loop-invariant.c (struct invariant): Likewise.
7195         * lra-remat.c (struct cand): Likewise.
7196         * recog.c (struct change_t): Likewise.
7197         * rtl.h (struct address_info): Likewise.
7198         * symbol-summary.h (function_summary): Likewise.
7199         * tree-loop-distribution.c (struct partition): Likewise.
7200         * tree-object-size.c (struct object_size_info): Likewise.
7201         * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
7202         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
7203         * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
7204         * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
7205         * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
7206         * tree-vectorizer.h (struct _loop_vec_info): Likewise.
7207         (struct _stmt_vec_info): Likewise.
7208
7209 2017-03-14  Martin Liska  <mliska@suse.cz>
7210
7211         PR target/79892
7212         * multiple_target.c (create_dispatcher_calls): Check that
7213         a target can create a function dispatcher.
7214
7215 2017-03-14  Martin Liska  <mliska@suse.cz>
7216
7217         PR lto/66295
7218         * multiple_target.c (expand_target_clones): Drop local.local
7219         flag for default implementation.
7220
7221 2017-03-14  Richard Biener  <rguenther@suse.de>
7222
7223         PR tree-optimization/80030
7224         * tree-vect-stmts.c (vectorizable_store): Plug memleak.
7225
7226 2017-03-13  Kito Cheng  <kito.cheng@gmail.com>
7227
7228         * config/riscv/riscv.c (riscv_emit_float_compare>: Use
7229         gcc_fallthrough() instead of __attribute__((fallthrough));
7230
7231 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
7232
7233         * doc/gcc.texi: Remove "up" link to (DIR).
7234         * doc/gccint.texi: Ditto.
7235
7236 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
7237
7238         * doc/install.texi (Specific) <avr>: Remove reference to
7239         binutils 2.13.
7240
7241 2017-03-13  Jeff Law  <law@redhat.com>
7242
7243         * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
7244         attribute rather than comments.
7245
7246         * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
7247         match_scratch operand is highest.
7248
7249 2017-03-13  Martin Liska  <mliska@suse.cz>
7250
7251         PR middle-end/78339
7252         * ipa-pure-const.c (warn_function_noreturn): If the declarations
7253         is a CHKP clone, use original declaration.
7254
7255 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
7256
7257         * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
7258         (arc_conditional_register_usage): Use a different allocation order
7259         when optimizing for size.
7260         * common/config/arc/arc-common.c (arc_option_optimization_table):
7261         Section anchors default on when optimizing for size.
7262
7263 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
7264
7265         * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
7266
7267 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
7268
7269         * config/arc/arc.c (arc_output_addsi): Emit code density adds.
7270         * config/arc/arc.md (cpu_facility): Add cd variant.
7271         (*movqi_insn): Add code density variant.
7272         (*movhi_insn): Likewise.
7273         (*movqi_insn): Likewise.
7274         (*addsi3_mixed): Likewise.
7275         (subsi3_insn): Likewise.
7276
7277 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
7278
7279         * config/arc/arc.md (movsi_cond_exec): Update constraint.
7280
7281 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
7282
7283         * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
7284         expressions with MINUS and UNARY ops.
7285
7286 2017-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7287
7288         PR target/79911
7289         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
7290         Rename to...
7291         (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
7292         between vec_select and vector argument.
7293         (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
7294         (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
7295         (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
7296         (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
7297         (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
7298         (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
7299
7300 2017-03-13  Richard Biener  <rguenther@suse.de>
7301
7302         PR other/79991
7303         * params.def (vect-max-peeling-for-alignment): Fix typo.
7304
7305 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
7306
7307         * doc/install.texi (Specific) <mips-*-*>: Remove description of
7308         issue that only occurred with binutils below 2.18.
7309
7310 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
7311
7312         * doc/install.texi (Specific) <cris-axis-elf>: No longer
7313         refer to binutils 2.11/2.12 minimum.
7314
7315 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
7316
7317         * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
7318         ftp.kernel.org and simplify binutils requirement.
7319
7320 2017-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
7321
7322         * doc/invoke.texi (Warning Options): Fix spelling of link-time
7323         optimization.
7324         (Optimize Options): Ditto.  Also remove redundancy.
7325
7326 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
7327
7328         PR translation/79848
7329         * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
7330         "%qs".
7331         * ipa-pure-const.c (suggest_attribute): Likewise.  Convert _
7332         to G_ to avoid double translation.
7333
7334 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
7335
7336         PR translation/79923
7337         * auto-profile.c (get_combined_location): Convert leading
7338         character of diagnostics to lower case and remove trailing period.
7339         (read_profile): Likewise for various diagnostics.
7340         * config/arm/arm.c (arm_option_override): Remove trailing period
7341         from various diagnostics.
7342         * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
7343         (msp430_expand_delay_cycles): Likewise.
7344
7345 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
7346
7347         PR target/79925
7348         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
7349         full command-line argument, rather than just "str".
7350         (aarch64_validate_march): Likewise.
7351         (aarch64_validate_mtune): Likewise.
7352
7353 2017-03-10  Bernd Schmidt  <bschmidt@redhat.com>
7354
7355         PR rtl-optimization/78911
7356         * lra-assigns.c (must_not_spill_p): New function.
7357         (spill_for): Use it.
7358
7359 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
7360
7361         PR tree-optimization/79981
7362         * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
7363         ATOMIC_COMPARE_EXCHANGE ifn result.
7364         (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
7365         IFN_ATOMIC_COMPARE_EXCHANGE.
7366
7367 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
7368
7369         PR driver/79875
7370         * opts.c (parse_sanitizer_options): Add missing question mark to
7371         "did you mean" message.
7372
7373 2017-03-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7374
7375         * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
7376         built-in.
7377         (VMULEUH_UNS): Likewise.
7378         (VMULOUB_UNS): Likewise.
7379         (VMULOUH_UNS): Likewise.
7380         * config/rs6000/rs6000.c (builtin_function_type): Remove
7381         references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
7382
7383 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
7384
7385         PR bootstrap/79952
7386         * read-rtl-function.c (function_reader::read_rtx_operand): Update
7387         x with result of extra_parsing_for_operand_code_0.
7388         (function_reader::extra_parsing_for_operand_code_0): Convert
7389         return type from void to rtx, returning x.  When reading
7390         SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
7391         larger size containing struct block_symbol.
7392
7393 2017-03-10  Segher Boessenkool  <segher@kernel.crashing.org>
7394
7395         * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
7396         -mfloat128-hardware without -m64.
7397
7398 2017-03-10  Will Schmidt <will_schmidt@vnet.ibm.com>
7399
7400         PR target/79941
7401         * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
7402         entries to the case statement that marks unsigned arguments to
7403         overloaded functions.
7404
7405 2017-03-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
7406
7407         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
7408         two typographic errors in the handling of TARGET_UPPER_REGS_DI.
7409
7410 2017-03-10  Pat Haugen  <pthaugen@us.ibm.com>
7411
7412         PR target/79907
7413         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
7414         TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
7415
7416 2017-03-10  Martin Liska  <mliska@suse.cz>
7417
7418         PR target/65705
7419         PR target/69804
7420         * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
7421         * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
7422         FIELD != NULL.
7423
7424 2017-03-10  Olivier Hainque  <hainque@adacore.com>
7425
7426         * tree-switch-conversion (array_value_type): Start by resetting
7427         candidate type to it's main variant.
7428
7429 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
7430
7431         PR rtl-optimization/79909
7432         * combine.c (try_combine): Use simplify_replace_rtx on individual
7433         CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
7434         of the whole CALL_INSN_FUNCTION_USAGE.
7435
7436         PR tree-optimization/79972
7437         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
7438         get_range_info on SSA_NAMEs.  Formatting fixes.
7439
7440 2017-03-10  Richard Biener  <rguenther@suse.de>
7441             Jakub Jelinek  <jakub@redhat.com>
7442
7443         PR tree-optimization/77975
7444         * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
7445         edge to be constant.
7446         (get_val_for): For constant x return it.  Formatting fix.
7447         (loop_niter_by_eval): Avoid pointless looping if the next iteration
7448         would use the same bases as the current one.
7449
7450 2017-03-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7451
7452         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
7453         instead of vec_select for V1TImode.
7454         * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
7455         longer needed.
7456         (VSX_LE_128): Add V1TI to this mode iterator.
7457         (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
7458         (*vsx_le_perm_store_<mode>): Likewise.
7459         (pre-reload splitter for VSX stores): Likewise.
7460         (post-reload splitter for VSX stores): Likewise.
7461         (*vsx_xxpermdi2_le_<mode>): Likewise.
7462         (*vsx_lxvd2x2_le_<mode>): Likewise.
7463         (*vsx_stxvd2x2_le_<mode>): Likewise.
7464
7465 2017-03-09  Michael Eager  <eager@eagercon.com>
7466
7467         Correct failures with --enable-checking=yes,rtl.
7468
7469         * config/microblaze/microblaze.c (microblaze_expand_shift):
7470         Replace GET_CODE test with CONST_INT_P and INTVAL test with
7471         test for const0_rtx.
7472         * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
7473         lshrsi3_byone): Replace INTVAL with test for const1_rtx.
7474
7475 2017-03-09  Richard Biener  <rguenther@suse.de>
7476
7477         PR tree-optimization/79977
7478         * graphite-scop-detection.c (scop_detection::merge_sese):
7479         Handle the case of extra exits to blocks dominating the entry.
7480
7481 2017-03-09  Toma Tabacu  <toma.tabacu@imgtec.com>
7482
7483         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
7484         Document rdynamic.
7485
7486 2017-03-09  Vladimir Makarov  <vmakarov@redhat.com>
7487
7488         PR rtl-optimization/79949
7489         * lra-constraints.c (process_alt_operands): Check memory when
7490         trying to predict a cycle.  Print about the overall increase.
7491
7492 2017-03-09  Richard Biener  <rguenther@suse.de>
7493
7494         PR middle-end/79971
7495         * gimple-expr.c (useless_type_conversion_p): Preserve
7496         TYPE_SATURATING for fixed-point types.
7497
7498 2017-03-09  Richard Biener  <rguenther@suse.de>
7499
7500         PR ipa/79970
7501         * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
7502         alignment of BLKmode params.
7503
7504 2017-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7505
7506         PR target/79913
7507         * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
7508         (VALL_NO_V2Q): Likewise.
7509         (VDQF_DF): Delete.
7510         * config/aarch64/aarch64-simd.md
7511         (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
7512         iterator.
7513         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
7514         VALL_NO_V2Q mode iterator.
7515         (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
7516
7517 2017-03-09  Martin Liska  <mliska@suse.cz>
7518
7519         PR tree-optimization/79631
7520         * tree-chkp-opt.c (chkp_is_constant_addr): Call
7521         tree_int_cst_sign_bit just for INTEGER constants.
7522
7523 2017-03-09  Martin Liska  <mliska@suse.cz>
7524
7525         PR target/65705
7526         PR target/69804
7527         * toplev.c (process_options): Disable -fcheck-pointer-bounds with
7528         sanitizers.
7529
7530 2017-03-09  Marek Polacek  <polacek@redhat.com>
7531
7532         PR c++/79672
7533         * tree.c (inchash::add_expr): Handle TREE_VEC.
7534
7535 2017-03-09  Martin Liska  <mliska@suse.cz>
7536
7537         PR ipa/79764
7538         (chkp_narrow_size_and_offset): New function.
7539         (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
7540         (void chkp_parse_bit_field_ref): New function.
7541         (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
7542         (chkp_process_stmt): Use chkp_parse_bit_field_ref.
7543
7544 2017-03-09  Martin Liska  <mliska@suse.cz>
7545
7546         PR ipa/79761
7547         * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
7548         (chkp_find_bounds_1): Remove gcc_unreachable.
7549
7550 2017-03-09  Jakub Jelinek  <jakub@redhat.com>
7551
7552         PR sanitizer/79944
7553         * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
7554         BUILT_IN_SYNC*, determine the access type from the size suffix and
7555         always build a MEM_REF with that type.  Handle forgotten
7556         BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
7557
7558         PR target/79932
7559         * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
7560         _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
7561         _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
7562         _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
7563         _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
7564         _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
7565         _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
7566         _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
7567         _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
7568         _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
7569         _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
7570         _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
7571         _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
7572         _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
7573         _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
7574         _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
7575         _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
7576         _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
7577         _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
7578         _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
7579         _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
7580         _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
7581         _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
7582         _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
7583         _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
7584         _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
7585         _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
7586         _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
7587         _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
7588         _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
7589         definitions outside of __OPTIMIZE__ guarded section.
7590
7591         PR target/79932
7592         * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
7593         _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
7594         _mm512_packus_epi32, _mm512_maskz_packus_epi32,
7595         _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
7596         guarded section.
7597
7598 2017-03-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7599
7600         * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
7601         ("vfenez<mode>"): Add missing constraints.
7602
7603 2017-03-08  Martin Sebor  <msebor@redhat.com>
7604
7605         PR target/79928
7606         * config/nds32/nds32.c (nds32_option_override):
7607         Fix misspelled diagnostic.
7608
7609 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
7610
7611         PR c/79940
7612         * gimplify.c (gimplify_omp_for): Replace index var in outer
7613         taskloop statement with an artificial variable and add
7614         OMP_CLAUSE_PRIVATE clause for it.
7615
7616 2017-03-08  Richard Biener  <rguenther@suse.de>
7617
7618         PR tree-optimization/79955
7619         * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
7620         for accesses that are completely outside of the variable.
7621
7622 2017-03-08  Andrew Haley  <aph@redhat.com>
7623
7624         PR tree-optimization/79943
7625         * tree-ssa-loop-split.c (compute_new_first_bound): When
7626         calculating the new upper bound, (END-BEG) should be added, not
7627         subtracted.
7628
7629 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
7630
7631         * config/avr/avr.md (setmemhi): Make sure match_dup
7632         operand number comes before match_scratch.
7633
7634 2017-03-08  Richard Biener  <rguenther@suse.de>
7635
7636         PR tree-optimization/79920
7637         * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
7638         with ncopies == 1 to ...
7639         (vect_transform_slp_perm_load): ... here.  Properly compute
7640         all element loads by iterating VF times over the group.  Do
7641         not handle ncopies (computed in a broken way) in
7642         vect_create_mask_and_perm.
7643
7644 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
7645
7646         PR sanitizer/79904
7647         * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
7648         is a uniform vector, use uniform_vector_p return value instead of
7649         building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
7650
7651 2017-03-07  Marek Polacek  <polacek@redhat.com>
7652
7653         PR middle-end/79809
7654         * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
7655         (alloca_call_type): Likewise.
7656
7657 2017-03-07  Martin Liska  <mliska@suse.cz>
7658
7659         * gcov.c (process_args): Put comment to correct location.
7660
7661 2017-03-07  Martin Liska  <mliska@suse.cz>
7662
7663         PR middle-end/68270
7664         * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
7665         Use array_at_struct_end_p instead of DECL_CHAIN (field).
7666         (chkp_narrow_bounds_for_field): Likewise.
7667         (chkp_parse_array_and_component_ref): Pass one more argument to
7668         call.
7669
7670 2017-03-07  Richard Biener  <rguenther@suse.de>
7671
7672         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
7673         preheaders.
7674
7675 2017-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
7676
7677         * config/i386/i386.c (ix86_local_alignment): Align most aggregates
7678         of 16 bytes and more to 16 bytes, not those of 16 bits and more.
7679
7680 2017-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7681
7682         PR c/79855
7683         * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
7684         to end of description.
7685         (PARAM_MAX_STORES_TO_MERGE): Likewise.
7686
7687 2017-03-07  Jakub Jelinek  <jakub@redhat.com>
7688
7689         PR rtl-optimization/79901
7690         * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
7691         ...
7692         (*avx512f_<code><mode>3<mask_name>): ... this.
7693         (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
7694         iterator instead of VI8_AVX2_AVX512BW.
7695
7696         PR rtl-optimization/79901
7697         * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
7698         min/max expander, expand it using expand_vec_cond_expr.
7699
7700         PR sanitizer/79897
7701         * ubsan.c (ubsan_encode_value): Call mark_addressable on the
7702         temporary.
7703
7704 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
7705
7706         PR c++/79821
7707         * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
7708         to void * for PCH reasons.
7709         * dwarf2out.c (output_loc_operands, output_die): Cast
7710         v.val_vec.array to unsigned char *.
7711
7712 2017-03-06  John David Anglin  <danglin@gcc.gnu.org>
7713
7714         PR target/77850
7715         * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
7716         vector types.
7717
7718 2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>
7719
7720         PR rtl-optimization/79571
7721         * lra-constraints.c (process_alt_operands): Calculate static
7722         reject and subtract it from overall when only addresses will be
7723         reloaded.
7724
7725 2017-03-06  Julia Koval  <julia.koval@intel.com>
7726
7727         PR target/79793
7728         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
7729         incoming stack boundary to 128 for 64-bit targets.
7730
7731 2017-03-06  Richard Biener  <rguenther@suse.de>
7732
7733         PR tree-optimization/79894
7734         * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
7735         to NULL after folding it.
7736
7737 2017-03-06  Richard Biener  <rguenther@suse.de>
7738
7739         PR tree-optimization/79824
7740         * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
7741         check disabling peeling for gaps.
7742
7743 2017-03-06  Toma Tabacu  <toma.tabacu@imgtec.com>
7744
7745         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
7746         attributes): Document gettimeofday.
7747
7748 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
7749
7750         * config/s390/s390.c (s390_option_override_internal): Set
7751         PARAM_MIN_VECT_LOOP_BOUND
7752
7753 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
7754
7755         * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
7756         * config/s390/s390.md: Likewise.
7757
7758 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
7759
7760         PR target/79812
7761         * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
7762         (<avx2_avx512>_perm<mode>): Rename to ...
7763         (avx2_perm<mode>): ... this.  Use VI8F_256 iterator instead
7764         of VI8F_256_512.
7765         (<avx512>_perm<mode>_mask): Rename to ...
7766         (avx512vl_perm<mode>_mask): ... this.  Use VI8F_256 iterator instead
7767         of VI8F_256_512.
7768         (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
7769         (avx2_perm<mode>_1<mask_name): ... this.  Use VI8F_256 iterator
7770         instead of VI8F_256_512.
7771         (avx512f_perm<mode>): New define_expand.
7772         (avx512f_perm<mode>_mask): Likewise.
7773         (avx512f_perm<mode>_1<mask_name>): New define_insn.
7774         (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
7775
7776 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
7777
7778         * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
7779         msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
7780         if_then_else.
7781         (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
7782
7783 2017-03-06  Martin Liska  <mliska@suse.cz>
7784
7785         PR sanitize/79783
7786         * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
7787         when having a SSA NAME w/o VAR_DECL assigned to it.
7788
7789 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
7790
7791         * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
7792         msa_dpsub_<su>_d): Fix MODE for vec_select.
7793
7794 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
7795
7796         * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
7797         argument.
7798         * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
7799
7800 2017-03-06  Richard Biener  <rguenther@suse.de>
7801
7802         * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
7803         * plugin.c (register_plugin_info): Likewise.
7804         * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
7805
7806 2017-03-05  Jakub Jelinek  <jakub@redhat.com>
7807
7808         * config/i386/sse.md (sse_storehps, sse_storelps,
7809         avx_<castmode><avxsizesuffix>_<castmode>,
7810         avx512f_<castmode><avxsizesuffix>_<castmode>,
7811         avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
7812         in condition that at least one operand is not a MEM.
7813
7814 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
7815
7816         PR middle-end/79805
7817         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
7818         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
7819         ECF_NOTHROW.
7820         * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
7821         gimple_call_nothrow_p flag based on whether original builtin can throw.
7822         If it can, emit following stmts on the fallthrough edge.
7823         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
7824         don't create new bb if inserting just debug stmts on the edge, try to
7825         insert them on the fallthru bb or just reset debug stmts.
7826
7827 2017-03-03  Segher Boesssenkool  <segher@kernel.crashing.org>
7828
7829         PR target/43763
7830         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
7831         restore recog_data (including the operand rtxes inside it) around
7832         the call to get_insn_template.
7833
7834 2017-03-03  Martin Sebor  <msebor@redhat.com>
7835
7836         PR tree-optimization/79699
7837         * context.c (context::~context): Free MPFR caches to avoid
7838         a memory leak on program exit.
7839
7840 2017-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7841
7842         * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
7843         Use wide_int::ulow () instead of .elt (0).
7844
7845 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
7846
7847         * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
7848         (*pushxf): Limit oF constraint to 32bit targets and add oC
7849         constraint for 64bit targets.
7850         (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
7851         (*pushdf): Change rmF constraint to rmC.
7852
7853 2017-03-03  Martin Liska  <mliska@suse.cz>
7854
7855         * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
7856         Remove unused variable.
7857
7858 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
7859
7860         PR target/79807
7861         * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
7862         is a memory operand, increase num_memory.
7863         (ix86_expand_args_builtin): Likewise.
7864
7865 2017-03-03  Jan Hubicka  <jh@suse.cz>
7866
7867         PR lto/79760
7868         * ipa-devirt.c (maybe_record_node): Properly handle
7869         __cxa_pure_virtual visibility.
7870
7871 2017-03-03  Martin Liska  <mliska@suse.cz>
7872
7873         PR tree-optimization/79803
7874         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
7875         assert.
7876         (pass_loop_prefetch::execute): Disabled optimization if an
7877         assumption about L1 cache size is not met.
7878
7879 2017-03-03  Martin Liska  <mliska@suse.cz>
7880
7881         PR rtl-optimization/79574
7882         * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
7883         (hash_scan_set): Likewise.
7884         (dump_hash_table): Likewise.
7885         (hoist_code): Likewise.
7886
7887 2017-03-03  Richard Biener  <rguenther@suse.de>
7888
7889         * fixed-value.c (fixed_from_string): Restore use of elt (1)
7890         in place of uhigh ().
7891         (fixed_convert_from_real): Likewise.
7892
7893 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
7894
7895         PR target/79514
7896         * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
7897
7898 2017-03-03  Richard Biener  <rguenther@suse.de>
7899
7900         PR middle-end/79818
7901         * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
7902         TYPE_OVERFLOW_UNDEFINED check.
7903
7904 2017-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7905
7906         * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
7907         numbers.
7908         (vector_ae_<mode>_p): Likewise.
7909         (vector_nez_<mode>_p): Likewise.
7910         (vector_ne_v2di_p): Likewise.
7911         (vector_ae_v2di_p): Likewise.
7912         (vector_ne_<mode>_p): Likewise.
7913         * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
7914         numbers.
7915         (vsx_tsqrt<mode>2_fe): Likewise.
7916
7917 2017-03-02  Uros Bizjak  <ubizjak@gmail.com>
7918
7919         PR target/79514
7920         * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
7921
7922 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
7923
7924         PR rtl-optimization/79780
7925         * cprop.c (one_cprop_pass): When second and further conditional trap
7926         in a single basic block is turned into an unconditional trap, turn it
7927         into a deleted note to avoid RTL verification failures.
7928
7929 2017-03-02  Richard Biener  <rguenther@suse.de>
7930
7931         * fold-const.c (const_binop): Use ulow () instead of elt (0).
7932
7933 2017-03-02  Richard Biener  <rguenther@suse.de>
7934
7935         PR tree-optimization/79345
7936         PR c++/42000
7937         * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
7938         param and abort the walk, returning -1 if it is hit.
7939         (walk_aliased_vdefs): Take a limit param and pass it on.
7940         * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
7941         defaulting to 0 and return a signed int.
7942         * tree-ssa-uninit.c (struct check_defs_data): New struct.
7943         (check_defs): New helper.
7944         (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
7945         about uninitialized memory.
7946         * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
7947         bogus uninitialized warning.
7948         (fixed_convert_from_real): Likewise.
7949
7950 2017-03-02  Bin Cheng  <bin.cheng@arm.com>
7951
7952         PR tree-optimization/66768
7953         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
7954         iv_use if base object can't be determined.
7955
7956 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
7957
7958         PR tree-optimization/79345
7959         * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
7960         * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
7961         (get_pattern_stats): Initialize it.
7962         * genemit.c (gen_expand): Verify match_scratch numbers come after
7963         match_operand/match_dup numbers.
7964         * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
7965         match_scratch numbers.
7966         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
7967         Likewise.
7968         * config/s390/s390.md (trunctdsd2): Likewise.
7969
7970 2017-03-02  Richard Biener  <rguenther@suse.de>
7971
7972         * wide-int.h (wide_int_storage::operator=): Implement in terms
7973         of wi::copy.
7974
7975 2017-03-02  Richard Biener  <rguenther@suse.de>
7976
7977         PR tree-optimization/79777
7978         * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
7979         the to insert expression to sth existing.
7980
7981 2017-03-01  Martin Sebor  <msebor@redhat.com>
7982
7983         PR middle-end/79692
7984         * gimple-ssa-sprintf.c
7985         (directive::known_width_and_precision): New function.
7986         (format_integer): Use it.
7987         (get_mpfr_format_length): Consider the full range of precision
7988         when computing %g output with the # flag.  Set the likely byte
7989         count to 3 rather than 1 when precision is indeterminate.
7990         (format_floating): Correct the lower bound of precision.
7991
7992 2017-03-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7993
7994         * doc/invoke.texi: Document default code model for 64-bit Linux.
7995
7996 2017-03-01  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
7997
7998         PR target/79752
7999         * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
8000         udiv rather than div since input pattern is unsigned.
8001
8002 2017-03-01  Uros Bizjak  <ubizjak@gmail.com>
8003
8004         * config/i386/i386.c (print_reg): Warn for values of
8005         unsupported size in integer register.
8006
8007 2017-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
8008
8009         PR target/79439
8010         * config/rs6000/predicates.md (current_file_function_operand): Do
8011         not allow self calls to be local if the function is replaceable.
8012
8013 2017-03-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
8014
8015         PR target/79395
8016         * config/rs6000/altivec.h (vec_ctz and others): Change the
8017         preprocessor macro that controls conditional compilation from
8018         _ARCH_PWR9 to __POWER9_VECTOR__.
8019         (vec_all_ne): Change parameterization of __altivec_scalar_pred
8020         macro expansion under preprocessor #ifdef __POWER9_VECTOR__
8021         control (instead of _ARCH_PWR9 control) so that template
8022         definition uses power9-specific function.
8023         (vec_any_eq): Likewise.
8024         (vec_all_ne): Change macro definition to use a power9-specific
8025         expansion under #ifdef __POWER9_VECTOR__ control (instead of
8026         _ARCH_PWR9 control).
8027         (vec_any_eq) Likewise.
8028         * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
8029         expansion for CMPNEF to remove support for xvcmpnesp instruction.
8030         (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
8031         support for xvcmpnedp instruction.
8032         (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
8033         macro expansion so that Power9 implementation of vec_all_ne does
8034         not use the AltiVec predicate framework.
8035         (VCMPNEH_P): Likewise.
8036         (VCMPNEW_P): Likewise.
8037         (VCMPNED_P): Likewise.
8038         (VCMPNEFP_P): Likewise.
8039         (VCMPNEDP_P): Likewise.
8040         (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
8041         implementation of vec_any_eq to not use AltiVec predicate
8042         framework.
8043         (VCMPAEH_P): Likewise.
8044         (VCMPAEW_P): Likewise.
8045         (VCMPAED_P): Likewise.
8046         (VCMPAEFP_P): Likewise.
8047         (VCMPAEDP_P): Likewise.
8048         (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
8049         BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
8050         not use the AltiVec predicate framework.
8051         (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
8052         of vec_any_eq to not use AltiVec predicate framework.
8053         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
8054         support for predefined __POWER9_VECTOR__ macro to indicate that
8055         Power9 instruction selection is enabled.
8056         (altivec_overloaded_builtins): Remove extraneous
8057         ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
8058         function argument types RS6000_BTI_bool_V16QI and
8059         RS6000_BTI_bool_V16QI.  Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
8060         entry for overloaded function argument types RS6000_BTI_bool_V4SI
8061         andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB.  Remove
8062         two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
8063         P9V_BUILTIN_CMPNEF to force use of instructions not specific to
8064         Power9 for implementations of vec_cmpne.  Change the signature for
8065         all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
8066         (representing vec_all_ne) to remove the previously described first
8067         argument of type RS6000_BTI_INTSI, as this was an artifact of
8068         reliance on the AltiVec predicate framework, which is no longer
8069         used in the implementation of these functions.  Add
8070         P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
8071         function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
8072         since, unlike the AltiVec predicate framework implementation, we
8073         do not share function descriptors between vec_alle and vec_anyeq.
8074         (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
8075         set of modes that receive special treatment even when
8076         TARGET_P9_VECTOR is true.  The special treatment emits code that
8077         does not depend on Power9 instructions.
8078         * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
8079         define_expand to not rely on AltiVec predicate framework.
8080         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
8081         function.
8082         (vector_ne_v2di_p): Change this define_expand to not rely on
8083         AltiVec predicate framework.
8084         (vector_ae_v2di_p): New define_expand to represent vec_any_eq
8085         function.
8086         (vector_ne_<mode>_p): Change this define_expand to not rely on
8087         AltiVec predicate framework.
8088         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
8089         function.
8090         * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
8091         (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
8092         define_insn pattern.
8093         (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
8094         define_insn pattern because the xvcmpne<VSs>. instruction is not
8095         supported.
8096         (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
8097         instruction is not supported.
8098
8099 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
8100
8101         * config/nvptx/nvptx.c: Include intl.h.
8102
8103 2017-03-01  Martin Jambor  <mjambor@suse.cz>
8104
8105         PR lto/78140
8106         * ipa-prop.h (ipa_bits): Removed field known.
8107         (ipa_jump_func): Removed field vr_known.  Changed fields bits and m_vr
8108         to pointers.  Adjusted their comments to warn about their sharing.
8109         (ipcp_transformation_summary): Change bits to a vector of pointers.
8110         (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
8111         (ipa_get_ipa_bits_for_value): Declare.
8112         * tree-vrp.h (value_range): Mark as GTY((for_user)).
8113         * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
8114         (ipa_bits_hash_table): Likewise.
8115         (ipa_vr_ggc_hash_traits): Likewise.
8116         (ipa_vr_hash_table): Likewise.
8117         (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
8118         being pointers and vr_known being removed.
8119         (ipa_set_jf_unknown): Likewise.
8120         (ipa_get_ipa_bits_for_value): New function.
8121         (ipa_set_jfunc_bits): Likewise.
8122         (ipa_get_value_range): New overloaded functions.
8123         (ipa_set_jfunc_vr): Likewise.
8124         (ipa_compute_jump_functions_for_edge): Use the above functions to
8125         construct bits and vr parts of jump functions.
8126         (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
8127         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
8128         exist.
8129         (ipcp_grow_transformations_if_necessary): Also allocate
8130         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
8131         exist.
8132         (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
8133         them.  Fix too long lines.
8134         (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
8135         vr_known being removed.
8136         (ipa_read_jump_function): Use new setter functions to construct bits
8137         and vr parts of jump functions or set them to NULL.
8138         (write_ipcp_transformation_info): Adjust for bits being pointers.
8139         (read_ipcp_transformation_info): Likewise.
8140         (ipcp_update_bits): Likewise.  Fix excessively long lines a trailing
8141         space.
8142         Include gt-ipa-prop.h.
8143         * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
8144         being pointers.
8145         (ipcp_store_bits_results): Likewise.
8146         (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
8147         Do not write to existing jump functions but use a temporary instead.
8148
8149 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
8150
8151         PR c++/79681
8152         * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
8153         attempt to use its first operand as BIT_FIELD_REF base.
8154
8155 2017-03-01  Richard Biener  <rguenther@suse.de>
8156
8157         PR middle-end/79721
8158         * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
8159         interpolating formula in wrapping arithmetic.
8160         (chrec_apply): Convert chrec_evaluate return value to wanted type.
8161
8162 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
8163
8164         PR tree-optimization/79734
8165         * tree-vect-generic.c (expand_vector_condition): Optimize
8166         AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
8167         Handle VEC_COND_EXPR where comparison has different inner width from
8168         type's inner width.
8169
8170 2017-02-28  Sandra Loosemore  <sandra@codesourcery.com>
8171
8172         * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
8173         markup, and similar issues.  Remove @opindex entries for things
8174         that aren't options.  Add missing -mmpy-option entries.
8175
8176 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
8177
8178         PR tree-optimization/79737
8179         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
8180         a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
8181         tmpbuf[byte_size - 1].  Call natice_encode_expr with byte_size - 1
8182         instead of byte_size.  Formatting fix.
8183         (shift_bytes_in_array_right): Formatting fix.
8184
8185 2017-02-28  Eric Botcazou  <ebotcazou@adacore.com>
8186
8187         PR target/79749
8188         * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
8189         condition on optimize for the leaf function test.
8190
8191 2017-02-28  Martin Liska  <mliska@suse.cz>
8192
8193         PR lto/79625
8194         * read-rtl-function.c (function_reader::handle_unknown_directive):
8195         Bail out when one uses -flto.
8196
8197 2017-02-28  Martin Liska  <mliska@suse.cz>
8198
8199         * common.opt: Replace space with tabular for options of <number>
8200         type.
8201         * config/i386/i386.opt: Show <number> value for
8202         -mlarge-data-threshold.
8203         * opts.c (print_filtered_help): Do not display number in hexadecimal
8204         format.
8205
8206 2017-02-28  Martin Liska  <mliska@suse.cz>
8207
8208         * common.opt: Fix --help=option -Q for options which are of
8209         an enum type.
8210
8211 2017-02-28  Uros Bizjak  <ubizjak@gmail.com>
8212
8213         * config/i386/i386.c (print_reg): Error out for values
8214         of 8-bit size in invalid integer register.
8215
8216 2017-02-28  Martin Sebor  <msebor@redhat.com>
8217
8218         PR tree-optimization/79691
8219         * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
8220
8221 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
8222
8223         PR target/79729
8224         * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
8225         gcc_unreachable with output_operand_lossage.
8226
8227 2017-02-28  Richard Biener  <rguenther@suse.de>
8228
8229         PR tree-optimization/79740
8230         * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
8231         inserts.
8232         (visit_nary_op): Insert the nary into the hashtable if we
8233         pattern-matched sth.
8234         * tree-ssa-pre.c (eliminate_insert): Robustify.
8235
8236 2017-02-28  Richard Biener  <rguenther@suse.de>
8237
8238         PR middle-end/79731
8239         * fold-const.c (decode_field_reference): Reject out-of-bound
8240         accesses.
8241
8242 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
8243
8244         * config/i386/i386.c: Include intl.h.
8245         (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
8246         instead of just cond ? "..." : "...".
8247         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
8248         * coverage.c (read_counts_file): Likewise.
8249         * omp-offload.c: Include intl.h.
8250         (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
8251         of just cond ? "..." : "...".
8252         * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
8253         of just cond ? "..." : "...".
8254
8255 2017-02-28  Richard Earnshaw  <rearnsha@arm.com>
8256
8257         PR target/79742
8258         * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
8259         entry, if present.
8260         * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
8261         'tune for' CPU name.
8262         * config/arm/arm-cpu-data.h: Regenerated.
8263
8264 2017-02-28  Richard Biener  <rguenther@suse.de>
8265
8266         PR tree-optimization/79732
8267         * tree-inline.c (expand_call_inline): Do not shadow var.
8268
8269 2017-02-28  Richard Biener  <rguenther@suse.de>
8270
8271         PR tree-optimization/79723
8272         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
8273         address-space properly.
8274
8275 2017-02-28  Thomas Schwinge  <thomas@codesourcery.com>
8276
8277         * doc/optinfo.texi (Optimization groups): Fix option used for
8278         OPTGROUP_ALL.
8279         * doc/invoke.texi (-fopt-info): Document "omp".
8280         * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
8281         (OPTGROUP_ALL): Add OPTGROUP_OMP.
8282         * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
8283         * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
8284         * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
8285
8286         * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP.  Adjust
8287         all users.
8288         * dumpfile.c (optgroup_options): Instead of "openmp", associate
8289         OPTGROUP_OMP with "omp".
8290
8291 2017-02-27  Pat Haugen  <pthaugen@us.ibm.com>
8292
8293         PR target/79544
8294         * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
8295         for arithmetic shift of unsigned V2DI.
8296
8297 2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>
8298
8299         * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
8300         arc/linux.h headers.
8301         * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
8302         (LINK_SPEC): Likewise.
8303         (ARC_TLS_EXTRA_START_SPEC): Likewise.
8304         (EXTRA_SPECS): Likewise.
8305         (STARTFILE_SPEC): Likewise.
8306         (ENDFILE_SPEC): Likewise.
8307         (LIB_SPEC): Likewise.
8308         (TARGET_SDATA_DEFAULT): Likewise.
8309         (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
8310         (MULTILIB_DEFAULTS): Likewise.
8311         (DWARF2_UNWIND_INFO): Likewise.
8312         * config/arc/big.h: New file.
8313         * config/arc/elf.h: Likewise.
8314         * config/arc/linux.h: Likewise.
8315         * config/arc/t-uClibc: Remove.
8316
8317 2017-02-27  Bin Cheng  <bin.cheng@arm.com>
8318
8319         PR tree-optimization/77536
8320         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
8321         (tree_transform_and_unroll_loop): Use above function to compute the
8322         estimated niter of unrolled loop and use it when scaling profile.
8323         Also use count info rather than frequency if it's non-zero.
8324         * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
8325         * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
8326         (vect_transform_loop): Call above function.
8327
8328 2017-02-27  Richard Biener  <rguenther@suse.de>
8329
8330         PR tree-optimization/45397
8331         * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
8332         * tree-ssa-sccvn.c (valueized_wider_op): New helper.
8333         (visit_nary_op): Add pattern matching for CSEing sign-changed
8334         or truncated operations with wider ones.
8335
8336 2017-02-27  Richard Biener  <rguenther@suse.de>
8337
8338         PR tree-optimization/79690
8339         * tree-vect-stmts.c (vectorizable_store): Use vector type
8340         built from the DR with address-space.
8341
8342 2017-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
8343
8344         * doc/invoke.texi (Optimize Options): Refine the description
8345         of asan-use-after-return.
8346
8347 2017-02-25  Alan Modra  <amodra@gmail.com>
8348
8349         PR rtl-optimization/79584
8350         * lra-constraints.c (base_to_reg): Reload ad->base, the entire
8351         base, not ad->base_term, the reg within base.  Remove assertion
8352         that ad->base == ad->base_term.  Replace gen_int_mode using
8353         bogus mode with const0_rtx.
8354
8355 2017-02-25  Jakub Jelinek  <jakub@redhat.com>
8356
8357         PR middle-end/79396
8358         * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
8359         FMA_EXPR like tcc_binary or tcc_unary.
8360
8361         * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
8362
8363         PR debug/77589
8364         * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
8365         bitfield.
8366         (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
8367         (output_loc_operands): Handle DW_OP_call_ref and
8368         DW_OP_GNU_variable_value.
8369         (struct variable_value_struct): New type.
8370         (struct variable_value_hasher): Likewise.
8371         (variable_value_hash): New variable.
8372         (string_types): Remove.
8373         (copy_loc_descr): New function.
8374         (add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
8375         (prepend_loc_descr_to_each): New function.
8376         (add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
8377         instead of add_loc_descr_to_each if the first argument is single
8378         location list and the second has multiple.
8379         (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
8380         (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
8381         when looking for variable value which doesn't have other location info.
8382         (loc_list_from_tree): Formatting fix.
8383         (gen_array_type_die): Simplify DW_AT_string_length handling.
8384         (adjust_string_types): Remove.
8385         (gen_subprogram_die): Don't call adjust_string_types nor test/set
8386         string_types.  Call resolve_variable_values.
8387         (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
8388         (resolve_addr_in_expr): Likewise.  Add A argument.
8389         (copy_deref_exprloc): Remove deref argument.  Adjust for the
8390         original expression being DW_OP_GNU_variable_value with optionally
8391         DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
8392         optionally after it.
8393         (optimize_string_length): Rework for DW_OP_GNU_variable_value.
8394         (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
8395         callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
8396         (variable_value_hasher::hash, variable_value_hasher::equal): New
8397         methods.
8398         (resolve_variable_value_in_expr, resolve_variable_value,
8399         resolve_variable_values, note_variable_value_in_expr,
8400         note_variable_value): New functions.
8401         (dwarf2out_early_finish): Call note_variable_value on all toplevel
8402         DIEs.
8403
8404 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
8405
8406         PR c/79677
8407         * opts.h (handle_generated_option): Add GENERATED_P argument.
8408         * opts-common.c (handle_option): Adjust function comment.
8409         (handle_generated_option): Add GENERATED_P argument, pass it to
8410         handle_option.
8411         (control_warning_option): Pass false to handle_generated_option
8412         GENERATED_P.
8413         * opts.c (maybe_default_option): Pass true to handle_generated_option
8414         GENERATED_P.
8415         * optc-gen.awk: Likewise.
8416
8417 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
8418
8419         * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
8420         a REG, look at the REG it is a SUBREG of.
8421         (splitter for cmpeqsi_t): Ditto.
8422
8423 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
8424
8425         * config/pa/pa.c (pa_combine_instructions): Do not share RTL.  Make
8426         the special USEs with the pattern of the insn, not the insn itself.
8427
8428 2017-02-24  Matthew Fortune  <matthew.fortune@imgtec.com>
8429
8430         PR target/79473
8431         * doc/invoke.texi: Document -mload-store-pairs.
8432
8433 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
8434             Sandra Loosemore  <sandra@codesourcery.com>
8435
8436         * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
8437         argument isn't a CONST_INT.
8438         (nios2_alternate_compare_const): Assert op is a CONST_INT.
8439         (nios2_valid_compare_const_p): Assert op is a CONST_INT.
8440         (nios2_validate_compare): Bypass alternate compare logic if *op2
8441         is not a CONST_INT.
8442         (ldstwm_operation_p): Return false if first_base is not a REG or
8443         if first_offset is not a CONST_INT.
8444
8445 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
8446
8447         * config/cris/cris.md: Use correct operand in a define_peephole2.
8448
8449 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
8450
8451         * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
8452
8453 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
8454
8455         * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
8456         this_insn if it is an INSN or JUMP_INSN.
8457         (force_offsettable): Look at base, not at addr.
8458         * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
8459         on things that aren't necessarily CONST_INTs.
8460
8461 2017-02-24  Uros Bizjak  <ubizjak@gmail.com>
8462
8463         * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
8464         -mfpmath=sse is the default also for x86-32 targets with SSE2
8465         instruction set when @option{-ffast-math} is enabled
8466
8467 2017-02-24  Jeff Law  <law@redhat.com>
8468
8469         PR rtl-optimizatoin/79286
8470         * ira.c (update_equiv_regs): Drop may_trap_p exception to
8471         dominance test.
8472
8473 2017-02-24  Richard Biener  <rguenther@suse.de>
8474
8475         PR tree-optimization/79389
8476         * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
8477         debug insns.
8478
8479 2017-02-24  Aldy Hernandez  <aldyh@redhat.com>
8480
8481         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
8482         function comment to reflect reality.
8483         (loop_exits_before_overflow): Fix typo in function description.
8484
8485 2017-02-24  Richard Biener  <rguenther@suse.de>
8486
8487         PR tree-optimization/79389
8488         * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
8489         properly that a threading opportunity exists.  Detect conditional
8490         copy/constant propagation opportunities.
8491
8492 2017-02-23  Eric Botcazou  <ebotcazou@adacore.com>
8493
8494         * config/visium/visium.md (type): Add trap.
8495         (b): New mode attribute.
8496         (*btst): Rename into...
8497         (*btst<mode>): ...this and adjust.
8498         (*cbranchsi4_btst_insn): Rename into...
8499         (*cbranch<mode>4_btst_insn): ...this and adjust.
8500         (trap): New define_insn.
8501
8502 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
8503
8504         PR tree-optimization/79389
8505         * ifcvt.c (struct noce_if_info): Add rev_cond field.
8506         (noce_reversed_cond_code): New function.
8507         (noce_emit_store_flag): Use rev_cond if non-NULL instead of
8508         reversed_comparison_code.  Formatting fix.
8509         (noce_try_store_flag): Test rev_cond != NULL in addition to
8510         reversed_comparison_code.
8511         (noce_try_store_flag_constants): Likewise.
8512         (noce_try_store_flag_mask): Likewise.
8513         (noce_try_addcc): Use rev_cond if non-NULL instead of
8514         reversed_comparison_code.
8515         (noce_try_cmove_arith): Likewise.  Formatting fixes.
8516         (noce_try_minmax, noce_try_abs): Clear rev_cond.
8517         (noce_find_if_block): Initialize rev_cond.
8518         (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
8519         instead of false as last argument never attempt to reverse it
8520         afterwards.
8521
8522 2017-02-23  Bin Cheng  <bin.cheng@arm.com>
8523
8524         PR tree-optimization/79663
8525         * tree-predcom.c (combine_chains): Process refs in reverse order
8526         only for ZERO length chains, and add explaining comment.
8527
8528 2017-02-23  Jeff Law  <law@redhat.com>
8529
8530         PR tree-optimization/79578
8531         * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
8532         in call to operand_equal_p.
8533
8534 2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>
8535
8536         PR target/71017
8537         * config/i386/cpuid.h: Fix another undefined behavior.
8538
8539 2017-02-23  Richard Biener  <rguenther@suse.de>
8540
8541         PR tree-optimization/79683
8542         * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
8543         vector types for data-refs.
8544
8545 2017-02-23  Martin Liska  <mliska@suse.cz>
8546
8547         * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
8548
8549 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
8550
8551         PR middle-end/79665
8552         * internal-fn.c (get_range_pos_neg): Moved to ...
8553         * tree.c (get_range_pos_neg): ... here.  No longer static.
8554         * tree.h (get_range_pos_neg): New prototype.
8555         * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
8556         are known to be in between 0 and signed maximum inclusive, try to
8557         expand both unsigned and signed divmod and use the cheaper one from
8558         those.
8559
8560 2017-02-22  Jeff Law  <law@redhat.com>
8561
8562         PR tree-optimization/79578
8563         * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
8564         to compare base operands.
8565
8566 2017-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
8567
8568         PR target/79211
8569         * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
8570         gpc_reg_operand instead of fpr_reg_operand.
8571
8572 2017-02-22  Sameera Deshpande  <sameera.deshpande@imgtec.com>
8573
8574         * config/mips/mips.c (mips_return_in_memory): Force FP
8575         vector types to be returned in memory for o32 ABI.
8576
8577 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
8578
8579         * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
8580         instead of DW_TAG_member for static data member declarations and don't
8581         set no_linkage_name for static inline data members.
8582         (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
8583         to DW_TAG_member.
8584
8585 2017-02-22  Martin Liska  <mliska@suse.cz>
8586
8587         * doc/invoke.texi: Replace inequality signs with square brackets
8588         for -Wnormalized.
8589
8590 2017-02-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8591
8592         PR tree-optimization/68644
8593         * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
8594
8595 2017-02-22  Matthew Fortune  <matthew.fortune@imgtec.com>
8596
8597         PR target/78660
8598         * lra-constraints.c (simplify_operand_subreg): Handle
8599         WORD_REGISTER_OPERATIONS targets.
8600
8601 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
8602
8603         PR target/70465
8604         * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
8605         and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
8606         elimination by swapping fld*.
8607
8608 2017-02-22  Richard Biener  <rguenther@suse.de>
8609
8610         PR tree-optimization/79673
8611         * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
8612         convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
8613         irrelevant address-space qualifiers and avoiding a
8614         ADDR_SPACE_CONVERT_EXPR from fold_convert.
8615
8616 2017-02-22  Richard Biener  <rguenther@suse.de>
8617
8618         PR tree-optimization/79666
8619         * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
8620         to not symbolically negate if that may introduce undefined
8621         overflow.
8622
8623 2017-02-22  Martin Liska  <mliska@suse.cz>
8624
8625         PR lto/79587
8626         * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
8627         * data-streamer-out.c (streamer_write_gcov_count_stream):
8628         Likewise.
8629         * value-prof.c (stream_out_histogram_value): Make assert more
8630         precise based on type of counter.
8631
8632 2017-02-21  Uros Bizjak  <ubizjak@gmail.com>
8633
8634         PR target/79593
8635         * config/i386/i386.md (standard_x87sse_constant_load splitter):
8636         Use nonimmediate_operand instead of memory_operand for operand 1.
8637         (float-extend standard_x87sse_constant_load splitter): Ditto.
8638
8639 2017-02-21  Jeff Law  <law@redhat.com>
8640
8641         PR tree-optimization/79621
8642         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
8643         blocks with edges to themselves.
8644
8645 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
8646
8647         PR target/79633
8648         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
8649         is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
8650         Use gimple_call_builtin_p.
8651
8652         PR target/79570
8653         * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
8654         on temporarily removed DEBUG_INSNs.
8655
8656         PR tree-optimization/79649
8657         * tree-loop-distribution.c (classify_partition): Give up on
8658         non-generic address space loads/stores.
8659
8660 2017-02-21  Aldy Hernandez  <aldyh@redhat.com>
8661
8662         * doc/loop.texi (Loop manipulation): Remove nonexistent
8663         tree_ssa_loop_version from the documentation.
8664         * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
8665
8666 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
8667
8668         PR target/79494
8669         * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
8670         make_reg_eh_region_note_nothrow_nononlocal on call_insn.
8671         * config/rs6000/rs6000.c: Include except.h.
8672         (rs6000_expand_split_stack_prologue): Call
8673         make_reg_eh_region_note_nothrow_nononlocal on the call insn.
8674
8675 2017-02-21  Martin Jambor  <mjambor@suse.cz>
8676
8677         PR lto/79579
8678         * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
8679         have been analyzed.
8680
8681 2017-02-21  Martin Jambor  <mjambor@suse.cz>
8682
8683         * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
8684         for backward compatibility only.
8685         * doc/invoke.texi (Option Summary): Remove all references to
8686         -fipa-cp-alignment.
8687
8688 2017-02-21  Matthew Fortune  <matthew.fortune@imgtec.com>
8689
8690         PR target/78660
8691         Revert:
8692         2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
8693
8694         * lra-constraints.c (curr_insn_transform): Handle
8695         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
8696
8697 2017-02-21  Martin Liska  <mliska@suse.cz>
8698
8699         * config/i386/i386.opt: Replace -masm-dialect with -masm.
8700
8701 2017-02-21  Thomas Schwinge  <thomas@codesourcery.com>
8702
8703         PR translation/79638
8704         * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
8705
8706 2017-02-21  Eric Botcazou  <ebotcazou@adacore.com>
8707
8708         PR ada/67205
8709         * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
8710         (arm_function_ok_for_sibcall): Return false for an indirect call by
8711         descriptor if all the argument registers are used.
8712         (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
8713         alignment of the function.
8714
8715 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
8716
8717         PR tree-optimization/61441
8718         * simplify-rtx.c (simplify_const_unary_operation): For
8719         -fsignaling-nans and sNaN operand, return NULL_RTX rather than
8720         the sNaN unmodified.
8721
8722 2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8723
8724         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
8725         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
8726         instead of SYSTEM_HEADER_DIR.
8727
8728 2017-02-20  Gerald Pfeifer  <gerald@pfeifer.com>
8729             Martin LiÅ¡ka  <mliska@suse.cz>
8730
8731         * doc/invoke.texi (use-after-scope-direct-emission-threshold):
8732         Fix typos and grammar, use active voice, and clarify.
8733
8734 2017-02-20  Marek Polacek  <polacek@redhat.com>
8735
8736         PR middle-end/79537
8737         * gimplify.c (gimplify_expr): Handle unused *&&L;.
8738
8739         PR sanitizer/79558
8740         * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
8741
8742 2017-02-20  Jakub Jelinek  <jakub@redhat.com>
8743
8744         PR target/79568
8745         * config/i386/i386.c (ix86_expand_builtin): Handle
8746         OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
8747         ix86_builtins_isa[fcode].isa as a requirement of those
8748         flags and any other flag in the bitmask.
8749         (ix86_init_mmx_sse_builtins): Use 0 instead of
8750         ~OPTION_MASK_ISA_64BIT as mask.
8751         * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
8752         __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
8753         __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
8754         __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
8755
8756 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
8757
8758         PR target/78012
8759         * lra-constraints.c (split_reg): Check requested split mode
8760         is supported by the register.
8761
8762 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
8763
8764         * lra-constraints.c (simplify_operand_subreg): Remove early
8765         return false.
8766
8767 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
8768
8769         PR target/78660
8770         * lra-constraints.c (curr_insn_transform): Tighten condition
8771         for converting SUBREG reloads from OP_OUT to OP_INOUT.
8772
8773 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
8774
8775         PR target/78660
8776         * lra-constraints.c (curr_insn_transform): Handle
8777         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
8778
8779 2017-02-19  Uros Bizjak  <ubizjak@gmail.com>
8780
8781         Revert:
8782         2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
8783
8784         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
8785
8786 2017-02-19  Jonathan Wakely  <jwakely@redhat.com>
8787
8788         PR c++/69523
8789         * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
8790         description.
8791
8792 2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8793
8794         * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
8795         for FMA_EXPR.
8796
8797 2017-02-18  Jakub Jelinek  <jakub@redhat.com>
8798
8799         * final.c (last_columnnum, override_columnnum): New variables.
8800         (final_start_function): Set last_columnnum, pass it to begin_prologue
8801         hook and pass 0 to dwarf2out_begin_prologue.
8802         (final_scan_insn): Update override_columnnum.  Pass last_columnnum
8803         to source_line debug hook.
8804         (notice_source_line): Compute last_columnnum and for debug_column_info
8805         return true on column changes.
8806         * debug.h (struct gcc_debug_hooks): Add column argument to
8807         source_line and begin_prologue hooks.
8808         (debug_nothing_int_charstar_int_bool): Remove prototype.
8809         (debug_nothing_int_int_charstar,
8810         debug_nothing_int_int_charstar_int_bool): New prototypes.
8811         (dwarf2out_begin_prologue): Add column argument.
8812         * debug.c (do_nothing_debug_hooks): Adjust source_line and
8813         begin_prologue hooks.
8814         (debug_nothing_int_charstar_int_bool): Remove.
8815         (debug_nothing_int_int_charstar,
8816         debug_nothing_int_int_charstar_int_bool): New functions.
8817         * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
8818         through to dwarf2out_source_line.
8819         (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
8820         (dwarf2out_source_line): Add column argument, emit it if requested.
8821         * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
8822         arguments.
8823         * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
8824         * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
8825         * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
8826         through to dwarf2out_begin_prologue.
8827         (vmsdbgout_source_line): Add column argument, pass it through to
8828         dwarf2out_source_line.
8829         * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
8830         dbxout_source_line caller.
8831         (dbxout_source_line): Add column argument.
8832
8833         * common.opt (gno-column-info, gcolumn-info): New options.
8834         * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
8835         (check_die): Also test for multiple DW_AT_decl_column attributes.
8836         (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
8837         DW_AT_decl_column if requested.
8838         (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
8839         if requested.
8840         (gen_variable_die): Likewise.
8841         (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
8842         * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
8843
8844         PR target/79569
8845         * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
8846         * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
8847         (ix86_handle_option): Handle OPT_m3dnowa.
8848         * doc/invoke.texi (-m3dnowa): Document.
8849         * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
8850         -m3dnowa instead of -m3dnow -march=athlon.
8851
8852         PR target/79559
8853         * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
8854         instead of gcc_assert for K, r and R code checks.  Formatting fixes.
8855
8856 2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8857
8858         PR target/79261
8859         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
8860         support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
8861         * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
8862         generator for vsx_xxpermdi_<mode>_be.
8863         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
8864         force big-endian semantics.
8865         (vsx_xxpermdi_<mode>_be): New define_expand with same
8866         implementation as previous version of vsx_xxpermdi_<mode>.
8867
8868 2017-02-17  Jakub Jelinek  <jakub@redhat.com>
8869
8870         PR tree-optimization/79327
8871         * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
8872         variable, its initialization and use.
8873
8874 2017-02-17  Julia Koval  <julia.koval@intel.com>
8875
8876         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
8877         (OPTION_MASK_ISA_PKU_UNSET): New.
8878         (ix86_handle_option): Handle -mrdpid.
8879         * config/i386/cpuid.h (bit_RDPID): New.
8880         * config/i386/driver-i386.c (host_detect_local_cpu):
8881         Detect RDPID feature.
8882         * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
8883         * config/i386/i386-c.c (ix86_target_macros_internal):
8884         Handle RDPID flag.
8885         * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
8886         (ix86_valid_target_attribute_inner_p): Add "rdpid".
8887         (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
8888         * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
8889         * config/i386/i386.md (define_insn "rdpid"): New.
8890         * config/i386/i386.opt Add -mrdpid.
8891         * config/i386/immintrin.h (_rdpid_u32): New.
8892
8893 2017-02-17  Vladimir Makarov  <vmakarov@redhat.com>
8894
8895         PR rtl-optimization/79541
8896         * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
8897         instead of transforming it into USE.
8898
8899 2017-02-17  Segher Boessenkool  <segher@kernel.crashing.org>
8900
8901         * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
8902         If HONOR_SNANS (SFmode) force the input to a register.
8903         (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
8904         (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
8905         an frsp or similar insn.
8906
8907 2017-02-17  Martin Liska  <mliska@suse.cz>
8908
8909         PR rtl-optimization/79577
8910         * params.def (selsched-max-sched-times): Increase minimum to 1.
8911
8912 2017-02-17  Martin Liska  <mliska@suse.cz>
8913
8914         PR rtl-optimization/79574
8915         * gcse.c (want_to_gcse_p): Prevent integer overflow.
8916
8917 2017-02-17  Martin Liska  <mliska@suse.cz>
8918
8919         PR tree-optimization/79529
8920         * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
8921         ssa_defined_default_def_p to handle cases which are implicitly
8922         defined.
8923         * tree-ssa.c (ssa_defined_default_def_p): New function.
8924         (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
8925         which are implicitly defined.
8926         * tree-ssa.h (ssa_defined_default_def_p): Declare.
8927
8928 2017-02-17  Richard Biener  <rguenther@suse.de>
8929
8930         PR middle-end/79576
8931         * params.def (max-ssa-name-query-depth): Limit to 10.
8932
8933 2017-02-17  Richard Biener  <rguenther@suse.de>
8934
8935         PR tree-optimization/79552
8936         * tree-ssa-structalias.c (visit_loadstore): Properly verify
8937         default defs.
8938
8939 2017-02-17  Richard Biener  <rguenther@suse.de>
8940
8941         PR bootstrap/79567
8942         * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
8943
8944 2017-02-17  Marek Polacek  <polacek@redhat.com>
8945
8946         PR middle-end/79536
8947         * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
8948         (fold_negate_expr): New wrapper.
8949
8950 2017-02-16  Sandra Loosemore  <sandra@codesourcery.com>
8951
8952         * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: 
8953         Correct terminology and de-emphasize pre-standard behavior.
8954
8955 2017-02-16  Alan Modra  <amodra@gmail.com>
8956
8957         PR rtl-optimization/79286
8958         * ira.c (def_dominates_uses): New function.
8959         (update_equiv_regs): Don't create an equivalence for insns that
8960         may trap where the register def does not dominate the use.
8961
8962 2017-02-16  Vladimir Makarov  <vmakarov@redhat.com>
8963
8964         PR rtl-optimization/78127
8965         * lra.c (lra): Call lra_eliminate before finish the loop after
8966         lra_constraint.
8967
8968 2017-02-16  Richard Biener  <rguenther@suse.de>
8969
8970         * graphite.h: Do not include isl/isl_val_gmp.h, instead include
8971         isl/isl_val.h.
8972         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
8973         (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
8974         * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
8975         (isl_val_int_from_wi): New function.
8976         (extract_affine_gmp): Rename to ...
8977         (extract_affine_wi): ... this, take a widest_int.
8978         (extract_affine_int): Just wrap extract_affine_wi.
8979         (add_param_constraints): Use isl_val_int_from_wi.
8980         (add_loop_constraints): Likewise, and extract_affine_wi.
8981
8982 2017-02-15  Jeff Law  <law@redhat.com>
8983
8984         PR middle-end/79521
8985         * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
8986         ira_init_register_move_cost_if_necessary.
8987
8988 2017-02-15  Martin Sebor  <msebor@redhat.com>
8989
8990         PR middle-end/32003
8991         * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
8992         removed in a prior commit.
8993
8994 2017-02-15  Bin Cheng  <bin.cheng@arm.com>
8995
8996         PR tree-optimization/79347
8997         * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
8998         counters during peeling.
8999
9000 2017-02-15  Thomas Schwinge  <thomas@codesourcery.com>
9001
9002         * Makefile.in (site.exp): Remove "set ISLVER".
9003
9004 2017-02-15  Jakub Jelinek  <jakub@redhat.com>
9005
9006         PR target/79487
9007         * real.c (real_from_integer): Call real_convert even for decimal.
9008
9009 2017-02-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9010
9011         PR target/79421
9012         * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
9013
9014 2017-02-14  Andrew Pinski  <apinski@cavium.com>
9015
9016         * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
9017         cores and change the partno/implementer to be correct.
9018         (thunderx2t99p1): New core which replaces thunderx2t99 and still has
9019         the 'B" as the implementer.
9020         * config/aarch64/aarch64-tune.md: Regenerate.
9021
9022 2017-02-14  Carl Love  <cel@us.ibm.com>
9023
9024         * config/rs6000/rs6000.c: Add case statement entry to make the
9025         xvcvuxdsp built-in argument unsigned.
9026         * config/rs6000/vsx.md: Fix the source and return operand types so they
9027         match the instruction definitions from the ISA document.  Fix typo
9028         in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
9029         statement.
9030
9031 2017-02-14  Vladimir Makarov  <vmakarov@redhat.com>
9032
9033         PR target/79282
9034         * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
9035         member early_clobber_alts.
9036         * lra-lives.c (reg_early_clobber_p): New.
9037         (process_bb_lives): Use it.
9038         * lra.c (new_insn_reg): New arg early_clobber_alts.  Use it.
9039         (debug_operand_data): Initialize early_clobber_alts.
9040         (setup_operand_alternative): Set up early_clobber_alts.
9041         (collect_non_operand_hard_regs): Ditto.  Pass early clobber
9042         alternatives to new_insn_reg.
9043         (add_regs_to_insn_regno_info): Add arg early_clobber_alts.  Use
9044         it.
9045         (lra_update_insn_regno_info): Pass the new arg.
9046
9047 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
9048
9049         PR middle-end/79505
9050         * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
9051         (new_oacc_loop_raw): Don't clear already cleared fields.
9052
9053         PR target/79481
9054         * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
9055         _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
9056         _mm512_prefetch_i64gather_ps): New inline functions and macros.
9057
9058 2017-02-14  Uros Bizjak  <ubizjak@gmail.com>
9059
9060         PR target/79495
9061         * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
9062
9063 2017-02-14  H.J. Lu  <hongjiu.lu@intel.com>
9064
9065         PR target/79498
9066         * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
9067         the extra instruction to the right place to store 128-bit constant
9068         when needed.
9069
9070 2017-02-14  Martin Sebor  <msebor@redhat.com>
9071
9072         PR middle-end/79448
9073         * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
9074           warning for strings of unknown length.
9075
9076 2017-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
9077
9078         * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
9079
9080 2017-02-14  Jeff Law  <law@redhat.com>
9081
9082         PR target/79404
9083         * ira-costs.c (scan_one_insn): Initialize register move costs
9084         for pseudos seen in USE/CLOBBER insns.
9085
9086         PR tree-optimization/79095
9087         * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
9088         if the numerator has the range ~[0,0] make the resultant range ~[0,0].
9089         (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
9090         if the operands are known to be not equal, then the resulting range
9091         is ~[0,0].
9092         (intersect_ranges): If the new range is ~[0,0] and the old range is
9093         wide, then prefer ~[0,0].
9094         * tree-vrp.c (overflow_comparison_p_1): New function.
9095         (overflow_comparison_p): New function.
9096         * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
9097         if NAME is used in an overflow test.
9098         (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
9099         overflow check that can be expressed as an equality test, then adjust
9100         ops to be that equality test.
9101
9102 2017-02-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9103
9104         * config/s390/s390-builtin-types.def: Remove flags argument.
9105         * config/s390/s390.c (s390_init_builtins): Likewise.
9106
9107 2017-02-14  Martin Liska  <mliska@suse.cz>
9108
9109         * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
9110         vector.  Fix trailing white spaces.
9111
9112 2017-02-14  James Greenhalgh  <james.greenhalgh@arm.com>
9113
9114         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
9115         HFmode.
9116
9117 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9118
9119         PR rtl-optimization/68664
9120         * config/arm/arm.c (arm_sched_can_speculate_insn):
9121         New function.  Declare prototype.
9122         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
9123
9124 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9125
9126         PR rtl-optimization/68664
9127         * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
9128         New function.
9129         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
9130
9131 2017-02-14  Amit Pawar  <amit.pawar@amd.com>
9132
9133         * config/i386/i386.c (znver1_cost): Fix the alignment for function and
9134         max skip bytes for function, loop and jump.
9135
9136 2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9137
9138         * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
9139         ABS_EXPR for gimple dump.
9140
9141 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
9142
9143         PR target/79462
9144         * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
9145
9146         PR tree-optimization/79408
9147         * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
9148         case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
9149         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
9150         also if rhs1 is INTEGER_CST.
9151
9152 2017-02-14  Richard Biener  <rguenther@suse.de>
9153
9154         PR middle-end/79432
9155         * tree-into-ssa.c (insert_phi_nodes): When the function can
9156         have abnormal edges rewrite SSA names with broken use-def
9157         dominance out of SSA and register them for PHI insertion.
9158
9159 2017-02-13  Martin Sebor  <msebor@redhat.com>
9160
9161         PR middle-end/79496
9162         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
9163         clearing info.nowrite flag when snprintf size argument is a range.
9164
9165 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
9166
9167         * cprop.c (cprop_jump): Add missing space in string literal.
9168         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
9169         (get_constraint_for_component_ref): Likewise.
9170         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
9171         * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
9172         * lra-constraints.c (process_alt_operands): Likewise.
9173         * ipa-inline.c (inline_small_functions): Likewise.
9174         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
9175         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
9176         * trans-mem.c (diagnose_tm_1_op): Likewise.
9177         * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
9178         (grid_parallel_clauses_gridifiable): Likewise.
9179
9180         * config/nvptx/mkoffload.c (process): Add space in between
9181         , and %d.
9182
9183         * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
9184         "MOD4_SSE_REGS" and "ALL_REGS".
9185
9186         * spellcheck.c (test_data): Add , in between "foo" and "food".
9187
9188 2017-02-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
9189
9190         PR target/79449
9191         * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
9192         boundary crossing check and subsequent code generation agree.
9193
9194 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9195
9196         * config/aarch64/aarch64.c (has_memory_op): Delete.
9197         (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
9198         has_memory_op.
9199
9200 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
9201
9202         PR rtl-optimization/79388
9203         PR rtl-optimization/79450
9204         * combine.c (distribute_notes): When removing TEM_INSN for which
9205         corresponding dest has last value recorded, invalidate that last
9206         value.
9207
9208 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9209
9210         * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
9211         of explicit '@'.  Add missing assembly comment marker on branch costs
9212         printout.
9213
9214 2017-02-13  Nathan Sidwell  <nathan@acm.org>
9215
9216         * gengtype-lex.l (<in_struct>): Add '/'.
9217
9218 2017-02-13  Martin Liska  <mliska@suse.cz>
9219
9220         PR c/79471
9221         * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
9222
9223 2017-02-13  Richard Biener  <rguenther@suse.de>
9224
9225         * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
9226         Remove.
9227         * configure: Re-generate.
9228         * config.in: Likewise.
9229         * graphite-dependences.c: Simplify as if
9230         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
9231         * graphite-isl-ast-to-gimple.c: Likewise.
9232         * graphite-optimize-isl.c: Likewise.
9233         * graphite-poly.c: Likewise.
9234         * graphite-sese-to-poly.c: Likewise.
9235         * graphite.h: Likewise.
9236         * toplev.c: Include isl/version.h and use isl_version () for
9237         printing the ISL version.
9238         * doc/install.texi: Update ISL requirement.
9239
9240 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
9241
9242         * doc/standards.texi (Standards): Update reference to
9243         Objective-C 2.0.
9244
9245 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
9246
9247         * doc/extend.texi (Named Address Spaces): sourceware.org now
9248         defaults to https.
9249         * doc/install.texi (Binaries): Ditto.
9250         (Specific): Ditto.
9251
9252 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
9253
9254         * doc/cpp.texi: Replace "stringify"/"stringification" with C
9255         standard terminology "stringize"/"stringizing" throughout.
9256         * doc/cppinternals.texi: Likewise.
9257
9258 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
9259
9260         * doc/extend.texi: Fix some spelling mistakes and typos.
9261         * doc/invoke.texi: Likewise.
9262
9263 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
9264
9265         PR ipa/79224
9266         * params.def (inline-min-speedup) Change from 10 to 8.
9267
9268 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
9269
9270         * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
9271         4.5.
9272
9273 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
9274
9275         PR ipa/79224
9276         * ipa-inline-analysis.c (get_minimal_bb): New function.
9277         (record_modified): Use it.
9278         (remap_edge_change_prob): Handle also ancestor functions.
9279
9280 2017-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
9281
9282         * doc/contrib.texi (Contributors): Remove broken link into
9283         the Mauve CVS repository.
9284
9285 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
9286
9287         PR middle-end/79454
9288         * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
9289         result computation whenever lhs doesn't have vector mode, not
9290         just when it has BLKmode.
9291
9292 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
9293
9294         * doc/makefile.texi (profiledbootstrap): Refer to the
9295         installation instructions only in textual form.
9296
9297 2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
9298
9299         PR target/79295
9300         * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
9301
9302 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
9303
9304         * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
9305         (Specific): Update mingw-w64 reference.
9306         (Binaries): Ditto.
9307         (Specific): Remove broken link to Renesas RX processor.
9308
9309 2017-02-10  Richard Biener  <rguenther@suse.de>
9310
9311         * toplev.c (process_options): Do not mention obsolete graphite
9312         options when printing sorry message about missing graphite support.
9313         Mention -floop-nest-optimize.
9314
9315 2017-02-10  Christophe Lyon  <christophe.lyon@linaro.org>
9316
9317         * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
9318         (vtst_p16): Likewise.
9319         (vtstq_p8): Likewise.
9320         (vtstq_p16): Likewise.
9321         (vtst_p64): New.
9322         (vtstq_p64): Likewise.
9323         * config/arm/arm_neon.h (vgetq_lane_p64): New.
9324         (vset_lane_p64): New.
9325         (vsetq_lane_p64): New.
9326
9327 2017-02-10  Jakub Jelinek  <jakub@redhat.com>
9328
9329         PR tree-optimization/79411
9330         * tree-ssa-reassoc.c (is_reassociable_op): Return false if
9331         stmt operands are SSA_NAMEs used in abnormal phis.
9332         (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
9333         phis.
9334
9335 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
9336
9337         PR ipa/70795
9338         * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
9339         flag if needed.
9340
9341 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
9342
9343         * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
9344
9345 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
9346
9347         * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
9348         to avoid warning.
9349
9350         PR c/79413
9351         * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
9352         not arbitrary TREE_CONSTANT.
9353
9354         PR c/79431
9355         * gimplify.c (gimplify_adjust_omp_clauses): Ignore
9356         "omp declare target link" attribute unless is_global_var.
9357         * omp-offload.c (find_link_var_op): Likewise.
9358
9359 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
9360             Chung-Lin Tang  <cltang@codesourcery.com>
9361
9362         * gimplify.c (gimplify_scan_omp_clauses): No special handling for
9363         OMP_CLAUSE_TILE.
9364         (gimplify_adjust_omp_clauses): Don't delete TILE.
9365         (gimplify_omp_for): Deal with TILE.
9366         * internal-fn.c (expand_GOACC_TILE): New function.
9367         * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
9368         (GOACC_TILE): New.
9369         * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
9370         (expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
9371         element fields.
9372         (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
9373         avoid DIV for outermost collapse var.
9374         (expand_oacc_for): Insert tile element loop as needed.  Adjust.
9375         Remove out of date comments, fix whitespace.
9376         * omp-general.c (omp_extract_for_data): Deal with tiling.
9377         * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
9378         adjust OLF_DIM_BASE value.
9379         (struct omp_for_data): Add tiling field.
9380         * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
9381         (lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
9382         for auto loops.  Remove default auto determining, moved to
9383         oacc_loop_fixed_partitions.
9384         * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
9385         stmts, add e_mask field.
9386         (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
9387         (oacc_thread_numbers): Use oacc_dim_call.
9388         (oacc_xform_tile): New.
9389         (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
9390         (finish_oacc_loop): Adjust for ifns vector.
9391         (oacc_loop_discover_walk): Append loop abstraction sites to list,
9392         add case for GOACC_TILE fns.
9393         (oacc_loop_xform_loop): Delete.
9394         (oacc_loop_process): Iterate over call list directly, and add
9395         handling for GOACC_TILE fns.
9396         (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
9397         dump partitioning.
9398         (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
9399         vector partitioning to outer loops.  Assign 2 partitions to loops
9400         when available. Add TILE handling.
9401         (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
9402         (execite_oacc_device_lower): Process GOACC_TILE fns,
9403         ignore unknown specs.
9404         * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
9405         * tree.c (omp_clause_num_ops): Adjust TILE ops.
9406         * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
9407
9408 2017-02-09  Gerald Pfeifer  <gerald@pfeifer.com>
9409
9410         * configure.ac (ACX_BUGURL): Update.
9411         * configure: Regenerate.
9412
9413 2017-02-09  Richard Biener  <rguenther@suse.de>
9414
9415         PR tree-optimization/69823
9416         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
9417         Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.
9418
9419 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
9420
9421         * config/arc/arc-c.def: Add __NPS400__ definition.
9422         * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
9423         (TARGET_NPS400): Define.
9424
9425 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
9426
9427         * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
9428         file.
9429         (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
9430         pointer, arch_info.
9431         (arc_cpu_types): Fill the arch_info field with a pointer into the
9432         arc_arch_types table.
9433         (arc_selected_cpu): Declare.
9434         * config/arc/arc.c (arc_selected_cpu): Make global.
9435         (arc_selected_arch): Delete.
9436         (arc_base_cpu): Delete.
9437         (arc_override_options): Remove references to deleted variables,
9438         update access to arch information.
9439         (ARC_OPT): Update access to arch information.
9440         (ARC_OPTX): Likewise.
9441         * config/arc/arc.h (arc_base_cpu): Remove declaration.
9442         (TARGET_ARC600): Update access to arch information.
9443         (TARGET_ARC601): Likewise.
9444         (TARGET_ARC700): Likewise.
9445         (TARGET_EM): Likewise.
9446         (TARGET_HS): Likewise.
9447         * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
9448         information.
9449
9450 2017-02-08  Pat Haugen  <pthaugen@us.ibm.com>
9451
9452         PR target/78604
9453         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
9454         condition/operands for integer GE/LE/GEU/LEU operations.
9455
9456 2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>
9457
9458         PR translation/79397
9459         * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
9460         of AltiVec.
9461
9462 2017-02-08  Martin Jambor  <mjambor@suse.cz>
9463
9464         PR ipa/79375
9465         * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
9466         whether allocation happened.
9467         (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
9468         nothing was allocated.
9469
9470 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
9471
9472         PR tree-optimization/79408
9473         * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
9474         constant, but SSA_NAME with a known integer range, use the minimum
9475         of that range instead of op1 to determine if modulo can be replaced
9476         with its first operand.
9477
9478 2016-02-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9479
9480         * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
9481
9482 2017-02-08  Richard Biener  <rguenther@suse.de>
9483
9484         PR tree-optimization/71824
9485         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
9486         Check all loops contained in the merged region.
9487
9488 2017-02-07  Andrew Pinski  <apinski@cavium.com>
9489
9490         * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
9491
9492 2017-02-07  Andrew Pinski  <apinski@cavium.com>
9493
9494         * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
9495         (thunderxt88): Likewise.
9496         (thunderxt81): Disable LSE and change v8.1 to v8.
9497         (thunderxt83): Likewise.
9498
9499 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
9500             Richard Biener  <rguenther@suse.de>
9501
9502         PR middle-end/79399
9503         * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
9504         type from int to size_t.
9505         * ira-costs.c (struct_costs_size): Change type from int to size_t.
9506
9507 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
9508
9509         PR rtl-optimization/79386
9510         * cprop.c (bypass_conditional_jumps): Initialize
9511         bypass_last_basic_block already before splitting bbs after
9512         unconditional traps...
9513         (bypass_conditional_jumps): ... rather than here.
9514
9515         PR target/79299
9516         * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
9517         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
9518         *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
9519         fix -masm=intel patterns.
9520
9521 2017-02-07  Richard Biener  <rguenther@suse.de>
9522
9523         PR tree-optimization/79256
9524         PR middle-end/79278
9525         * builtins.c (get_object_alignment_2): Use min_align_of_type
9526         to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
9527         and ADJUST_FIELD_ALIGN.
9528
9529         * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
9530         type parameter.
9531         * doc/tm.texi: Regenerate.
9532         * stor-layout.c (layout_decl): Adjust.
9533         (update_alignment_for_field): Likewise.
9534         (place_field): Likewise.
9535         (min_align_of_type): Likewise.
9536         * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
9537         * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
9538         * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
9539         * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
9540         * config/frv/frv.c (frv_adjust_field_align): Likewise.
9541         * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
9542         * config/i386/i386.c (x86_field_alignment): Likewise.
9543         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
9544         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
9545         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
9546         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
9547         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
9548         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
9549          Likewise.
9550
9551         Revert
9552         2017-01-30  Richard Biener  <rguenther@suse.de>
9553
9554         PR tree-optimization/79256
9555         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
9556         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
9557         alignment on TYPE.
9558
9559 2017-02-07  Toma Tabacu  <toma.tabacu@imgtec.com>
9560
9561         * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
9562         argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
9563         builtins to SImode and emit a zero-extend, if necessary.
9564
9565 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
9566
9567         * docs/invoke.texi (RISC-V Options): Alphabetize.
9568
9569 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
9570
9571         * doc/invoke.texi (RISC-V Options): Use two spaces to separate
9572         options.
9573
9574 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
9575
9576         * config/riscv/riscv.c: New file.
9577         * gcc/common/config/riscv/riscv-common.c: Likewise.
9578         * config.gcc: Likewise.
9579         * config/riscv/constraints.md: Likewise.
9580         * config/riscv/elf.h: Likewise.
9581         * config/riscv/generic.md: Likewise.
9582         * config/riscv/linux.h: Likewise.
9583         * config/riscv/multilib-generator: Likewise.
9584         * config/riscv/peephole.md: Likewise.
9585         * config/riscv/pic.md: Likewise.
9586         * config/riscv/predicates.md: Likewise.
9587         * config/riscv/riscv-builtins.c: Likewise.
9588         * config/riscv/riscv-c.c: Likewise.
9589         * config/riscv/riscv-ftypes.def: Likewise.
9590         * config/riscv/riscv-modes.def: Likewise.
9591         * config/riscv/riscv-opts.h: Likewise.
9592         * config/riscv/riscv-protos.h: Likewise.
9593         * config/riscv/riscv.h: Likewise.
9594         * config/riscv/riscv.md: Likewise.
9595         * config/riscv/riscv.opt: Likewise.
9596         * config/riscv/sync.md: Likewise.
9597         * config/riscv/t-elf-multilib: Likewise.
9598         * config/riscv/t-linux: Likewise.
9599         * config/riscv/t-linux-multilib: Likewise.
9600         * config/riscv/t-riscv: Likewise.
9601         * configure.ac: Likewise.
9602         * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
9603         Waterman as RISC-V maintainers.
9604         * doc/install.texi: Add RISC-V entries.
9605         * doc/invoke.texi: Add RISC-V options section.
9606         * doc/md.texi: Add RISC-V constraints section.
9607         * configure: Regenerated.
9608
9609 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
9610
9611         PR target/66144
9612         * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
9613         false values to be constant vectors with all 0 or all 1 bits set.
9614         (vcondu<mode><mode>): Likewise.
9615         * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
9616         predicate.
9617         (fpmask_comparison_operator): Update comment.
9618         (vecint_comparison_operator): New predicate.
9619         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
9620         vector conditionals when the true and false values are constant
9621         vectors with all 0 bits or all 1 bits set.
9622
9623 2017-02-06  Martin Sebor  <msebor@redhat.com>
9624
9625         PR  tree-optimization/79376
9626         * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
9627
9628 2017-02-06  Uros Bizjak  <ubizjak@gmail.com>
9629
9630         * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
9631         explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
9632         to simplify split condition.
9633
9634 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
9635
9636         * omp-expand.c (oxpand_omp_atomic_fetch_op,
9637         expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
9638         false.
9639
9640 2017-02-06  Segher Boessenkool  <segher@kernel.crashing.org>
9641
9642         PR rtl-optimization/68664
9643         * target.def (can_speculate_insn): New hook.
9644         * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
9645         * doc/tm.texi: Regenerate.
9646         * sched-rgn.c (can_schedule_ready_p): Use the new hook.
9647         * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
9648         (rs6000_sched_can_speculate_insn): New function.
9649
9650 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
9651
9652         PR tree-optimization/79284
9653         * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
9654         * tree-vect-stmts.c (vect_get_vec_def_for_operand,
9655         vectorizable_mask_load_store, vectorizable_operation,
9656         vect_is_simple_cond, get_same_sized_vectype): Use it instead
9657         of comparing TREE_CODE of a type against BOOLEAN_TYPE.
9658         * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
9659         vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
9660         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
9661         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
9662         Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
9663         is_gimple_assign (stmt).  Replace another such test with
9664         is_gimple_assign (stmt).
9665
9666 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
9667
9668         PR target/78883
9669         * config/avr/avr.c (rtl-iter.h): Include it.
9670         (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
9671         (avr_legitimate_combined_insn): ...and implementation.
9672
9673 2017-02-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9674
9675         * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
9676         * config/s390/s390.c (s390_const_operand_ok)
9677         (s390_canonicalize_comparison, s390_extract_part)
9678         (s390_single_part, s390_contiguous_bitmask_nowrap_p)
9679         (s390_contiguous_bitmask_p, s390_rtx_costs)
9680         (legitimize_pic_address): Likewise.
9681         * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
9682         * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
9683         ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
9684         ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
9685         * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
9686
9687 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
9688
9689         * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
9690         REGNO($0) == REGNO($1).
9691
9692 2017-02-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9693
9694         * config/s390/linux.h(SIZE_TYPE): Add comment.
9695
9696 2017-02-06  Julian Brown  <julian@codesourcery.com>
9697             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
9698             Virendra Pathak  <virendra.pathak@broadcom.com>
9699
9700         * config/aarch64/aarch64-cores.def: Change the scheduler
9701         to Thunderx2t99.
9702         * config/aarch64/aarch64.md: Include thunderx2t99.md.
9703         * config/aarch64/thunderx2t99.md: New file.
9704
9705 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
9706
9707         * doc/standards.texi (Go Language): Update link to language
9708         standard.
9709
9710 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
9711
9712         * tree-eh.c (lower_resx): Sanitize profile.
9713         (cleanup_empty_eh_move_lp): Likewise.
9714
9715 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
9716
9717         PR tree-ssa/79347
9718         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
9719         ELSE_PROB.
9720         * cfgloopmanip.h (loop_version): Update prototype.
9721         * modulo-sched.c (sms_schedule): Update call of loop_version.
9722         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
9723         * tree-parloops.c (gen_parallel_loop): Likewise.
9724         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
9725         * tree-ssa-loop-split.c (split_loop): Likewise.
9726         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
9727         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
9728
9729 2017-02-05  Martin Liska  <mliska@suse.cz>
9730
9731         PR bootstrap/78985
9732         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
9733         variable to NULL.
9734         (print_operand_address): Initialize a struct to zero.
9735
9736 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
9737
9738         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
9739         garbage collector only in textual form.
9740
9741 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
9742
9743         * doc/extend.texi (x86 specific memory model extensions for
9744         transactional memory): Simplify a phrase.
9745
9746 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
9747
9748         PR target/79353
9749         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
9750         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
9751         (atomic_storedi_1): Likewise.
9752
9753 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
9754
9755         PR tree-optimization/79338
9756         * tree-parloops.c (gather_scalar_reductions): Don't call
9757         vect_analyze_loop_form for loop->inner before destroying loop's
9758         loop_vinfo.
9759
9760 2017-02-03  Martin Sebor  <msebor@redhat.com>
9761
9762         PR tree-optimization/79327
9763         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
9764         when precision has resulted in leading zeros.
9765         (format_integer): Adjust the likely counter to assume an unknown
9766         argument that may be zero is non-zero.
9767
9768 2017-02-03  Jason Merrill  <jason@redhat.com>
9769
9770         PR c++/78689
9771         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
9772         avoid copying non-taken branch.
9773
9774 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
9775
9776         PR tree-optimization/79340
9777         * tree-vect-loop.c (vectorizable_reduction): Release
9778         vec_defs elements after safe_splicing them into other vectors.
9779         Formatting fixes.
9780
9781         PR tree-optimization/79327
9782         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
9783         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
9784         dirtype.
9785         (format_integer): Use wide_int_to_tree instead of build_int_cst
9786         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
9787         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
9788         of shortest and longest sequence.
9789
9790 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
9791
9792         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
9793         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
9794
9795 2017-02-03  Walter Lee  <walt@tilera.com>
9796
9797         PR target/78862
9798         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
9799         after initial stackframe link reg save.
9800         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
9801
9802 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
9803
9804         PR target/79354
9805         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
9806         wu for stxssp alternative.
9807
9808 2017-02-03  Martin Sebor  <msebor@redhat.com>
9809
9810         PR tree-optimization/79352
9811         * gimple-fold.c (get_range_strlen): Add argument.
9812         (get_range_strlen): Change return type to bool.
9813         (get_maxval_strlen): Pass in a dummy argument.
9814         * gimple-fold.h (get_range_strlen): Change return type to bool.
9815         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
9816         * tree.h (array_at_struct_end_p): Add argument.
9817         * tree.c (array_at_struct_end_p): Handle it.
9818
9819 2017-02-03  Martin Liska  <mliska@suse.cz>
9820
9821         PR lto/66295
9822         * multiple_target.c (create_dispatcher_calls): Redirect edge
9823         from a caller of a dispatcher.
9824         (expand_target_clones): Make the clones local.
9825         (ipa_target_clone): Do both target clones and resolvers.
9826         (ipa_dispatcher_calls): Remove the pass.
9827         (pass_dispatcher_calls::gate): Likewise.
9828         (make_pass_dispatcher_calls): Likewise.
9829         * passes.def (pass_target_clone): Put as very first IPA early
9830         pass.
9831
9832 2017-02-03  Martin Liska  <mliska@suse.cz>
9833
9834         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
9835         in case of a function with ifunc attribute.
9836
9837 2017-02-03  Martin Liska  <mliska@suse.cz>
9838
9839         * cgraph.c (cgraph_node::dump): Dump function version info.
9840         * symtab.c (symtab_node::dump_base): Add missing new line.
9841
9842 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
9843
9844         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
9845         (ifcombine_ifandif): Use it.
9846
9847 2017-02-03  Martin Liska  <mliska@suse.cz>
9848
9849         * doc/invoke.texi: Document default value for
9850         use-after-scope-direct-emission-threshold.
9851
9852 2017-02-03  Martin Liska  <mliska@suse.cz>
9853
9854         PR tree-optimization/79339
9855         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
9856         (format_floating): Likewise.
9857
9858 2017-02-03  Martin Liska  <mliska@suse.cz>
9859
9860         PR ipa/79337
9861         * ipa-prop.c (ipa_node_params_t::insert): Remove current
9862         implementation.
9863         (ipa_node_params_t::remove): Likewise.
9864         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
9865         initialization from removed ipa_node_params_t::insert.
9866         (ipa_node_params::~ipa_node_params): Move from removed
9867         ipa_node_params_t::release.
9868         * symbol-summary.h (symbol_summary::m_released): New member.
9869         Do not release a summary twice.  Do not allow to call finalizer
9870         for types of a summary that live in GGC memory.
9871
9872 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
9873
9874         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
9875         cmp_branch fusion.
9876
9877 2017-02-02  Martin Sebor  <msebor@redhat.com>
9878
9879         PR middle-end/79275
9880         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
9881         (format_string): Tighten up the range of output for non-constant
9882         strings and correct the expected range for wide non-constant strings.
9883
9884 2017-02-02  Martin Sebor  <msebor@redhat.com>
9885
9886         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
9887
9888         PR middle-end/32003
9889         * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
9890         index.
9891         (-fdump-tree-@var): Add to index and document how to come up
9892         with pass-specific option and dump file names.
9893         (-fdump-passes): Clarify where to look for output.
9894
9895 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
9896
9897         PR middle-end/77445
9898         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
9899         statistics of the analyzed path; allow threading for speed when
9900         any of BBs along the path are optimized for speed.
9901
9902 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
9903
9904         PR middle-end/78468
9905         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
9906         settings of the virtual registers.
9907
9908         Revert again
9909         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9910
9911         * explow.c (get_dynamic_stack_size): Take known alignment of stack
9912         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
9913         needed.
9914
9915 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9916
9917         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
9918         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
9919
9920 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9921
9922         * config/s390/s390.md: Add missing comments with the expanded
9923         mnemonics.
9924         * config/s390/vector.md: Likewise.
9925         * config/s390/vx-builtins.md: Likewise.
9926
9927 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
9928
9929         PR target/79197
9930         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
9931         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
9932         conditions on a single line.
9933
9934 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9935
9936         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
9937         __S390_VX__ to __VX__.
9938
9939 2017-02-01  Andrew Pinski  <apinski@cavium.com>
9940
9941         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
9942         stmt_info to record_stmt_cost.
9943         (vect_get_known_peeling_cost): Pass stmt_info if known to
9944         record_stmt_cost.
9945         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
9946         cpu_vector_cost field into
9947         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
9948         field into vec_int_stmt_cost and vec_fp_stmt_cost.
9949         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
9950         splitting of scalar_stmt_cost and vec_stmt_cost.
9951         (thunderx_vector_cost): Likewise.
9952         (cortexa57_vector_cost): LIkewise.
9953         (exynosm1_vector_cost): Likewise.
9954         (xgene1_vector_cost): Likewise.
9955         (thunderx2t99_vector_cost): Improve after the splitting of the two
9956         fields.
9957         (aarch64_builtin_vectorization_cost): Update for the splitting of
9958         scalar_stmt_cost and vec_stmt_cost.
9959
9960 2017-02-01  Torvald Riegel  <triegel@redhat.com>
9961             Richard Henderson  <rth@redhat.com>
9962
9963         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
9964         conditional on existance of a fast atomic load.
9965         * optabs-query.c (can_atomic_load_p): New function.
9966         * optabs-query.h (can_atomic_load_p): Declare it.
9967         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
9968         no fast atomic load is available for the particular size of access.
9969         (expand_atomic_compare_and_swap): Likewise.
9970         (expand_atomic_load): Likewise.
9971         (expand_atomic_store): Likewise.
9972         (expand_atomic_fetch_op): Likewise.
9973         * testsuite/lib/target-supports.exp
9974         (check_effective_target_sync_int_128): Remove x86 because it provides
9975         no fast atomic load.
9976         (check_effective_target_sync_int_128_runtime): Likewise.
9977
9978 2017-02-01  Richard Biener  <rguenther@suse.de>
9979
9980         * graphite.c: Include tree-vectorizer.h for find_loop_location.
9981         (graphite_transform_loops): Provide opt-info for optimized nests.
9982         * tree-parloop.c (parallelize_loops): Provide opt-info for
9983         parallelized loops.
9984
9985 2017-02-01  Richard Biener  <rguenther@suse.de>
9986
9987         PR middle-end/79315
9988         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
9989         was not set before.
9990
9991 2017-02-01  Richard Biener  <rguenther@suse.de>
9992
9993         PR tree-optimization/71824
9994         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
9995         Verify the loops are valid in the merged SESE region.
9996         (scop_detection::can_represent_loop_1): Check analyzing the
9997         evolution of the number of iterations in the region succeeds.
9998
9999 2017-01-31  Ian Lance Taylor  <iant@golang.org>
10000
10001         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
10002         REG_ARGS_SIZE note to 32-bit push insns and call insn.
10003
10004 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
10005
10006         PR preprocessor/79210
10007         * input.c (get_substring_ranges_for_loc): Replace line_width
10008         assertion with error-handling.
10009
10010 2017-01-31  Richard Biener  <rguenther@suse.de>
10011
10012         PR tree-optimization/77318
10013         * graphite-sese-to-poly.c (extract_affine): Fix assert.
10014         (create_pw_aff_from_tree): Take loop parameter.
10015         (add_condition_to_pbb): Pass loop of the condition to
10016         create_pw_aff_from_tree.
10017
10018 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
10019
10020         * config/s390/s390.c (s390_asan_shadow_offset): New function.
10021         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
10022
10023 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
10024
10025         PR target/78597
10026         PR target/79038
10027         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
10028         no longer used.
10029         (convert_int_to_float128): Likewise.
10030         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
10031         (convert_int_to_float128): Likewise.
10032         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
10033         (UNSPEC_IEEE128_CONVERT): Likewise.
10034         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
10035         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
10036         Use local variables for IBM extended format.
10037         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
10038         (fix_trunc<mode>si2_fprs): Likewise.
10039         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
10040         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
10041         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
10042         to know that we can now have integers of all sizes in vector
10043         registers.
10044         (fix<uns>_<mode>di2_hw): Likewise.
10045         (float<uns>_<mode>si2_hw): Likewise.
10046         (fix_<mode>si2_hw): Likewise.
10047         (fixuns_<mode>si2_hw): Likewise.
10048         (float<uns>_<mode>di2_hw): Likewise.
10049         (float_<mode>di2_hw): Likewise.
10050         (float_<mode>si2_hw): Likewise.
10051         (floatuns_<mode>di2_hw): Likewise.
10052         (floatuns_<mode>si2_hw): Likewise.
10053         (xscvqp<su>wz_<mode>): Delete, no longer used.
10054         (xscvqp<su>dz_<mode>): Likewise.
10055         (xscv<su>dqp_<mode>): Likewise.
10056         (ieee128_mfvsrd_64bit): Likewise.
10057         (ieee128_mfvsrd_32bit): Likewise.
10058         (ieee128_mfvsrwz): Likewise.
10059         (ieee128_mtvsrw): Likewise.
10060         (ieee128_mtvsrd_64bit): Likewise.
10061         (ieee128_mtvsrd_32bit): Likewise.
10062
10063 2017-01-31  Martin Liska  <mliska@suse.cz>
10064
10065         PR ipa/79285
10066         * ipa-prop.c (ipa_free_all_node_params): Call release method
10067         instead of ~sumbol_summary to not to trigger double times
10068         dtor of hash_map.
10069
10070 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
10071
10072         PR tree-optimization/71691
10073         * bitmap.h (class auto_bitmap): New.
10074         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
10075         is_maybe_undefined instead of ssa_undefined_value_p.
10076
10077 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10078
10079         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
10080         __S390_ARCH_LEVEL__ to __ARCH__.
10081
10082 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
10083
10084         PR tree-optimization/79267
10085         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
10086         if should_remove_lhs_p is true.
10087
10088 2017-01-30  Alexandre Oliva <aoliva@redhat.com>
10089
10090         PR debug/63238
10091         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
10092         (add_alignment_attribute): New.
10093         (base_type_die): Add alignment attribute.
10094         (subrange_type_die): Likewise.
10095         (modified_type_die): Likewise.
10096         (gen_array_type_die): Likewise.
10097         (gen_descr_array_type_die: Likewise.
10098         (gen_enumeration_type_die): Likewise.
10099         (gen_subprogram_die): Likewise.
10100         (gen_variable_die): Likewise.
10101         (gen_field_die): Likewise.
10102         (gen_ptr_to_mbr_type_die): Likewise.
10103         (gen_struct_or_union_type_die): Likewise.
10104         (gen_subroutine_type_die): Likewise.
10105         (gen_typedef_die): Likewise.
10106         (base_type_cmp): Compare alignment attribute.
10107
10108 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
10109
10110         PR target/79170
10111         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
10112         (setb_unsigned) New pattern for setb with CCUNS.
10113         * config/rs6000/rs6000.c (expand_block_compare): Use a different
10114         subfc./subfe sequence to avoid overflow problems.  Generate a
10115         shorter sequence with cmpld/setb for power9.
10116         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
10117         for generating subfc. instruction.
10118         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
10119         now uses this instruction.
10120
10121 2017-01-30  Ian Lance Taylor  <iant@google.com>
10122
10123         PR debug/79289
10124         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
10125         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
10126
10127 2017-01-30  Martin Sebor  <msebor@redhat.com>
10128
10129         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
10130         Move constant to the right of a relational operator.
10131         (get_mpfr_format_length, format_character, format_string): Ditto.
10132         (should_warn_p, maybe_warn): Same.
10133
10134         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
10135
10136 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
10137
10138         PR lto/79061
10139         * asan.c (get_translation_unit_decl): Remove function.
10140         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
10141
10142 2017-01-30  Martin Liska  <mliska@suse.cz>
10143
10144         PR gcov-profile/79259
10145         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
10146         -fprofile-generate.
10147
10148 2017-01-30  Martin Liska  <mliska@suse.cz>
10149
10150         PR bootstrap/78985
10151         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
10152         Initialize variables with NULL value.
10153
10154 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
10155
10156         PR target/79260
10157         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
10158         tm_p_file.
10159         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
10160
10161 2017-01-30  Richard Biener  <rguenther@suse.de>
10162
10163         PR tree-optimization/79276
10164         * tree-vrp.c (process_assert_insertions): Properly adjust common
10165         when removing a duplicate.
10166
10167         * gcc.dg/torture/pr79276.c: New testcase.
10168
10169 2017-01-30  Richard Biener  <rguenther@suse.de>
10170
10171         PR tree-optimization/79256
10172         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
10173         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
10174         alignment on TYPE.
10175         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
10176
10177 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10178
10179         PR target/79240
10180         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
10181         ("*r<noxa>sbg_<mode>_sll_bitmask")
10182         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
10183         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
10184         Use contiguous_bitmask_nowrap_operand.
10185
10186 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10187
10188         PR target/79268
10189         * config/rs6000/altivec.h (vec_xl): Revise #define.
10190         (vec_xst): Likewise.
10191
10192 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
10193
10194         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
10195
10196 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
10197
10198         PR rtl-optimization/79194
10199         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
10200         traps before call to bypass_conditional_jumps.
10201
10202 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
10203
10204         PR tree-optimization/71374
10205         * lra-constraints.c (check_conflict_input_operands): New.
10206         (match_reload): Use it.
10207
10208 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
10209
10210         PR target/79131
10211         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
10212         account to calculate conflict_set.
10213
10214 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
10215
10216         PR rtl-optimization/78559
10217         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
10218         other_insn in combine.
10219
10220 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
10221
10222         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
10223         uint16_type_node for BT_UINT16.
10224
10225 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
10226
10227         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
10228         "RTL Tests" to menu.
10229         (GIMPLE Tests): New node.
10230         (RTL Tests): New node.
10231
10232 2017-01-27  Richard Biener  <rguenther@suse.de>
10233
10234         PR tree-optimization/79245
10235         * tree-loop-distribution.c (distribute_loop): Apply cost
10236         modeling also to detected patterns.
10237
10238 2017-01-27  Richard Biener  <rguenther@suse.de>
10239
10240         PR tree-optimization/71433
10241         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
10242         (compare_assert_loc): New function.
10243         (process_assert_insertions): Sort and optimize assert locations
10244         to remove duplicates and push down identical assertions on
10245         edges to their destination block.
10246
10247 2017-01-27  Richard Biener  <rguenther@suse.de>
10248
10249         PR tree-optimization/79244
10250         * tree-vrp.c (remove_range_assertions): Forcefully propagate
10251         out SSA names even if abnormal.
10252
10253 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
10254
10255         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
10256         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
10257         instead of MPFR_RNDN.
10258
10259 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
10260
10261         PR target/79239
10262         * arm.c (arm_option_override): Don't call build_target_option_node
10263         until after doing all option overrides.
10264         (arm_valid_target_attribute_tree): Likewise.
10265
10266 2017-01-27  Martin Liska  <mliska@suse.cz>
10267
10268         * doc/invoke.texi (-fprofile-arcs): Document profiling support
10269         for {cd}tors and C++ {cd}tors.
10270
10271 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10272
10273         * config/s390/s390.md ("*setmem_long_and")
10274         ("*setmem_long_and_31z"): Use zero_extend instead of and.
10275
10276 2017-01-26  Martin Sebor  <msebor@redhat.com>
10277
10278         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
10279         of precision.
10280
10281 2017-01-26  Martin Sebor  <msebor@redhat.com>
10282
10283         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
10284         HAVE_DFmode before using XFmode or DFmode.
10285         (parse_directive): Avoid using the z length modifier to avoid
10286         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
10287
10288         PR middle-end/78703
10289         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
10290         to accept adjustment as an array.
10291         (get_int_range): New function.
10292         (struct directive): Make width and prec arrays.
10293         (directive::set_width, directive::set_precision): Call get_int_range.
10294         (format_integer, format_floating): Handle width and precision ranges.
10295         (format_string, parse_directive): Same.
10296
10297 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
10298
10299         PR debug/79129
10300         * dwarf2out.c (generate_skeleton_bottom_up): For children with
10301         comdat_type_p set, just clone them, but keep the children in the
10302         original DIE.
10303
10304         PR debug/78835
10305         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
10306         which have direct callers with -fvar-tracking-assignments enabled
10307         in the current TU.
10308         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
10309         inside of type units.
10310
10311 2017-01-26  Martin Sebor  <msebor@redhat.com>
10312
10313         PR middle-end/78703
10314         * gimple-ssa-sprintf.c (struct result_range): Add likely and
10315         unlikely counters.
10316         (struct format_result): Replace number_chars, number_chars_min,
10317         and number_chars_max with a single member of struct result_range.
10318         Remove bounded.
10319         (format_result::operator+=): Adjust.
10320         (struct fmtresult): Remove bounded.  Handle likely and unlikely
10321         counters.
10322         (fmtresult::adjust_for_width_or_precision): New function.
10323         (fmtresult:type_max_digits): New function.
10324         (bytes_remaining): Handle likely and unlikely counters.
10325         (min_bytes_remaining): Remove.
10326         (format_percent): Simplify.
10327         (format_integer, format_floating): Set likely and unlikely counters.
10328         (get_string_length, format_character, format_string): Same.
10329         (format_plain, should_warn_p): New function.
10330         (maybe_warn): Call should_warn_p.  Update diagnostic messages
10331         and handle those for all directives, including plain strings.
10332         (format_directive): Handle likely and unlikely counters.
10333         Remove unnecessary quoting from diagnostics.  Add an informational
10334         note.
10335         (add_bytes): Remove.
10336         (pass_sprintf_length::compute_format_length): Simplify.
10337         (try_substitute_return_value): Handle likely and unlikely counters.
10338
10339 2017-01-26  Carl Love  <cel@us.ibm.com>
10340
10341         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
10342         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
10343
10344 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
10345
10346         PR target/79131
10347         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
10348         endianess for subregs into account.
10349         * lra-constraints.c (lra_constraints): Do risky transformations
10350         always on the first iteration.
10351         * lra-lives.c (check_pseudos_live_through_calls): Add arg
10352         last_call_used_reg_set.
10353         (process_bb_lives): Define and use last_call_used_reg_set.
10354         * lra.c (lra): Always continue after lra_constraints on the first
10355         iteration.
10356
10357 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
10358
10359         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
10360         constant.
10361         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
10362
10363 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
10364
10365         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
10366         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
10367         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
10368         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
10369         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
10370         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
10371         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
10372         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
10373         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
10374
10375 2017-01-26  Marek Polacek  <polacek@redhat.com>
10376
10377         PR c/79199
10378         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
10379         for the third operand.
10380
10381 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
10382
10383         PR middle-end/79236
10384         * omp-low.c (struct omp_context): Add simt_stmt field.
10385         (scan_omp_for): Return omp_context *.
10386         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
10387         context to the _simt_ SIMD stmt.
10388         (lower_omp_for): For combined SIMD with sibling _simt_
10389         SIMD, make sure to use the same decls in _looptemp_
10390         clauses as in the sibling.
10391
10392 2017-01-26  David Sherwood  <david.sherwood@arm.com>
10393
10394         PR middle-end/79212
10395         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
10396         all contexts.
10397
10398 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
10399
10400         PR target/70465
10401         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
10402         emit fld b; fld a; if possible.
10403
10404         * brig-builtins.def: Update copyright years.
10405         * config/arm/arm_acle_builtins.def: Update copyright years.
10406
10407 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
10408
10409         PR target/79179
10410         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
10411         constraint instead of o for the stxsd instruction.
10412
10413 2017-01-25  Carl Love  <cel@us.ibm.com>
10414
10415         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
10416         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
10417
10418 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
10419
10420         * doc/invoke.texi (C++ Dialect Options): Fix typo.
10421
10422 2017-01-25  Richard Biener  <rguenther@suse.de>
10423
10424         PR tree-optimization/69264
10425         * target.def (vector_alignment_reachable): Improve documentation.
10426         * doc/tm.texi: Regenerate.
10427         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
10428         and add a comment.
10429         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
10430         earlier changes with respect to TYPE_USER_ALIGN.
10431         (vector_alignment_reachable_p): Likewise.  Improve dumping.
10432
10433 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10434
10435         PR target/79145
10436         * config/arm/arm.md (xordi3): Force constant operand into a register
10437         for TARGET_IWMMXT.
10438
10439 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10440
10441         * doc/invoke.texi (-fstore-merging): Correct default optimization
10442         levels at which it is enabled.
10443         (-O): Move -fstore-merging from list to...
10444         (-O2): ... Here.
10445
10446 2017-01-25  Richard Biener  <rguenther@suse.de>
10447
10448         PR debug/78363
10449         * omp-expand.c: Include debug.h.
10450         (expand_omp_taskreg): Make sure to generate early debug before
10451         outlining anything from a function.
10452         (expand_omp_target): Likewise.
10453         (grid_expand_target_grid_body): Likewise.
10454
10455 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
10456
10457         PR lto/79061
10458         * asan.c (get_translation_unit_decl): New function.
10459         (asan_add_global): Extract modules file name from globals
10460         TRANSLATION_UNIT_DECL name.
10461
10462 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
10463
10464         PR target/77439
10465         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
10466         for long calls with APCS frame and VFP.
10467
10468 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
10469
10470         * cfg.c (original_copy_tables_initialized_p): New function.
10471         * cfg.h (original_copy_tables_initialized_p): New decl.
10472         * cfgrtl.c (relink_block_chain): Guard the call to
10473         free_original_copy_tables with a call to
10474         original_copy_tables_initialized_p.
10475         * cgraph.h (symtab_node::native_rtl_p): New decl.
10476         * cgraphunit.c (symtab_node::native_rtl_p): New function.
10477         (symtab_node::needed_p): Don't assert for early assembly output
10478         for __RTL functions.
10479         (cgraph_node::finalize_function): Set "force_output" for __RTL
10480         functions.
10481         (cgraph_node::analyze): Bail out early for __RTL functions.
10482         (analyze_functions): Update assertion to support __RTL functions.
10483         (cgraph_node::expand): Bail out early for __RTL functions.
10484         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
10485         __RTL functions.
10486         * function.h (struct function): Update comment for field
10487         "pass_startwith".
10488         * gimple-expr.c: Include "tree-pass.h".
10489         (gimple_has_body_p): Return false for __RTL functions.
10490         * Makefile.in (OBJS): Add run-rtl-passes.o.
10491         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
10492         accessor.
10493         (gcc::pass_manager::get_clean_slate): New accessor.
10494         * passes.c: Include "insn-addr.h".
10495         (should_skip_pass_p): Add logging.  Update logic for running
10496         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
10497         property-provider override so it is only done for gimple passes.
10498         Don't skip dfinit.
10499         (skip_pass): New function.
10500         (execute_one_pass): Call skip_pass when skipping passes.
10501         * read-md.c (md_reader::read_char): Support filtering
10502         the input to a subset of line numbers.
10503         (md_reader::md_reader): Initialize fields
10504         m_first_line and m_last_line.
10505         (md_reader::read_file_fragment): New function.
10506         * read-md.h (md_reader::read_file_fragment): New decl.
10507         (md_reader::m_first_line): New field.
10508         (md_reader::m_last_line): New field.
10509         * read-rtl-function.c (function_reader::create_function): Only
10510         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
10511         curr_properties.  Set DECL_INITIAL to a dummy block.
10512         (read_rtl_function_body_from_file_range): New function.
10513         * read-rtl-function.h (read_rtl_function_body_from_file_range):
10514         New decl.
10515         * run-rtl-passes.c: New file.
10516         * run-rtl-passes.h: New file.
10517
10518 2017-01-24  Jeff Law  <law@redhat.com>
10519
10520         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
10521         buffer size.
10522
10523 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
10524
10525         PR tree-optimization/79159
10526         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
10527         (record_nonwrapping_iv): Improve boundary using above function if no
10528         value range information.
10529
10530 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
10531             Martin Jambor  <mjambor@suse.cz>
10532
10533         * brig-builtins.def: New file.
10534         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
10535         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
10536         (DEF_HSAIL_SAT_BUILTIN): Likewise.
10537         (DEF_HSAIL_INTR_BUILTIN): Likewise.
10538         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
10539         * builtin-types.def (BT_INT8): New.
10540         (BT_INT16): Likewise.
10541         (BT_UINT8): Likewise.
10542         (BT_UINT16): Likewise.
10543         (BT_FN_ULONG): Likewise.
10544         (BT_FN_UINT_INT): Likewise.
10545         (BT_FN_UINT_ULONG): Likewise.
10546         (BT_FN_UINT_LONG): Likewise.
10547         (BT_FN_UINT_PTR): Likewise.
10548         (BT_FN_ULONG_PTR): Likewise.
10549         (BT_FN_INT8_FLOAT): Likewise.
10550         (BT_FN_INT16_FLOAT): Likewise.
10551         (BT_FN_UINT32_FLOAT): Likewise.
10552         (BT_FN_UINT16_FLOAT): Likewise.
10553         (BT_FN_UINT8_FLOAT): Likewise.
10554         (BT_FN_UINT64_FLOAT): Likewise.
10555         (BT_FN_UINT16_UINT32): Likewise.
10556         (BT_FN_UINT32_UINT16): Likewise.
10557         (BT_FN_UINT16_UINT16_UINT16): Likewise.
10558         (BT_FN_INT_PTR_INT): Likewise.
10559         (BT_FN_UINT_PTR_UINT): Likewise.
10560         (BT_FN_LONG_PTR_LONG): Likewise.
10561         (BT_FN_ULONG_PTR_ULONG): Likewise.
10562         (BT_FN_VOID_UINT64_UINT64): Likewise.
10563         (BT_FN_UINT8_UINT8_UINT8): Likewise.
10564         (BT_FN_INT8_INT8_INT8): Likewise.
10565         (BT_FN_INT16_INT16_INT16): Likewise.
10566         (BT_FN_INT_INT_INT): Likewise.
10567         (BT_FN_UINT_FLOAT_UINT): Likewise.
10568         (BT_FN_FLOAT_UINT_UINT): Likewise.
10569         (BT_FN_ULONG_UINT_UINT): Likewise.
10570         (BT_FN_ULONG_UINT_PTR): Likewise.
10571         (BT_FN_ULONG_ULONG_ULONG): Likewise.
10572         (BT_FN_UINT_UINT_UINT): Likewise.
10573         (BT_FN_VOID_UINT_PTR): Likewise.
10574         (BT_FN_UINT_UINT_PTR: Likewise.
10575         (BT_FN_UINT32_UINT64_PTR): Likewise.
10576         (BT_FN_INT_INT_UINT_UINT): Likewise.
10577         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
10578         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
10579         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
10580         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
10581         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
10582         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
10583         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
10584         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
10585         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
10586         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
10587         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
10588         * doc/frontends.texi: List BRIG FE.
10589         * doc/install.texi (Testing): Add BRIG tesring requirements.
10590         * doc/invoke.texi (Overall Options): Mention BRIG.
10591         * doc/standards.texi (Standards): Doucment BRIG HSA version.
10592
10593 2017-01-24  Richard Biener  <rguenther@suse.de>
10594
10595         PR translation/79208
10596         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
10597
10598 2017-01-24  Martin Jambor  <mjambor@suse.cz>
10599
10600         PR bootstrap/79198
10601         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
10602         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
10603         and known_contexts.
10604
10605 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
10606
10607         PR middle-end/79123
10608         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
10609         casts from signed to unsigned really don't have a range.
10610
10611 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
10612
10613         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
10614         GMP_RNDx for compatiblity.
10615
10616 2017-01-24  Martin Liska  <mliska@suse.cz>
10617
10618         PR bootstrap/79132
10619         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
10620         that would prevent us to call alloca with -1 as argument.
10621
10622 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
10623
10624         * dwarf2out.c (output_compilation_unit_header, output_file_names):
10625         Avoid -Wformat-security warning.
10626
10627 2017-01-23  Andrew Pinski  <apinski@cavium.com>
10628
10629         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
10630         cost table.
10631
10632 2017-01-23  Martin Sebor  <msebor@redhat.com>
10633
10634         PR middle-end/78703
10635         * gimple-ssa-sprintf.c (warn_level): New global.
10636         (format_integer): Use it here and throughout the rest of the file.
10637         Use the same switch to compute sign as base.
10638         (maybe_warn): New function.
10639         (format_directive): Factor out warnings into maybe_warn.
10640         Add debugging output.  Use warn_level.
10641         (add_bytes): Use warn_level.
10642         (pass_sprintf_length::compute_format_length): Add debugging output.
10643         (try_substitute_return_value): Same.
10644         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
10645
10646         PR middle-end/78703
10647         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
10648         (struct fmtresult, format_integer, format_floating): Adjust.
10649         (fmtresult::fmtresult): Set max correctly in two argument ctor.
10650         (get_string_length, format_string,format_directive): Same.
10651         (pass_sprintf_length::compute_format_length): Same.
10652         (try_substitute_return_value): Simplify slightly.
10653
10654         PR middle-end/78703
10655         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
10656         (fmtresult::operator+=): Outlined.
10657         (struct fmtresult): Add ctors.
10658         (struct conversion_spec): Rename...
10659         (struct directive): ...to this.  Add and remove data members.
10660         (directive::set_width, directive::set_precision): New functions.
10661         (format_percent): Use fmtresult ctor.
10662         (get_width_and_precision): Remove.
10663         (format_integer): Make naming changes.  Avoid computing width and
10664         precision.
10665         (format_floating): Same.  Adjust indentation.
10666         (format_character, format_none): New functions.
10667         (format_string): Moved character handling to format_character.
10668         (format_directive): Remove arguments, change return type.
10669         (parse_directive): New function.
10670         (pass_sprintf_length::compute_format_length): Move directive
10671         parsing to parse_directive.
10672
10673 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
10674
10675         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
10676         (assign_assembler_name_if_needed): ... this.
10677         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
10678         (assign_assembler_name_if_needed): ... this.
10679         (free_lang_data_in_cgraph): Adjust callers.
10680         * cgraphunit.c (cgraph_node::analyze): Likewise.
10681         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
10682         Likewise.
10683
10684 2017-01-23  Richard Biener  <rguenther@suse.de>
10685
10686         PR tree-optimization/79088
10687         PR tree-optimization/79188
10688         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
10689         resetting loop bounds after last path deletion.  Reset loop
10690         bounds of the target loop, make code match the comments.
10691         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
10692         Make sure loops need no fixups.
10693
10694 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
10695
10696         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
10697         exponent support with double type for first argument.
10698         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
10699         type returned by __builtin_vec_extract_sig,
10700         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
10701         functions from "vector int" to "vector unsigned int" or from
10702         "vector long long int" to "vector unsigned long long int".
10703         Changed type returned by __builtin_vec_extract_exp,
10704         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
10705         functions from "vector int" to "vector unsigned int" or from
10706         "vector long long int" to "vector unsigned long long int".
10707         Changed return type of __builtin_vec_test_data_class,
10708         __builtin_vec_test_data_class_sp, and
10709         __builtin_vec_test_data_class_dp from "vector int" to
10710         "vector bool int" or from "vector long long int" to "vector bool
10711         long long int" and changed second argument type from "unsigned
10712         int" to "int".  Added new overloaded function forms "vector float
10713         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
10714         "vector float __builtin_vec_insert_exp_sp (vector float, vector
10715         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
10716         double, vector unsigned long long int)" and "vector double
10717         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
10718         long int)".  Changed return type of
10719         __builtin_scalar_test_data_class and
10720         __builtin_scalar_test_data_class_sp and
10721         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
10722         int" and changed second argument from "unsigned int" to "int".
10723         Changed type returned by __builtin_scalar_test_neg,
10724         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
10725         from "int" to "bool int".  Added new overloaded function form
10726         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
10727         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
10728         exponent double-precision with floating point first argument.
10729         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
10730         documentation of scalar_test_data_class, scalar_test_neg,
10731         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
10732         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
10733         vec_test_data_class built-in functions to reflect refinements in
10734         their type signatures.
10735
10736 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
10737
10738         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
10739         size of buf.
10740         (aarch64_elf_asm_destructor): Likewise.
10741
10742 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
10743
10744         PR rtl-optimization/78634
10745         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
10746         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
10747         * ifcvt.c (noce_try_cmove): Add missing cost check.
10748
10749         PR rtl-optimization/71724
10750         * combine.c (if_then_else_cond): Look for situations where it is
10751         beneficial to undo the work of one of the recursive calls.
10752
10753 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
10754
10755         PR tree-optimization/70754
10756         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
10757         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
10758         combined stmt before it if not NULL.
10759         (combine_chains): Process refs reversely and compute dominance point
10760         for root ref.
10761
10762 2017-01-23  Martin Liska  <mliska@suse.cz>
10763
10764         PR tree-optimization/79196
10765         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
10766         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
10767         instead of memcmp.
10768         (strlen_optimize_stmt): Call the renamed function.
10769
10770 2017-01-23  Michael Matz  <matz@suse.de>
10771
10772         PR tree-optimization/78384
10773         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
10774
10775 2017-01-23  Richard Biener  <rguenther@suse.de>
10776
10777         PR tree-optimization/79186
10778         * tree-vrp.c (register_new_assert_for): Make sure we've seen
10779         both incoming edges before moving an assert.
10780
10781 2017-01-23  Martin Jambor  <mjambor@suse.cz>
10782
10783         * ipa-prop.c (load_from_param_1): Removed.
10784         (load_from_unmodified_param): Bits from load_from_param_1 put back
10785         here.
10786         (load_from_param): Removed.
10787         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
10788         with stmt.  Reverted back to use of load_from_unmodified_param.
10789
10790 2017-01-23  Martin Jambor  <mjambor@suse.cz>
10791
10792         PR ipa/79108
10793         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
10794         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
10795         field a pointer to garbage collected vector, mark lattices and
10796         ipcp_orig_node with GTY((skip)).
10797         (ipa_get_param_count): Adjust to descriptors being a pointer.
10798         (ipa_get_param): Likewise.
10799         (ipa_get_type): Likewise.
10800         (ipa_get_param_move_cost): Likewise.
10801         (ipa_set_param_used): Likewise.
10802         (ipa_get_controlled_uses): Likewise.
10803         (ipa_set_controlled_uses): Likewise.
10804         (ipa_is_param_used): Likewise.
10805         (ipa_node_params_t): Move into garbage collector.  New methods insert
10806         and remove.
10807         (ipa_node_params_sum): Annotate wth GTY(()).
10808         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
10809         garbage collected.
10810         (ipa_load_from_parm_agg): Adjust declaration.
10811         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
10812         * ipa-profile.c (ipa_profile): Likewise.
10813         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
10814         (ipa_populate_param_decls): Make descriptors parameter garbage
10815         collected.
10816         (ipa_dump_param): Adjust to descriptors being a pointer.
10817         (ipa_alloc_node_params): Likewise.
10818         (ipa_initialize_node_params): Likewise.
10819         (load_from_param_1): Make descriptors parameter garbage collected.
10820         (load_from_unmodified_param): Likewise.
10821         (load_from_param): Likewise.
10822         (ipa_load_from_parm_agg): Likewise.
10823         (ipa_node_params::~ipa_node_params): Removed.
10824         (ipa_free_all_node_params): Remove call to delete operator.
10825         (ipa_node_params_t::insert): New.
10826         (ipa_node_params_t::remove): Likewise.
10827         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
10828         copy known_csts and known_contexts vectors.
10829         (ipa_read_node_info): Adjust to descriptors being a pointer.
10830         (ipcp_modif_dom_walker): Make m_descriptors field garbage
10831         collected.
10832         (ipcp_transform_function): Make descriptors variable garbage
10833         collected.
10834
10835 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
10836
10837         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
10838         * config/i386/avx512dqintrin.h: Ditto.
10839         * config/i386/avx512fintrin.h: Ditto.
10840         * gcc/config/i386/i386.c: Handle new builtins.
10841         * config/i386/i386-builtin.def: Add new builtins.
10842         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
10843         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
10844
10845 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
10846             Martin Liska  <mliska@suse.cz>
10847
10848         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
10849         * asan.c (asan_expand_poison_ifn): Support stores and use
10850         appropriate ASAN report function.
10851         * internal-fn.c (expand_ASAN_POISON_USE): New function.
10852         * internal-fn.def (ASAN_POISON_USE): Declare.
10853         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
10854         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
10855         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
10856         ASAN_POISON calls w/o LHS.
10857         * tree-ssa.c (execute_update_addresses_taken): Create clobber
10858         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
10859         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
10860         * gimplify.c (asan_poison_variables): Add attribute
10861         use_after_scope_memory to variables that really needs to live
10862         in memory.
10863         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
10864         having the attribute.
10865
10866 2017-01-23  Martin Liska  <mliska@suse.cz>
10867
10868         * asan.c (create_asan_shadow_var): New function.
10869         (asan_expand_poison_ifn): Likewise.
10870         * asan.h (asan_expand_poison_ifn): New declaration.
10871         * internal-fn.c (expand_ASAN_POISON): Likewise.
10872         * internal-fn.def (ASAN_POISON): New builtin.
10873         * sanopt.c (pass_sanopt::execute): Expand
10874         asan_expand_poison_ifn.
10875         * tree-inline.c (copy_decl_for_dup_finish): Make function
10876         external.
10877         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
10878         * tree-ssa.c (is_asan_mark_p): New function.
10879         (execute_update_addresses_taken): Rewrite local variables
10880         (identified just by use-after-scope as addressable) into SSA.
10881
10882 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
10883
10884         * doc/install.texi (Specific): opensource.apple.com uses https
10885         now. Remove trailing slash.
10886
10887 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
10888
10889         * README.Portability: Remove note on an Irix compatibility issue.
10890
10891 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
10892
10893         * gcov.c (INCLUDE_ALGORITHM): Define.
10894         (INCLUDE_VECTOR): Define.
10895         No longer include <vector> and <algorithm> directly.
10896
10897 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
10898
10899         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
10900         to https.
10901         * doc/invoke.texi (Code Gen Options): Ditto.
10902
10903 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
10904
10905         PR lto/78407
10906         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
10907
10908 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
10909
10910         rtl-optimization/79125
10911         * cprop.c (local_cprop_pass): Handle cases where we make an
10912         unconditional trap.
10913
10914 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
10915
10916         PR target/61729
10917         PR target/77850
10918         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
10919         read from, for big endian.
10920
10921 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
10922
10923         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
10924         register pauth builtins for LP64 only.
10925
10926 2017-01-20  Marek Polacek  <polacek@redhat.com>
10927
10928         PR c/79152
10929         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
10930         non-case labels.
10931
10932 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
10933
10934         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
10935         of safelen status.
10936         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
10937         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
10938         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
10939
10940 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10941
10942         PR target/71270
10943         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
10944         in big-endian mode when they are not a single duplicated value.
10945
10946 2017-01-20  Richard Biener  <rguenther@suse.de>
10947
10948         * BASE-VER: Bump to 7.0.1.
10949
10950 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
10951
10952         * omp-low.c (omplow_simd_context): New struct.  Use it...
10953         (lower_rec_simd_input_clauses): ...here and...
10954         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
10955         references to idx, lane, max_vf, is_simt.
10956
10957 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
10958
10959         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
10960         mcpu=nps400.
10961
10962 2017-01-20  Martin Jambor  <mjambor@suse.cz>
10963
10964         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
10965         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
10966         gt-hsa-common.h.
10967         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
10968         (GTFILES): Rename hsa.c to hsa-common.c.
10969         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
10970         * hsa-dump.c: Likewise.
10971         * hsa-gen.c: Likewise.
10972         * hsa-regalloc.c: Likewise.
10973         * ipa-hsa.c: Likewise.
10974         * omp-expand.c: Likewise.
10975         * omp-low.c: Likewise.
10976         * toplev.c: Likewise.
10977
10978 2017-01-20  Marek Polacek  <polacek@redhat.com>
10979
10980         PR c/64279
10981         * doc/invoke.texi: Document -Wduplicated-branches.
10982         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
10983         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
10984         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
10985         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
10986         return 0 only when not OEP_LEXICOGRAPHIC.
10987         (fold_build_cleanup_point_expr): Use the expression
10988         location when building CLEANUP_POINT_EXPR.
10989         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
10990         * tree.c (add_expr): Handle error_mark_node.
10991
10992 2017-01-20  Martin Liska  <mliska@suse.cz>
10993
10994         PR lto/69188
10995         * tree-profile.c (init_ic_make_global_vars): Do not call
10996         finalize_decl.
10997         (gimple_init_gcov_profiler): Likewise.
10998
10999 2017-01-20  Martin Liska  <mliska@suse.cz>
11000
11001         PR ipa/71190
11002         * cgraph.h (maybe_create_reference): Remove argument and
11003         update comment.
11004         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
11005         argument.
11006         * ipa-cp.c (create_specialized_node): Likewise.
11007         * symtab.c (symtab_node::maybe_create_reference): Handle
11008         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
11009
11010 2017-01-20  Martin Liska  <mliska@suse.cz>
11011
11012         * read-rtl-function.c (function_reader::create_function): Use
11013         build_decl instread of build_decl_stat.
11014
11015 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
11016
11017         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
11018         * config/i386/avx512dqintrin.h: Ditto.
11019         * config/i386/avx512fintrin.h: Ditto.
11020         * config/i386/i386-builtin-types.def: Add new types.
11021         * gcc/config/i386/i386.c: Handle new types.
11022         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
11023         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
11024         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
11025         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
11026         (__builtin_ia32_kshiftridi): New.
11027         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
11028
11029 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
11030
11031         PR target/78875
11032         PR target/79140
11033         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
11034         define to rs6000_init_stack_protect_guard.
11035         (rs6000_init_stack_protect_guard): New function.
11036
11037 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
11038             Yunqiang Su  <yunqiang.su@imgtec.com>
11039
11040         * config.gcc (supported_defaults): Add madd4.
11041         (with_madd4): Add validation.
11042         (all_defaults): Add madd4.
11043         * config/mips/mips.opt (mmadd4): New option.
11044         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
11045         mmadd4.
11046         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
11047         __mips_no_madd4.
11048         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
11049         (ISA_HAS_FUSED_MADD4): Likewise.
11050         * gcc/doc/invoke.texi (-mmadd4): Document the new option.
11051         * gcc/doc/install.texi (--with-madd4): Document the new option.
11052
11053 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
11054
11055         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
11056         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
11057         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
11058         (aarch64_init_pauth_hint_builtins): New.
11059         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
11060         (aarch64_expand_builtin): Expand new builtins.
11061
11062 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
11063
11064         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
11065         * combine-stack-adj.c (no_unhandled_cfa): Handle
11066         REG_CFA_TOGGLE_RA_MANGLE.
11067         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
11068         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
11069         info for return address signing.
11070         (aarch64_expand_epilogue): Likewise.
11071
11072 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
11073
11074         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
11075         * config/aarch64/aarch64-protos.h
11076         (aarch64_return_address_signing_enabled): New declaration.
11077         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
11078         New function.
11079         (aarch64_expand_prologue): Sign return address before it's pushed onto
11080         stack.
11081         (aarch64_expand_epilogue): Authenticate return address fetched from
11082         stack.
11083         (aarch64_override_options): Sanity check for ILP32 and ISA level.
11084         (aarch64_attributes): New function attributes for "sign-return-address".
11085         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
11086         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
11087         ("*do_return"): Generate combined instructions according to key index.
11088         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
11089         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
11090         iterators.
11091         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
11092         * config/aarch64/aarch64.opt (msign-return-address=): New.
11093         * doc/extend.texi (AArch64 Function Attributes): Documents
11094         "sign-return-address=".
11095         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
11096
11097 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
11098
11099         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
11100         overall option summary.
11101
11102 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
11103
11104         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
11105         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
11106         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
11107         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
11108
11109 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
11110
11111         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
11112         -mpower9-minmax by default for -mcpu=power9.
11113         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
11114         128-bit floating point.
11115
11116 2017-01-20  Alan Modra  <amodra@gmail.com>
11117
11118         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
11119         optimizing for size.
11120
11121 2017-01-20  Alan Modra  <amodra@gmail.com>
11122
11123         PR target/79144
11124         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
11125         for strcmp and strncmp from corresponding builtin decl.
11126
11127 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
11128
11129         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
11130         instead of i386/rtems-64.h.
11131         * config/i386/rtems-64.h: Remove.
11132
11133 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
11134
11135         PR target/78478
11136         Revert:
11137         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
11138
11139         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
11140
11141 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
11142
11143         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
11144         Change int to HOST_WIDE_INT.
11145         * config/aarch64/aarch64-protos.h
11146         (aarch64_simd_gen_const_vector_dup): Likewise.
11147         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
11148
11149 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
11150
11151         * langhooks-def.h (lhd_type_for_size): New decl.
11152         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
11153         * langhooks.c (lhd_type_for_size): New function, taken from
11154         lto_type_for_size.
11155
11156 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
11157
11158         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
11159         define_bypass for CR latency.
11160         (power9-cracked-alu): Update bypass latency and remove power9-branch.
11161         (power9-alu2): Add define_bypass for CR latency.
11162         (power9-cmp): New.
11163         (power9-mul): Update insn latency.
11164         (power9-mul-compare): Update insn latency, bypass latency and remove
11165         power9-branch.
11166
11167 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11168
11169         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
11170         Delete.
11171         * config/aarch64/aarch64.md
11172         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
11173         aarch64_nopcrelative_literal_loads.
11174         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
11175
11176 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
11177
11178         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
11179         TARGET_LOONGSON_3A.
11180         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
11181
11182 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
11183
11184         PR target/78176
11185         * config.gcc (supported_defaults): Add lxc1-sxc1.
11186         (with_lxc1_sxc1): Add validation.
11187         (all_defaults): Add lxc1-sxc1.
11188         * config/mips/mips.opt (mlxc1-sxc1): New option.
11189         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
11190         mlxc1-sxc1.
11191         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
11192         __mips_no_lxc1_sxc1.
11193         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
11194         * gcc/doc/invoke.texi (-mlxc1-sxc1): Document the new option.
11195         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
11196
11197 2017-01-19  Richard Biener  <rguenther@suse.de>
11198
11199         PR tree-optimization/72488
11200         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
11201         sure to restore SSA info.
11202         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
11203
11204 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
11205
11206         PR rtl-optimization/79121
11207         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
11208         of the inner type when shifting an extended value.
11209
11210 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
11211
11212         PR lto/78407
11213         * symtab.c (symtab_node::equal_address_to): Fix comparing of
11214         interposable aliases.
11215
11216 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
11217
11218         PR target/78516
11219         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
11220         Use the evmergelohi instruction.
11221         (mov_si<mode>_e500_subreg4_2_le): Likewise.
11222         (mov_sitf_e500_subreg8_2_be): Likewise.
11223         (mov_sitf_e500_subreg12_2_le): Likewise.
11224         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
11225         (mov_si<mode>_e500_subreg4_2_be): Likewise.
11226         (mov_sitf_e500_subreg8_2_le): Likewise.
11227         (mov_sitf_e500_subreg12_2_be): Likewise.
11228
11229 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11230
11231         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
11232         attribute from vecsimple to vecperm.
11233         (altivec_vbpermq2): Likewise.
11234
11235 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11236
11237         PR target/79040
11238         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
11239
11240 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
11241         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
11242         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
11243         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
11244         case where N arg is SIZE_MAX.
11245         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
11246         (cmpstrsi): Add pattern.
11247
11248 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
11249
11250         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11251         __builtin_vec_revb builtins.
11252         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
11253         built-in functions to support generation of the ISA 3.0 XXBR<x>
11254         vector byte reverse instructions.
11255         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
11256         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
11257         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
11258         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
11259         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
11260         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
11261         (P9V_BUILTIN_VEC_REVB): Likewise.
11262         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
11263         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
11264         (p9_xxbrq_v16qi): Likewise.
11265         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
11266         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
11267         (p9_xxbrh_v8hi): Likewise.
11268         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
11269         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
11270         vec_revb built-in functions.
11271
11272 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
11273
11274         PR rtl-optimization/78952
11275         * config/i386/i386.md (any_extract): New code iterator.
11276         (*insvqi_2): Use any_extract for source operand.
11277         (*insvqi_3): Use any_shiftrt for source operand.
11278
11279 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
11280
11281         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
11282         New function.
11283         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
11284
11285 2017-01-18  Matthias Klose  <doko@ubuntu.com>
11286
11287         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
11288
11289 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11290
11291         * config/rs6000/altivec.h (vec_bperm): Change #define.
11292         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
11293         (altivec_vbpermq2): New define_insn.
11294         (altivec_vbpermd): Likewise.
11295         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
11296         function interface.
11297         (VBPERMD): Likewise.
11298         (VBPERM): New polymorphic function interface.
11299         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
11300         Add entries for P9V_BUILTIN_VEC_VBPERM.
11301         * doc/extend.texi: Add interfaces for vec_bperm.
11302
11303 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11304
11305         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
11306         first letter of error messages.
11307         (s390_resolve_overloaded_builtin): Likewise.
11308         * config/s390/s390.c (s390_expand_builtin): Likewise.
11309         (s390_invalid_arg_for_unprototyped_fn): Likewise.
11310         (s390_valid_target_attribute_inner_p): Likewise.
11311         * config/s390/s390.md ("tabort"): Likewise.
11312
11313 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
11314
11315         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
11316         (ISA_AVOID_DIV_HILO): New macro.
11317         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
11318         (ISA_HAS_DDIV): Likewise.
11319
11320 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
11321
11322         * doc/invoke.texi (fabi-version): Correct number of occurrences.
11323
11324 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
11325
11326         * doc/invoke.texi (fabi-version): Spelling fix.
11327
11328 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
11329
11330         PR c++/70182
11331         * doc/invoke.texi (fabi-version): Mention mangling fix for
11332         operator names.
11333
11334 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
11335
11336         PR c++/77489
11337         * doc/invoke.texi (fabi-version): Document discriminator mangling.
11338
11339 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
11340
11341         PR target/78875
11342         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
11343         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
11344         the new options.
11345         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
11346         flexible settings.
11347         (stack_protect_test): Ditto.
11348         * config/rs6000/rs6000.opt (mstack-protector-guard=,
11349         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
11350         options.
11351         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
11352         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
11353         -mstack-protector-guard-offset=.
11354         (RS/6000 and PowerPC Options): Ditto.
11355
11356 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
11357
11358         * config/i386/i386.h (MASK_CLASS_P): New define.
11359         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
11360         there are no registers from different register sets also when
11361         mask registers are used.  Update function comment.
11362         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
11363         to (*k/*r) and (*k/*km) alternatives.
11364
11365 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
11366
11367         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
11368         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
11369         (EH_RETURN_HANDLER_RTX): New define.
11370         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
11371         Force frame pointer in EH return functions.
11372         (aarch64_expand_epilogue): Add barrier for eh_return.
11373         (aarch64_final_eh_return_addr): Remove.
11374         (aarch64_eh_return_handler_rtx): New function.
11375         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
11376         Remove.
11377         (aarch64_eh_return_handler_rtx): New prototype.
11378
11379 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11380
11381         * config/rs6000/altivec.h (vec_rlmi): New #define.
11382         (vec_vrlnm): Likewise.
11383         (vec_rlnm): Likewise.
11384         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
11385         (UNSPEC_VRLNM): Likewise.
11386         (VIlong): New mode iterator.
11387         (altivec_vrl<VI_char>mi): New define_insn.
11388         (altivec_vrl<VI_char>nm): Likewise.
11389         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
11390         function entry.
11391         (VRLDNM): Likewise.
11392         (RLNM): New polymorphic function entry.
11393         (VRLWMI): New monomorphic function entry.
11394         (VRLDMI): Likewise.
11395         (RLMI): New polymorphic function entry.
11396         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
11397         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
11398         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
11399         vec_vrlnm.
11400
11401 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
11402
11403         PR debug/78839
11404         * dwarf2out.c (field_byte_offset): Restore the
11405         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
11406         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
11407         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
11408         of build2 + fold.
11409
11410 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
11411
11412         PR ada/67205
11413         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
11414
11415 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
11416
11417         PR debug/71669
11418         * dwarf2out.c (add_data_member_location_attribute): For constant
11419         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
11420         instead of DW_AT_data_member_location, DW_AT_bit_offset and
11421         DW_AT_byte_size attributes.
11422
11423 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
11424
11425         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
11426         after forcing to constant memory when the code model is medium.
11427
11428 2017-01-17  Julia Koval  <julia.koval@intel.com>
11429
11430         PR target/76731
11431         * config/i386/avx512fintrin.h
11432         (_mm512_i32gather_ps): Change __addr type to void const*.
11433         (_mm512_mask_i32gather_ps): Ditto.
11434         (_mm512_i32gather_pd): Ditto.
11435         (_mm512_mask_i32gather_pd): Ditto.
11436         (_mm512_i64gather_ps): Ditto.
11437         (_mm512_mask_i64gather_ps): Ditto.
11438         (_mm512_i64gather_pd): Ditto.
11439         (_mm512_mask_i64gather_pd): Ditto.
11440         (_mm512_i32gather_epi32): Ditto.
11441         (_mm512_mask_i32gather_epi32): Ditto.
11442         (_mm512_i32gather_epi64): Ditto.
11443         (_mm512_mask_i32gather_epi64): Ditto.
11444         (_mm512_i64gather_epi32): Ditto.
11445         (_mm512_mask_i64gather_epi32): Ditto.
11446         (_mm512_i64gather_epi64): Ditto.
11447         (_mm512_mask_i64gather_epi64): Ditto.
11448         (_mm512_i32scatter_ps): Change __addr type to void*.
11449         (_mm512_mask_i32scatter_ps): Ditto.
11450         (_mm512_i32scatter_pd): Ditto.
11451         (_mm512_mask_i32scatter_pd): Ditto.
11452         (_mm512_i64scatter_ps): Ditto.
11453         (_mm512_mask_i64scatter_ps): Ditto.
11454         (_mm512_i64scatter_pd): Ditto.
11455         (_mm512_mask_i64scatter_pd): Ditto.
11456         (_mm512_i32scatter_epi32): Ditto.
11457         (_mm512_mask_i32scatter_epi32): Ditto.
11458         (_mm512_i32scatter_epi64): Ditto.
11459         (_mm512_mask_i32scatter_epi64): Ditto.
11460         (_mm512_i64scatter_epi32): Ditto.
11461         (_mm512_mask_i64scatter_epi32): Ditto.
11462         (_mm512_i64scatter_epi64): Ditto.
11463         (_mm512_mask_i64scatter_epi64): Ditto.
11464         * config/i386/avx512pfintrin.h
11465         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
11466         (_mm512_mask_prefetch_i32gather_ps): Ditto.
11467         (_mm512_mask_prefetch_i64gather_pd): Ditto.
11468         (_mm512_mask_prefetch_i64gather_ps): Ditto.
11469         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
11470         (_mm512_prefetch_i32scatter_ps): Ditto.
11471         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
11472         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
11473         (_mm512_prefetch_i64scatter_pd): Ditto.
11474         (_mm512_prefetch_i64scatter_ps): Ditto.
11475         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
11476         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
11477         * config/i386/avx512vlintrin.h
11478         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
11479         (_mm_mmask_i32gather_ps): Ditto.
11480         (_mm256_mmask_i32gather_pd): Ditto.
11481         (_mm_mmask_i32gather_pd): Ditto.
11482         (_mm256_mmask_i64gather_ps): Ditto.
11483         (_mm_mmask_i64gather_ps): Ditto.
11484         (_mm256_mmask_i64gather_pd): Ditto.
11485         (_mm_mmask_i64gather_pd): Ditto.
11486         (_mm256_mmask_i32gather_epi32): Ditto.
11487         (_mm_mmask_i32gather_epi32): Ditto.
11488         (_mm256_mmask_i32gather_epi64): Ditto.
11489         (_mm_mmask_i32gather_epi64): Ditto.
11490         (_mm256_mmask_i64gather_epi32): Ditto.
11491         (_mm_mmask_i64gather_epi32): Ditto.
11492         (_mm256_mmask_i64gather_epi64): Ditto.
11493         (_mm_mmask_i64gather_epi64): Ditto.
11494         (_mm256_i32scatter_ps): Change __addr type to void*.
11495         (_mm256_mask_i32scatter_ps): Ditto.
11496         (_mm_i32scatter_ps): Ditto.
11497         (_mm_mask_i32scatter_ps): Ditto.
11498         (_mm256_i32scatter_pd): Ditto.
11499         (_mm256_mask_i32scatter_pd): Ditto.
11500         (_mm_i32scatter_pd): Ditto.
11501         (_mm_mask_i32scatter_pd): Ditto.
11502         (_mm256_i64scatter_ps): Ditto.
11503         (_mm256_mask_i64scatter_ps): Ditto.
11504         (_mm_i64scatter_ps): Ditto.
11505         (_mm_mask_i64scatter_ps): Ditto.
11506         (_mm256_i64scatter_pd): Ditto.
11507         (_mm256_mask_i64scatter_pd): Ditto.
11508         (_mm_i64scatter_pd): Ditto.
11509         (_mm_mask_i64scatter_pd): Ditto.
11510         (_mm256_i32scatter_epi32): Ditto.
11511         (_mm256_mask_i32scatter_epi32): Ditto.
11512         (_mm_i32scatter_epi32): Ditto.
11513         (_mm_mask_i32scatter_epi32): Ditto.
11514         (_mm256_i32scatter_epi64): Ditto.
11515         (_mm256_mask_i32scatter_epi64): Ditto.
11516         (_mm_i32scatter_epi64): Ditto.
11517         (_mm_mask_i32scatter_epi64): Ditto.
11518         (_mm256_i64scatter_epi32): Ditto.
11519         (_mm256_mask_i64scatter_epi32): Ditto.
11520         (_mm_i64scatter_epi32): Ditto.
11521         (_mm_mask_i64scatter_epi32): Ditto.
11522         (_mm256_i64scatter_epi64): Ditto.
11523         (_mm256_mask_i64scatter_epi64): Ditto.
11524         (_mm_i64scatter_epi64): Ditto.
11525         (_mm_mask_i64scatter_epi64): Ditto.
11526         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
11527         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
11528         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
11529         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
11530         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
11531         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
11532         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
11533         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
11534         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
11535         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
11536         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
11537         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
11538         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
11539         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
11540         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
11541         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
11542         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
11543         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
11544         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
11545         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
11546         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
11547         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
11548         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
11549         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
11550         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
11551         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
11552         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
11553         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
11554         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
11555         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
11556         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
11557         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
11558         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
11559         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
11560         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
11561         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
11562         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
11563         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
11564         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
11565         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
11566         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
11567         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
11568         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
11569         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
11570         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
11571         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
11572         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
11573         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
11574         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
11575         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
11576         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
11577         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
11578         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
11579         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
11580         definitions accordingly.
11581
11582 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
11583             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
11584
11585         PR target/79079
11586         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
11587         gen_lowpart.
11588
11589 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
11590
11591         PR target/79058
11592         * ira-conflicts.c (ira_build_conflicts): Update total conflict
11593         hard regs for inner regno.
11594
11595 2017-01-17  Martin Liska  <mliska@suse.cz>
11596
11597         PR ipa/71207
11598         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
11599         assumption and add comment.
11600
11601 2017-01-17  Nathan Sidwell  <nathan@acm.org>
11602
11603         * ipa-visibility.c (localize_node): New function, broken out of ...
11604         (function_and_variable_visibility): ... here. Call it.
11605
11606 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
11607
11608         PR middle-end/77445
11609         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
11610         correctly set frequency of oudgoing edge.
11611         (duplicate_thread_path): Fix profile updating.
11612
11613 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
11614
11615         PR other/79046
11616         * configure.ac: Add GCC_BASE_VER.
11617         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
11618         version from BASE-VER file.
11619         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
11620         (gcc.o): Depend on $(BASEVER).
11621         * common.opt (dumpfullversion): New option.
11622         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
11623         * doc/invoke.texi: Document -dumpfullversion.
11624         * doc/install.texi: Document --with-gcc-major-version-only.
11625         * configure: Regenerated.
11626
11627 2017-01-17  Richard Biener  <rguenther@suse.de>
11628
11629         PR tree-optimization/71433
11630         * tree-vrp.c (register_new_assert_for): Merge same asserts
11631         on all incoming edges.
11632         (process_assert_insertions_for): Handle insertions at the
11633         beginning of BBs.
11634
11635 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
11636
11637         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
11638         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
11639
11640 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
11641
11642         PR target/78633
11643         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
11644         RTL sharing.
11645
11646 2017-01-17  Alan Modra  <amodra@gmail.com>
11647
11648         PR target/79066
11649         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
11650         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
11651         symbolic stack limit when pic.
11652
11653 2017-01-16  Martin Sebor  <msebor@redhat.com>
11654
11655         PR tree-optimization/78608
11656         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
11657
11658 2017-01-16  Jeff Law  <law@redhat.com>
11659
11660         Revert:
11661         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
11662         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
11663         for several include directories that may be relative to sysroot.
11664         * config/i386/x-mingw32 (gplus_includedir): Define.
11665         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
11666         (native_system_includedir): Likewise.
11667         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
11668         override if TARGET_SYSTEM_ROOT is defined.
11669         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
11670
11671         PR tree-optimization/79090
11672         PR tree-optimization/33562
11673         PR tree-optimization/61912
11674         PR tree-optimization/77485
11675         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
11676         and computed trims into the dump file.
11677
11678 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
11679
11680         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
11681
11682 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
11683
11684         PR c/79089
11685         * gimplify.c (gimplify_init_constructor): If want_value and
11686         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
11687         fix.
11688
11689         PR target/79080
11690         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
11691         sequence.  Formatting fixes.
11692         (doloop_optimize): Formatting fixes.
11693
11694         PR driver/49726
11695         * gcc.c (debug_level_greater_than_spec_func): New function.
11696         (static_spec_functions): Add debug-level-gt spec function.
11697         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
11698         !g0.
11699         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
11700         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
11701         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
11702         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
11703         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
11704         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
11705
11706 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
11707
11708         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
11709         QImode fixups to general and mask registers only.
11710
11711 2017-01-16  Carl Love  <cel@us.ibm.com>
11712
11713         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
11714         for built-in functions
11715         vector signed char vec_nabs (vector signed char)
11716         vector signed short vec_nabs (vector signed short)
11717         vector signed int vec_nabs (vector signed int)
11718         vector signed long long vec_nabs (vector signed long long)
11719         vector float vec_nabs (vector float)
11720         vector double vec_nabs (vector double)
11721         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
11722         and NABS overload.
11723         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
11724         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
11725         * doc/extend.texi: Update the documentation file for the new built-in
11726         functions.
11727
11728 2017-01-16  Martin Sebor  <msebor@redhat.com>
11729
11730         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
11731         message.
11732
11733 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11734
11735         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
11736         UNSPEC_VSX__XXSPLTD to require special splat handling.
11737
11738 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
11739
11740         PR bootstrap/78616
11741         * system.h: Poison strndup.
11742
11743 2017-01-16  Alan Modra  <amodra@gmail.com>
11744
11745         PR target/79098
11746         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
11747         use a switch.
11748
11749 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
11750
11751         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
11752
11753 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
11754
11755         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
11756         call recog here.  Assert that INSN_CODE (insn) is non-negative.
11757
11758 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
11759
11760         PR target/72749
11761         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
11762         fallthrough.
11763         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
11764         in the currently scheduled RTL fragment.
11765
11766 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
11767
11768         PR rtl-optimization/78751
11769         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
11770         give up.
11771
11772 2017-01-14  Jeff Law  <law@redhat.com>
11773
11774         PR tree-optimization/79090
11775         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
11776         variable length stores.
11777         (compute_trims): Delete dead assignment to *trim_tail.
11778         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
11779         zero length.
11780
11781 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
11782
11783         PR rtl-optimization/78626
11784         PR rtl-optimization/78727
11785         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
11786         of a block, and split such blocks after everything else is finished.
11787
11788 2017-01-14  Alan Modra  <amodra@gmail.com>
11789
11790         PR target/72749
11791         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
11792         target legitimate_combined_insn.
11793         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
11794         (rs6000_legitimate_combined_insn): New function.
11795         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
11796         all uses.
11797         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
11798         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
11799         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
11800
11801 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
11802
11803         * doc/frontends.texi (G++ and GCC): Remove references to Java.
11804
11805 2017-01-13  Jeff Law  <law@redhat.com>
11806
11807         PR tree-optimization/33562
11808         PR tree-optimization/61912
11809         PR tree-optimization/77485
11810         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
11811         a statement.
11812         (delete_dead_assignment): Likewise.
11813         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
11814         statement to delete_dead_call and delete_dead_assignment.
11815
11816 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
11817
11818         PR c/78304
11819         * substring-locations.c (format_warning_va): Strengthen case 1 so
11820         that both endpoints of the substring must be within the format
11821         range for just the substring to be printed.
11822
11823 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
11824
11825         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
11826         * config/i386/i386.c (ix86_target_string): Add missing options
11827         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
11828         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
11829         flags_other and ix86_target_other to flags2_other.  Display unknown
11830         isa2 options.
11831         (ix86_valid_target_attribute_inner_p): Add missing options and
11832         reorder options by implied ISAs, as in ix86_target_string.
11833
11834 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
11835
11836         * hash-table.h (hash_table::too_empty_p): New function.
11837         (hash_table::expand): Use it.
11838         (hash_table::traverse): Likewise.
11839         (hash_table::empty_slot): Use sizeof (value_type) instead of
11840         sizeof (PTR) to convert bytes to elements.  Shrink the table
11841         if the current size is excessive for the current number of
11842         elements.
11843
11844 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
11845
11846         * ira-costs.c (record_reg_classes): Break from the inner loop
11847         early once alt_fail is known to be true.  Update outer loop
11848         handling accordingly.
11849
11850 2017-01-13  Jeff Law  <law@redhat.com>
11851
11852         * tree-ssa-dse.c (decrement_count): New function.
11853         (increment_start_addr, maybe_trim_memstar_call): Likewise.
11854         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
11855         when we know the partially dead statement is a mem* function.
11856
11857         PR tree-optimization/61912
11858         PR tree-optimization/77485
11859         * tree-ssa-dse.c: Include expr.h.
11860         (maybe_trim_constructor_store): New function.
11861         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
11862
11863         PR tree-optimization/33562
11864         PR tree-optimization/61912
11865         PR tree-optimization/77485
11866         * doc/invoke.texi: Document new dse-max-object-size param.
11867         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
11868         * tree-ssa-dse.c: Include params.h.
11869         (dse_store_status): New enum.
11870         (initialize_ao_ref_for_dse): New, partially extracted from
11871         dse_optimize_stmt.
11872         (valid_ao_ref_for_dse, normalize_ref): New.
11873         (setup_live_bytes_from_ref, compute_trims): Likewise.
11874         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
11875         (maybe_trim_partially_dead_store): Likewise.
11876         (maybe_trim_complex_store): Likewise.
11877         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
11878         Track what bytes live from the original store.  Return tri-state
11879         for dead, partially dead or live.
11880         (dse_dom_walker): Add constructor, destructor and new private members.
11881         (delete_dead_call, delete_dead_assignment): New extracted from
11882         dse_optimize_stmt.
11883         (dse_optimize_stmt): Make a member of dse_dom_walker.
11884         Use initialize_ao_ref_for_dse.
11885
11886         PR tree-optimization/33562
11887         PR tree-optimization/61912
11888         PR tree-optimization/77485
11889         * sbitmap.h (bitmap_count_bits): Prototype.
11890         (bitmap_clear_range, bitmap_set_range): Likewise.
11891         * sbitmap.c (bitmap_clear_range): New function.
11892         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
11893
11894 2017-01-13  Martin Liska  <mliska@suse.cz>
11895
11896         PR ipa/79043
11897         * function.c (set_cfun): Add new argument force.
11898         * function.h (set_cfun): Likewise.
11899         * ipa-inline-transform.c (inline_call): Use the function when
11900         strict alising from is dropped for function we inline to.
11901
11902 2017-01-13  Richard Biener  <rguenther@suse.de>
11903
11904         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
11905         for dumping GIMPLE INTEGER_CSTs.
11906
11907 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11908
11909         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
11910         to 201112L since C++17.
11911
11912 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
11913
11914         PR sanitizer/78887
11915         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
11916         if -fsanitize=kernel-address is present.
11917
11918 2017-01-13  Richard Biener  <rguenther@suse.de>
11919
11920         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
11921         as _Literal ( type ) number in case usual suffixes do not
11922         preserve all information.
11923
11924 2017-01-13  Richard Biener  <rguenther@suse.de>
11925
11926         PR tree-optimization/77283
11927         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
11928         and ssa-iterators.h.
11929         (is_feasible_trace): Implement a cost model based on joiner
11930         PHI node uses.
11931
11932 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
11933
11934         PR target/79004
11935         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
11936         char or short to __float128/_Float128 directly.
11937
11938 2017-01-12  Martin Sebor  <msebor@redhat.com>
11939
11940         to -Wformat-overflow.
11941         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
11942         (min_bytes_remaining): Same.
11943         (get_string_length): Same.
11944         (format_string): Same.
11945         (format_directive): Same.
11946         (add_bytes): Same.
11947         (pass_sprintf_length::handle_gimple_call): Same.
11948
11949 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
11950
11951         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
11952         info.nowrite calls with no lhs that can't throw.  Return bool
11953         whether gsi_remove has been called or not.
11954         (pass_sprintf_length::handle_gimple_call): Return bool whether
11955         try_substitute_return_value called gsi_remove.  Formatting fix.
11956         (pass_sprintf_length::execute): Don't use gsi_remove if
11957         handle_gimple_call returned true.
11958
11959         PR bootstrap/79069
11960         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
11961         be removed due to side-effects, don't remove following barrier nor
11962         turn the successor edge into fallthru edge.
11963
11964 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11965
11966         PR target/79044
11967         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
11968         element-reversing loads and stores as not swappable.
11969
11970 2017-01-12  Nathan Sidwell  <nathan@acm.org>
11971             Nicolai Stange  <nicstange@gmail.com>
11972
11973         * combine.c (try_combine): Don't ignore result of overlap checking
11974         loop.  Combine overlap & asm check into single loop.
11975
11976 2017-01-12  Richard Biener  <rguenther@suse.de>
11977
11978         * tree-pretty-print.c (dump_generic_node): Provide -gimple
11979         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
11980
11981 2017-01-12  Richard Biener  <rguenther@suse.de>
11982
11983         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
11984         and TS_TARGET_OPTION directly derive from TS_BASE.
11985         * tree-core.h (tree_optimization_option): Derive from tree_base.
11986         (tree_target_option): Likewise.
11987
11988 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
11989
11990         * config/i386/i386.c (memory_address_length): Increase len
11991         only when rip_relative_addr_p returns false.
11992
11993 2017-01-11  Julia Koval  <julia.koval@intel.com>
11994
11995         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
11996         (OPTION_MASK_ISA_SGX_SET): New.
11997         (ix86_handle_option): Handle OPT_msgx.
11998         * config.gcc: Added sgxintrin.h.
11999         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
12000         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
12001         * config/i386/i386.c (ix86_target_string): Add -msgx.
12002         (PTA_SGX): New.
12003         (ix86_option_override_internal): Handle new options.
12004         (ix86_valid_target_attribute_inner_p): Add sgx.
12005         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
12006         * config/i386/i386.opt: Add msgx.
12007         * config/i386/sgxintrin.h: New file.
12008         * config/i386/x86intrin.h: Add sgxintrin.h.
12009
12010 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
12011
12012         PR c++/71537
12013         * fold-const.c (maybe_nonzero_address): Return 1 for function
12014         local objects.
12015         (tree_single_nonzero_warnv_p): Don't handle function local objects
12016         here.
12017
12018         PR c++/72813
12019         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
12020         of c-header.
12021
12022 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
12023
12024         PR driver/78877
12025         * opts.c: Include "spellcheck.h"
12026         (struct string_fragment): New struct.
12027         (struct edit_distance_traits<const string_fragment &>): New
12028         struct.
12029         (get_closest_sanitizer_option): New function.
12030         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
12031
12032 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
12033
12034         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
12035         by 12.
12036         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
12037         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
12038         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
12039         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
12040         for initial die_offset if dwarf_split_debug_info.
12041         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
12042         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
12043         fields.
12044         (output_skeleton_debug_sections): Formatting fix.  Use
12045         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
12046         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
12047
12048 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
12049
12050         * config/arm/cortex-a53.md: Add bypasses for
12051         cortex_a53_r2f_cvt.
12052         (cortex_a53_r2f): Only use for transfers.
12053         (cortex_a53_f2r): Likewise.
12054         (cortex_a53_r2f_cvt): Add reservation for conversions.
12055         (cortex_a53_f2r_cvt): Likewise.
12056
12057 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
12058
12059         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
12060         to all inlined functions, change static to extern.
12061
12062 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
12063
12064         PR target/78253
12065         * config/arm/arm.c (legitimize_pic_address): Handle reference to
12066         weak symbol.
12067         (arm_assemble_integer): Likewise.
12068
12069 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
12070
12071         * config.gcc: Use new awk script to check CPU, FPU and architecture
12072         parameters for --with-... options.
12073         * config/arm/parsecpu.awk: New file
12074         * config/arm/arm-cpus.in: New file.
12075         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
12076         files.
12077         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
12078         files.
12079         * config/arm/t-arm: Update dependency rules.
12080         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
12081         of processing .def files.
12082         * config/arm/genopt.sh: Deleted.
12083         * config/arm/gentune.sh: Deleted.
12084         * config/arm/arm-cores.def: Deleted.
12085         * config/arm/arm-arches.def: Deleted.
12086         * config/arm/arm-fpus.def: Deleted.
12087         * config/arm/arm-tune.md: Regenerated.
12088         * config/arm/arm-tables.opt: Regenerated.
12089         * config/arm/arm-cpu.h: New generated file.
12090         * config/arm/arm-cpu-data.h: New generated file.
12091         * config/arm/arm-cpu-cdata.h: New generated file.
12092
12093 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
12094
12095         PR lto/79042
12096         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
12097         bit.
12098         (input_varpool_node): Unpack dynamically_initialized bit.
12099
12100 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
12101
12102         PR rtl-optimization/79032
12103         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
12104         the alignment of the adjusted memory reference against that of MODE,
12105         instead of the alignment of the original memory reference.
12106
12107 2017-01-11  Martin Jambor  <mjambor@suse.cz>
12108
12109         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
12110         test.
12111         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
12112         decorated functions.
12113
12114 2017-01-11  Richard Biener  <rguenther@suse.de>
12115
12116         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
12117         set range/nonnull info for PHI results.  Do not set it on
12118         stmts marked for removal.
12119
12120 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
12121
12122         * expr.c (store_field): In the bitfield case, fetch the return value
12123         from the registers before applying a single big-endian adjustment.
12124         Always do a final load for a BLKmode value not larger than a word.
12125
12126 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
12127
12128         PR c++/77949
12129         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
12130         that we correctly handle column numbers greater than
12131         LINE_MAP_MAX_COLUMN_NUMBER.
12132
12133 2017-01-10  Martin Sebor  <msebor@redhat.com>
12134
12135         PR middle-end/78245
12136         * gimple-ssa-sprintf.c (get_destination_size): Call
12137         {init,fini}object_sizes.
12138         * tree-object-size.c (addr_object_size): Adjust.
12139         (pass_through_call): Adjust.
12140         (pass_object_sizes::execute): Adjust.
12141         * tree-object-size.h (fini_object_sizes): Declare.
12142
12143 2017-01-10  Martin Sebor  <msebor@redhat.com>
12144
12145         PR tree-optimization/78775
12146         * builtins.c (get_size_range): Move...
12147         * calls.c: ...to here.
12148         (alloc_max_size): Accept zero argument.
12149         (operand_signed_p): Remove.
12150         (maybe_warn_alloc_args_overflow): Call get_size_range.
12151         * calls.h (get_size_range): Declare.
12152
12153 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
12154
12155         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
12156         from TI's devices.csv file as of September 2016.
12157         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
12158
12159 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
12160
12161         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
12162         * doc/invoke.texi: Likewise.
12163         * doc/md.texi: Likewise.
12164         * doc/objc.texi: Likewise.
12165
12166 2017-01-10  Joshua Conner  <joshconner@google.com>
12167
12168         * config/arm/fuchsia-elf.h: New file.
12169         * config/fuchsia.h: New file.
12170         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
12171         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
12172         targets.
12173         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
12174
12175 2016-01-10  Richard Biener  <rguenther@suse.de>
12176
12177         PR tree-optimization/79034
12178         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
12179         Propagate out degenerate PHIs in the joiner.
12180
12181 2017-01-10  Martin Liska  <mliska@suse.cz>
12182
12183         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
12184         (sort_congruence_classes_by_decl_uid): Likewise.
12185         (sort_congruence_class_groups_by_decl_uid): Likewise.
12186         (sem_item_optimizer::merge_classes): Sort class, groups in these
12187         classes and members in the groups by DECL_UID of declarations.
12188         This would make merge operations stable.
12189
12190 2017-01-10  Martin Liska  <mliska@suse.cz>
12191
12192         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
12193         usage of m_classes_vec.
12194         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
12195         (sem_item_optimizer::get_group_by_hash): Likewise.
12196         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
12197         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
12198         (sem_item_optimizer::verify_classes): Likewise.
12199         (sem_item_optimizer::process_cong_reduction): Likewise.
12200         (sem_item_optimizer::dump_cong_classes): Likewise.
12201         (sem_item_optimizer::merge_classes): Likewise.
12202         * ipa-icf.h (congruence_class_hash): Rename from
12203         congruence_class_group_hash.  Remove declaration of m_classes_vec.
12204
12205 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
12206
12207         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
12208         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
12209         * config.gcc: Add avx512vpopcntdqintrin.h.
12210         * config/i386/avx512vpopcntdqintrin.h: New.
12211         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
12212         * config/i386/i386-builtin-types.def: Add new types.
12213         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
12214         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
12215         __builtin_ia32_vpopcountq_v8di_mask): New.
12216         * config/i386/i386-c.c (ix86_target_macros_internal): Define
12217         __AVX512VPOPCNTDQ__.
12218         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
12219         (PTA_AVX512VPOPCNTDQ): Define.
12220         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
12221         TARGET_AVX512VPOPCNTDQ_P): Define.
12222         * config/i386/i386.opt: Add mavx512vpopcntdq.
12223         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
12224         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
12225
12226 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
12227
12228         PR middle-end/77484
12229         * predict.def (PRED_CALL): Set to 67.
12230
12231 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
12232
12233         * expr.c (store_field): In the bitfield case, if the value comes from
12234         a function call and is of an aggregate type returned in registers, do
12235         not modify the field mode; extract the value in all cases if the mode
12236         is BLKmode and the size is not larger than a word.
12237
12238 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
12239
12240         PR target/71017
12241         * config/i386/cpuid.h: Fix undefined behavior.
12242
12243 2017-01-04  Jeff Law  <law@redhat.com>
12244
12245         PR tree-optimization/79007
12246         PR tree-optimization/67955
12247         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
12248         conservative for pt.null when flag_non_call_exceptions is on.
12249
12250 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
12251
12252         PR translation/79019
12253         PR translation/79020
12254         * params.def (PARAM_INLINE_MIN_SPEEDUP,
12255         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
12256         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
12257         in descriptions.
12258         * config/avr/avr.opt (maccumulate-args): Likewise.
12259         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
12260         * common.opt (freport-bug): Likewise.
12261         * cif-code.def (CIF_FINAL_ERROR): Likewise.
12262         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
12263         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
12264         translatable string.
12265         * config/i386/i386.c (function_value_32): Likewise.
12266         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
12267         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
12268         Likewise.
12269         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
12270         * common/config/msp430/msp430-common.c (msp430_handle_option):
12271         Likewise.
12272         * symtab.c (symtab_node::verify_base): Likewise.
12273         * opts.c (set_debug_level): Likewise.
12274         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
12275         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
12276         missing whitespace to translatable strings.
12277         * config/avr/avr.md (bswapsi2): Fix typo in comment.
12278         * config/sh/superh.h: Likewise.
12279         * config/i386/xopintrin.h: Likewise.
12280         * config/i386/znver1.md: Likewise.
12281         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
12282         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
12283         * double-int.h (struct double_int): Likewise.
12284         * double-int.c (div_and_round_double): Likewise.
12285         * wide-int.cc: Likewise.
12286         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
12287         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
12288         * cfgcleanup.c (crossjumps_occured): Renamed to ...
12289         (crossjumps_occurred): ... this.
12290         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
12291         Adjust all uses.
12292
12293         PR tree-optimization/78899
12294         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
12295         returning bool return struct loop *, NULL for failure and the new
12296         loop on success.
12297         (versionable_outer_loop_p): Don't version outer loop if it has
12298         dont_vectorized bit set.
12299         (tree_if_conversion): When versioning outer loop, ensure
12300         tree_if_conversion is performed also on the inner loop of the
12301         non-vectorizable outer loop copy.
12302         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
12303         LOOP_VECTORIZED in inner loop of the scalar outer loop and
12304         prevent vectorization of it.
12305         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
12306         the outer loop vectorization of the non-scalar version is attempted
12307         before vectorization of the inner loop in scalar version.  If
12308         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
12309         vectorization of its inner loop.
12310         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
12311         has 2 inner loops, rename also on edges from bb whose single pred
12312         is outer_loop->header.  Fix typo in function comment.
12313
12314 2017-01-09  Martin Sebor  <msebor@redhat.com>
12315
12316         PR bootstrap/79033
12317         * asan.c (asan_emit_stack_protection): Increase local buffer size
12318         to avoid snprintf truncation warning.
12319
12320 2017-01-09  Andrew Pinski  <apinski@cavium.com>
12321
12322         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
12323         to reference thunderx2t99 for the tuning structure
12324         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
12325         Rename to ...
12326         (thunderx2t99_extra_costs): This.
12327         * config/aarch64/aarch64-tune.md: Regenerate.
12328         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
12329         (vulcan_addrcost_table): This.
12330         (vulcan_regmove_cost): Rename to ...
12331         (thunderx2t99_regmove_cost): This.
12332         (vulcan_vector_cost): Rename to ...
12333         (thunderx2t99_vector_cost): this.
12334         (vulcan_branch_cost): Rename to ...
12335         (thunderx2t99_branch_cost): This.
12336         (vulcan_tunings): Rename to ...
12337         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
12338         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
12339
12340 2017-01-09  Martin Jambor  <mjambor@suse.cz>
12341
12342         PR ipa/78365
12343         PR ipa/78599
12344         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
12345         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
12346         (propagate_vr_accross_jump_function): Use the above function for all
12347         value range computations for pass-through jump functions and type
12348         converasion from explicit value range values.
12349         (ipcp_propagate_stage): Do not attempt to deduce types of formal
12350         parameters from TYPE_ARG_TYPES.
12351         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
12352         (ipa_write_node_info): Stream type of the actual argument.
12353         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
12354
12355 2017-01-09  Martin Liska  <mliska@suse.cz>
12356
12357         PR pch/78970
12358         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
12359         (lookup_compiler): Do not show error message with have_E.
12360
12361 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
12362
12363         PR tree-optimization/78938
12364         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
12365         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
12366         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
12367         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
12368         fixes.
12369
12370 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12371
12372         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
12373         is const0_rtx.
12374
12375 2017-01-09  Richard Biener  <rguenther@suse.de>
12376
12377         PR tree-optimization/78997
12378         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
12379         name condition properly.
12380
12381 2017-01-09  Richard Biener  <rguenther@suse.de>
12382
12383         PR debug/79000
12384         * dwarf2out.c (is_cxx): New overload with context.
12385         (is_naming_typedef_decl): Use it.
12386
12387 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
12388
12389         * invoke.texi (Option Summary): Correct spacing in option lists
12390         and add line breaks to fix over-long lines.
12391
12392 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
12393
12394         PR middle-end/17660
12395
12396         * extend.texi (Common Variable Attributes): Add xref to GCC
12397         Internals manual to explain mode attribute keywords.
12398
12399 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
12400
12401         PR other/16519
12402         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
12403         and Preprocessor Options.
12404         (Options for Linking): Document -pthread here....
12405         (RS/6000 and PowerPC Options): ...not here.
12406         (Solaris 2 Options): ...or here.
12407         * doc/cppopts.texi: Document -pthread.
12408
12409 2017-01-08  Martin Sebor  <msebor@redhat.com>
12410
12411         PR middle-end/77708
12412         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
12413         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
12414         New member functions.
12415         (format_directive): Used them.
12416         (add_bytes): Same.
12417         (pass_sprintf_length::handle_gimple_call): Same.
12418         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
12419         to avoid truncation for any argument.
12420         (extract_affine_mul): Same.
12421         * tree.c (get_file_function_name): Same.
12422
12423 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
12424
12425         PR middle-end/77484
12426         * predict.def (PRED_INDIR_CALL): Set to 86.
12427
12428 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
12429
12430         PR preprocessor/54124
12431         * doc/cppopts.texi: Reformat -d subtable to list the full name
12432         of the options.  Add cross-reference to the docs for the general
12433         compiler -d options.
12434         * doc/invoke.texi (Developer Options): Add cross-reference to the
12435         preprocessor-specific -d option documentation.
12436
12437 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
12438
12439         PR preprocessor/13498
12440         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
12441         redudant material, and reflect new command-line options.
12442         (System Headers): Likewise.
12443
12444 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
12445
12446         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
12447         -isystem, and -idirafter.  Copy-edit.
12448         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
12449         default for -ftrack-macro-expansion.  Delete obsolete and
12450         badly-formatted implementation details about -fdebug-cpp output.
12451         * doc/cppwarnopts.texi: Copy-edit.
12452
12453 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
12454
12455         PR c++/72803
12456         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
12457         that the transition from a max line width >= 1<<10 to narrower
12458         lines works correctly.
12459
12460 2017-01-07  Alexandre Oliva <aoliva@redhat.com>
12461
12462         * doc/options.texi (PerFunction): New.
12463         * opt-functions.awk (switch_flags): Map both Optimization and
12464         PerFunction to CL_OPTIMIZATION.
12465         * opth-gen.awk: Test for PerFunction flag along with
12466         Optimization.
12467         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
12468         it only when the latter is present.  Skip those that don't in
12469         the hash function generator.
12470         * common.opt (fvar-tracking): Mark as PerFunction instead of
12471         Optimization.
12472         (fvar-tracking-assignments): Likewise.
12473         (fvar-tracking-assignments-toggle): Likewise.
12474         (fvar-tracking-uninit): Likewise.
12475
12476 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
12477
12478         PR translation/79018
12479         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
12480         the and store.
12481
12482 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
12483
12484         PR target/57583
12485         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
12486         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
12487         TARGET_LONG_JUMP_TABLE_OFFSETS.
12488         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
12489         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
12490         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
12491         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
12492         * config/m68k/m68k.md (tablejump expander): Likewise.
12493         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
12494         TARGET_LONG_JUMP_TABLE_OFFSETS.
12495         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
12496         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
12497
12498 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
12499             David Holsgrove <david.holsgrove@xilinx.com>
12500
12501         * common/config/microblaze/microblaze-common.c
12502         (TARGET_EXCEPT_UNWIND_INFO): Remove.
12503         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
12504         New prototype.
12505         * config/microblaze/microblaze.c (microblaze_must_save_register)
12506         (microblaze_expand_epilogue, microblaze_return_addr): Handle
12507         calls_eh_return.
12508         (microblaze_eh_return): New function.
12509         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
12510         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
12511         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
12512         * config/microblaze/microblaze.md (eh_return): New pattern.
12513
12514 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
12515
12516         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
12517         GCC_DIAGNOSTIC_STRINGIFY): Define.
12518
12519         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
12520
12521 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12522
12523         * config/arm/arm.md (<mcrr>): New.
12524         (<mrrc>): New.
12525         * config/arm/arm.c (arm_arch5te): New.
12526         (arm_option_override): Set arm_arch5te.
12527         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
12528         and mrrc2.
12529         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
12530         (arm_mcrr_qualifiers): ... this. New.
12531         (MRRC_QUALIFIERS): Define to...
12532         (arm_mrrc_qualifiers): ... this. New.
12533         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
12534         __arm_mrrc2): New.
12535         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
12536         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
12537         (MRRCI, mrrc, MRRC): New.
12538         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
12539         VUNSPEC_MRRC2): New.
12540
12541 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12542
12543         * config/arm/arm.md (<mcr>): New.
12544         (<mrc>): New.
12545         * config/arm/arm.c (arm_coproc_builtin_available): Add
12546         support for mcr, mrc, mcr2 and mrc2.
12547         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
12548         (arm_mcr_qualifiers): ... this. New.
12549         (MRC_QUALIFIERS): Define to ...
12550         (arm_mrc_qualifiers): ... this. New.
12551         (MCR_QUALIFIERS): Define to ...
12552         (arm_mcr_qualifiers): ... this. New.
12553         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
12554         __arm_mrc2): New.
12555         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
12556         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
12557         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
12558         VUNSPEC_MRC2): New.
12559
12560 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12561
12562         * config/arm/arm.md (*ldc): New.
12563         (*stc): New.
12564         (<ldc>): New.
12565         (<stc>): New.
12566         * config/arm/arm.c (arm_coproc_builtin_available): Add
12567         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
12568         (arm_coproc_ldc_stc_legitimate_address): New.
12569         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
12570         'qualifier_const_pointer'.
12571         (LDC_QUALIFIERS): Define to...
12572         (arm_ldc_qualifiers): ... this. New.
12573         (STC_QUALIFIERS): Define to...
12574         (arm_stc_qualifiers): ... this. New.
12575         * config/arm/arm-protos.h
12576         (arm_coproc_ldc_stc_legitimate_address): New.
12577         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
12578         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
12579         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
12580         stc2, stcl, stc2l): New.
12581         * config/arm/constraints.md (Uz): New.
12582         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
12583         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
12584         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
12585         VUNSPEC_STC2L): New.
12586
12587 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12588
12589         * config/arm/arm.md (<cdp>): New.
12590         * config/arm/arm.c (neon_const_bounds): Rename this ...
12591         (arm_const_bounds): ... this.
12592         (arm_coproc_builtin_available): New.
12593         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
12594         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
12595         (CDP_QUALIFIERS): Define to...
12596         (arm_cdp_qualifiers): ... this. New.
12597         (void_UP): Define.
12598         (arm_expand_builtin_args): Add case for 6 arguments.
12599         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
12600         (arm_const_bounds): ... this.
12601         (arm_coproc_builtin_available): New.
12602         * config/arm/arm_acle.h (__arm_cdp): New.
12603         (__arm_cdp2): New.
12604         * config/arm/arm_acle_builtins.def (cdp): New.
12605         (cdp2): New.
12606         * config/arm/iterators.md (CDPI,CDP,cdp): New.
12607         * config/arm/neon.md: Rename all 'neon_const_bounds' to
12608         'arm_const_bounds'.
12609         * config/arm/types.md (coproc): New.
12610         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
12611         * gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
12612         * gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
12613         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
12614
12615 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12616
12617         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
12618         (UBINOP_QUALIFIERS): New.
12619         (si_UP): Define.
12620         (acle_builtin_data): New. Change comment.
12621         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
12622         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
12623         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
12624         arm_acle_builtins.def.
12625         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
12626         (arm_init_acle_builtins): New.
12627         (CRC32_BUILTIN): Remove.
12628         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
12629         crc32cb, crc32ch and crc32cw.
12630         (arm_init_crc32_builtins): Remove.
12631         (arm_init_builtins): Use arm_init_acle_builtins rather
12632         than arm_init_crc32_builtins.
12633         (arm_expand_acle_builtin): New.
12634         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
12635         * config/arm/arm_acle_builtins.def: New.
12636
12637 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12638
12639         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
12640         (arm_builtin_datum): ... this.
12641         (arm_init_neon_builtin): Rename to ...
12642         (arm_init_builtin): ... this. Add a new parameters PREFIX
12643         and USE_SIG_IN_NAME.
12644         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
12645         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
12646         'arm_builtin_datum'.
12647         (arm_init_vfp_builtins): Likewise.
12648         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
12649         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
12650         (arm_expand_neon_args): Rename to ...
12651         (arm_expand_builtin_args): ... this. Rename builtin_arg
12652         enum values and differentiate between ARG_BUILTIN_MEMORY
12653         and ARG_BUILTIN_NEON_MEMORY.
12654         (arm_expand_neon_builtin_1): Rename to ...
12655         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
12656         values, arm_expand_builtin_args and add bool parameter NEON.
12657         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
12658         (arm_expand_vfp_builtin): Likewise.
12659         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
12660
12661 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
12662
12663         PR middle-end/77484
12664         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
12665         * predict.c (tree_estimate_probability_bb): Reverse direction of
12666         polymorphic call predictor.
12667
12668 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
12669
12670         * passes.c (execute_one_pass): Split out pass-skipping logic into...
12671         (determine_pass_name_match): ...this new function and...
12672         (should_skip_pass_p): ...this new function.
12673
12674 2017-01-06  Nathan Sidwell  <nathan@acm.org>
12675
12676         * ipa-visibility.c (function_and_variable_visibility): Reformat
12677         comments and long lines.  Remove extrneous if.
12678         * symtab.c (symtab_node::make_decl_local): Fix code format.
12679         (symtab_node::set_section_for_node): Fix comment typo.
12680
12681 2017-01-06  Martin Liska  <mliska@suse.cz>
12682
12683         PR bootstrap/79003
12684         * lra-constraints.c: Rename invariant to lra_invariant.
12685         * predict.c (set_even_probabilities): Initialize e to NULL.
12686
12687 2017-01-05  Martin Sebor  <msebor@redhat.com>
12688
12689         PR tree-optimization/78910
12690         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
12691         (format_integer): Correct off-by-one error in the handling
12692         of precision with negative numbers in signed conversions..
12693
12694 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
12695
12696         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
12697
12698 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
12699
12700         PR tree-optimization/71016
12701         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
12702         factor_out_conditional_conversion.  Formatting fix.
12703         (factor_out_conditional_conversion): Add cond_stmt argument.
12704         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
12705         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
12706         Formatting fix.
12707
12708 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
12709
12710         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
12711         read-rtl-function.o, and selftest-rtl.o.
12712         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
12713         (selftest::aarch64_test_loading_full_dump): New function.
12714         (selftest::aarch64_run_selftests): New function.
12715         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
12716         selftest::aarch64_run_selftests.
12717         * config/i386/i386.c
12718         (selftest::ix86_test_loading_dump_fragment_1): New function.
12719         (selftest::ix86_test_loading_call_insn): New function.
12720         (selftest::ix86_test_loading_full_dump): New function.
12721         (selftest::ix86_test_loading_unspec): New function.
12722         (selftest::ix86_run_selftests): Call the new functions.
12723         * emit-rtl.c (maybe_set_max_label_num): New function.
12724         * emit-rtl.h (maybe_set_max_label_num): New decl.
12725         * function.c (instantiate_decls): Guard call to
12726         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
12727         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
12728         "static".
12729         * gensupport.c (gen_reader::gen_reader): Pass "false"
12730         for new "compact" param of rtx_reader.
12731         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
12732         rather than an empty string for NULL strings.
12733         * read-md.c: Potentially include config.h rather than bconfig.h.
12734         Wrap include of errors.h with #ifdef GENERATOR_FILE.
12735         (have_error): New global, copied from errors.c.
12736         (md_reader::read_name): Rename to...
12737         (md_reader::read_name_1): ...this, adding "out_loc" param,
12738         and converting "missing name or number" to returning false, rather
12739         than failing.
12740         (md_reader::read_name): Reimplement in terms of read_name_1.
12741         (md_reader::read_name_or_nil): New function.
12742         (md_reader::read_string): Handle "(nil)" by returning NULL.
12743         (md_reader::md_reader): Add new param "compact".
12744         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
12745         (md_reader::read_file): New method.
12746         * read-md.h (md_reader::md_reader): Add new param "compact".
12747         (md_reader::read_file): New method.
12748         (md_reader::is_compact): New accessor.
12749         (md_reader::read_name): Convert return type from void to file_location.
12750         (md_reader::read_name_or_nil): New decl.
12751         (md_reader::read_name_1): New decl.
12752         (md_reader::m_compact): New field.
12753         (noop_reader::noop_reader): Pass "false" for new "compact" param
12754         of rtx_reader.
12755         (rtx_reader::rtx_reader): Add new "compact" param.
12756         (rtx_reader::read_rtx_operand): Make virtual and convert return
12757         type from void to rtx.
12758         (rtx_reader::read_until): New decl.
12759         (rtx_reader::handle_any_trailing_information): New virtual function.
12760         (rtx_reader::postprocess): New virtual function.
12761         (rtx_reader::finalize_string): New virtual function.
12762         (rtx_reader::m_in_call_function_usage): New field.
12763         (rtx_reader::m_reuse_rtx_by_id): New field.
12764         * read-rtl-function.c: New file.
12765         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
12766         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
12767         (selftest::verify_three_block_rtl_cfg): New decl.
12768         * read-rtl-function.h: New file.
12769         * read-rtl.c: Potentially include config.h rather than bconfig.h.
12770         For host, include function.h, memmodel.h, and emit-rtl.h.
12771         (one_time_initialization): New function.
12772         (struct compact_insn_name): New struct.
12773         (compact_insn_names): New array.
12774         (find_code): Handle insn codes in compact dumps.
12775         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
12776         (bind_subst_iter_and_attr): Likewise.
12777         (add_condition_to_string): Likewise.
12778         (add_condition_to_rtx): Likewise.
12779         (apply_attribute_uses): Likewise.
12780         (add_current_iterators): Likewise.
12781         (apply_iterators): Likewise.
12782         (initialize_iterators): Guard usage of apply_subst_iterator with
12783         #ifdef GENERATOR_FILE.
12784         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
12785         (md_reader::read_mapping): Likewise.
12786         (add_define_attr_for_define_subst): Likewise.
12787         (add_define_subst_attr): Likewise.
12788         (read_subst_mapping): Likewise.
12789         (check_code_iterator): Likewise.
12790         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
12791         logic to...
12792         (one_time_initialization): New function.
12793         (rtx_reader::read_until): New method.
12794         (read_flags): New function.
12795         (parse_reg_note_name): New function.
12796         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
12797         Handle reuse_rtx ids.
12798         Wrap iterator lookup within #ifdef GENERATOR_FILE.
12799         Add parsing support for RTL dumps, mirroring the special-cases in
12800         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
12801         values, and calling handle_any_trailing_information.
12802         (rtx_reader::read_rtx_operand): Convert return type from void
12803         to rtx, returning return_rtx.  Handle case 'e'.  Call
12804         finalize_string on XSTR and XTMPL fields.
12805         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
12806          "(nil)" values were omitted.  Call the postprocess vfunc on the
12807         return_rtx.
12808         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
12809         class ctor.  Initialize m_in_call_function_usage.  Call
12810         one_time_initialization.
12811         * rtl-tests.c (selftest::test_uncond_jump): Call
12812         set_new_first_and_last_insn.
12813         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
12814         * selftest-rtl.c: New file.
12815         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
12816         (selftest::get_insn_by_uid): New decl.
12817         * selftest-run-tests.c (selftest::run_tests): Call
12818         read_rtl_function_c_tests.
12819         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
12820         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
12821         dumps.
12822
12823 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
12824
12825         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
12826         operands in a special way.  Assert that pos+len <= mode precision.
12827
12828 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
12829
12830         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
12831         3 argument Alias with unlimited for the negative form.
12832         (fno-vect-cost-model): Removed.
12833
12834 2017-01-05  Martin Liska  <mliska@suse.cz>
12835
12836         * hsa-gen.c (gen_hsa_divmod): New function.
12837         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
12838
12839 2017-01-05  Martin Liska  <mliska@suse.cz>
12840
12841         PR pch/78970
12842         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
12843         header.
12844
12845 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12846
12847         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
12848         small constant length operands.
12849
12850 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12851
12852         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
12853         between loop iterations.
12854
12855 2017-01-05  Martin Liska  <mliska@suse.cz>
12856
12857         PR sanitizer/78815
12858         * gimplify.c (gimplify_decl_expr): Compare to
12859         asan_poisoned_variables instread of checking flags.
12860         (gimplify_target_expr): Likewise.
12861         (gimplify_expr): Likewise.
12862         (gimplify_function_tree): Conditionally initialize
12863         asan_poisoned_variables.
12864
12865 2017-01-04  Jeff Law  <law@redhat.com>
12866
12867         PR tree-optimizatin/78812
12868         * rtl.h (contains_mem_rtx_p): Prototype.
12869         * ifcvt.c (containts_mem_rtx_p): Move from here to...
12870         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
12871         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
12872         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
12873         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
12874
12875 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
12876
12877         * input.c (assert_char_at_range): Default-initialize actual_range.
12878
12879 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
12880
12881         * df-scan.c (df_ref_create_structure): Make regno unsigned,
12882         to match the caller.
12883
12884 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
12885
12886         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
12887         insns after final jump in test to emit dummy move.
12888
12889 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
12890
12891         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
12892         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
12893
12894 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
12895
12896         * multiple_target.c (create_dispatcher_calls): Init e_next.
12897         * tree-ssa-loop-split.c (split_loop): Init border.
12898         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
12899         scalar_type.
12900
12901 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
12902
12903         PR target/71977
12904         PR target/70568
12905         PR target/78823
12906         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
12907         (altivec_register_operand): Do not return true if the operand
12908         contains a SUBREG mixing SImode and SFmode.
12909         (vsx_register_operand): Likewise.
12910         (vsx_reg_sfsubreg_ok): New predicate.
12911         (vfloat_operand): Do not return true if the operand contains a
12912         SUBREG mixing SImode and SFmode.
12913         (vint_operand): Likewise.
12914         (vlogical_operand): Likewise.
12915         (gpc_reg_operand): Likewise.
12916         (int_reg_operand): Likewise.
12917         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
12918         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
12919         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
12920         SImode and SFmode.
12921         (rs6000_emit_move_si_sf_subreg): New helper function.
12922         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
12923         fixup SUBREGs involving SImode and SFmode.
12924         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
12925         numbers for the new peephole2 optimization.
12926         (peephole2 for SFmode unions): New peephole2 to optimize cases in
12927         the GLIBC math library that do AND/IOR/XOR operations on single
12928         precision floating point.
12929         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
12930         target macros to say whether we need to avoid SUBREGs mixing
12931         SImode and SFmode.
12932         (TARGET_ALLOW_SF_SUBREG): Likewise.
12933         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
12934         (UNSPEC_SI_FROM_SF): Likewise.
12935         (iorxor): Change spacing.
12936         (and_ior_xor): New iterator for AND, IOR, and XOR.
12937         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
12938         (movdi_from_sf_zero_ext): Likewise.
12939         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
12940         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
12941         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
12942         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
12943         (fms<mode>4): Likewise.
12944         (fnma<mode>4): Likewise.
12945         (fnms<mode>4): Likewise.
12946         (nfma<mode>4): Likewise.
12947         (nfms<mode>4): Likewise.
12948
12949 2017-01-04  Marek Polacek  <polacek@redhat.com>
12950
12951         PR c++/64767
12952         * doc/invoke.texi: Document -Wpointer-compare.
12953
12954 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
12955
12956         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
12957         RejectNegative.
12958
12959         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
12960         descriptions for -gdwarf-5 and emit them as uleb128 instead of
12961         2-byte data.
12962
12963 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
12964
12965         PR target/78056
12966         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
12967         documentation of the powerpc_popcntb_ok attribute.
12968         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
12969         code to issue warning messages if a requested CPU configuration is
12970         not supported by the binary (assembler and loader) toolchain.
12971         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
12972         made to define a built-in function that has been disabled.
12973         (paired_init_builtins): Add assertion to prevent ICE if attempt is
12974         made to define a built-in function that has been disabled.
12975         (altivec_init_builtins): Add comment explaining why definition
12976         of the DST built-in functions is not preceded by an assertion
12977         check.  Add assertions to prevent ICE if attempts are made to
12978         define an altivec predicate or an abs* built-in function that has
12979         been disabled.
12980         (htm_init_builtins): Add comment explaining why definition of the
12981         htm built-in functions is not preceded by an assertion check.
12982
12983 2017-01-04  Jeff Law  <law@redhat.com>
12984
12985         PR tree-optimizatin/67955
12986         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
12987         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
12988         the points-to solution does not include pt_null.  Use DECL_PT_UID
12989         unconditionally.
12990
12991 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
12992
12993         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
12994         Use gen_int_mode instead of gen_lopwart for const_int operands.
12995
12996 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
12997
12998         PR tree-optimization/71563
12999         * match.pd: Simplify X << Y into X if Y is known to be 0 or
13000         out of range value - has low bits known to be zero.
13001
13002 2017-01-04  Alan Modra  <amodra@gmail.com>
13003
13004         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
13005         * configure: Regenerate.
13006         * config.in: Regenerate.
13007
13008 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
13009
13010         PR bootstrap/77569
13011         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
13012         a substring of the message, but strcmp with the whole message.  Ifdef
13013         ENABLE_NLS, translate the message first using dgettext.
13014
13015 2017-01-03  Jeff Law  <law@redhat.com>
13016
13017         PR tree-optimizatin/78856
13018         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
13019         (mark_threaded_blocks): Remove code to truncate thread paths that
13020         cross multiple loop headers.  Instead invalidate the cached loop
13021         iteration information and handle case of a thread path walking
13022         into an irreducible region.
13023
13024 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
13025
13026         PR target/78900
13027         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
13028         assertions.  Add support for doing the signbit if the IEEE 128-bit
13029         floating point value is in a GPR.
13030         * config/rs6000/rs6000.md (Fsignbit): Delete.
13031         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
13032         Update the length attribute if the value is in a GPR.
13033         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
13034         the sign or zero extension instruction, since the value is always 0/1.
13035         (signbit<mode>2_dm2): Delete using <Fsignbit>.
13036
13037         PR target/78953
13038         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
13039         extracting SImode to a GPR register so that we can generate a
13040         store, limit the vector to be in a traditional Altivec register
13041         for the vextuwrx instruction.
13042
13043 2017-01-03  Ian Lance Taylor  <iant@google.com>
13044
13045         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
13046
13047 2017-01-03  Martin Sebor  <msebor@redhat.com>
13048
13049         PR tree-optimization/78696
13050         * gimple-ssa-sprintf.c (format_floating): Correct handling of
13051         precision.  Use MPFR for %f for greater fidelity.  Correct handling
13052         of %g.
13053         (pass_sprintf_length::compute_format_length): Set width and precision
13054         specified by asrerisk to void_node for vararg functions.
13055         (try_substitute_return_value): Adjust dump output.
13056
13057 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
13058
13059         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
13060
13061 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
13062
13063         * doc/invoke.texi (SPARC options): Document -mlra as the default.
13064         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
13065         -mlra/-mno-lra was passed to the compiler.
13066
13067 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
13068
13069         PR rtl-optimization/65618
13070         * emit-rtl.c (try_split): Move initialization of "before" and
13071         "after" to just before the call to emit_insn_after_setloc.
13072
13073 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
13074
13075         * doc/md.texi (Standard Names): Remove reference to Java frontend.
13076
13077 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
13078
13079         * dwarf2out.c (gen_enumeration_type_die): When
13080         -gno-strict-dwarf, add a DW_AT_encoding attribute.
13081
13082 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
13083
13084         PR tree-optimization/78965
13085         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
13086         Change first argument from const call_info & to call_info &.  For %n
13087         set info.nowrite to false.
13088
13089         PR middle-end/78901
13090         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
13091         possibly throwing calls.
13092
13093         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
13094         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
13095         and fns handling, rather than in a separate case SSA_NAME.
13096
13097 2017-01-02  Jeff Law  <law@redhat.com>
13098
13099         * config/darwin-driver.c (darwin_driver_init): Const-correctness
13100         fixes for first_period and second_period variables.
13101
13102 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
13103
13104         PR target/78967
13105         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
13106         (*insvqi_1): New insn pattern.
13107         (*insvqi_1_mem_rex64): Ditto.
13108         (*insvqi_2): Ditto.
13109         (*insvqi_3): Rename from *insvqi.
13110
13111         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
13112
13113 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
13114
13115         * doc/cfg.texi (Edges): Remove reference to Java.
13116         (Maintaining the CFG): Ditto.
13117
13118 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
13119
13120         PR middle-end/77674
13121         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
13122         transparent aliases.
13123
13124 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
13125
13126         PR middle-end/77484
13127         * predict.def (PRED_CALL): Update hitrate.
13128         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
13129         * predict.c (tree_estimate_probability_bb): Split CALL predictor
13130         into direct/indirect/polymorphic variants.
13131
13132 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
13133
13134         Update copyright years.
13135
13136         * gcc.c (process_command): Update copyright notice dates.
13137         * gcov-dump.c (print_version): Ditto.
13138         * gcov.c (print_version): Ditto.
13139         * gcov-tool.c (print_version): Ditto.
13140         * gengtype.c (create_file): Ditto.
13141         * doc/cpp.texi: Bump @copying's copyright year.
13142         * doc/cppinternals.texi: Ditto.
13143         * doc/gcc.texi: Ditto.
13144         * doc/gccint.texi: Ditto.
13145         * doc/gcov.texi: Ditto.
13146         * doc/install.texi: Ditto.
13147         * doc/invoke.texi: Ditto.
13148 \f
13149 Copyright (C) 2017 Free Software Foundation, Inc.
13150
13151 Copying and distribution of this file, with or without modification,
13152 are permitted in any medium without royalty provided the copyright
13153 notice and this notice are preserved.