rs6000: Don't write "nor" as (not (ior () ())) (PR80618)
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2017-05-31  Segher Boessenkool  <segher@kernel.crashing.org>
2
3         PR target/80618
4         * config/rs6000/rs6000.md (*vector_uneq<mode>): Write the nor in the
5         splitter result in the canonical way.
6
7 2017-05-31  Uros Bizjak  <ubizjak@gmail.com>
8
9         * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
10         also for 32bit target.  Update insn attributes.
11         (zero-extendsidi2 splitter): Allow all registers for operand 1.
12
13 2017-05-31  Sebastian Peryt  <sebastian.peryt@intel.com>
14
15         * config/i386/avx512fintrin.h (_mm_mask_max_sd)
16         (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
17         (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
18         (_mm_maskz_min_ss): New intrinsics.
19
20 2017-05-31  Martin Liska  <mliska@suse.cz>
21
22         * tree-vect-loop.c (vect_create_epilog_for_reduction):
23         Change comment style to one we normally use.
24         (vectorizable_reduction): Likewise.
25         (vectorizable_induction): Likewise.
26         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
27         (vectorizable_call): Likewise.
28         (vectorizable_simd_clone_call): Likewise.
29         (vectorizable_conversion): Likewise.
30         (vectorizable_assignment): Likewise.
31         (vectorizable_shift): Likewise.
32         (vectorizable_operation): Likewise.
33         (vectorizable_store): Likewise.
34         (vectorizable_load): Likewise.
35         * tree-vectorizer.h: Likewise.
36
37 2017-05-31  Alexander Monakov  <amonakov@ispras.ru>
38
39         * passes.c (emergency_dump_function): New.
40         * tree-pass.h (emergency_dump_function): Declare.
41         * plugin.c (plugins_internal_error_function): Remove.
42         * plugin.h (plugins_internal_error_function): Remove declaration.
43         * toplev.c (internal_error_function): New static function.  Use it...
44         (general_init): ...here.
45
46 2017-05-31  Graham Markall  <graham.markall@embecosm.com>
47
48         * config/arc/arc.c (arc_print_operand): Handle constant operands.
49         (arc_rtx_costs): Add costs for new patterns.
50         * config/arc/arc.md: Additional *add_n and *sub_n patterns.
51         * config/arc/predicates.md: Add _1_2_3_operand predicate.
52
53 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
54
55         * tree-ssa-strlen.c (get_next_strinfo): New function.
56         (get_stridx_plus_constant): Use it.
57         (zero_length_string): Likewise.
58         (adjust_related_strinfos): Likewise.
59         (adjust_last_stmt): Likewise.
60
61 2017-05-31  Richard Biener  <rguenther@suse.de>
62
63         PR target/80880
64         * config/i386/i386.c (ix86_expand_builtin): Remove assert
65         for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
66
67 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
68
69         * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
70         loop_vinfo argument and use of dependence distance vectors.
71         Check instead whether the two references differ only in their
72         initial value and assume that they have the same alignment if the
73         difference is a multiple of the vector alignment.
74         (vect_analyze_data_refs_alignment): Update call accordingly.
75
76 2017-05-31  Martin Liska  <mliska@suse.cz>
77
78         PR target/79155
79         * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
80
81 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
82
83         * tree-vect-loop-manip.c (create_intersect_range_checks_index)
84         (create_intersect_range_checks): Move from ...
85         * tree-data-ref.c (create_intersect_range_checks_index)
86         (create_intersect_range_checks): ... to here.
87         (create_runtime_alias_checks): New function factored from ...
88         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
89         here.  Call above function.
90         * tree-data-ref.h (create_runtime_alias_checks): New function.
91
92 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
93
94         * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
95         segment length for dr_b and compute it in wide_int.
96
97 2017-05-31  Richard Biener  <rguenther@suse.de>
98
99         PR tree-optimization/80906
100         * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
101         and pass through iv_map.
102         (copy_bb_and_scalar_dependences): Adjust.
103         (translate_pending_phi_nodes): Likewise.
104         (copy_loop_close_phi_args): Handle code-generating IVs instead
105         of ICEing.
106
107 2017-05-30  David Malcolm  <dmalcolm@redhat.com>
108
109         * diagnostic-color.c (color_dict): Add "type-diff".
110         (parse_gcc_colors): Update comment.
111         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
112         -fdiagnostics-show-template-tree and -fno-elide-type.
113         (GCC_COLORS): Add type-diff to example.
114         (type-diff=): New.
115         (-fdiagnostics-show-template-tree): New.
116         (-fno-elide-type): New.
117         * pretty-print.c (pp_format): Pass quote and formatters[argno] to
118         the pp_format_decoder callback.  Call any m_format_postprocessor's
119         "handle" method.
120         (pretty_printer::pretty_printer): Initialize
121         m_format_postprocessor.
122         (pretty_printer::~pretty_printer): Delete any
123         m_format_postprocessor.
124         * pretty-print.h (printer_fn): Add bool and const char ** parameters.
125         (class format_postprocessor): New class.
126         (struct pretty_printer::format_decoder): Document the new parameters.
127         (struct pretty_printer::m_format_postprocessor): New field.
128         * tree-diagnostic.c (default_tree_printer): Update for new
129         bool and const char ** params.
130         * tree-diagnostic.h (default_tree_printer): Likewise.
131
132 2017-05-30  Segher Boessenkool  <segher@kernel.crashing.org>
133
134         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
135         (lwa_operand): Delete rs6000_gen_cell_microcode test.
136         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
137         rs6000_gen_cell_microcode code.
138         (rs6000_final_prescan_insn): Delete.
139         (rs6000_opt_vars): Delete the "gen-cell-microcode" and
140         "warn-cell-microcode" entries.
141         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
142         * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
143         throughout.  Change cc_reg_not_micro_cr0_operand to
144         cc_reg_not_cr0_operand throughout.
145         (*extendhi<mode>2_noload): Delete.
146         * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
147         (mwarn-cell-microcode): Delete.
148         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
149         -mgen-cell-microcode and -mwarn-cell-microcode.
150
151 2017-05-30  Uros Bizjak  <ubizjak@gmail.com>
152
153         PR target/80833
154         * config/i386/constraints.md (Yd): New constraint.
155         (Ye): Ditto.
156         * config/i386/i386.md (*movti_internal): Add (?r, Ye)
157         and (?Yd, r) alternatives.  Update insn attributes.
158         * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
159         and (?*Yd, r) alternatives.  Update insn attributes.
160         (double-mode inter-unit splitters): Add new GR<->XMM splitters.
161
162 2017-05-30  Pierre-Marie de Rodat  <derodat@adacore.com>
163
164         * gimplify.c (gimplify_modify_expr): Don't create a
165         DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
166         function.
167
168 2017-05-30  Wilco Dijkstra  <wdijkstr@arm.com>
169
170         * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
171
172 2017-05-30  Richard Biener  <rguenther@suse.de>
173
174         * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
175         and reduc_def fields.
176         (STMT_VINFO_REDUC_TYPE): New define.
177         (STMT_VINFO_REDUC_DEF): Likewise.
178         (vect_force_simple_reduction): Adjust prototype.
179         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
180         (vect_is_simple_reduction): Remove check_reduction argument.
181         (vect_force_simple_reduction): Adjust and set
182         STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
183         (vectorizable_reduction): Do not re-do reduction analysis
184         but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
185         * tree-parloops.c (gather_scalar_reductions): Adjust.
186
187 2017-05-30  Richard Biener  <rguenther@suse.de>
188
189         PR middle-end/80901
190         * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
191         split_edge code.
192
193 2017-05-24  Robin Dapp  <rdapp@linux.vnet.ibm.com>
194
195         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
196         Introduce unknown_misalignment parameter and remove vf.
197         (vect_peeling_hash_get_lowest_cost):
198         Pass unknown_misalignment parameter.
199         (vect_enhance_data_refs_alignment):
200         Fix unsupportable data ref treatment.
201
202 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
203
204         * tree-vect-data-refs.c (vect_get_data_access_cost):
205         Workaround for SLP handling.
206         (vect_enhance_data_refs_alignment):
207         Compute costs for doing no peeling at all, compare to the best
208         peeling costs so far and avoid peeling if cheaper.
209
210 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
211
212         * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
213         Return peeling info and set costs to zero for unlimited cost
214         model.
215         (vect_enhance_data_refs_alignment): Also inspect all datarefs
216         with unknown misalignment. Compute and costs for unknown
217         misalignment, compare them to the costs for known misalignment
218         and choose the cheapest for peeling.
219
220 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
221
222         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
223         (vect_get_peeling_costs_all_drs): Create function.
224         (vect_peeling_hash_get_lowest_cost):
225         Use vect_get_peeling_costs_all_drs.
226         (vect_peeling_supportable): Create function.
227         (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
228
229 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
230
231         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
232         DR_HAS_NEGATIVE_STEP.
233         (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
234         (vect_enhance_data_refs_alignment): Use.
235         (vect_duplicate_ssa_name_ptr_info): Use.
236         * tree-vectorizer.h (dr_misalignment): Use.
237         (known_alignment_for_access_p): Use.
238
239 2017-05-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
240
241         PR target/78838
242         * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
243         .lowtext.
244         (has_section_name): New function.
245
246 2017-05-30  Martin Liska  <mliska@suse.cz>
247
248         PR other/80909
249         * auto-profile.c (get_function_decl_from_block): Fix
250         parenthesis.
251
252 2017-05-30  Richard Biener  <rguenther@suse.de>
253
254         PR middle-end/80876
255         * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
256
257 2017-05-30  Martin Liska  <mliska@suse.cz>
258
259         * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
260         * dumpfile.h (struct dump_file_info): Remove ctors.
261
262 2017-05-30  Martin Liska  <mliska@suse.cz>
263
264         * predict.def: Fix GNU coding style.
265
266 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
267
268         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
269         Mark 'to' argument with ATTRIBUTE_UNUSED.
270
271 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
272
273         * config/xtensa/xtensa.c (xtensa_emit_call): Use
274         HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
275         (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
276         format string.
277
278 2017-05-29  Eric Botcazou  <ebotcazou@adacore.com>
279
280         * doc/install.texi (Options specification): Restore entry of
281         --enable-sjlj-exceptions.
282
283 2017-05-27  Michael Eager  <eager@eagercon.com>
284
285         Revert:
286         2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
287
288         See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
289
290         * config/microblaze/microblaze.h
291         (FIXED_REGISTERS): Update in macro.
292         (CALL_USED_REGISTERS): Update in macro.
293
294 2017-05-27  François-Xavier Coudett  <fxcoudert@gcc.gnu.org>
295
296         * doc/install.texi: Add links to macOS binary distributions.
297
298 2017-05-27  Jakub Jelinek  <jakub@redhat.com>
299
300         PR bootstrap/80887
301         Revert:
302         2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
303
304         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
305
306 2017-05-26  Martin Liska  <mliska@suse.cz>
307
308         * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
309
310 2017-05-26  Martin Liska  <mliska@suse.cz>
311
312         * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
313         always leading ';; '.
314         (dump_bb_info): Likewise.
315         (brief_dump_cfg): Likewise.
316         * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
317         * dumpfile.c: Remove usage of TDF_VERBOSE.
318         * dumpfile.h (enum dump_kind): Likewise.
319         (dump_gimple_bb_header): Do not use TDF_COMMENT.
320         * print-tree.c (debug_verbose): Remove.
321         * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
322         (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
323         * tree-diagnostic.c (default_tree_printer): Replace
324         TDF_DIAGNOSTIC with TDF_SLIM.
325
326 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
327
328         * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
329         in parameter loop, rather than loop_vinfo.
330         (create_intersect_range_checks): Ditto.
331         (vect_create_cond_for_alias_checks): Update call to above functions.
332
333 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
334
335         PR tree-optimization/80815
336         * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
337         for merging runtime alias checks.  Handle negative DR_STEPs.
338
339 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
340
341         * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
342         Move from ...
343         * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
344         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
345         out code pruning runtime alias checks.
346         * tree-data-ref.c (prune_runtime_alias_test_list): New function
347         factored out from above.
348         * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
349         Move from ...
350         * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
351         ... to here.
352         (prune_runtime_alias_test_list): New decalaration.
353
354 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
355
356         * tree-vect-data-refs.c (compare_tree): Rename and move ...
357         * tree-data-ref.c (data_ref_compare_tree): ... to here.
358         * tree-data-ref.h (data_ref_compare_tree): New decalaration.
359         * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
360         (operator==, comp_dr_with_seg_len_pair): Ditto.
361         (vect_prune_runtime_alias_test_list): Ditto.
362
363 2017-05-26  Martin Liska  <mliska@suse.cz>
364
365         PR ipa/80663
366         * params.def: Bound partial-inlining-entry-probability param.
367
368 2017-05-26  Marek Polacek  <polacek@redhat.com>
369
370         PR sanitizer/80875
371         * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
372         can be negated.
373
374 2017-05-26  Richard Biener  <rguenther@suse.de>
375
376         PR tree-optimization/80842
377         * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
378         value.
379
380 2017-05-26  Richard Biener  <rguenther@suse.de>
381
382         PR tree-optimization/80844
383         * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
384
385 2017-05-25  Sebastian Peryt  <sebastian.peryt@intel.com>
386
387         * doc/md.texi (Machine Constraints): Update x86 family
388         machine constraints section to match 'config/i386/constraints.md'.
389
390 2017-05-25  Volker Reichelt  <v.reichelt@netcologne.de>
391
392         * doc/invoke.texi (-Wcatch-value=): Document new warning option.
393
394 2017-05-25  Nathan Sidwell  <nathan@acm.org>
395
396         * doc/invoke.texi (--enable-languages): Update documentation.
397
398 2017-05-25  Martin Liska  <mliska@suse.cz>
399
400         * dumpfile.c: Add TDF_FOLDING.
401         * dumpfile.h (enum dump_kind): Likewise.
402         * genmatch.c (dt_simplify::gen_1): Use it.
403
404 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
405
406         * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
407
408 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
409
410         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
411         * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
412
413 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
414
415         * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
416         * match.pd (X == C): Rewrite it here.
417         (with_possible_nonzero_bits, with_possible_nonzero_bits2,
418         with_certain_nonzero_bits2): New predicates.
419         * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
420
421 2017-05-24  Nathan Sidwell  <nathan@acm.org>
422
423         * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
424         avoid warning.
425
426         * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
427         warning.
428
429 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
430
431         * config/powerpcspe: New port.  Files are copied from the rs6000
432         port, with "rs6000" in filenames replaced by "powerpcspe".
433
434 2017-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
435
436         PR rtl-optimization/80754
437         * lra-remat.c (do_remat): Add overlap checks for dst_regno.
438
439 2017-05-24  Sheldon Lobo  <smlobo@sheldon.us.oracle.com>
440
441         * config/sparc/sparc.md (length): Return the correct value for -mflat
442         sibcalls to match output_sibcall.
443
444 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
445
446         PR bootstrap/80860
447         PR bootstrap/80843
448         * config/rs6000/rs6000.c (struct machine_function): Add new field
449         n_components.
450         (rs6000_get_separate_components): Init that field, use it.
451         (rs6000_components_for_bb): Use the field.
452
453 2017-05-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
454
455         * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
456
457 2017-05-24  Peter Bergner  <bergner@vnet.ibm.com>
458
459         PR middle-end/80823
460         * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
461
462 2017-05-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
463
464         PR target/80725
465         * config/s390/s390.c (s390_check_qrst_address): Check incoming
466         address against address_operand predicate.
467         * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
468
469 2017-05-24  Eric Botcazou  <ebotcazou@adacore.com>
470
471         * var-tracking.c (track_expr_p): Do not return 0 for tracked record
472         parameters passed indirectly.
473
474 2017-05-23  Uros Bizjak  <ubizjak@gmail.com>
475
476         * config/i386/i386.md (*movdi_internal): Remove SSE4
477         alternative 18 (?r, *v).  Update insn attributes.
478         (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
479         Update insn attributes.
480         (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
481         Update insn attributes.
482         * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
483         alternative 1 (r, v). Remove isa attribute.
484         * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
485         Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
486         and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
487
488 2017-05-23  Tom de Vries  <tom@codesourcery.com>
489
490         * doc/sourcebuild.texi (Directives, Verify compiler message): Document
491         dg-line directive.
492
493 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
494
495         * cgraphunit.c (symbol_table::process_new_functions): Update.
496         * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
497         (inline_generate_summary): Rename to ...
498         (ipa_fn_summary_generate): ... this one.
499         (inline_read_summary): Rename to ...
500         (ipa_fn_summary_read): ... this one.
501         (inline_write_summary): Rename to ...
502         (ipa_fn_summary_write): ... this one.
503         (inline_free_summary): Rename to ...
504         (ipa_free_fn_summary): ... this one.
505         (pass_data_local_fn_summary, pass_local_fn_summary,
506         make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
507         pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
508         pass_data_ipa_fn_summary, pass_ipa_fn_summary,
509         make_pass_ipa_fn_summary): New.
510         * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
511         inline_write_summary, inline_free_summary): Remove.
512         (ipa_free_fn_summary) : New.
513         * ipa-inline.c (ipa_inline): Update.
514         (pass_ipa_inline): Do not generate summaries.
515         * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
516         Remove.
517         * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
518         and add pass_ipa_fn_summary.
519         * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
520         New.
521         (make_pass_inline_parameters): Remove.
522
523 2017-05-23  Thomas Schwinge  <thomas@codesourcery.com>
524
525         * omp-low.c (struct omp_context): Remove "default_kind" member.
526         Adjust all users.
527
528         * omp-offload.c (execute_oacc_device_lower): Remove the
529         parallelism dimensions function attributes for unparallelized
530         OpenACC kernels constructs.
531
532 2017-05-23  Martin Liska  <mliska@suse.cz>
533
534         * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
535         functions.
536         (cgraph_edge::make_speculative): Likewise.
537         (cgraph_edge::resolve_speculation): Likewise.
538         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
539         (cgraph_node::dump): Likewise.
540         * cgraph.h: Likewise.
541         * cgraphunit.c (analyze_functions): Likewise.
542         (symbol_table::compile): Likewise.
543         * ipa-cp.c (print_all_lattices): Likewise.
544         (determine_versionability): Likewise.
545         (initialize_node_lattices): Likewise.
546         (ipcp_verify_propagated_values): Likewise.
547         (estimate_local_effects): Likewise.
548         (update_profiling_info): Likewise.
549         (create_specialized_node): Likewise.
550         (perhaps_add_new_callers): Likewise.
551         (decide_about_value): Likewise.
552         (decide_whether_version_node): Likewise.
553         (identify_dead_nodes): Likewise.
554         (ipcp_store_bits_results): Likewise.
555         * ipa-devirt.c (dump_targets): Likewise.
556         (ipa_devirt): Likewise.
557         * ipa-icf.c (sem_item::dump): Likewise.
558         (sem_function::equals): Likewise.
559         (sem_variable::equals): Likewise.
560         (sem_item_optimizer::read_section): Likewise.
561         (sem_item_optimizer::execute): Likewise.
562         (congruence_class::dump): Likewise.
563         * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
564         (dump_inline_summary): Likewise.
565         (estimate_node_size_and_time): Likewise.
566         (inline_analyze_function): Likewise.
567         * ipa-inline-transform.c (inline_call): Likewise.
568         * ipa-inline.c (report_inline_failed_reason): Likewise.
569         (want_early_inline_function_p): Likewise.
570         (edge_badness): Likewise.
571         (update_edge_key): Likewise.
572         (inline_small_functions): Likewise.
573         * ipa-profile.c (ipa_profile): Likewise.
574         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
575         (ipa_make_edge_direct_to_target): Likewise.
576         (remove_described_reference): Likewise.
577         (ipa_impossible_devirt_target): Likewise.
578         (propagate_controlled_uses): Likewise.
579         (ipa_print_node_params): Likewise.
580         (ipcp_transform_function): Likewise.
581         * ipa-pure-const.c (pure_const_read_summary): Likewise.
582         (propagate_pure_const): Likewise.
583         * ipa-reference.c (generate_summary): Likewise.
584         (read_write_all_from_decl): Likewise.
585         (propagate): Likewise.
586         (ipa_reference_read_optimization_summary): Likewise.
587         * ipa-utils.c (ipa_merge_profiles): Likewise.
588         * ipa.c (walk_polymorphic_call_targets): Likewise.
589         (symbol_table::remove_unreachable_nodes): Likewise.
590         (ipa_single_use): Likewise.
591         * passes.c (execute_todo): Likewise.
592         * predict.c (drop_profile): Likewise.
593         * symtab.c (symtab_node::get_dump_name): New function.
594         (symtab_node::dump_name): Likewise.
595         (symtab_node::dump_asm_name): Likewise.
596         (symtab_node::dump_references): Likewise.
597         (symtab_node::dump_referring): Likewise.
598         (symtab_node::dump_base): Likewise.
599         (symtab_node::debug_symtab): Likewise.
600         * tree-sra.c (convert_callers_for_node): Likewise.
601         * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
602         * value-prof.c (init_node_map): Likewise.
603
604 2017-05-23  Martin Liska  <mliska@suse.cz>
605
606         * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
607         and symtab_node::debug_symtab to symbol_table::debug.
608         * cgraphunit.c (analyze_functions): Use the renamed function.
609         (symbol_table::compile): Likewise.
610         * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
611         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
612         * passes.c (execute_todo): Likewise.
613         * symtab.c (symbol_table::dump): New function.
614         * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
615
616 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
617
618         * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
619         that nonconst implies exec.
620
621 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
622
623         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
624         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
625         (inline_edge_summary_vec): Turn into ...
626         (ipa_call_summaries): ... this one.
627         (redirect_to_unreachable, edge_set_predicate,
628         evaluate_properties_for_edge, inline_summary_alloc,
629         reset_ipa_call_summary, reset_inline_summary,
630         inline_summary_t::duplicate): Update.
631         (inline_edge_duplication_hook): Turn to ...
632         (ipa_call_summary_t::duplicate): ... this one.
633         (inline_edge_removal_hook): Turn to ...
634         (ipa_call_summary_t::remove): ... this one.
635         (dump_inline_edge_summary): Turn to ...
636         (dump_ipa_call_summary): ... this one.
637         (estimate_function_body_sizes): Update.
638         (inline_update_callee_summaries): Update.
639         (remap_edge_change_prob): Update.
640         (remap_edge_summaries): Update.
641         (inline_merge_summary): Update.
642         (do_estimate_edge_time): Update.
643         (inline_generate_summary): Update.
644         (inline_read_section): Update.
645         (inline_read_summary): Update.
646         (inline_free_summary): Update.
647         * ipa-inline.c (can_inline_edge_p): Update.
648         (compute_inlined_call_time): Update.
649         (want_inline_small_function_p): Update.
650         (edge_badness): Update.
651         (early_inliner): Update.
652         * ipa-inline.h (inline_edge_summary): Turn to ...
653         (ipa_call_summary): ... this one.
654         (ipa_call_summary_t): New class.
655         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
656         (ipa_call_summaries): New.
657         (inline_edge_summary): Remove.
658         (estimate_edge_growth): Update.
659         * ipa-profile.c (ipa_propagate_frequency_1): Update.
660         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
661         * ipa-split.c (execute_split_functions): Update.
662         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
663
664 2017-05-23  Tom de Vries  <tom@codesourcery.com>
665
666         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
667         attributes): Document rdrand effective target.
668
669 2017-05-23  Tom de Vries  <tom@codesourcery.com>
670
671         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
672         attributes): Sort alphabetically.
673
674 2017-05-23  Georg-Johann Lay  <avr@gjlay.de>
675
676         * config/avr/genmultilib.awk: Use gsub instead of gensub.
677
678 2017-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
679
680         PR target/80718
681         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
682         V2DF/V2DI splat into two separate patterns, one that handles
683         registers, and the other that only handles memory.  Drop support
684         for splatting from a GPR on ISA 2.07 and then splitting the
685         splat into direct move and splat.
686         (vsx_splat_<mode>_reg): Likewise.
687         (vsx_splat_<mode>_mem): Likewise.
688
689 2017-05-22  Segher Boessenkool  <segher@kernel.crashing.org>
690
691         * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
692
693 2017-05-22  Jakub Jelinek  <jakub@redhat.com>
694
695         PR middle-end/80809
696         * omp-low.c (finish_taskreg_remap): New function.
697         (finish_taskreg_scan): If unit size of ctx->record_type
698         is non-constant, unshare the size expression and replace
699         decls in it with possible outer var refs.
700
701         PR middle-end/80809
702         * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
703         GOVD_SHARED rather than GOVD_PRIVATE with it.
704         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
705         GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
706
707         PR middle-end/80853
708         * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
709         as last argument to build_outer_var_ref for pointer bases of array
710         section reductions.
711
712 2017-05-19  Martin Sebor  <msebor@redhat.com>
713
714         * print-tree.c (print_node): Print DECL_READ_P flag.
715
716 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
717
718         * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
719         * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
720         * cgraph.c: Likewise.
721         * cgraphunit.c: Likewise.
722         * gengtype.c: Likewise.
723         * ipa-cp.c: Likewise.
724         * ipa-devirt.c: Likewise.
725         * ipa-icf.c: Likewise.
726         * ipa-predicate.c: Likewise.
727         * ipa-profile.c: Likewise.
728         * ipa-prop.c: Likewise.
729         * ipa-split.c: Likewise.
730         * ipa.c: Likewise.
731         * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
732         edge_predicate_pool, dump_inline_hints,
733         inline_summary::account_size_time, redirect_to_unreachable,
734         edge_set_predicate, set_hint_predicate,
735         evaluate_conditions_for_known_args, evaluate_properties_for_edge,
736         inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
737         inline_summary_t::remove, remap_hint_predicate_after_duplication,
738         inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
739         ipa_call_summary_t::remove, initialize_growth_caches,
740         free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
741         debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
742         mark_modified, unmodified_parm_1, unmodified_parm,
743         unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
744         set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
745         compute_bb_predicates, will_be_nonconstant_expr_predicate,
746         will_be_nonconstant_predicate, record_modified_bb_info,
747         get_minimal_bb, record_modified, param_change_prob,
748         phi_result_unknown_predicate, predicate_for_phi_result,
749         array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
750         estimate_function_body_sizes, compute_inline_parameters,
751         compute_inline_parameters_for_curren, pass_data_inline_parameters,
752         estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
753         inline_update_callee_summaries, remap_edge_change_prob,
754         remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
755         inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
756         inline_analyze_function, inline_summary_t::insert,
757         inline_generate_summary, read_ipa_call_summary, inline_read_section,
758         inline_read_summary, write_ipa_call_summary, inline_write_summary,
759         inline_free_summary): Move to ipa-fnsummary.h
760         (predicate_t): Remove.
761         * ipa-fnsummary.c: New file.
762         * ipa-inline.h:  Do not include sreal.h and ipa-predicate.h
763         (enum inline_hints_vals, inline_hints, agg_position_info,
764         INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
765         inline_summaries, ipa_call_summary, ipa_call_summary_t,
766         ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
767         dump_inline_summary, dump_inline_hints, inline_generate_summary,
768         inline_read_summary, inline_write_summary, inline_free_summary,
769         inline_analyze_function, initialize_inline_failed,
770         inline_merge_summary, inline_update_overall_summary,
771         compute_inline_parameters): Move to ipa-fnsummary.h
772         * ipa-fnsummary.h: New file.
773         * ipa-inline-transform.h: Include ipa-inline.h.
774         * ipa-inline.c: LIkewise.
775
776 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
777
778         * ipa-inline.c (edge_badness): Use inlined_time instead of
779         inline_summaries->get.
780
781 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
782
783         * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
784
785 2017-05-22  Nathan Sidwell  <nathan@acm.org>
786
787         * doc/invoke.texi (fdump-translation-unit): Delete documentation.
788         (fdump-lang): Document 'raw' option.
789         * dumpfile.h (TDI_tu): Delete.
790         * dumpfile.c (dump_files): Remove translation-unit.
791         (FIRST_AUTO_NUMBERED_DUMP): Decrement.
792
793 2017-05-22  Georg-Johann Lay  <avr@gjlay.de>
794
795         * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
796         command option from $(AWK) call.
797         * config/avr/genmultilib.awk: Simplify and rewrite so that it
798         generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
799         [FORMAT]: Remove handling of variable.
800         * config/avr/t-multilib: Regenerate.
801
802 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
803
804         * ipa-inline-analysis.c (inline_summary::reset): Do not reset
805         self_time.
806         (dump_inline_summary): Do not print self_time.
807         (estimate_function_body_sizes): Do not set self_time.
808         (compute_inline_parameters): Likewise.
809         (inline_read_section, inline_write_summary): Do not stream self_time.
810         * ipa-inline.h (inline_summary): Drop self_time.
811
812 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
813
814         * ipa-inline-analysis.c (account_size_time): Rename to ...
815         (inline_summary::account_size_time): ... this one.
816         (reset_ipa_call_summary): Turn to ...
817         (ipa_call_summary::reset): ... this one.
818         (reset_inline_summary): Turn to ...
819         (inline_summary::reset): ... this one.
820         (inline_summary_t::remove): Update.
821         (inline_summary_t::duplicate): Update.
822         (ipa_call_summary_t::remove): Update.
823         (dump_inline_summary): Update.
824         (estimate_function_body_sizes): Update.
825         (compute_inline_parameters): Update.
826         (estimate_node_size_and_time): Update.
827         (inline_merge_summary): Update.
828         (inline_update_overall_summary): Update.
829         (inline_read_section): Update.
830         (inline_write_summary): Update.
831         * ipa-inline.h (inline_summary): Rename entry to size_time_table;
832         add account_size_time and reset member functions.
833         (ipa_call_summary): Add reset function.
834         * ipa-predicate.h (predicate::operator &): Constify.
835
836 2017-05-22  Richard Biener  <rguenther@suse.de>
837
838         * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
839
840 2017-05-19  Jason Merrill  <jason@redhat.com>
841
842         * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
843
844 2017-05-19  Marek Polacek  <polacek@redhat.com>
845
846         PR sanitizer/80800
847         * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
848         TYPE_OVERFLOW_WRAPS checks.
849
850 2017-05-19  Thomas Schwinge  <thomas@codesourcery.com>
851
852         * tree-core.h (enum omp_clause_default_kind): Add
853         "OMP_CLAUSE_DEFAULT_PRESENT".
854         * tree-pretty-print.c (dump_omp_clause): Handle it.
855         * gimplify.c (enum gimplify_omp_var_data): Add
856         "GOVD_MAP_FORCE_PRESENT".
857         (gimplify_adjust_omp_clauses_1): Map it to
858         "GOMP_MAP_FORCE_PRESENT".
859         (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
860
861         * gimplify.c (oacc_default_clause): Clarify.
862
863 2017-05-19  Nathan Sidwell  <nathan@acm.org>
864
865         LANG_HOOK_REGISTER_DUMPS
866         * toplev.c (general_init): Call register dump lang hook.
867         * doc/invoke.texi: Document -fdump-lang option family.
868         * dumpfile.c (dump_files): Remove class dump here.
869         (FIRST_AUTO_NUMBERED_DUMP): Adjust.
870         * dumpfile.h (tree_dump_index): Remove TDI_class.
871         * langhooks-def.h (lhd_register_dumps): Declare.
872         (LANG_HOOKS_REGISTER_DUMPS): Define.
873         (LANG_HOOKS_INITIALIZER): Add it.
874         * langhooks.c (lhd_register_dumps): Define.
875         * langhooks.h (struct lang_hooks): Add register_dumps.
876
877 2017-05-19  Nathan Sidwell  <nathan@acm.org>
878
879         * context.h (context::set_passes): New.
880         * context.c (context::context): Do not create pass manager.
881         * toplev.c (general_init): Create pass manager here.
882
883 2017-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
884
885         * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
886         use this splitter if two add or or instructions would also work for
887         the constant we want to generate.
888
889 2017-05-19  Richard Biener  <rguenther@suse.de>
890
891         PR build/80821
892         * genmatch.c (dt_node::gen_kids_1): Add missing scope around
893         predicate evaluation.
894
895 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
896
897         * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
898         add ctor.
899         * ipa-inline.c (want_inline_small_function_p): Do not cast to
900         unsigned.
901
902 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
903
904         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
905         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
906         (inline_edge_summary_vec): Turn into ...
907         (ipa_call_summaries): ... this one.
908         (redirect_to_unreachable, edge_set_predicate,
909         evaluate_properties_for_edge, inline_summary_alloc,
910         reset_ipa_call_summary, reset_inline_summary,
911         inline_summary_t::duplicate): Update.
912         (inline_edge_duplication_hook): Turn to ...
913         (ipa_call_summary_t::duplicate): ... this one.
914         (inline_edge_removal_hook): Turn to ...
915         (ipa_call_summary_t::remove): ... this one.
916         (dump_inline_edge_summary): Turn to ...
917         (dump_ipa_call_summary): ... this one.
918         (estimate_function_body_sizes): Update.
919         (inline_update_callee_summaries): Update.
920         (remap_edge_change_prob): Update.
921         (remap_edge_summaries): Update.
922         (inline_merge_summary): Update.
923         (do_estimate_edge_time): Update.
924         (inline_generate_summary): Update.
925         (inline_read_section): Update.
926         (inline_read_summary): Update.
927         (inline_free_summary): Update.
928         * ipa-inline.c (can_inline_edge_p): Update.
929         (compute_inlined_call_time): Update.
930         (want_inline_small_function_p): Update.
931         (edge_badness): Update.
932         (early_inliner): Update.
933         * ipa-inline.h (inline_edge_summary): Turn to ...
934         (ipa_call_summary): ... this one.
935         (ipa_call_summary_t): New class.
936         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
937         (ipa_call_summaries): New.
938         (inline_edge_summary): Remove.
939         (estimate_edge_growth): Update.
940         * ipa-profile.c (ipa_propagate_frequency_1): Update.
941         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
942         * ipa-split.c (execute_split_functions): Update.
943         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
944
945 2017-05-19  Richard Biener  <rguenther@suse.de>
946
947         PR middle-end/80764
948         * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
949
950 2017-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
951
952         * config/rs6000/rs6000.c (struct machine_function): Add field
953         fpr_is_wrapped_separately.
954         (rs6000_get_separate_components): Use 64 components.  Handle the
955         new FPR components.
956         (rs6000_components_for_bb): Handle the FPR components.
957         (rs6000_emit_prologue_components): Handle the FPR components.
958         (rs6000_emit_epilogue_components): Handle the FPR components.
959         (rs6000_set_handled_components): Handle the FPR components.
960         (rs6000_emit_prologue): Don't output prologue code for those FPRs
961         that are already separately shrink-wrapped.
962         (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
963         that are already separately shrink-wrapped.
964
965 2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
966
967         PR target/80510
968         * config/rs6000/predicates.md (simple_offsettable_mem_operand):
969         New predicate.
970
971         * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
972         (define_peephole2 for Altivec d-form load): Add peepholes to catch
973         cases where the register allocator uses a move and an offsettable
974         memory operation to/from a FPR register on ISA 2.06/2.07.
975         (define_peephole2 for Altivec d-form store): Likewise.
976
977 2017-05-18  Uros Bizjak  <ubizjak@gmail.com>
978
979         PR target/80799
980         * config/i386/mmx.md (*mov<mode>_internal): Enable
981         alternatives 11, 12, 13 and 14 also for 32bit targets.
982         Remove alternatives 15, 16, 17 and 18.
983         * config/i386/sse.md (vec_concatv2di): Change
984         alternative (!x, *y) to (x, ?!*Yn).
985
986 2017-05-18  Paolo Carlini  <paolo.carlini@oracle.com>
987
988         * dumpfile.h (enum dump_kind): Remove stray comma.
989
990 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
991
992         * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
993         * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
994         predicate::num_conditions
995         (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
996         (CHANGED): turn into predicate::changed.
997         (agg_position_info): Move to ipa-predicate.h
998         (add_condition, predicate::add_clause, predicate::operator &=,
999         predicate::or_with, predicate::evaluate, predicate::probability,
1000         dump_condition, dump_clause, predicate::dump,
1001         predicate::remap_after_duplication, predicate::remap_after_inlining,
1002         predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
1003         (evaluate_conditions_for_known_args): Update.
1004         (set_cond_stmt_execution_predicate): Update.
1005         * ipa-inline.h: Include ipa-predicate.h
1006         (condition, inline_param_summary, conditions, agg_position_info,
1007         predicate): Move to ipa-predicate.h
1008         * ipa-predicate.c: New file.
1009         * ipa-predicate.h: New file.
1010
1011 2017-05-18  Wilco Dijkstra  <wdijkstr@arm.com>
1012
1013         * final.c (leaf_function_p): Check we are not in a sequence.
1014
1015 2017-05-18  Martin Liska  <mliska@suse.cz>
1016
1017         * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
1018         * dumpfile.c (dump_register): Use new enum dump_kind.
1019         (get_dump_file_name): Likewise.
1020         (dump_enable_all): Likewise.
1021         (dump_switch_p_1): Likewise.
1022         (enable_rtl_dump_file): Remove usage of TDF_RTL.
1023         * dumpfile.h (enum dump_kind): New enum type.
1024         (struct dump_file_info): Create constructor and
1025         format fields and comments.
1026         * passes.c (pass_manager::register_one_dump_file):
1027         Use num dump_kind.
1028         * statistics.c (statistics_early_init): Likewise.
1029         * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
1030         TDF_TREE with TDF_SLIM.
1031         (gather_memory_references_ref): Likewise.
1032
1033 2017-05-18  Martin Liska  <mliska@suse.cz>
1034
1035         * vec.h (struct vnull): Use it.
1036
1037 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
1038
1039         * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
1040         (true_predicate, false_predicate, true_predicate_p,
1041         false_predicate_p): Remove.
1042         (single_cond_predicate, not_inlined_predicate): Turn to member function
1043         in ipa-inline.h
1044         (add_condition): Update.
1045         (add_clause): Turn to...
1046         (predicate::add_clause): ... this one; update; allow passing NULL
1047         as parameter.
1048         (and_predicates): Turn to ...
1049         (predicate::operator &=): ... this one.
1050         (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
1051         (or_predicates): Turn to ...
1052         (predicate::or_with): ... this one.
1053         (evaluate_predicate): Turn to ...
1054         (predicate::evaluate): ... this one.
1055         (predicate_probability): Turn to ...
1056         (predicate::probability): ... this one.
1057         (dump_condition): Update.
1058         (dump_predicate): Turn to ...
1059         (predicate::dump): ... this one.
1060         (account_size_time): Update.
1061         (edge_set_predicate): Update.
1062         (set_hint_predicate): UPdate.
1063         (evaluate_conditions_for_known_args): Update.
1064         (evaluate_properties_for_edge): Update.
1065         (remap_predicate_after_duplication): Turn to...
1066         (predicate::remap_after_duplication): ... this one.
1067         (remap_hint_predicate_after_duplication): Update.
1068         (inline_summary_t::duplicate): UPdate.
1069         (dump_inline_edge_summary): Update.
1070         (dump_inline_summary): Update.
1071         (set_cond_stmt_execution_predicate): Update.
1072         (set_switch_stmt_execution_predicate): Update.
1073         (compute_bb_predicates): Update.
1074         (will_be_nonconstant_expr_predicate): Update.
1075         (will_be_nonconstant_predicate): Update.
1076         (phi_result_unknown_predicate): Update.
1077         (predicate_for_phi_result): Update.
1078         (array_index_predicate): Update.
1079         (estimate_function_body_sizes): Update.
1080         (estimate_node_size_and_time): Update.
1081         (estimate_ipcp_clone_size_and_time): Update.
1082         (remap_predicate): Rename to ...
1083         (predicate::remap_after_inlining): ... this one.
1084         (remap_hint_predicate): Update.
1085         (inline_merge_summary): Update.
1086         (inline_update_overall_summary): Update.
1087         (estimate_size_after_inlining): Update.
1088         (read_predicate): Rename to ...
1089         (predicate::stream_in): ... this one.
1090         (read_inline_edge_summary): Update.
1091         (write_predicate): Rename to ...
1092         (predicate::stream_out): ... this one.
1093         (write_inline_edge_summary): Update.
1094         * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
1095         (clause_t): Turn to uint32_t
1096         (predicate): Turn to class; implement constructor and operators
1097         ==, !=, &
1098         (size_time_entry): Update.
1099         (inline_summary): Update.
1100         (inline_edge_summary): Update.
1101
1102 2017-05-18  Marc Glisse  <marc.glisse@inria.fr>
1103
1104         * fold-const.c (fold_binary_loc): Move transformation...
1105         * match.pd (C - X CMP X): ... here.
1106
1107 2017-05-18  Sheldon Lobo  <sheldon.lobo@oracle.com>
1108
1109         * config/sparc/sparc.c (sparc_option_override): Set function
1110         alignment for -mcpu=niagara7 to 64 to match the I$ line.
1111         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
1112         latency to 1.
1113         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
1114         latency to 2.
1115         * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
1116
1117 2017-05-18  Marek Polacek  <polacek@redhat.com>
1118
1119         PR sanitizer/80797
1120         * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
1121         (pass_ubsan::execute): Call gimple_assign_single_p instead of
1122         gimple_assign_load_p.
1123
1124 2017-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
1125
1126         PR middle-end/80692
1127         * real.c (do_compare): Give decimal_do_compare preference over
1128         comparing just the signs.
1129
1130 2017-05-17  Uros Bizjak  <ubizjak@gmail.com>
1131
1132         * doc/md.texi (Canonicalization of Instructions): Describe the
1133         canonical form of instructions that inherently set a condition
1134         code register.
1135
1136 2017-05-17  Peter Bergner  <bergner@vnet.ibm.com>
1137
1138         PR middle-end/80775
1139         * tree-cfg.c: Move deletion of unreachable case statements to after
1140         the merging of consecutive case labels.
1141
1142 2017-05-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1143
1144         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
1145         readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
1146         restoring of callee-saved registers.
1147
1148 2017-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1149
1150         * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
1151         * config/visium/visium.c (single_set_and_flags): Likewise.
1152         * config/visium/visium.md (Substitutions): Likewise.
1153
1154 2017-05-17  Martin Liska  <mliska@suse.cz>
1155
1156         * cfg.c: Introduce dump_flags_t type and
1157         use it instead of int type.
1158         * cfg.h: Likewise.
1159         * cfghooks.c: Likewise.
1160         * cfghooks.h (struct cfg_hooks): Likewise.
1161         * cfgrtl.c: Likewise.
1162         * cfgrtl.h: Likewise.
1163         * cgraph.c (cgraph_node::get_body): Likewise.
1164         * coretypes.h: Likewise.
1165         * domwalk.c: Likewise.
1166         * domwalk.h: Likewise.
1167         * dumpfile.c (struct dump_option_value_info): Likewise.
1168         (dump_enable_all): Likewise.
1169         (dump_switch_p_1): Likewise.
1170         (opt_info_switch_p): Likewise.
1171         * dumpfile.h (enum tree_dump_index): Likewise.
1172         (struct dump_file_info): Likewise.
1173         * genemit.c: Likewise.
1174         * generic-match-head.c: Likewise.
1175         * gengtype.c (open_base_files): Likewise.
1176         * gimple-pretty-print.c: Likewise.
1177         * gimple-pretty-print.h: Likewise.
1178         * graph.c (print_graph_cfg): Likewise.
1179         * graphite-scop-detection.c (dot_all_sese): Likewise.
1180         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
1181         * loop-unroll.c (report_unroll): Likewise.
1182         * passes.c (pass_manager::register_one_dump_file): Likewise.
1183         * print-tree.c: Likewise.
1184         * statistics.c: Likewise.
1185         * tree-cfg.c: Likewise.
1186         * tree-cfg.h: Likewise.
1187         * tree-dfa.c: Likewise.
1188         * tree-dfa.h: Likewise.
1189         * tree-dump.c (dump_function): Likewise.
1190         * tree-dump.h (struct dump_info): Likewise.
1191         * tree-pretty-print.c: Likewise.
1192         * tree-pretty-print.h: Likewise.
1193         * tree-ssa-live.c: Likewise.
1194         * tree-ssa-live.h: Likewise.
1195         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
1196         * tree-vect-loop.c: Likewise.
1197         * tree-vect-slp.c: Likewise.
1198
1199 2017-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
1200             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1201
1202         PR tree-optimization/80457
1203         * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
1204         of all arguments to a statement as scalar_to_vec operations.
1205         (vectorizable_call): Adjust call to vect_model_simple_cost for
1206         new parameter.
1207         (vectorizable_conversion): Likewise.
1208         (vectorizable_assignment): Likewise.
1209         (vectorizable_shift): Likewise.
1210         (vectorizable_operation): Likewise.
1211         (vectorizable_comparison): Likewise.
1212         (vect_is_simple_cond): Record the def types for operands.
1213         (vectorizable_condition): Likewise, call vect_model_simple_cost.
1214         * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
1215         for statement argument count.
1216
1217 2017-05-16  Carl Love  <cel@us.ibm.com>
1218
1219         * config/rs6000/rs6000-c: Add support for built-in functions
1220         vector unsigned long long vec_bperm (vector unsigned long long,
1221                                              vector unsigned char)
1222         vector signed long long vec_mule (vector signed int,
1223                                           vector signed int)
1224         vector unsigned long long vec_mule (vector unsigned int,
1225                                             vector unsigned int)
1226         vector signed long long vec_mulo (vector signed int,
1227                                           vector signed int)
1228         vector unsigned long long vec_mulo (vector unsigned int,
1229                                             vector unsigned int)
1230         vector signed char vec_sldw (vector signed char,
1231                                      vector signed char,
1232                                      const int)
1233         vector unsigned char vec_sldw (vector unsigned char,
1234                                        vector unsigned char,
1235                                        const int)
1236         vector signed short vec_sldw (vector signed short,
1237                                       vector signed short,
1238                                       const int)
1239         vector unsigned short vec_sldw (vector unsigned short,
1240                                         vector unsigned short,
1241                                         const int)
1242         vector signed int vec_sldw (vector signed int,
1243                                     vector signed int,
1244                                     const int)
1245         vector unsigned int vec_sldw (vector unsigned int,
1246                                       vector unsigned int,
1247                                       const int)
1248         vector signed long long vec_sldw (vector signed long long,
1249                                           vector signed long long,
1250                                           const int)
1251         vector unsigned long long vec_sldw (vector unsigned long long,
1252                                             vector unsigned long long,
1253                                             const int)
1254         * config/rs6000/rs6000-c: Add support for built-in functions
1255         * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
1256         * config/rs6000/altivec.h: Add defintion for vec_sldw.
1257         * doc/extend.texi: Update the built-in documentation for the
1258         new built-in functions.
1259
1260 2017-05-16  Marek Polacek  <polacek@redhat.com>
1261
1262         PR sanitizer/80536
1263         PR sanitizer/80386
1264         * tree.c (save_expr): Don't fold the expression.
1265
1266 2017-05-16  Uros Bizjak  <ubizjak@gmail.com>
1267
1268         * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
1269         to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
1270         and (?*y,m).  Update insn attributes.
1271
1272 2017-05-16  Martin Liska  <mliska@suse.cz>
1273
1274         * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
1275         flags argument of print_gimple_stmt, print_gimple_expr,
1276         print_generic_stmt and print_generic_expr.
1277         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
1278         * coretypes.h: Likewise.
1279         * except.c (dump_eh_tree): Likewise.
1280         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
1281         * gimple-pretty-print.h: Likewise.
1282         * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
1283         (backprop::push_to_worklist): Likewise.
1284         (backprop::pop_from_worklist): Likewise.
1285         (backprop::process_use): Likewise.
1286         (backprop::intersect_uses): Likewise.
1287         (note_replacement): Likewise.
1288         * gimple-ssa-store-merging.c
1289         (pass_store_merging::terminate_all_aliasing_chains): Likewise.
1290         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
1291         (pass_store_merging::execute): Likewise.
1292         * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
1293         (ssa_base_cand_dump_callback): Likewise.
1294         (dump_incr_vec): Likewise.
1295         (replace_refs): Likewise.
1296         (replace_mult_candidate): Likewise.
1297         (create_add_on_incoming_edge): Likewise.
1298         (create_phi_basis): Likewise.
1299         (insert_initializers): Likewise.
1300         (all_phi_incrs_profitable): Likewise.
1301         (introduce_cast_before_cand): Likewise.
1302         (replace_one_candidate): Likewise.
1303         * gimplify.c (gimplify_expr): Likewise.
1304         * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
1305         (set_rename): Likewise.
1306         (rename_uses): Likewise.
1307         (copy_loop_phi_nodes): Likewise.
1308         (add_close_phis_to_merge_points): Likewise.
1309         (copy_loop_close_phi_args): Likewise.
1310         (copy_cond_phi_args): Likewise.
1311         (graphite_copy_stmts_from_block): Likewise.
1312         (translate_pending_phi_nodes): Likewise.
1313         * graphite-poly.c (print_pdr): Likewise.
1314         (dump_gbb_cases): Likewise.
1315         (dump_gbb_conditions): Likewise.
1316         (print_scop_params): Likewise.
1317         * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
1318         (build_cross_bb_scalars_use): Likewise.
1319         (gather_bbs::before_dom_children): Likewise.
1320         * hsa-dump.c (dump_hsa_immed): Likewise.
1321         * ipa-cp.c (print_ipcp_constant_value): Likewise.
1322         (get_replacement_map): Likewise.
1323         * ipa-inline-analysis.c (dump_condition): Likewise.
1324         (estimate_function_body_sizes): Likewise.
1325         * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
1326         (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
1327         * ipa-prop.c (ipa_dump_param): Likewise.
1328         (ipa_print_node_jump_functions_for_edge): Likewise.
1329         (ipa_modify_call_arguments): Likewise.
1330         (ipa_modify_expr): Likewise.
1331         (ipa_dump_param_adjustments): Likewise.
1332         (ipa_dump_agg_replacement_values): Likewise.
1333         (ipcp_modif_dom_walker::before_dom_children): Likewise.
1334         * ipa-pure-const.c (check_stmt): Likewise.
1335         (pass_nothrow::execute): Likewise.
1336         * ipa-split.c (execute_split_functions): Likewise.
1337         * omp-offload.c (dump_oacc_loop_part): Likewise.
1338         (dump_oacc_loop): Likewise.
1339         * trans-mem.c (tm_log_emit): Likewise.
1340         (tm_memopt_accumulate_memops): Likewise.
1341         (dump_tm_memopt_set): Likewise.
1342         (dump_tm_memopt_transform): Likewise.
1343         * tree-cfg.c (gimple_verify_flow_info): Likewise.
1344         (print_loop): Likewise.
1345         * tree-chkp-opt.c (chkp_print_addr): Likewise.
1346         (chkp_gather_checks_info): Likewise.
1347         (chkp_get_check_result): Likewise.
1348         (chkp_remove_check_if_pass): Likewise.
1349         (chkp_use_outer_bounds_if_possible): Likewise.
1350         (chkp_reduce_bounds_lifetime): Likewise.
1351         * tree-chkp.c (chkp_register_addr_bounds): Likewise.
1352         (chkp_mark_completed_bounds): Likewise.
1353         (chkp_register_incomplete_bounds): Likewise.
1354         (chkp_mark_invalid_bounds): Likewise.
1355         (chkp_maybe_copy_and_register_bounds): Likewise.
1356         (chkp_build_returned_bound): Likewise.
1357         (chkp_get_bound_for_parm): Likewise.
1358         (chkp_build_bndldx): Likewise.
1359         (chkp_get_bounds_by_definition): Likewise.
1360         (chkp_generate_extern_var_bounds): Likewise.
1361         (chkp_get_bounds_for_decl_addr): Likewise.
1362         * tree-chrec.c (chrec_apply): Likewise.
1363         * tree-data-ref.c (dump_data_reference): Likewise.
1364         (dump_subscript): Likewise.
1365         (dump_data_dependence_relation): Likewise.
1366         (analyze_overlapping_iterations): Likewise.
1367         * tree-inline.c (expand_call_inline): Likewise.
1368         (tree_function_versioning): Likewise.
1369         * tree-into-ssa.c (dump_defs_stack): Likewise.
1370         (dump_currdefs): Likewise.
1371         (dump_names_replaced_by): Likewise.
1372         (dump_update_ssa): Likewise.
1373         (update_ssa): Likewise.
1374         * tree-object-size.c (pass_object_sizes::execute): Likewise.
1375         * tree-parloops.c (build_new_reduction): Likewise.
1376         (try_create_reduction_list): Likewise.
1377         (ref_conflicts_with_region): Likewise.
1378         (oacc_entry_exit_ok_1): Likewise.
1379         (oacc_entry_exit_single_gang): Likewise.
1380         * tree-pretty-print.h: Likewise.
1381         * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
1382         (get_scalar_evolution): Likewise.
1383         (add_to_evolution): Likewise.
1384         (get_loop_exit_condition): Likewise.
1385         (analyze_evolution_in_loop): Likewise.
1386         (analyze_initial_condition): Likewise.
1387         (analyze_scalar_evolution): Likewise.
1388         (instantiate_scev): Likewise.
1389         (number_of_latch_executions): Likewise.
1390         (gather_chrec_stats): Likewise.
1391         (final_value_replacement_loop): Likewise.
1392         (scev_const_prop): Likewise.
1393         * tree-sra.c (dump_access): Likewise.
1394         (disqualify_candidate): Likewise.
1395         (create_access): Likewise.
1396         (reject): Likewise.
1397         (maybe_add_sra_candidate): Likewise.
1398         (create_access_replacement): Likewise.
1399         (analyze_access_subtree): Likewise.
1400         (analyze_all_variable_accesses): Likewise.
1401         (sra_modify_assign): Likewise.
1402         (initialize_constant_pool_replacements): Likewise.
1403         (find_param_candidates): Likewise.
1404         (decide_one_param_reduction): Likewise.
1405         (replace_removed_params_ssa_names): Likewise.
1406         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
1407         * tree-ssa-copy.c (dump_copy_of): Likewise.
1408         (copy_prop_visit_cond_stmt): Likewise.
1409         * tree-ssa-dce.c (mark_operand_necessary): Likewise.
1410         * tree-ssa-dom.c (pass_dominator::execute): Likewise.
1411         (record_equivalences_from_stmt): Likewise.
1412         * tree-ssa-dse.c (compute_trims): Likewise.
1413         (delete_dead_call): Likewise.
1414         (delete_dead_assignment): Likewise.
1415         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
1416         (forward_propagate_into_cond): Likewise.
1417         (pass_forwprop::execute): Likewise.
1418         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
1419         * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
1420         Likewise.
1421         (move_computations_worker): Likewise.
1422         (execute_sm): Likewise.
1423         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
1424         (remove_exits_and_undefined_stmts): Likewise.
1425         (remove_redundant_iv_tests): Likewise.
1426         * tree-ssa-loop-ivopts.c (dump_use): Likewise.
1427         (adjust_iv_update_pos): Likewise.
1428         * tree-ssa-math-opts.c (bswap_replace): Likewise.
1429         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
1430         (value_replacement): Likewise.
1431         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
1432         * tree-ssa-pre.c (print_pre_expr): Likewise.
1433         (get_representative_for): Likewise.
1434         (create_expression_by_pieces): Likewise.
1435         (insert_into_preds_of_block): Likewise.
1436         (eliminate_insert): Likewise.
1437         (eliminate_dom_walker::before_dom_children): Likewise.
1438         (eliminate): Likewise.
1439         (remove_dead_inserted_code): Likewise.
1440         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
1441         * tree-ssa-reassoc.c (get_rank): Likewise.
1442         (eliminate_duplicate_pair): Likewise.
1443         (eliminate_plus_minus_pair): Likewise.
1444         (eliminate_not_pairs): Likewise.
1445         (undistribute_ops_list): Likewise.
1446         (eliminate_redundant_comparison): Likewise.
1447         (update_range_test): Likewise.
1448         (optimize_range_tests_var_bound): Likewise.
1449         (optimize_vec_cond_expr): Likewise.
1450         (rewrite_expr_tree): Likewise.
1451         (rewrite_expr_tree_parallel): Likewise.
1452         (linearize_expr): Likewise.
1453         (break_up_subtract): Likewise.
1454         (linearize_expr_tree): Likewise.
1455         (attempt_builtin_powi): Likewise.
1456         (attempt_builtin_copysign): Likewise.
1457         (transform_stmt_to_copy): Likewise.
1458         (transform_stmt_to_multiply): Likewise.
1459         (dump_ops_vector): Likewise.
1460         * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
1461         (print_scc): Likewise.
1462         (set_ssa_val_to): Likewise.
1463         (visit_reference_op_store): Likewise.
1464         (visit_use): Likewise.
1465         (sccvn_dom_walker::before_dom_children): Likewise.
1466         (run_scc_vn): Likewise.
1467         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
1468         Likewise.
1469         (expr_hash_elt::print): Likewise.
1470         (const_and_copies::pop_to_marker): Likewise.
1471         (const_and_copies::record_const_or_copy_raw): Likewise.
1472         * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
1473         * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
1474         (dump_predicates): Likewise.
1475         (find_uninit_use): Likewise.
1476         (warn_uninitialized_phi): Likewise.
1477         (pass_late_warn_uninitialized::execute): Likewise.
1478         * tree-ssa.c (verify_vssa): Likewise.
1479         (verify_ssa): Likewise.
1480         (maybe_optimize_var): Likewise.
1481         * tree-vrp.c (dump_value_range): Likewise.
1482         (dump_all_value_ranges): Likewise.
1483         (dump_asserts_for): Likewise.
1484         (register_edge_assert_for_2): Likewise.
1485         (vrp_visit_cond_stmt): Likewise.
1486         (vrp_visit_switch_stmt): Likewise.
1487         (vrp_visit_stmt): Likewise.
1488         (vrp_visit_phi_node): Likewise.
1489         (simplify_cond_using_ranges_1): Likewise.
1490         (fold_predicate_in): Likewise.
1491         (evrp_dom_walker::before_dom_children): Likewise.
1492         (evrp_dom_walker::push_value_range): Likewise.
1493         (evrp_dom_walker::pop_value_range): Likewise.
1494         (execute_early_vrp): Likewise.
1495
1496 2017-05-16  Richard Biener  <rguenther@suse.de>
1497
1498         * dwarf2out.c (loc_list_from_tree_1): Do not create
1499         DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
1500
1501 2017-05-16  Richard Biener  <rguenther@suse.de>
1502
1503         * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
1504         just generated.
1505         (note_variable_value_in_expr): If we resolved the decl ref
1506         do not push to the stack.
1507
1508 2017-05-16  Matthew Wahab  <matthew.wahab@arm.com>
1509
1510         * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
1511         operations in fast-math mode.
1512         (vaddq_f16): Likewise.
1513         (vmul_f16): Likewise.
1514         (vmulq_f16): Likewise.
1515         (vsub_f16): Likewise.
1516         (vsubq_f16): Likewise.
1517         * config/arm/neon.md (add<mode>3): New.
1518         (sub<mode>3): New.
1519         (fma:<VH:mode>3): New.  Also remove outdated comment.
1520         (mul<mode>3): New.
1521
1522 2017-05-16  Martin Liska  <mliska@suse.cz>
1523
1524         PR ipa/79849.
1525         PR ipa/79850.
1526         * ipa-devirt.c (warn_types_mismatch): Fix typo.
1527         (odr_types_equivalent_p): Likewise.
1528
1529 2017-05-15  Sylvestre Ledru  <sylvestre@debian.org>
1530
1531         * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
1532
1533 2017-05-15  Uros Bizjak  <ubizjak@gmail.com>
1534
1535         PR target/80425
1536         * config/i386.i386.md (*zero_extendsidi2): Do not penalize
1537         non-interunit SSE move alternatives with '?'.
1538         (zero-extendsidi peephole2): New peephole to skip intermediate
1539         general register in SSE zero-extend sequence.
1540
1541 2017-05-15  Jeff Law  <law@redhat.com>
1542
1543         * reorg.c (relax_delay_slots): Create a new variable to hold
1544         the temporary target rather than clobbering TARGET_LABEL.
1545
1546         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
1547         missing argument to extract_bit_field call.
1548         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
1549
1550 2017-05-15  Martin Liska  <mliska@suse.cz>
1551
1552         PR driver/31468
1553         * gcc.c (process_command): Do not allow empty argument of -o option.
1554
1555 2017-05-15  Renlin Li  <renlin.li@arm.com>
1556
1557         * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
1558         * config/aarch64/aarch64.c (aarch64_expand_call): Define.
1559         * config/aarch64/constraints.md (Usf): Add long call check.
1560         * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
1561         (call_value): Likewise.
1562         (sibcall): Likewise.
1563         (sibcall_value): Likewise.
1564         (call_insn): New.
1565         (call_value_insn): New.
1566         (sibcall_insn): Update rtx pattern.
1567         (sibcall_value_insn): Likewise.
1568         (call_internal): Remove.
1569         (call_value_internal): Likewise.
1570         (sibcall_internal): Likewise.
1571         (sibcall_value_internal): Likewise.
1572         (call_reg): Likewise.
1573         (call_symbol): Likewise.
1574         (call_value_reg): Likewise.
1575         (call_value_symbol): Likewise.
1576
1577 2017-05-14  Krister Walfridsson  <krister.walfridsson@gmail.com>
1578
1579         PR target/80600
1580         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
1581
1582 2017-05-14  Uros Bizjak  <ubizjak@gmail.com>
1583
1584         * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
1585         compatible with CCGOCmode and with CCZmode.
1586
1587 2017-05-14  Martin Sebor  <msebor@redhat.com>
1588
1589         PR middle-end/77671
1590         * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
1591         (gimple_fold_builtin_snprintf): Same.
1592         * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
1593         (gimple_fold_builtin_snprintf): Same.
1594         * gimple-ssa-sprintf.c (get_format_string): Correct the detection
1595         of character types.
1596         (is_call_safe): New function.
1597         (try_substitute_return_value): Call it.
1598         (try_simplify_call): New function.
1599         (pass_sprintf_length::handle_gimple_call): Call it.
1600
1601 2017-05-14  Martin Sebor  <msebor@redhat.com>
1602
1603         PR middle-end/80669
1604         * builtins.c (expand_builtin_stpncpy): Simplify.
1605
1606 2017-05-14  Daniel Santos  <daniel.santos@pobox.com>
1607
1608         * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
1609         * config/i386/i386.h
1610         (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
1611         (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
1612         (struct machine_function): Add new members call_ms2sysv,
1613         call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
1614         (struct machine_frame_state): New fields sp_realigned and
1615         sp_realigned_offset.
1616         * config/i386/i386.c
1617         (enum xlogue_stub): New enum.
1618         (enum xlogue_stub_sets): New enum.
1619         (class xlogue_layout): New class.
1620         (struct ix86_frame): New fields stack_realign_allocate_offset,
1621         stack_realign_offset and outlined_save_offset.  Modify comments to
1622         detail stack layout when using out-of-line stubs.
1623         (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
1624         (ix86_option_override_internal): Add sorry() for TARGET_SEH and
1625         -mcall-ms2sysv-xlogues.
1626         (stub_managed_regs): New static variable.
1627         (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
1628         registers managed by out-of-line stub.
1629         (disable_call_ms2sysv_xlogues): New function.
1630         (ix86_compute_frame_layout): Modify re-alignment calculations, disable
1631         m->call_ms2sysv when appropriate and compute frame layout for
1632         out-of-line stubs.
1633         (sp_valid_at, fp_valid_at): New inline functions.
1634         (choose_basereg): New function.
1635         (choose_baseaddr): Add align parameter, use choose_basereg and modify
1636         all callers.
1637         (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
1638         Use align parameter of choose_baseaddr to generated aligned SSE movs
1639         when possible.
1640         (pro_epilogue_adjust_stack): Modify to track
1641         machine_frame_state::sp_realigned.
1642         (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
1643         (ix86_nsaved_sseregs): Likewise.
1644         (ix86_emit_save_regs): Likewise.
1645         (ix86_emit_save_regs_using_mov): Likewise.
1646         (ix86_emit_save_sse_regs_using_mov): Likewise.
1647         (get_scratch_register_on_entry): Likewise.
1648         (gen_frame_set): New function.
1649         (gen_frame_load): Likewise.
1650         (gen_frame_store): Likewise.
1651         (emit_outlined_ms2sysv_save): Likewise.
1652         (emit_outlined_ms2sysv_restore): Likewise.
1653         (ix86_expand_prologue): Modify stack re-alignment code and call
1654         emit_outlined_ms2sysv_save when appropriate.
1655         (ix86_emit_leave): Clear machine_frame_state::sp_realigned.  Add
1656         parameter rtx_insn *insn, which allows the function to be used to only
1657         generate the notes.
1658         (ix86_expand_epilogue): Modify validity checks of frame and stack
1659         pointers, and call emit_outlined_ms2sysv_restore when appropriate.
1660         (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
1661         * config/i386/predicates.md
1662         (save_multiple): New predicate.
1663         (restore_multiple): Likewise.
1664         * config/i386/sse.md
1665         (save_multiple<mode>): New pattern.
1666         (save_multiple_realign<mode>): Likewise.
1667         (restore_multiple<mode>): Likewise.
1668         (restore_multiple_and_return<mode>): Likewise.
1669         (restore_multiple_leave_return<mode>): Likewise.
1670         * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
1671
1672 2017-05-14  Julia Koval  <julia.koval@intel.com>
1673
1674         * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
1675         * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
1676         (__builtin_ia32_xsetbv): New builtins.
1677         * config/i386/i386.c (ix86_expand_special_args_builtin):
1678         Process new types.
1679         (ix86_expand_builtin): Special expand for new intrinsics.
1680         * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
1681         (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
1682         * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
1683
1684 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1685
1686         * cfganal.c (inverted_post_order_compute): Change argument type
1687         to vec *.
1688         * cfganal.h (inverted_post_order_compute): Adjust prototype.
1689         * df-core.c (rest_of_handle_df_initialize): Adjust.
1690         (rest_of_handle_df_finish): Likewise.
1691         (df_analyze_1): Likewise.
1692         (df_analyze): Likewise.
1693         (loop_inverted_post_order_compute): Change argument to be a vec *.
1694         (df_analyze_loop): Adjust.
1695         (df_get_n_blocks): Likewise.
1696         (df_get_postorder): Likewise.
1697         * df.h (struct df_d): Change field to be a vec.
1698         * lcm.c (compute_laterin): Adjust.
1699         (compute_available): Likewise.
1700         * lra-lives.c (lra_create_live_ranges_1): Likewise.
1701         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
1702         * tree-ssa-pre.c (compute_antic): Likewise.
1703
1704 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1705
1706         * cfganal.c (connect_infinite_loops_to_exit): Adjust.
1707         (depth_first_search::depth_first_search): Change structure init
1708         function to this constructor.
1709         (depth_first_search::add_bb): Rename function to this member.
1710         (depth_first_search::execute): Likewise.
1711         (flow_dfs_compute_reverse_finish): Adjust.
1712
1713 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1714
1715         * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
1716         (longest_simple_path): Likewise.
1717         * shrink-wrap.c (spread_components): Likewise.
1718         (disqualify_problematic_components): Likewise.
1719         (emit_common_heads_for_components): Likewise.
1720         (emit_common_tails_for_components): Likewise.
1721         (insert_prologue_epilogue_for_components): Likewise.
1722
1723 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1724
1725         * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
1726         auto_sbitmap.
1727
1728 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1729
1730         * df-core.c (df_set_blocks): Start using auto_bitmap.
1731         (df_compact_blocks): Likewise.
1732         * df-problems.c (df_rd_confluence_n): Likewise.
1733         * df-scan.c (df_insn_rescan_all): Likewise.
1734         (df_process_deferred_rescans): Likewise.
1735         (df_update_entry_block_defs): Likewise.
1736         (df_update_exit_block_uses): Likewise.
1737         (df_entry_block_bitmap_verify): Likewise.
1738         (df_exit_block_bitmap_verify): Likewise.
1739         (df_scan_verify): Likewise.
1740         * lra-constraints.c (lra_constraints): Likewise.
1741         (undo_optional_reloads): Likewise.
1742         (lra_undo_inheritance): Likewise.
1743         * lra-remat.c (calculate_gen_cands): Likewise.
1744         (do_remat): Likewise.
1745         * lra-spills.c (assign_spill_hard_regs): Likewise.
1746         (spill_pseudos): Likewise.
1747         * tree-ssa-pre.c (bitmap_set_and): Likewise.
1748         (bitmap_set_subtract_values): Likewise.
1749
1750 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1751
1752         * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
1753         management with auto_bitmap.
1754         (fix_inter_tick): Likewise.
1755         (fix_recovery_deps): Likewise.
1756         * ira.c (add_store_equivs): Likewise.
1757         (find_moveable_pseudos): Likewise.
1758         (split_live_ranges_for_shrink_wrap): Likewise.
1759         * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
1760         (rtx_reuse_manager::seen_def_p): Likewise.
1761         (rtx_reuse_manager::set_seen_def): Likewise.
1762         * print-rtl.h (class rtx_reuse_manager): Likewise.
1763
1764 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1765
1766         * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
1767         lifetime.
1768         (migrate_btr_def): Likewise.
1769         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
1770         * df-core.c (loop_post_order_compute): Likewise.
1771         (loop_inverted_post_order_compute): Likewise.
1772         * hsa-common.h: Likewise.
1773         * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
1774         * init-regs.c (initialize_uninitialized_regs): Likewise.
1775         * ipa-inline.c (resolve_noninline_speculation): Likewise.
1776         (inline_small_functions): Likewise.
1777         * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
1778         * ira.c (combine_and_move_insns): Likewise.
1779         (build_insn_chain): Likewise.
1780         * loop-invariant.c (find_invariants): Likewise.
1781         * lower-subreg.c (propagate_pseudo_copies): Likewise.
1782         * predict.c (tree_predict_by_opcode): Likewise.
1783         (predict_paths_leading_to): Likewise.
1784         (predict_paths_leading_to_edge): Likewise.
1785         (estimate_loops_at_level): Likewise.
1786         (estimate_loops): Likewise.
1787         * shrink-wrap.c (try_shrink_wrapping): Likewise.
1788         (spread_components): Likewise.
1789         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
1790         * tree-loop-distribution.c (rdg_build_partitions): Likewise.
1791         * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
1792         * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
1793         * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
1794         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
1795         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
1796         * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
1797         (mark_threaded_blocks): Likewise.
1798         (thread_through_all_blocks): Likewise.
1799         * tree-ssa.c (verify_ssa): Likewise.
1800         (execute_update_addresses_taken): Likewise.
1801         * tree-ssanames.c (verify_ssaname_freelists): Likewise.
1802
1803 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1804
1805         * cfganal.c (mark_dfs_back_edges): Replace manual stack with
1806         auto_vec.
1807         (post_order_compute): Likewise.
1808         (inverted_post_order_compute): Likewise.
1809         (pre_and_rev_post_order_compute_fn): Likewise.
1810
1811 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1812
1813         * genrecog.c (int_set::int_set): Explicitly construct our
1814         auto_vec base class.
1815         * vec.h (auto_vec::auto_vec): New constructor.
1816
1817 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1818
1819         * bitmap.h (class auto_bitmap): New constructor taking
1820         bitmap_obstack * argument.
1821
1822 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1823
1824         * bitmap.h (class auto_bitmap): Change type of m_bits to
1825         bitmap_head, and adjust ctor / dtor and member operators.
1826
1827 2017-05-13  Uros Bizjak  <ubizjak@gmail.com>
1828
1829         * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
1830         when returned register mode doesn't match original mode.
1831
1832 2017-05-12  Jeff Law  <law@redhat.com>
1833             Jakub Jelinek  <jakub@redhat.com>
1834
1835         * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
1836         we look for cc setter after the compare-elim changes.
1837         * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
1838         within the vector to match what compare-elim now expects.
1839         (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
1840         (xorsi3_flags, one_cmplsi2_flags): Likewise.
1841
1842         * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
1843         after the compare-elim changes.
1844         * config/rx/rx.md (abssi2_flags): Fix order of patterns within
1845         the vector to match what compare-elim now expects.
1846         (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
1847         (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
1848         (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
1849         (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
1850         (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
1851
1852         * config/visium/visium.c (single_set_and_flags): Fix where
1853         we look for cc setter after the compare-elim changes.
1854         * config/visium/visium.md (flags_subst_logic): Fix order of patterns
1855         with the vector to match what compare-elim now expects.
1856         (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
1857         (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
1858         (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
1859         (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
1860         (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
1861         (neg<mode>2_insn_set_overflow): Likewise.
1862
1863 2017-05-12  Jim Wilson  <jim.wilson@linaro.org>
1864
1865         PR middle-end/79794
1866         * expmed.c (extract_bit_field_1): Add alt_rtl argument.  Before
1867         maybe_expand_insn call, set ops[0].target.  If still set after call,
1868         set alt_rtl.  Add extra arg to recursive calls.
1869         (extract_bit_field): Add alt_rtl argument.  Pass to
1870         extract_bit_field.
1871         * expmed.h (extract_bit_field): Fix prototype.
1872         * expr.c (emit_group_load_1, copy_blkmode_from_reg)
1873         (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
1874         to extract_bit_field_calls.
1875         (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
1876         Pass alt_rtl to extract_bit_field calls.
1877         * calls.c (store_unaligned_arguments_into_psuedos)
1878         load_register_parameters): Pass extra NULL to extract_bit_field calls.
1879         * optabs.c (maybe_legitimize_operand): Clear op->target when call
1880         gen_reg_rtx.
1881         * optabs.h (struct expand_operand): Add target bitfield.
1882
1883 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
1884
1885         * compare-elim.c (try_eliminate_compare): Canonicalize
1886         operation with embedded compare to
1887         [(set (reg:CCM) (compare:CCM (operation) (immediate)))
1888          (set (reg) (operation)].
1889
1890         * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
1891
1892 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
1893
1894         PR target/80723
1895         * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
1896         cost of adding a carry flag for ADC instruction.
1897         [case MINUS]: Ignore the cost of subtracting a carry flag
1898         for SBB instruction.
1899
1900 2017-05-12  Steven Munroe  <munroesj@gcc.gnu.org>
1901
1902         * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
1903         and x86intrin.h
1904         * config/rs6000/bmiintrin.h: New file.
1905         * config/rs6000/bmi2intrin.h: New file.
1906         * config/rs6000/x86intrin.h: New file.
1907
1908 2017-05-12  Jeff Law  <law@redhat.com>
1909
1910         * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
1911         markers.
1912
1913 2017-05-12  Peter Bergner  <bergner@vnet.ibm.com>
1914
1915         PR middle-end/80707
1916         * tree-cfg.c: Remove cfg edges of unreachable case statements.
1917
1918 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
1919
1920         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
1921         early expansion of vector divide builtins.
1922         (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
1923         builtins identified as having unsigned arguments.
1924
1925 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
1926
1927         * config/rs6000/rs6000.c (gimple-fold.h): New #include.
1928         (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
1929         expansion of vector logical operations (and, andc, or, xor,
1930         nor, orc, nand).
1931
1932 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
1933
1934         * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
1935         * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
1936
1937 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
1938
1939         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
1940         early GIMPLE expansion of vector multiplies.
1941
1942 2017-05-12  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
1943
1944         * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
1945         TARGET_HAVE_MOVT conditional.
1946         (movt splitter): Likewise.
1947
1948 2017-05-12  Richard Biener  <rguenther@suse.de>
1949
1950         * tree-ssa-sccvn.h (has_VN_INFO): Declare.
1951         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1952         Fold all stmts not inplace.
1953
1954 2017-05-12  Richard Biener  <rguenther@suse.de>
1955
1956         PR tree-optimization/80713
1957         * tree-ssa-pre.c (remove_dead_inserted_code): Clear
1958         inserted_exprs bit for not removed stmts.
1959
1960 2017-05-12  Thomas Schwinge  <thomas@codesourcery.com>
1961
1962         PR middle-end/69921
1963         * tree-parloops.c (create_parallel_loop): Set "oacc kernels
1964         parallelized" attribute for parallelized OpenACC kernels.
1965         * omp-offload.c (execute_oacc_device_lower): Use it.
1966
1967         * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
1968         Set "oacc kernels" attribute.
1969         * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
1970         parameter.  Adjust all users.
1971         (oacc_fn_attrib_kernels_p): Remove function.
1972         * omp-offload.c (execute_oacc_device_lower): Look for "oacc
1973         kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
1974         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
1975         * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
1976         assert "oacc kernels" attribute is set.
1977
1978 2017-05-11  Carl Love  <cel@us.ibm.com>
1979
1980         * config/rs6000/rs6000-c: Add support for built-in functions
1981         vector unsigned char vec_popcnt (vector signed char)
1982         vector unsigned char vec_popcnt (vector unsigned char)
1983         vector unsigned short vec_popcnt (vector signed short)
1984         vector unsigned short vec_popcnt (vector unsigned short)
1985         vector unsigned int vec_popcnt (vector signed int)
1986         vector unsigned int vec_popcnt (vector unsigned int)
1987         vector unsigned long long vec_popcnt (vector signed long long)
1988         vector unsigned long long vec_popcnt (vector unsigned long long)
1989         vector signed long long vec_slo (vector signed long long,
1990                                          vector signed char)
1991         vector signed long long vec_slo (vector signed long long,
1992                                          vector unsigned char)
1993         vector unsigned long long vec_slo (vector unsigned long long,
1994                                            vector signed char)
1995         vector unsigned long long vec_slo (vector unsigned long long,
1996                                            vector unsigned char)
1997         * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
1998         VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
1999         * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
2000         vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
2001         * doc/extend.texi: Update the built-in documentation file for the
2002         new built-in functions.
2003
2004 2017-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
2005
2006         * attribs.h (sorted_attr_string): Move machine independent
2007         functions for target clone support from the i386 port to common
2008         code.  Rename ix86_function_versions to common_function_versions.
2009         Rename make_name to make_unique_name.
2010         (common_function_versions): Likewise.
2011         (make_unique_name): Likewise.
2012         (make_dispatcher_decl): Likewise.
2013         (is_function_default_version): Likewise.
2014         * attribs.c (attr_strcmp): Likewise.
2015         (sorted_attr_string): Likewise.
2016         (common_function_versions): Likewise.
2017         (make_unique_name): Likewise.
2018         (make_dispatcher_decl): Likewise.
2019         (is_function_default_version): Likewise.
2020         * config/i386/i386.c (attr_strcmp): Likewise.
2021         (sorted_attr_string): Likewise.
2022         (ix86_function_versions): Likewise.
2023         (make_name): Likewise.
2024         (make_dispatcher_decl): Likewise.
2025         (is_function_default_version): Likewise.
2026         (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
2027
2028 2017-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2029
2030         PR target/80695
2031         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
2032         Account for direct move costs for vec_construct of integer
2033         vectors.
2034
2035 2017-05-11  Uros Bizjak  <ubizjak@gmail.com>
2036
2037         PR target/80706
2038         * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
2039         (UNSPEC_STX_ATOMIC): Ditto.
2040         (loaddi_via_sse): New insn.
2041         (storedi_via_sse): Ditto.
2042         (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
2043         Update corresponding peephole2 patterns.
2044         (atomic_storedi_fpu): Ditto.
2045
2046 2017-05-11  Julia Koval  <julia.koval@intel.com>
2047
2048         * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
2049         (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
2050         New intrinsics.
2051         * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
2052         (__builtin_ia32_rsqrt14ss_mask): New builtins.
2053         * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
2054
2055 2017-05-11  Nathan Sidwell  <nathan@acm.org>
2056
2057         * graphite-poly.c: Include dumpfile.h.
2058
2059         * dumpfle.h (dump_function): Declare here ...
2060         * tree-dump.h (dump_function): ... not here.
2061         * dumpfile.c: #include tree-cfg.h.
2062         (dump_function): Move here from ...
2063         * tree-dump.c (dump_function): ... here.
2064         * gimplify.c: #include splay-tree.h, not tree-dump.h.
2065         * graphite-poly.c: Don't include tree-dump.h.
2066         * cgraphclones.c: Include dumpfile.h not tree-dump.h.
2067         * print-tree.c: Likewise.
2068         * stor-layout.c: Likewise.
2069         * tree-nested.c: Likewise.
2070
2071         * dumpfile.c (dump_start): Use TDF_FLAGS.
2072         (dump_enable_all): Fix TDF_KIND check thinko.
2073
2074 2017-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2075
2076         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2077         array entries to represent two legal parameterizations of the
2078         overloaded __builtin_cmpb function, as represented by the
2079         P6_OV_BUILTIN_CMPB constant.
2080         (altivec_resolve_overloaded_builtin): Add special case handling
2081         for the __builtin_cmpb function, as represented by the
2082         P6_OV_BUILTIN_CMPB constant.
2083         * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
2084         (BU_P6_64BIT_2): New macro.
2085         (BU_P6_OVERLOAD_2): New macro
2086         (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
2087         (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
2088         (CMPB): Add overload support to represent both 32-bit and 64-bit
2089         compare-bytes function.
2090         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
2091         support for TARGET_CMPB.
2092         * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
2093         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
2094         documentation of the __builtin_cmpb overloaded built-in function.
2095
2096 2017-05-11  Richard Biener  <rguenther@suse.de>
2097
2098         PR tree-optimization/80705
2099         * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
2100         bases are not vectorizable.
2101
2102 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2103
2104         * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
2105         when counting register pressure.
2106
2107 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2108
2109         * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
2110         (iv_ca_more_deps): Renamed to ...
2111         (iv_ca_compare_deps): ... this.
2112         (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
2113
2114 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2115
2116         * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
2117         to ...
2118         (determine_group_iv_costs): ... here.
2119         (find_inv_vars_cb): Record inv var if it's not recorded before.
2120
2121 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2122
2123         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
2124         (get_shiftadd_cost): Ditto.
2125
2126 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2127
2128         * tree-ssa-address.c: Include header file.
2129         (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
2130         address.
2131         (add_to_parts): Refactor.
2132         (addr_to_parts): New parameter.  Update use of move_hint_to_base.
2133         (create_mem_ref): Update use of addr_to_parts.  Re-associate addr
2134         in new order.
2135
2136 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2137
2138         PR tree-optimization/53090
2139         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
2140         COMP_IV_EXPR_2.
2141         (extract_cond_operands): Detect condition with IV on both sides
2142         and return COMP_IV_EXPR_2.
2143         (find_interesting_uses_cond): Add iv_use for both IVs in condition.
2144         (rewrite_use_compare): Simplify by removing call to function
2145         extract_cond_operands.
2146
2147 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2148
2149         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
2150         (extract_cond_operands): Detect condition comparing against non-
2151         invariant bound and return appropriate enum value.
2152         (find_interesting_uses_cond): Update use of extract_cond_operands.
2153         Handle its return value accordingly.
2154         (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
2155
2156 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2157
2158         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
2159         nonlinear iv_use computation in loop invariant sensitive way.
2160
2161 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2162
2163         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
2164         (find_iv_candidates): Call relate_compare_use_with_all_cands.
2165
2166 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2167
2168         * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
2169         (dump_cand): Support iv_cand.inv_exprs.
2170         (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
2171         for candidates.
2172         (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
2173         iv_cand.inv_exprs.
2174
2175 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2176
2177         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
2178         from ...
2179         * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
2180         as local function.  Include necessary header files.
2181         * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
2182
2183 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2184
2185         * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
2186
2187 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2188
2189         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
2190         operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
2191         RSHIFT_EXPR and BIT_NOT_EXPR.
2192
2193 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2194
2195         * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
2196         (adjust_setup_cost): New parameter supporting round up adjustment.
2197         (struct address_cost_data): Delete.
2198         (force_expr_to_var_cost): Don't bound cost with spill_cost.
2199         (split_address_cost, ptr_difference_cost): Delete.
2200         (difference_cost, compare_aff_trees, record_inv_expr): Delete.
2201         (struct ainc_cost_data): New struct.
2202         (get_address_cost_ainc): New function.
2203         (get_address_cost, get_computation_cost): Reimplement.
2204         (determine_group_iv_cost_address): Record inv_expr for all uses of
2205         a group.
2206         (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
2207         (iv_ca_has_deps): Reimplemented to ...
2208         (iv_ca_more_deps): ... this.  Check if NEW_CP introduces more deps
2209         than OLD_CP.
2210         (iv_ca_extend): Call iv_ca_more_deps.
2211
2212 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2213
2214         * tree-ssa-address.c (struct mem_address): Move to header file.
2215         (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
2216         * tree-ssa-address.h (struct mem_address): Move from C file.
2217         (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
2218
2219 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2220
2221         * tree-affine.h (aff_combination_type): New interface.
2222         (aff_combination_zero_p): Remove static.
2223         (aff_combination_const_p): New interface.
2224         (aff_combination_singleton_var_p): New interfaces.
2225
2226 2017-05-11  Richard Biener  <rguenther@suse.de>
2227
2228         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
2229         Skip unreachable blocks and destinations.
2230         (eliminate): Move stmt removal and fixup ...
2231         (fini_eliminate): ... here.  Skip inserted exprs.
2232         (pass_pre::execute): Move fini_pre after fini_eliminate.
2233         * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
2234         (tail_merge_optimize): Run cleanup_tree_cfg if requested by
2235         PRE to get rid of dead code that has invalid SSA form and
2236         split critical edges again.
2237
2238 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2239
2240         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
2241
2242 2017-05-11  Richard Biener  <rguenther@suse.de>
2243
2244         * passes.c (execute_function_todo): Verify loops if they are
2245         said to be up-to-date.
2246         * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
2247         * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
2248
2249 2017-05-10  John David Anglin  <danglin@gcc.gnu.org>
2250
2251         PR target/80090
2252         * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
2253         handle calling assemble_external ourself.
2254
2255         PR target/79027
2256         * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
2257         modes with zero size.  Enhance comment.
2258
2259 2017-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2260
2261         * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
2262         built-ins for vec_xl and vec_xst with short and char pointer
2263         arguments.
2264
2265 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
2266
2267         * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
2268         (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
2269         (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
2270         (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
2271         (_mm_maskz_min_round_ss): New intrinsics.
2272         * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
2273         (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
2274         * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
2275         (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
2276         (__builtin_ia32_minss_mask_round): New builtins.
2277         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
2278         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
2279         * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
2280         Rename to ...
2281         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
2282         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
2283         Change to ...
2284         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
2285         ... this.
2286
2287 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
2288
2289         * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
2290         (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
2291         (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
2292         (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
2293         (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
2294         (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
2295         (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
2296         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
2297         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
2298         * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
2299         (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
2300         (__builtin_ia32_mulss_mask_round): New builtins.
2301         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
2302         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
2303         * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
2304         Rename to ...
2305         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
2306         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
2307         Change to ...
2308         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
2309         ... this.
2310
2311 2017-05-10  Julia Koval  <julia.koval@intel.com>
2312
2313         * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
2314         (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
2315         (_mm256_setr_m128i): New intrinsics.
2316
2317 2017-05-10  Julia Koval  <julia.koval@intel.com>
2318
2319         * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
2320         (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
2321         (_mm_maskz_rcp14_ss): New intrinsics.
2322         * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
2323         (__builtin_ia32_rcp14ss_mask): New builtins.
2324         * config/i386/sse.md (srcp14<mode>_mask): New pattern.
2325
2326 2017-05-10  Peter Bergner  <bergner@vnet.ibm.com>
2327
2328         PR tree-optimization/51513
2329         * tree-cfg.c (gimple_seq_unreachable_p): New function.
2330         (assert_unreachable_fallthru_edge_p): Use it.
2331         (group_case_labels_stmt): Likewise.
2332         * tree-cfg.h: Prototype it.
2333         * stmt.c: Include cfghooks.h and tree-cfg.h.
2334         (emit_case_dispatch_table) <gap_label>: New local variable.
2335         Use it to fill dispatch table gaps.
2336         Test for default_label before updating probabilities.
2337         (expand_case) <default_label>: Remove unneeded initialization.
2338         Test for unreachable default case statement and remove its edge.
2339         Set default_label accordingly.
2340         * tree-ssa-ccp.c (optimize_unreachable): Update comment.
2341
2342 2017-05-10  Carl Love  <cel@us.ibm.com>
2343
2344         * config/rs6000/rs6000-c: Add support for built-in functions
2345         vector signed char        vec_neg (vector signed char)
2346         vector signed short int   vec_neg (vector short int)
2347         vector signed int         vec_neg (vector signed int)
2348         vector signed long long   vec_neg (vector signed long long)
2349         vector float              vec_neg (vector float)
2350         vector double             vec_neg (vector double)
2351         * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
2352         overload.
2353         * config/rs6000/altivec.h: Add define for vec_neg
2354         * doc/extend.texi: Update the built-in documentation for the
2355         new built-in functions.
2356
2357 2017-05-10  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2358
2359         PR tree-optimization/77644
2360         * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
2361
2362 2017-05-10  Nathan Sidwell  <nathan@acm.org>
2363
2364         * dumpfile.h (TDI_lang_all): New.
2365         (TDF_KIND): New. Renumber others
2366         (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
2367         than bits.
2368         * dumpfile.c (dump_files): Mark language dumps as TDF_LANG.  add
2369         lang-all.
2370         (get_dump_file_name): Adjust suffix generation.
2371         (dump_enable_all): Use TDF_KIND.
2372         * doc/invoke.texi (-fdump-lang-all): Document.
2373
2374         * dumpfile.h: Tabify.
2375
2376 2017-05-10  Wilco Dijkstra  <wdijkstr@arm.com>
2377
2378         PR target/80671
2379         * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
2380         Move member access before delete.
2381
2382 2017-05-10  Alexandre Oliva <aoliva@redhat.com>
2383
2384         * tree-inline.c (expand_call_inline): Split block at stmt
2385         before the call.
2386
2387 2017-05-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
2388
2389         PR target/68163
2390         * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
2391         are now unused after splitting mov{sf,sd}_hardfloat.
2392         (f32_lr2): Likewise.
2393         (f32_lm): Likewise.
2394         (f32_lm2): Likewise.
2395         (f32_li): Likewise.
2396         (f32_li2): Likewise.
2397         (f32_lv): Likewise.
2398         (f32_sr): Likewise.
2399         (f32_sr2): Likewise.
2400         (f32_sm): Likewise.
2401         (f32_sm2): Likewise.
2402         (f32_si): Likewise.
2403         (f32_si2): Likewise.
2404         (f32_sv): Likewise.
2405         (f32_dm): Likewise.
2406         (f32_vsx): Likewise.
2407         (f32_av): Likewise.
2408         (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
2409         For movsf, order stores so the VSX stores occur before the GPR
2410         store which encourages the register allocator to use a traditional
2411         FPR instead of a GPR.  For movsd, order the stores so that the GPR
2412         store comes before the VSX stores to allow the power6 to work.
2413         This is due to the power6 not having a 32-bit integer store
2414         instruction from a FPR.
2415         (movsf_hardfloat): Likewise.
2416         (movsd_hardfloat): Likewise.
2417
2418 2017-05-09  Martin Sebor  <msebor@redhat.com>
2419
2420         PR translation/80280
2421         * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
2422         added in r247778.
2423
2424         PR translation/80280
2425         * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
2426         data member added in r247778.
2427         (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
2428
2429 2017-05-09  Nathan Sidwell  <nathan@acm.org>
2430
2431         * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
2432
2433         * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
2434         typedefs.
2435
2436 2017-05-09  Marek Polacek  <polacek@redhat.com>
2437
2438         * doc/invoke.texi: Fix typo.
2439
2440 2017-05-09  Richard Biener  <rguenther@suse.de>
2441
2442         * tree-vrp.c (vrp_val_is_max): Adjust comment.
2443         (vrp_val_is_min): Likewise.
2444         (set_value_range_to_value): Likewise.
2445         (set_value_range_to_nonnegative): Likewise.
2446         (gimple_assign_nonzero_p): Likewise.
2447         (gimple_stmt_nonzero_p): Likewise.
2448         (vrp_int_const_binop): Likewise.  Remove unreachable case.
2449         (adjust_range_with_scev): Adjust comments.
2450         (compare_range_with_value): Likewise.
2451         (extract_range_from_phi_node): Likewise.
2452         (test_for_singularity): Likewise.
2453
2454 2017-05-09  Richard Biener  <rguenther@suse.de>
2455
2456         * tree-vrp.c (get_single_symbol): Add assert that we don't
2457         get overflowed constants as invariant part.
2458         (compare_values_warnv): Add comment before the TREE_NO_WARNING
2459         checks.  Use wi::cmp instead of recursing for integer constants.
2460         (compare_values): Just ignore whether we assumed undefined
2461         overflow instead of failing the compare.
2462         (extract_range_for_var_from_comparison_expr): Add comment before the
2463         TREE_NO_WARNING sets.
2464         (test_for_singularity): Likewise.
2465         (extract_range_from_comparison): Do not disable optimization
2466         when we assumed undefined overflow.
2467         (extract_range_basic): Remove init of unused var.
2468
2469 2017-05-09  Richard Biener  <rguenther@suse.de>
2470
2471         * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
2472         (extract_range_from_multiplicative_op_1): Adjust.
2473         (extract_range_from_binary_expr_1): Use int_const_binop.
2474
2475 2017-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2476
2477         PR target/80101
2478         * config/rs6000/power6.md: Replace store_data_bypass_p calls with
2479         rs6000_store_data_bypass_p in seven define_bypass directives and
2480         in several comments.
2481         * config/rs6000/rs6000-protos.h: Add prototype for
2482         rs6000_store_data_bypass_p function.
2483         * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
2484         function implements slightly different (rs6000-specific) semantics
2485         than store_data_bypass_p, returning false rather than aborting
2486         with assertion error when arguments do not satisfy the
2487         requirements of store data bypass.
2488         (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
2489         rs6000_store_data_bypass_p.
2490
2491 2017-05-08  Max Filippov  <jcmvbkbc@gmail.com>
2492
2493         * config/xtensa/xtensa-protos.h
2494         (xtensa_initial_elimination_offset): New declaration.
2495         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
2496         New function. Move its body from the INITIAL_ELIMINATION_OFFSET
2497         macro definition, add case for FRAME_POINTER_REGNUM when
2498         FRAME_GROWS_DOWNWARD.
2499         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
2500         (INITIAL_ELIMINATION_OFFSET): Replace body with call to
2501         xtensa_initial_elimination_offset.
2502
2503 2017-05-08  Nathan Sidwell  <nathan@acm.org>
2504
2505         * doc/invoke.texi: Alphabetize -fdump options.
2506
2507 2017-05-08  Martin Sebor  <msebor@redhat.com>
2508
2509         PR translation/80280
2510         * config/sol2-c.c (solaris_pragma_align): Correct quoting.
2511
2512 2017-05-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2513
2514         * target.def (compute_frame_layout): New optional target hook.
2515         * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
2516         * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
2517         * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
2518         target hook.
2519         * reload1.c (verify_initial_elim_offsets): Likewise.
2520         * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
2521         (use_simple_return_p): Call arm_compute_frame_layout if needed.
2522         (arm_get_frame_offsets): Split up into this ...
2523         (arm_compute_frame_layout): ... and this function.
2524
2525 2017-05-08  Richard Sandiford  <richard.sandiford@arm.com>
2526
2527         * config/aarch64/constraints.md (Usa): New constraint.
2528         * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
2529
2530 2017-05-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2531
2532         * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
2533         with_multilib_list after it has been checked.
2534
2535 2017-05-08  Richard Biener  <rguenther@suse.de>
2536
2537         * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
2538         (bitmap_set_subtract_values): Likewise.
2539
2540 2017-05-08  Richard Biener  <rguenther@suse.de>
2541
2542         * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
2543         (gimple_assign_nonzero): ... this and remove strict_overflow_p
2544         argument.
2545         (gimple_stmt_nonzero_warnv_p): Rename to ...
2546         (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
2547         argument.
2548         (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
2549         (extract_range_basic): Adjust, do not disable propagation on
2550         strict overflow sensitive simplification.
2551         (vrp_visit_cond_stmt): Likewise.
2552
2553 2017-05-05  Jan Hubicka  <hubicka@ucw.cz>
2554
2555         * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
2556         body size unconditionally.
2557
2558 2017-05-07  Jeff Law  <law@redhat.com>
2559
2560         Revert:
2561         2017-05-06  Jeff Law  <law@redhat.com>
2562         PR tree-optimization/78496
2563         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
2564         code.
2565
2566         PR tree-optimization/78496
2567         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
2568         (simplify_stmt_using_ranges): Call it.
2569         (vrp_dom_walker::before_dom_children): Extract equivalences
2570         from an ASSERT_EXPR with an equality comparison against a
2571         constant.
2572
2573 2017-05-06  Jeff Law  <law@redhat.com>
2574
2575         PR tree-optimization/78496
2576         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
2577         code.
2578
2579         PR tree-optimization/78496
2580         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
2581         (simplify_stmt_using_ranges): Call it.
2582         (vrp_dom_walker::before_dom_children): Extract equivalences
2583         from an ASSERT_EXPR with an equality comparison against a
2584         constant.
2585
2586 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
2587
2588         * lra-constraints.c (lra_copy_reg_equiv): New function.
2589         (split_reg): Use it to copy equivalence information from the
2590         original register to the spill register.
2591
2592 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
2593
2594         PR rtl-optimization/75964
2595         * simplify-rtx.c (simplify_const_relational_operation): Remove
2596         invalid handling of comparisons of integer ABS.
2597
2598 2017-05-06  Uros Bizjak  <ubizjak@gmail.com>
2599
2600         * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
2601         initialize to zero.
2602         (init_regs): Remove declaration.
2603         (function_arg_advance_32): Initialize error_p as boolean variable.
2604
2605 2017-05-05  Nathan Sidwell  <nathan@acm.org>
2606
2607         * store-motion.c (remove_reachable_equiv_notes): Reformat long
2608         lines.  Use for (;;).
2609
2610 2017-05-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2611
2612         * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
2613         (rs6000_init_cost): Initialize rs6000_vect_nonmem.
2614         (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
2615         (rs6000_finish_cost): Avoid vectorizing simple copy loops with
2616         VF=2 that require versioning.
2617
2618 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
2619
2620         * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
2621         int.
2622
2623 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
2624
2625         * diagnostic.h (diagnostic_override_option_index): Convert from
2626         macro to inline function.
2627
2628 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
2629
2630         * diagnostic.c (last_module_changed_p): New function.
2631         (set_last_module): New function.
2632         (diagnostic_report_current_module): Convert macro usage to
2633         the above functions.
2634         * diagnostic.h (diagnostic_context::last_module): Strengthen
2635         from const line_map * to const line_map_ordinary *.
2636         (diagnostic_last_module_changed): Delete macro.
2637         (diagnostic_set_last_module): Delete macro.
2638
2639 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
2640
2641         * diagnostic.c (diagnostic_impl): Replace report_diagnostic
2642         with diagnostic_report_diagnostic.
2643         (diagnostic_n_impl_richloc): Likewise.
2644         * diagnostic.h (report_diagnostic): Delete macro.
2645         * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
2646         with diagnostic_report_diagnostic.
2647         * substring-locations.c (format_warning_va): Likewise.
2648
2649 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
2650
2651         * diagnostic.c (diagnostic_report_diagnostic): Eliminate
2652         save/restor of format_spec.  Move option-printing code to...
2653         (print_option_information): ...this new function, and
2654         reimplement by simply printing to the pretty_printer,
2655         rather than appending to the format string.
2656
2657 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
2658
2659         * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
2660         handling logic into...
2661         (update_effective_level_from_pragmas): ...this new function.
2662
2663 2017-05-04  Andrew Waterman  <andrew@sifive.com>
2664
2665         * config/riscv/riscv.opt (mstrict-align): New option.
2666         * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it.  Update comment.
2667         (SLOW_UNALIGNED_ACCESS): Define.
2668         (riscv_slow_unaligned_access): Declare.
2669         * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
2670         field.
2671         (riscv_slow_unaligned_access): New variable.
2672         (rocket_tune_info): Set slow_unaligned_access to true.
2673         (optimize_size_tune_info): Set slow_unaligned_access to false.
2674         (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
2675         (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
2676         (riscv_option_override): Set riscv_slow_unaligned_access.
2677         * doc/invoke.texi: Add -mstrict-align to RISC-V.
2678
2679 2017-05-04  Kito Cheng  <kito.cheng@gmail.com>
2680
2681         * config/riscv/riscv.md: Unify indentation.
2682
2683 2017-05-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
2684
2685         PR target/79038
2686         PR target/79202
2687         PR target/79203
2688         * config/rs6000/rs6000.md (u code attribute): Add FIX and
2689         UNSIGNED_FIX.
2690         (extendsi<mode>2): Add support for doing sign extension via
2691         VUPKHSW and XXPERMDI if the value is in Altivec registers and we
2692         don't have ISA 3.0 instructions.
2693         (extendsi<mode>2 splitter): Likewise.
2694         (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
2695         generate the normal insns since SImode can now go in vector
2696         registers.  Disallow the special UNSPECs needed for previous
2697         machines to hide SImode being used.  Add new insns
2698         fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
2699         (fix_trunc<mode>si2_stfiwx): Likewise.
2700         (fix_trunc<mode>si2_internal): Likewise.
2701         (fixuns_trunc<mode>si2): Likewise.
2702         (fixuns_trunc<mode>si2_stfiwx): Likewise.
2703         (fctiw<u>z_<mode>_smallint): Likewise.
2704         (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
2705         of floating point to 32-bit integer from doing a direct move to
2706         the GPR registers to do a store.
2707         (fctiwz_<mode>): Break long line.
2708
2709 2017-05-05  Bin Cheng  <bin.cheng@arm.com>
2710
2711         * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
2712         * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
2713         (addr_list, addr_offset_valid_p): New.
2714         (split_address_groups): Check offset validity with above function.
2715         (gt-tree-ssa-loop-ivopts.h): Include header file.
2716
2717 2017-05-05  Nathan Sidwell  <nathan@acm.org>
2718
2719         * config.gcc (arm*-*-*): Add missing 'fi'.
2720
2721 2017-05-05  Steve Ellcey  <sellcey@cavium.com>
2722
2723         * doc/invoke.texi (-fopt-info): Explicitly say order of options
2724         included in -fopt-info does not matter.
2725         * doc/optinfo.texi (-fopt-info): Fix description of default
2726         behavour. Explicitly say order of options included in -fopt-info
2727         does not matter.
2728
2729 2017-05-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2730
2731         * config.gcc: Allow combinations of aprofile and rmprofile values for
2732         --with-multilib-list.
2733         * config/arm/t-multilib: New file.
2734         * config/arm/t-aprofile: Remove initialization of MULTILIB_*
2735         variables.  Remove setting of ISA and floating-point ABI in
2736         MULTILIB_OPTIONS and MULTILIB_DIRNAMES.  Set architecture and FPU in
2737         MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
2738         and MULTILIB_DIRNAMES respectively.  Add comment to introduce all
2739         matches.  Add architecture matches for marvel-pj4 and generic-armv7-a
2740         CPU options.
2741         * config/arm/t-rmprofile: Likewise except for the matches changes.
2742         * doc/install.texi (--with-multilib-list): Document the combination of
2743         aprofile and rmprofile values and warn about pitfalls in doing that.
2744
2745 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
2746
2747         * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
2748         (movdi_aarch64): Likewise.
2749
2750 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
2751
2752         PR tree-optimization/80632
2753         * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
2754         field.
2755         (build_arrays): Initialize it for virtual phis.
2756         (fix_phi_nodes): Use it for virtual phis.
2757
2758         PR tree-optimization/80558
2759         * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
2760         [x, y] op z into [x op, y op z] for op & or | if conditions
2761         are met.
2762
2763 2017-05-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2764             Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
2765
2766         PR target/71607
2767         * config/arm/arm.md (use_literal_pool): Remove.
2768         (64-bit immediate split): No longer takes cost into consideration
2769         if arm_disable_literal_pool is enabled.
2770         * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
2771         used when arm_disable_literal_pool is enabled.
2772         (arm_max_const_double_inline_cost): Remove use of
2773         arm_disable_literal_pool.
2774         (push_minipool_fix): Add assert.
2775         (arm_reorg): Add return if arm_disable_literal_pool is enabled.
2776         * config/arm/vfp.md (no_literal_pool_df_immediate): New.
2777         (no_literal_pool_sf_immediate): New.
2778
2779 2017-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2780
2781         PR tree-optimization/80613
2782         * tree-ssa-dce.c (propagate_necessity): Remove cases for
2783         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
2784
2785 2017-05-05  Richard Biener  <rguenther@suse.de>
2786
2787         * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
2788
2789 2017-05-05  Georg-Johann Lay  <avr@gjlay.de>
2790
2791         * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
2792         of this flag from insn conditions due to removal from r247495.
2793
2794 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
2795
2796         * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
2797         New function.
2798         (arm_early_store_addr_dep_ptr): Likewise.
2799         * config/arm/aarch-common-protos.h
2800         (arm_early_load_addr_dep_ptr): Add prototype.
2801         (arm_early_store_addr_dep_ptr): Likewise.
2802         * config/arm/cortex-a53.md: Add new bypasses.
2803
2804 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
2805
2806         * tree.c (next_type_uid): Change type to unsigned.
2807         (type_hash_canon): Decrement back next_type_uid if
2808         freeing a type node with the highest TYPE_UID.  For INTEGER_TYPEs
2809         also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
2810         if possible.
2811
2812 2017-05-04  Martin Sebor  <msebor@redhat.com>
2813
2814         * builtins.c: Fix a trivial typo in a comment.
2815
2816         PR middle-end/79234
2817         * builtins.c (check_sizes): Adjust to handle reading past the end.
2818         Avoid printing excessive upper bound of ranges.  Use %E to print
2819         tree nodes instead of converting them to %wu.
2820         (expand_builtin_memchr): New function.
2821         (compute_dest_size): Rename...
2822         (compute_objsize): ...to this.
2823         (expand_builtin_memcpy): Adjust.
2824         (expand_builtin_mempcpy): Adjust.
2825         (expand_builtin_strcat): Adjust.
2826         (expand_builtin_strcpy): Adjust.
2827         (check_strncat_sizes): Adjust.
2828         (expand_builtin_strncat): Adjust.
2829         (expand_builtin_strncpy): Adjust and simplify.
2830         (expand_builtin_memset): Adjust.
2831         (expand_builtin_bzero): Adjust.
2832         (expand_builtin_memcmp): Adjust.
2833         (expand_builtin): Handle memcmp.
2834         (maybe_emit_chk_warning): Check strncat just once.
2835
2836 2017-05-04  Martin Sebor  <msebor@redhat.com>
2837
2838         PR preprocessor/79214
2839         PR middle-end/79222
2840         PR middle-end/79223
2841         * builtins.c (check_sizes): Add inlining context and issue
2842         warnings even when -Wno-system-headers is set.
2843         (check_strncat_sizes): Same.
2844         (expand_builtin_strncat): Same.
2845         (expand_builtin_memmove): New function.
2846         (expand_builtin_stpncpy): Same.
2847         (expand_builtin): Handle memmove and stpncpy.
2848
2849 2017-05-04  Bin Cheng  <bin.cheng@arm.com>
2850
2851         * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
2852         which is not used any more.
2853
2854 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
2855
2856         * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
2857
2858 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
2859
2860         * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
2861         (cortexa53_tunings): Likewise.
2862         (cortexa57_tunings): Likewise.
2863         (cortexa72_tunings): Likewise.
2864         (cortexa73_tunings): Likewise.
2865
2866 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
2867
2868         * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
2869         Set loop alignment to 8.
2870
2871 2017-05-04  Martin Sebor  <msebor@redhat.com>
2872
2873         PR translation/80280
2874         * builtins.c (expand_builtin_object_size): Add missing quoting to
2875         %D and like directives.
2876         * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
2877         (hsa_type_for_tree_type): Same.
2878         (verify_function_arguments): Same.
2879         * symtab.c (symbol_table::change_decl_assembler_name): Same.
2880         * varasm.c (get_section): Same.
2881         (mark_weak): Same.
2882
2883 2017-05-04  Martin Sebor  <msebor@redhat.com>
2884
2885         PR translation/80280
2886         * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
2887
2888 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
2889
2890         * config/aarch64/aarch64.c (generic_addrcost_table):
2891         Change HI/TI mode setting.
2892
2893 2017-05-04  Martin Jambor  <mjambor@suse.cz>
2894
2895         PR tree-optimization/80622
2896         * tree-sra.c (comes_initialized_p): New function.
2897         (build_accesses_from_assign): Only set write lazily when
2898         comes_initialized_p is false.
2899         (analyze_access_subtree): Use comes_initialized_p.
2900         (propagate_subaccesses_across_link): Assert !comes_initialized_p
2901         instead of testing for PARM_DECL.
2902
2903 2017-05-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2904
2905         * config/aarch64/aarch64.md (prefetch); Adjust predicate and
2906         constraint on operand 0 to allow more general addressing modes.
2907         Adjust output template.
2908         * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
2909         New function.
2910         * config/aarch64/aarch64-protos.h
2911         (aarch64_address_valid_for_prefetch_p): Declare prototype.
2912         * config/aarch64/constraints.md (Dp): New address constraint.
2913         * config/aarch64/predicates.md (aarch64_prefetch_operand): New
2914         predicate.
2915
2916 2017-05-04  Jan Hubicka  <hubicka@ucw.cz>
2917
2918         * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
2919         update use of estimate_ipcp_clone_size_and_time.
2920         (estimate_local_effects): Update use of
2921         estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
2922         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
2923         * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
2924         Return nonspecialized time.
2925
2926 2017-05-04  Richard Biener  <rguenther@suse.de>
2927
2928         * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
2929         for the last VUSE which def dominates the PHI.  Directly call
2930         maybe_skip_until.
2931         (get_continuation_for_phi_1): Remove.
2932
2933 2017-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
2934
2935         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
2936         to explain the use of truncating division.  Cap the number of
2937         iterations to the maximum given by nb_iterations_upper_bound,
2938         if defined.
2939
2940 2017-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2941
2942         * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
2943         * configure: Regenerate.
2944         * config.in: Regenerate.
2945         * config/i386/driver-mingw32.c: new file.
2946         * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
2947         * config.host: Link driver-mingw32.o on MinGW host.
2948         * doc/install.texi: Document new --enable-mingw-wildcard configure
2949         option.
2950
2951 2017-05-04  Marek Polacek  <polacek@redhat.com>
2952
2953         PR tree-optimization/80612
2954         * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
2955
2956 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
2957             Andre Simoes Dias Vieira  <andre.simoesdiasvieira@arm.com>
2958
2959         * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
2960         (movt splitter): Likewise.
2961         * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
2962         to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
2963         (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
2964         block for Thumb-1 with MOVT.
2965         (thumb2_legitimate_address_p): Move code block ...
2966         (can_avoid_literal_pool_for_label_p): ... into this new function.
2967         (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
2968         literal pool.
2969         (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
2970         * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
2971         "M-profile targets with the MOVT instruction".
2972
2973 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
2974
2975         * gcc/config/arm/arm-builtins.c (arm_init_builtins): Rename
2976         __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
2977         __builtin_arm_stfscr to __builtin_arm_set_fpscr.
2978
2979 2017-05-04  Martin Liska  <mliska@suse.cz>
2980
2981         * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
2982         variable cond_code.
2983
2984 2017-05-04  Richard Biener  <rguenther@suse.de>
2985
2986         * tree.c (array_at_struct_end_p): Handle arrays at struct
2987         end with flexarrays more conservatively.  Refactor and treat
2988         arrays of arrays or aggregates more strict.  Fix
2989         VIEW_CONVERT_EXPR handling.  Remove allow_compref argument.
2990         * tree.c (array_at_struct_end_p): Adjust prototype.
2991         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
2992         * gimple-fold.c (get_range_strlen): Likewise.
2993         * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
2994
2995 2017-05-04  Richard Biener  <rguenther@suse.de>
2996
2997         PR tree-optimization/31130
2998         * tree-vrp.c (needs_overflow_infinity): Remove as always returning
2999         false.
3000         (supports_overflow_infinity): Likewise.
3001         (is_negative_overflow_infinity): Likewise.
3002         (is_positive_overflow_infinity): Likewise.
3003         (is_overflow_infinity): Likewise.
3004         (stmt_overflow_infinity): Likewise.
3005         (overflow_infinity_range_p): Likewise.
3006         (usable_range_p): Remove as always returning true.
3007         (make_overflow_infinity): Remove.
3008         (negative_overflow_infinity): Likewise.
3009         (positive_overflow_infinity): Likewise.
3010         (avoid_overflow_infinity): Likewise.
3011         (set_value_range): Adjust accordingly.
3012         (set_value_range_to_nonnegative): Likewise, remove now unused
3013         overflow_infinity arg.
3014         (vrp_operand_equal_p): Adjust.
3015         (update_value_range): Likewise.
3016         (range_int_cst_singleton_p): Likewise.
3017         (operand_less_p): Likewise.
3018         (compare_values_warnv): Likewise.
3019         (extract_range_for_var_from_comparison_expr): Likewise.
3020         (vrp_int_const_binop): Likewise.
3021         (zero_nonzero_bits_from_vr): Likewise.
3022         (extract_range_from_multiplicative_op_1): Likewise.
3023         (extract_range_from_binary_expr_1): Likewise.
3024         (extract_range_from_unary_expr): Likewise.
3025         (extract_range_from_comparison): Likewise.
3026         (extract_range_basic): Likewise.
3027         (adjust_range_with_scev): Likewise.
3028         (compare_ranges): Likewise.
3029         (compare_range_with_value): Likewise.
3030         (dump_value_range): Likewise.
3031         (test_for_singularity): Likewise, remove strict_overflow_p parameter
3032         never used.
3033         (simplify_cond_using_ranges): Adjust.
3034
3035 2017-05-04  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
3036
3037         * brig-builtins.def: Added a builtin for class_f64.
3038         * builtin-types.def: Added a builtin type needed by class_f64.
3039
3040 2017-05-03  Jason Merrill  <jason@redhat.com>
3041
3042         * timevar.def: Add TV_CONSTEXPR.
3043
3044 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
3045
3046         * common.opt (fdiagnostics-parseable-fixits): Fix typo.
3047
3048 2017-05-03  Martin Jambor  <mjambor@suse.cz>
3049
3050         * ipa-prop.c (ipa_update_after_lto_read): Removed.
3051         * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
3052         * ipa-cp.c (ipcp_propagate_stage): Do not call
3053         ipa_update_after_lto_read.
3054         * ipa-inline.c (ipa_inline): Likewise.
3055
3056 2017-05-03  Martin Jambor  <mjambor@suse.cz>
3057
3058         * ipa-prop.h (ipa_edge_args): Make a class.  Mark with for_user GTY
3059         tag.  Added a default constructor and a destructor.
3060         (ipa_edge_args_sum_t): New class;
3061         (ipa_edge_args_sum): Declare.
3062         (ipa_edge_args_vector): Remove declaration.
3063         (IPA_EDGE_REF): Use ipa_edge_args_sum.
3064         (ipa_free_edge_args_substructures): Remove declaration.
3065         (ipa_check_create_edge_args): Use ipa_edge_args_sum.
3066         (ipa_edge_args_info_available_for_edge_p): Likewise.
3067         * ipa-prop.c (ipa_edge_args_vector): Removed.
3068         (edge_removal_hook_holder): Likewise.
3069         (edge_duplication_hook_holder): Likewise.
3070         (ipa_edge_args_sum): New variable.
3071         (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
3072         ipa_edge_args_vector.
3073         (ipa_free_edge_args_substructures): Likewise.
3074         (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
3075         ipa_edge_args_vector.
3076         (ipa_edge_removal_hook): Turned into method
3077         ipa_edge_args_sum_t::remove.
3078         (ipa_edge_duplication_hook): Turned into method
3079         ipa_edge_args_sum_t::duplicate.
3080         (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
3081         registering edge hooks.
3082         (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
3083         * ipa-inline-analysis.c (estimate_function_body_sizes): Test
3084         ipa_edge_args_sum instead of ipa_edge_args_vector.
3085         * ipa-profile.c (ipa_profile): Likewise.
3086
3087 2017-05-03  Martin Jambor  <mjambor@suse.cz>
3088
3089         * symbol-summary.h (function_summary): New method exists.
3090         (function_summary::symtab_removal): Deallocate through release.
3091         (call_summary): New class.
3092         (gt_ggc_mx): New overload.
3093         (gt_pch_nx): Likewise.
3094         (gt_pch_nx): Likewise.
3095
3096 2017-05-03  Jeff Law  <law@redhat.com>
3097
3098         PR tree-optimization/78496
3099         * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
3100         from simplify_cond_using_ranges.  Split off code to walk
3101         backwards through casts into ...
3102         (simplify_cond_using_ranges_2): New function.
3103         (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
3104         (execute_vrp): After identifying jump threads, call
3105         simplify_cond_using_ranges_2.
3106
3107 2017-05-03  Jan Hubicka  <hubicka@ucw.cz>
3108
3109         PR bootstrap/80609
3110         * ipa-inline.h (inline_summary): Add ctor.
3111         (create_ggc): Do not use ggc_cleared_alloc.
3112
3113 2017-05-03  Jeff Downs  <heydowns@somuchpressure.net>
3114             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3115
3116         * gcc.c (handle_braces): Support escaping in switch matching
3117         text.
3118         * doc/invoke.texi (Spec Files): Document it.
3119         Remove superfluous @code markup in items.
3120
3121 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
3122
3123         * diagnostic-show-locus.c (struct column_range): New struct.
3124         (get_affected_columns): New function.
3125         (get_printed_columns): New function.
3126         (struct correction): New struct.
3127         (correction::ensure_capacity): New function.
3128         (correction::ensure_terminated): New function.
3129         (struct line_corrections): New struct.
3130         (line_corrections::~line_corrections): New dtor.
3131         (line_corrections::add_hint): New function.
3132         (layout::print_trailing_fixits): Reimplement in terms of the new
3133         classes.
3134         (selftest::test_overlapped_fixit_printing): New function.
3135         (selftest::diagnostic_show_locus_c_tests): Call it.
3136
3137 2017-05-03  Nathan Sidwell  <nathan@acm.org>
3138
3139         Canonicalize canonical type hashing
3140         * tree.h (type_hash_canon_hash): Declare.
3141         * tree.c (type_hash_list, attribute_hash_list): Move into
3142         type_hash_canon_hash.
3143         (build_type_attribute_qual_variant): Break out hash code calc into
3144         type_hash_canon_hash.
3145         (type_hash_canon_hash): New.  Generic type hash computation.
3146         (build_range_type_1, build_array_type_1, build_function_type,
3147         build_method_type_directly, build_offset_type, build_complex_type,
3148         make_vector_type): Call it.
3149
3150 2017-05-03  Richard Biener  <rguenther@suse.de>
3151
3152         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
3153         When all DRs have unknown misaligned do not always peel
3154         when there is a store but apply the same costing model as if
3155         there were only loads.
3156
3157 2017-05-03  Richard Biener  <rguenther@suse.de>
3158
3159         Revert
3160         PR tree-optimization/80492
3161         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
3162         compare_base_decls returning dont-know properly.
3163
3164 2017-05-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3165
3166         * config/arm/iterators.md (CCSI): New mode iterator.
3167         (arch): New mode attribute.
3168         * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
3169         (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
3170         (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This.  Use CCSI
3171         code iterator for success result mode.
3172         * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
3173         the corresponding new insn generators.
3174
3175 2017-05-03  Bin Cheng  <bin.cheng@arm.com>
3176
3177         Revert r247509
3178         2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3179         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
3180
3181 2017-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
3182
3183         * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
3184         (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
3185         (DDR_A): Wrap DDR argument in brackets.
3186         (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
3187         (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
3188         (DDR_REVERSED_P): Likewise.
3189
3190 2017-05-03  Jakub Jelinek  <jakub@redhat.com>
3191
3192         PR tree-optimization/79472
3193         * tree-switch-conversion.c (struct switch_conv_info): Add
3194         contiguous_range and default_case_nonstandard fields.
3195         (collect_switch_conv_info): Compute contiguous_range and
3196         default_case_nonstandard fields, don't clear final_bb if
3197         contiguous_range and only the default case doesn't have the required
3198         structure.
3199         (check_all_empty_except_final): Set default_case_nonstandard instead
3200         of failing if contiguous_range and the default case doesn't have empty
3201         block.
3202         (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
3203         and only the default case doesn't have the required constants.  Skip
3204         virtual phis.
3205         (gather_default_values): Skip virtual phis.  Allow non-NULL CASE_LOW
3206         if default_case_nonstandard.
3207         (build_constructors): Build constant 1 just once.  Assert that default
3208         values aren't inserted in between cases if contiguous_range.  Skip
3209         virtual phis.
3210         (build_arrays): Skip virtual phis.
3211         (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
3212         (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
3213         Handle virtual phis.
3214         (gen_inbound_check): Handle default_case_nonstandard case.
3215         (process_switch): Adjust check_final_bb caller.  Call
3216         gather_default_values with the first non-default case instead of
3217         default case if default_case_nonstandard.
3218
3219 2017-05-02  Nathan Sidwell  <nathan@acm.org>
3220
3221         * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
3222         check.  Fix formatting.
3223
3224 2017-05-02  Jan Hubicka  <hubicka@ucw.cz>
3225
3226         * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
3227         errors when comparing specialized and unspecialized times.
3228
3229 2017-05-02  David Malcolm  <dmalcolm@redhat.com>
3230
3231         * diagnostic-show-locus.c
3232         (layout::should_print_annotation_line_p): Make private.
3233         (layout::print_annotation_line): Make private.
3234         (layout::annotation_line_showed_range_p): Make private.
3235         (layout::show_ruler): Make private.
3236         (layout::print_source_line): Make private.  Pass in line and
3237         line_width, rather than calling location_get_source_line.  Drop
3238         returned value.
3239         (layout::print_leading_fixits): New method.
3240         (layout::print_any_fixits): Rename to...
3241         (layout::print_trailing_fixits): ...this, and make private.
3242         Don't print newline fixits.
3243         (diagnostic_show_locus): Move logic for printing one row into...
3244         (layout::print_line): ...this new function.  Move the
3245         location_get_source_line call and error-handling from
3246         print_source_line to here.  Call print_leading_fixits, and rename
3247         print_any_fixits to print_trailing_fixits.
3248         (selftest::test_fixit_insert_containing_newline): Update now that
3249         newlines are partially supported.
3250         (selftest::test_fixit_insert_containing_newline_2): New test.
3251         (selftest::test_fixit_replace_containing_newline): Update comments.
3252         (selftest::diagnostic_show_locus_c_tests): Call the new test.
3253         * edit-context.c (class added_line): New class.
3254         (class edited_line): Describe newline handling in comment.
3255         (edited_line::actually_edited_p): New method.
3256         (edited_line::print_content): Delete redundant decl.
3257         (edited_line::m_predecessors): New field.
3258         (edited_file::print_content): Call edited_line::print_content.
3259         (edited_file::print_diff): Update to support newlines.
3260         (edited_file::print_diff_hunk): Likewise.
3261         (edited_file::print_run_of_changed_lines): New function.
3262         (edited_file::print_diff_line): Convert to...
3263         (print_diff_line): ...this.
3264         (edited_file::get_effective_line_count): New function.
3265         (edited_line::edited_line): Initialize new field m_predecessors.
3266         (edited_line::~edited_line): Clean up m_predecessors.
3267         (edited_line::apply_fixit): Handle newlines.
3268         (edited_line::get_effective_line_count): New function.
3269         (edited_line::print_content): New function.
3270         (edited_line::print_diff_lines): New function.
3271         (selftest::test_applying_fixits_insert_containing_newline): New
3272         test.
3273         (selftest::test_applying_fixits_replace_containing_newline): New
3274         test.
3275         (selftest::insert_line): New function.
3276         (selftest::test_applying_fixits_multiple_lines): Add example of
3277         inserting a line.
3278         (selftest::edit_context_c_tests): Call the new tests.
3279
3280 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3281
3282         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
3283         parameter cand.  Update dump information.
3284         (get_computation_cost): Update uses.
3285
3286 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3287
3288         * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
3289         (get_computation_aff): Reorder parameters.  Use get_computation_aff_1.
3290         (get_computation_at, rewrite_use_address): Update use of
3291         get_computation_aff.
3292
3293 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3294
3295         * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
3296         (get_computation): Delete.
3297         (get_computation_cost): Implement like get_computation_cost_at.
3298         Use get_computation_at.
3299         (get_computation_cost_at): Delete.
3300         (rewrite_use_nonlinear_expr): Use get_computation_at.
3301         (rewrite_use_compare, remove_unused_ivs): Ditto.
3302
3303 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3304
3305         * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
3306
3307 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3308
3309         * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
3310         (ivopts_global_cost_for_size): Rename parameter and update uses.
3311         (iv_ca_recount_cost): Update uses.
3312         (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
3313         candidates seperately in n_invs and n_cands.
3314         (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
3315
3316 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3317
3318         * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
3319         (find_inv_vars_cb): New.
3320         (find_depends): Renamed to ...
3321         (find_inv_vars): ... this.
3322         (add_candidate_1, force_var_cost): Call find_inv_vars.
3323         (split_address_cost, determine_group_iv_cost_cond): Ditto.
3324
3325 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3326
3327         * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
3328         inv_vars.  Add inv_exprs.
3329         (struct iv_cand): Rename depends_on to inv_vars.
3330         (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
3331         max_inv_var_id/n_inv_var_uses.  Move max_inv_expr_id around.
3332         Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
3333         (dump_cand): Dump inv_vars.
3334         (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
3335         (record_invariant, find_depends, add_candidate_1): Ditto.
3336         (set_group_iv_cost, force_var_cost): Ditto.
3337         (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
3338         (get_computation_cost_at, get_computation_cost): Ditto.
3339         (determine_group_iv_cost_generic): Ditto.
3340         (determine_group_iv_cost_address): Ditto.
3341         (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
3342         (determine_group_iv_costs): Ditto.
3343         (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
3344         (iv_ca_set_remove_invariants): Renamed to ...
3345         (iv_ca_set_remove_invs): ... this.  Support inv_vars and inv_exprs.
3346         (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
3347         (iv_ca_set_add_invariants):  Renamed to ...
3348         (iv_ca_set_add_invs): ... this.  Support inv_vars and inv_exprs.
3349         (iv_ca_set_cp): Use iv_ca_set_add_invs.
3350         (iv_ca_has_deps): Support inv_vars and inv_exprs.
3351         (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
3352         (create_new_ivs): Remove useless dump.
3353
3354 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3355
3356         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
3357         iv_cand code.
3358         (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
3359         (iv_ca_set_no_cp, create_new_iv): Ditto.
3360
3361 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3362
3363         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
3364
3365 2017-05-02  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
3366
3367         * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
3368         function tree_check2.
3369
3370 2017-05-02  Martin Liska  <mliska@suse.cz>
3371
3372         * doc/gcov.texi: Add missing preposition.
3373         * gcov.c (function_info::function_info): Properly fill up
3374         all member variables.
3375
3376 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
3377
3378         * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
3379
3380 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
3381
3382         * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
3383
3384 2017-05-02  Martin Liska  <mliska@suse.cz>
3385
3386         PR lto/77954.
3387         * lto-streamer-in.c (lto_read_tree_1): Remove
3388         LTO_STREAMER_DEBUG.
3389         * lto-streamer.c (struct tree_hash_entry): Likewise.
3390         (struct tree_entry_hasher): Likewise.
3391         (tree_entry_hasher::hash): Likewise.
3392         (tree_entry_hasher::equal): Likewise.
3393         (lto_streamer_init): Likewise.
3394         (lto_orig_address_map): Likewise.
3395         (lto_orig_address_get): Likewise.
3396         (lto_orig_address_remove): Likewise.
3397         * lto-streamer.h: Likewise.
3398         * tree-streamer-in.c (streamer_alloc_tree): Likewise.
3399         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
3400
3401 2017-05-02  Sebastian Peryt  <sebastian.peryt@intel.com>
3402
3403         * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
3404         (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
3405         (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
3406         (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
3407         (mm_maskz_sub_round_ss, _mm_mask_add_sd)
3408         (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
3409         (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
3410         (mm_maskz_sub_ss): New intrinsics.
3411         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
3412         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
3413         * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
3414         (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
3415         (__builtin_ia32_subss_mask_round): New builtins.
3416         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
3417         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
3418         * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
3419         Renamed to ...
3420         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
3421         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
3422         Changed to ...
3423         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
3424         ... this.
3425
3426 2017-05-02  Martin Jambor  <mjambor@suse.cz>
3427
3428         PR tree-optimization/78687
3429         * tree-sra.c (access): New field parent.
3430         (process_subtree_disqualification): New function.
3431         (disqualify_candidate): Call it.
3432         (build_accesses_from_assign): Reset write flag if creating an
3433         assighnment link.
3434         (build_access_subtree): Fill in parent field and also prpagate
3435         down grp_write flag.
3436         (create_artificial_child_access): New parameter set_grp_write, set
3437         grp_write to its value.
3438         (propagate_subaccesses_across_link): Also propagate grp_write flag
3439         values.
3440         (propagate_all_subaccesses): Push the closest parent back to work
3441         queue if add_access_to_work_queue returned true.
3442
3443 2017-05-02  Richard Biener  <rguenther@suse.de>
3444
3445         * common.opt (fstrict-overflow): Alias negative to fwrapv.
3446         * doc/invoke.texi (fstrict-overflow): Remove all traces of
3447         -fstrict-overflow documentation.
3448         * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
3449         (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
3450         flag_strict_overflow.
3451         * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
3452         * lto-opts.c (lto_write_options): Do not stream it.
3453         * lto-wrapper.c (merge_and_complain): Do not handle it.
3454         * opts.c (default_options_table): Do not set -fstrict-overflow.
3455         (finish_options): Likewise do not clear it when sanitizing.
3456         * simplify-rtx.c (simplify_const_relational_operation): Do not
3457         test flag_strict_overflow.
3458
3459 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
3460
3461         * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
3462         using enabled attribute.
3463         (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
3464         (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
3465         (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
3466         (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
3467         (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
3468         (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
3469         (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
3470         (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
3471         (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
3472         (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
3473
3474 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
3475
3476         * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
3477
3478 2017-05-02  Richard Biener  <rguenther@suse.de>
3479
3480         PR tree-optimization/80591
3481         Revert
3482         2017-04-10  Richard Biener  <rguenther@suse.de>
3483
3484         * tree-ssa-structalias.c (find_func_aliases): Properly handle
3485         asm inputs.
3486
3487 2017-05-02  Richard Biener  <rguenther@suse.de>
3488
3489         PR tree-optimization/80549
3490         * tree-cfgcleanup.c (mfb_keep_latches): New helper.
3491         (cleanup_tree_cfg_noloop): Create forwarders to known loop
3492         headers if they do not have a preheader.
3493
3494 2017-05-02  Martin Liska  <mliska@suse.cz>
3495
3496         PR other/80589
3497         * common.opt: Fix typo.
3498         * doc/invoke.texi: Likewise.
3499
3500 2017-05-01  Jan Beulich  <jbeulich@suse.com>
3501
3502         * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
3503         swapping, add (x,x,m,x,n) alternative.
3504
3505 2017-05-01  Nathan Sidwell  <nathan@acm.org>
3506
3507         * calls.c (combine_pending_stack_adjustment_and_call): Remove
3508         unnecessary unadjusted_alignment check.
3509
3510 2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
3511
3512         PR c++/80038
3513         * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
3514         operations here.
3515         * gimplify.c (gimplify_cilk_detach): New function.
3516         (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
3517         * tree-core.h: Document EXPR_CILK_SPAWN.
3518         * tree.h (EXPR_CILK_SPAWN): Define.
3519
3520 2017-05-01  David Malcolm  <dmalcolm@redhat.com>
3521
3522         * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
3523         to use new fixit_hint representation, using the "replace" logic.
3524         (get_line_span_for_fixit_hint): Likewise.
3525         (layout::print_any_fixits): Likewise.
3526         (selftest::test_one_liner_many_fixits): Rename to...
3527         (selftest::test_one_liner_many_fixits_1): ...this, and update
3528         comment and expected output to reflect that the multiple fix-it
3529         hints are now consolidated into one insertion.
3530         (selftest::test_one_liner_many_fixits_2): New test.
3531         (selftest::test_diagnostic_show_locus_one_liner): Update for
3532         above.
3533         (selftest::test_fixit_consolidation): Update for fix-it API
3534         change.
3535         * diagnostic.c (print_parseable_fixits): Likewise.
3536         * edit-context.c (edited_line::m_line_events): Convert from
3537         auto_vec <line_event *> to auto_vec <line_event>.
3538         (class line_event): Convert from abstract base class to a concrete
3539         class, taking over the role of replace_event.
3540         (class insert_event): Delete.
3541         (class replace_event): Rename to class line_event.  Convert to
3542         half-open range.
3543         (edit_context::add_fixits): Reimplement.
3544         (edit_context::apply_insert): Delete.
3545         (edit_context::apply_replace): Rename to...
3546         (edit_context::apply_fixit): ...this.  Convert to half-open range.
3547         (edited_file::apply_insert): Delete.
3548         (edited_file::apply_replace): Rename to...
3549         (edited_file::apply_fixit): ...this.
3550         (edited_line::~edited_line): Drop deletion of events.
3551         (edited_line::apply_insert): Delete.
3552         (edited_line::apply_replace): Rename to...
3553         (edited_line::apply_fixit): ...this.  Convert to half-open range.
3554         Update for change to type of m_line_events.
3555         * edit-context.h (edit_context::apply_insert): Delete.
3556         (edit_context::apply_replace): Rename to...
3557         (edit_context::apply_fixit): ...this.
3558
3559 2017-05-01  Martin Sebor  <msebor@redhat.com>
3560
3561         * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
3562         known.
3563
3564 2017-05-01  Uros Bizjak  <ubizjak@gmail.com>
3565
3566         PR target/68491
3567         * config/i386/cpuid.h (__get_cpuid): Always return 0 when
3568         __get_cpuid_max returns 0.
3569         (__get_cpuid_count): Ditto.
3570
3571 2017-05-01  Eric Botcazou  <ebotcazou@adacore.com>
3572
3573         * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
3574         replacement expression is another instance of one of its arguments.
3575
3576 2017-05-01  Jakub Jelinek  <jakub@redhat.com>
3577
3578         PR target/79430
3579         * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
3580         check for stack push/pop autoinc.
3581         * config/i386/i386.c (ix86_agi_dependent): Return false
3582         if the only reason why modified_in_p returned true is that
3583         addr is SP based and set_insn is a push or pop.
3584
3585 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
3586
3587         * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
3588         overflow check.
3589
3590 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
3591
3592         PR ipa/79224
3593         * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
3594         (account_size_time): Use two predicates - exec_pred and
3595         nonconst_pred_ptr.
3596         (evaluate_conditions_for_known_args): Compute both clause and
3597         nonspec_clause.
3598         (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
3599         (inline_summary_t::duplicate): Update.
3600         (estimate_function_body_sizes): Caluculate exec and nonconst predicates
3601         separately.
3602         (compute_inline_parameters): Likewise.
3603         (estimate_edge_size_and_time): Update caluclation of time.
3604         (estimate_node_size_and_time): Compute both time and nonspecialized
3605         time.
3606         (estimate_ipcp_clone_size_and_time): Update.
3607         (inline_merge_summary): Update.
3608         (do_estimate_edge_time): Update.
3609         (do_estimate_edge_size): Update.
3610         (do_estimate_edge_hints): Update.
3611         (inline_read_section, inline_write_summary): Stream both new predicates.
3612         * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
3613         as argument.
3614         (compute_inlined_call_time): Cleanup.
3615         (big_speedup_p): Update.
3616         (edge_badness): Update.
3617         * ipa-inline.h (INLINE_TIME_SCALE): Remove.
3618         (size_time_entry): Replace predicate by exec_predicate and
3619         nonconst_predicate.
3620         (edge_growth_cache_entry): Cache both time nad nonspecialized time.
3621         (estimate_edge_time): Return also nonspec_time.
3622         (reset_edge_growth_cache): Update.
3623
3624 2017-04-29  Jakub Jelinek  <jakub@redhat.com>
3625
3626         PR rtl-optimization/80491
3627         * ifcvt.c (noce_process_if_block): When looking for x setter
3628         with missing else_bb, don't check only the insn right before
3629         cond_earliest, but look for the last insn that x is modified in
3630         within the same bb.
3631
3632         PR rtl-optimization/80491
3633         * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
3634
3635 2017-04-29  Marc Glisse  <marc.glisse@inria.fr>
3636
3637         PR tree-optimization/80487
3638         * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
3639
3640 2017-04-29  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3641
3642         PR tree-optimization/79697
3643         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
3644         is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
3645         (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
3646         BUILT_IN_STRNDUP.
3647         * gimple-fold.c (gimple_fold_builtin_realloc): New function.
3648         (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
3649
3650 2017-04-28  Martin Sebor  <msebor@redhat.com>
3651
3652         PR tree-optimization/80523
3653         * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
3654         (init_target_to_host_charmap, target_to_host, target_strtol10): New
3655         functions.
3656         (maybe_warn, format_directive, parse_directive): Use new functions.
3657         (pass_sprintf_length::execute): Call init_target_to_host_charmap.
3658
3659 2017-04-28  Marc Glisse  <marc.glisse@inria.fr>
3660
3661         * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
3662
3663 2017-04-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3664
3665         * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
3666         target_header_dir): Set correctly.
3667         * configure: Regenerated.
3668         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
3669         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
3670         instead of SYSTEM_HEADER_DIR.
3671
3672 2017-04-28  Jan Hubicka  <hubicka@ucw.cz>
3673
3674         * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
3675         (estimate_local_effects): Likewise.
3676         * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
3677         edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
3678         * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
3679         estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
3680         do_estimate_edge_time, estimate_edge_time): Likewise.
3681         * ipa-inline-analysis.c (estimate_node_size_and_time,
3682         estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
3683         (estimate_time_after_inlining): Remove.
3684
3685 2017-04-28  Martin Liska  <mliska@suse.cz>
3686
3687         * doc/gcov.texi: Enhance documentation of gcov.
3688
3689 2017-04-28  Martin Liska  <mliska@suse.cz>
3690
3691         * doc/gcov.texi: Sort options in alphabetic order.
3692         * doc/gcov-dump.texi: Likewise.
3693         * doc/gcov-tool.texi: Likewise.
3694         * gcov.c (print_usage): Likewise.
3695         * gcov-dump.c (print_usage): Likewise.
3696         * gcov-tool.c (print_merge_usage_message): Likewise.
3697         (print_rewrite_usage_message): Likewise.
3698         (print_overlap_usage_message): Likewise.
3699
3700 2017-04-28  Martin Liska  <mliska@suse.cz>
3701
3702         PR gcov-profile/53915
3703         * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
3704
3705 2017-04-28  Martin Liska  <mliska@suse.cz>
3706
3707         PR gcov-profile/79891
3708         * gcov.c (add_line_counts): Assign BBs to lines just if the BB
3709         is marked by compiler as living on a line.
3710         (get_cycles_count): Remove usage of the union.
3711         (output_intermediate_file): Likewise.
3712         (find_source): Fix GNU coding style.
3713         (accumulate_line_counts): Remove old non-all block mode.
3714         (output_lines): Remove usage of the union.
3715         * profile.c (output_location): Include all BBs, even if
3716         belonging to a same line (and file) as a previous BB.
3717
3718 2017-04-28  Martin Liska  <mliska@suse.cz>
3719
3720         * gcov.c (process_args): Handle new argument 'w'.
3721         (read_graph_file): Assign ID to BBs.
3722         (output_branch_count): Display BB # if verbose flag is set.
3723         (output_lines): Likewise for arcs.
3724         (print_usage): Add '--verbose' option help.
3725         * doc/gcov.texi: Document --verbose (-w) option.
3726
3727 2017-04-28  Martin Liska  <mliska@suse.cz>
3728
3729         * gcov.c (struct block_location_info): New struct.
3730         (process_file): Fill up the new structure.
3731         (read_graph_file): Replace usage of encoding by the newly added
3732         struct.
3733         (add_line_counts): Likewise.
3734         (accumulate_line_counts): Remove usage of the union.
3735         (function_info::function_info): New function.
3736         (function_info::~function_info): Likewise.
3737         (process_file): Call delete instead of release_function.
3738         (release_function): Release the function.
3739         (release_structures): Call delete instead of release_function.
3740         (solve_flow_graph): Replace usage of num_blocks.
3741         (find_exception_blocks): Likewise.
3742         (output_lines): Fix GNU coding style.
3743
3744 2017-04-28  Martin Liska  <mliska@suse.cz>
3745
3746         PR driver/56469
3747         * coverage.c (coverage_remove_note_file): New function.
3748         * coverage.h: Declare the function.
3749         * toplev.c (finalize): Clean if an error has been seen.
3750
3751 2017-04-28  Martin Liska  <mliska@suse.cz>
3752
3753         PR gcov-profile/80031
3754         * gcov-dump.c (tag_blocks): Just print number of basic blocks.
3755         * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
3756         * gcov.c (read_graph_file): Read just number of blocks.
3757         * profile.c (branch_prob): Do not stream 0 flags per a basic
3758         block.
3759
3760 2017-04-28  Martin Liska  <mliska@suse.cz>
3761
3762         * gcov-dump.c (tag_*): Add new argument to declarations.
3763         (dump_gcov_file): Likewise.
3764         (tag_blocks): Add and use new argument depth.
3765         (tag_arcs): Likewise.
3766         (tag_lines): Likewise.
3767         (tag_counters): Likewise.
3768         (tag_summary): Likewise.
3769         (dump_working_sets): Use depth to do a proper indentation.
3770
3771 2017-04-28  Jakub Jelinek  <jakub@redhat.com>
3772
3773         PR bootstrap/80531
3774         * cgraph.h (symtab_node::debug_symtab): No longer inline.
3775         * symtab.c (symtab_node::debug_symtab): Move definition here.
3776
3777 2017-04-28  Richard Biener  <rguenther@suse.de>
3778
3779         * lto-streamer.h (LTO_major_version): Bump to 7.
3780
3781 2017-04-28  Richard Biener  <rguenther@suse.de>
3782
3783         * tree-vrp.c (assert_info): New struct.
3784         (add_assert_info): New helper.
3785         (register_edge_assert_for_2): Refactor to add asserts to a vector
3786         of assert_info.
3787         (register_edge_assert_for_1): Likewise.
3788         (register_edge_assert_for): Likewise.
3789         (finish_register_edge_assert_for): New helper actually registering
3790         asserts where live on edge.
3791         (find_conditional_asserts): Adjust.
3792         (find_switch_asserts): Likewise.
3793         (evrp_dom_walker::try_find_new_range): Generalize.
3794         (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
3795
3796 2017-04-27  Marek Polacek  <polacek@redhat.com>
3797
3798         PR sanitizer/80349
3799         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
3800         arg10 and arg11 to itype.
3801
3802 2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
3803
3804         * doc/extend.texi (Object Size Checking): Improve grammar.
3805
3806 2017-04-27  Richard Earnshaw  <rearnsha@arm.com>
3807
3808         PR target/80530
3809         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
3810         that the logic for permitting reciprocal estimates matches that
3811         in use_rsqrt_p.
3812
3813 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
3814
3815         PR c++/80534
3816         * tree.c (type_cache_hasher::equal): Only compare
3817         TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
3818         (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
3819         non-aggregate element types.
3820         * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
3821         about the flag on ARRAY_TYPEs in the comment, formatting fix.
3822
3823 2017-04-27  Richard Biener  <rguenther@suse.de>
3824
3825         PR middle-end/80533
3826         * emit-rtl.c (set_mem_attributes_minus_bitpos): When
3827         stripping ARRAY_REFs from MEM_EXPR make sure we're not
3828         keeping a reference to a trailing array.
3829
3830 2017-04-27  Richard Biener  <rguenther@suse.de>
3831
3832         PR middle-end/80539
3833         * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
3834         being in loop-closed SSA form conservatively.
3835         (chrec_fold_multiply_poly_poly): Likewise.
3836
3837 2017-04-27  Tamar Christina  <tamar.christina@arm.com>
3838
3839         PR middle-end/79665
3840         * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
3841         CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
3842
3843 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
3844
3845         PR target/77728
3846         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
3847         (aarch64_function_arg_alignment): Return unsigned int again, but still
3848         ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
3849         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
3850         Don't emit -Wpsabi note.
3851         (aarch64_function_arg_boundary): Likewise.
3852         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
3853         caller.
3854
3855 2017-04-26  Nathan Sidwell  <nathan@acm.org>
3856
3857         * tree.h (crc32_unsigned_n): Declare.
3858         (crc32_unsigned, crc32_unsigned): Make inline.
3859         * tree.c (crc32_unsigned_bits): Replace with ...
3860         (crc32_unsigned_n): ... this.
3861         (crc32_unsigned, crc32_byte): Remove.
3862         (crc32_string): Remove unnecessary braces.
3863
3864 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
3865
3866         * ipa-cp.c (estimate_local_effects): Convert sreal to int.
3867         * ipa-inline-analysis.c (MAX_TIME): Remove.
3868         (account_size_time): Use sreal for time.
3869         (dump_inline_summary): Update.
3870         (estimate_function_body_sizes): Update.
3871         (estimate_edge_size_and_time): Update.
3872         (estimate_calls_size_and_time): Update.
3873         (estimate_node_size_and_time): Update.
3874         (inline_merge_summary): Update.
3875         (inline_update_overall_summary): Update.
3876         (estimate_time_after_inlining): Update.
3877         (inline_read_section): Update.
3878         (inline_write_summary): Update.
3879         * ipa-inline.c (compute_uninlined_call_time): Update.
3880         (compute_inlined_call_time): Update.
3881         (recursive_inlining): Update.
3882         (inline_small_functions): Update.
3883         (dump_overall_stats): Update.
3884         * ipa-inline.h: Include sreal.h.
3885         (size_time_entry): Turn time to sreal.
3886         (inline_summary): Turn self_time nad time to sreal.
3887
3888 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
3889
3890         * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
3891         data-streamer.h
3892         (sreal::stream_out, sreal::stream_in): New.
3893         * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
3894
3895 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
3896
3897         * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
3898         environment.
3899
3900 2017-04-25  Uros Bizjak  <ubizjak@gmail.com>
3901
3902         PR target/70799
3903         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
3904         Handle ASHIFTRT.
3905         (dimode_scalar_chain::compute_convert_gain): Ditto.
3906         (dimode_scalar_chain::make_vector_copies): Ditto.
3907         (dimode_scalar_chain::convert_reg): Ditto.
3908         (dimode_scalar_chain::convert_insn): Ditto.
3909         * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
3910         (VI248_AVX512BW_1): New mode iterator.
3911         (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
3912         <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
3913         mode iterator.
3914
3915 2017-04-25  Martin Sebor  <msebor@redhat.com>
3916
3917         PR tree-optimization/80497
3918         * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
3919         constants are representable in HOST_WIDE_INT.
3920         (parse_directive): Ditto.
3921
3922 2017-04-25  Martin Sebor  <msebor@redhat.com>
3923
3924         PR bootstrap/80486
3925         * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
3926         (new_zero_array): Adjust signature.
3927         (dom_info::dom_init): Used unsigned rather that size_t.
3928         (dom_info::dom_info): Same.
3929
3930 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3931             Jakub Jelinek  <jakub@redhat.com>
3932
3933         PR target/77728
3934         * config/arm/arm.c: Include gimple.h.
3935         (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
3936         returns negative, increment ncrn only if it returned positive.
3937         (arm_needs_doubleword_align): Return int instead of bool,
3938         ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
3939         members, but if there is any such non-FIELD_DECL
3940         > PARM_BOUNDARY aligned decl, return -1 instead of false.
3941         (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
3942         returns negative, increment nregs only if it returned positive.
3943         (arm_setup_incoming_varargs): Likewise.
3944         (arm_function_arg_boundary): Emit -Wpsabi note if
3945         arm_needs_doubleword_align returns negative, return
3946         DOUBLEWORD_ALIGNMENT only if it returned positive.
3947
3948 2017-04-25  Marek Polacek  <polacek@redhat.com>
3949
3950         PR sanitizer/80349
3951         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
3952         first argument to type.
3953
3954 2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
3955
3956         PR target/80482
3957         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
3958         type checks to test for compatibility instead of equality.
3959
3960 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3961             Jakub Jelinek  <jakub@redhat.com>
3962
3963         PR target/77728
3964         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
3965         type.
3966         (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
3967         struct.  Ignore DECL_ALIGN of decls other than FIELD_DECL for
3968         the alignment computation, but return their maximum in warn_alignment.
3969         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
3970         Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
3971         is smaller.
3972         (aarch64_function_arg_boundary): Likewise.  Simplify using MIN/MAX.
3973         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
3974         caller.
3975
3976 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
3977
3978         * config/arc/simdext.md (dmpyh): Fix typo.
3979
3980 2017-04-25  Richard Biener  <rguenther@suse.de>
3981
3982         PR tree-optimization/80492
3983         * alias.c (compare_base_decls): Handle registers with asm
3984         specification conservatively.
3985         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
3986         compare_base_decls returning dont-know properly.
3987
3988 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
3989
3990         * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
3991         (legitimate_offset_address_p): New function.
3992         (arc_legitimate_address_p): Use above function.
3993
3994 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
3995
3996         * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
3997
3998 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
3999
4000         * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
4001         ACCH registers whenever they are available.
4002
4003 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
4004
4005         * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
4006         double regs fix when not used.
4007
4008 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
4009
4010         * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
4011         core registers.
4012         (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
4013         (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
4014
4015 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
4016
4017         * config/arc/arc.c (arc_output_addsi): Check for h-register class
4018         when emitting short ADD instructions.
4019
4020 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
4021
4022         * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
4023         constraint.
4024         (cmpsi_cc_c_insn): Likewise.
4025         (cbranchsi4_scratch): Compute proper instruction length using
4026         compact_hreg_operand.
4027         * config/arc/predicates.md (compact_hreg_operand): New predicate.
4028
4029 2017-04-25  Richard Biener  <rguenther@suse.de>
4030
4031         PR middle-end/80509
4032         * passes.c (pass_manager::pass_manager): Initialize
4033         m_name_to_pass_map.
4034
4035 2017-04-25  Richard Biener  <rguenther@suse.de>
4036
4037         PR tree-optimization/79201
4038         * tree-ssa-sink.c (statement_sink_location): Handle calls.
4039
4040 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4041
4042         PR target/80464
4043         * config/s390/vector.md: Split MEM->GPR vector moves for
4044         non-s_operand addresses.
4045
4046 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4047
4048         PR target/79895
4049         * config/s390/predicates.md (reload_const_wide_int_operand): New
4050         predicate.
4051         * config/s390/s390.md ("movti"): Remove d/P alternative.
4052         ("movti_bigconst"): New pattern definition.
4053
4054 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4055
4056         PR target/80080
4057         * s390-protos.h (s390_expand_cs_hqi): Removed.
4058         (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
4059         * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
4060         modes as well as CCZ1mode and CCZmode.
4061         (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
4062         signature of s390_emit_compare_and_swap.
4063         (s390_expand_cs_hqi): Likewise, make static.
4064         (s390_expand_cs_tdsi): Generate an explicit compare before trying
4065         compare-and-swap, in some cases.
4066         (s390_expand_cs): Wrapper function.
4067         (s390_expand_atomic_exchange_tdsi): New backend specific expander for
4068         atomic_exchange.
4069         (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
4070         * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
4071         patterns for small and large integers.  Forbid symref memory operands.
4072         Move expander to s390.c.  Require cc register.
4073         ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
4074         ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
4075         ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
4076         ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
4077         symref memory operands.  Remove CC mode and call s390_match_ccmode
4078         instead.
4079         ("atomic_exchange<mode>"): Allow and implement all integer modes.
4080
4081 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4082
4083         * config/s390/s390.md (define_peephole2): New peephole to help
4084         combining the load-and-test pattern with volatile memory.
4085
4086 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4087
4088         * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
4089         with CCZmode for TARGET_Z196.
4090
4091 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
4092
4093         PR rtl-optimization/80501
4094         * combine.c (make_compound_operation_int): Set subreg_code to SET
4095         even for AND with mask of the sign bit of mode.
4096
4097         PR rtl-optimization/80500
4098         * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
4099         sum's initial value.
4100
4101 2017-04-25  Julian Brown  <julian@codesourcery.com>
4102             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
4103
4104         * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
4105
4106 2017-04-25  Marc Glisse  <marc.glisse@inria.fr>
4107
4108         * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
4109
4110 2017-04-25  Julian Brown  <julian@codesourcery.com>
4111             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
4112
4113         * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
4114         (thunderx2t99_sha): New Reservation.
4115
4116 2017-04-25  Julian Brown  <julian@codesourcery.com>
4117             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
4118
4119         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
4120         type for 1-element load.
4121
4122 2017-04-24  Marc Glisse  <marc.glisse@inria.fr>
4123
4124         * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
4125
4126 2017-04-24  Martin Jambor  <mjambor@suse.cz>
4127
4128         PR tree-optimization/80293
4129         * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
4130         char arrays not totally scalarizable if it is false.
4131         (analyze_all_variable_accesses): Pass correct value in the new
4132         parameter.  Add a statistics counter.
4133
4134 2017-04-24  Jan Hubicka  <hubicka@ucw.cz>
4135
4136         PR middle-end/79931
4137         * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
4138
4139 2017-04-24  Richard Biener  <rguenther@suse.de>
4140
4141         PR tree-optimization/80494
4142         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
4143         out for complex types.
4144
4145 2017-04-24  Richard Biener  <rguenther@suse.de>
4146
4147         * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
4148         * tree-ssa-sccvn.c (print_scc): Print SCC size.
4149         (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
4150         (DFS): Adjust and never fail.
4151         (sccvn_dom_walker::fail): Remove.
4152         (sccvn_dom_walker::before_dom_children): Adjust.
4153         (run_scc_vn): Likewise and never fail.
4154         * tree-ssa-pre.c (pass_pre::execute): Adjust.
4155         (pass_fre::execute): Likewise.
4156
4157 2017-04-24  Richard Biener  <rguenther@suse.de>
4158
4159         PR tree-optimization/79725
4160         * tree-ssa-sink.c (statement_sink_location): Return whether
4161         failure reason was zero uses.  Move that check later.
4162         (sink_code_in_bb): Deal with zero uses by removing the stmt
4163         if possible.
4164
4165 2017-04-24  Richard Biener  <rguenther@suse.de>
4166
4167         PR c++/2972
4168         * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
4169         pointer-based references.
4170
4171 2017-04-24  Richard Biener  <rguenther@suse.de>
4172
4173         PR bootstrap/79814
4174         * pass_manager.h (pass_manager::operator new): Remove.
4175         (pass_manager::operator delete): Likewise.
4176         * passes.c (pass_manager::operator new): Remove.
4177         (pass_manager::operator delete): Likewise.
4178         (pass_manager::pass_manager): Zero individual pass members.
4179
4180 2017-04-23  Uros Bizjak  <ubizjak@gmail.com>
4181
4182         PR target/70799
4183         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
4184         <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
4185         Check "XEXP (src, 1)" operand here.
4186         <case PLUS, case MINUS, case IOR, case XOR, case AND>:
4187         Check "XEXP (src, 1)" operand here.
4188         (dimode_scalar_chain::make_vector_copies): Detect count register
4189         of a shift instruction.  Zero extend count register from QImode
4190         to DImode to satisfy vector shift pattern count operand predicate.
4191         Substitute vector shift count operand with a DImode copy.
4192         (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
4193         vector register.
4194
4195 2017-04-21  Uros Bizjak  <ubizjak@gmail.com>
4196
4197         * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
4198         Remove UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
4199         (*insvqi_1_mem_rex64): Move above insv<mode>_1.  Remove
4200         UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
4201         (UNSPEC_NOREX_MEM): Remove definition.
4202
4203 2017-04-21  Richard Biener  <rguenther@suse.de>
4204
4205         PR tree-optimization/79547
4206         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
4207         Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
4208         bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
4209         without any constraints.
4210
4211 2017-04-21  Richard Biener  <rguenther@suse.de>
4212
4213         PR tree-optimization/78847
4214         * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
4215
4216 2017-04-21  Richard Biener  <rguenther@suse.de>
4217
4218         * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
4219         (build_distinct_type_copy): Likewise.
4220         (build_variant_type_copy): Likewise.
4221         * tree.c (build_qualified_type): Pass down mem-stat info.
4222         (build_distinct_type_copy): Likewise.
4223         (build_variant_type_copy): Likewise.
4224
4225 2017-04-21  Richard Biener  <rguenther@suse.de>
4226
4227         PR tree-optimization/80237
4228         * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
4229         defaulted to NULL.
4230         (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
4231         for a simplified result.
4232
4233 2016-04-21  Richard Biener  <rguenther@suse.de>
4234
4235         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
4236         sth as strict as a simple_iv but a chrec without symbols and an
4237         operand defined in the loop we are peeling (and not some subloop).
4238         (propagate_constants_for_unrolling): Propagate all constants.
4239
4240 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
4241
4242         PR target/79804
4243         * config/i386/i386.c (print_reg): Remove assert for disalowed
4244         regno values, call output_operand_lossage instead.
4245
4246 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
4247
4248         PR target/78090
4249         * config/i386/constraints.md (Yc): New register constraint.
4250         * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
4251         Use Yc constraint for alternative 2 of operand 0.  Remove
4252         preferred_for_speed attribute.
4253
4254 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
4255
4256         * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
4257         lastprivate clauses in SIMT case.
4258
4259 2017-04-20  Volker Reichelt  <v.reichelt@netcologne.de>
4260
4261         * doc/invoke.texi (-Wextra-semi): Document new warning option.
4262
4263 2017-04-20  Richard Biener  <rguenther@suse.de>
4264
4265         PR tree-optimization/57796
4266         * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
4267         as N scalar stores.
4268         (vect_model_load_cost): Cost gathers as N scalar loads.
4269
4270 2017-04-20  Richard Biener  <rguenther@suse.de>
4271
4272         * ggc-page.c (ggc_allocated_p): Rename to ...
4273         (safe_lookup_page_table_entry): ... this and return the lookup
4274         result.
4275         (gt_ggc_m_S): Use safe_lookup_page_table_entry.
4276
4277 2017-04-20  Richard Biener  <rguenther@suse.de>
4278
4279         PR tree-optimization/80453
4280         * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
4281         * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
4282         from the conditions.
4283         (vn_phi_eq): Pass them down.
4284         (vn_phi_lookup): Record them.
4285         (vn_phi_insert): Likewise.
4286
4287 2017-04-20  Matthew Fortune  <matthew.fortune@imgtec.com>
4288
4289         * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
4290         uninitialized variable warning to avoid buffer overrun.
4291
4292 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
4293
4294         PR other/71250
4295         * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
4296         is suppressed for '{ 0 }' in C.
4297
4298 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
4299
4300         * BASE-VER: Set to 8.0.0.
4301
4302 2017-04-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4303
4304         * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
4305         priority .init_array and .fini_array section with SECTION_NOTYPE
4306         flag.
4307
4308 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
4309
4310         PR middle-end/80423
4311         * tree.h (build_array_type): Add typeless_storage default argument.
4312         * tree.c (type_cache_hasher::equal): Also compare
4313         TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
4314         (build_array_type): Add typeless_storage argument, set
4315         TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
4316         recursive call.
4317         (build_nonshared_array_type): Adjust build_array_type_1 caller.
4318         (build_array_type): Likewise.  Add typeless_storage argument.
4319
4320 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4321             Jakub Jelinek  <jakub@redhat.com>
4322
4323         PR tree-optimization/80426
4324         * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
4325         operation on symbolic operands, also compute the overflow for the
4326         invariant part when the operation degenerates into a negation.
4327
4328 2017-04-19  Jakub Jelinek  <jakub@redhat.com>
4329
4330         PR debug/80461
4331         * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
4332         Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
4333
4334         PR debug/80436
4335         * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
4336
4337 2017-04-19  Georg-Johann Lay  <avr@gjlay.de>
4338
4339         PR target/80462
4340         * config/avr/avr.c (tree.h): Include it.
4341         (cgraph.h): Include it.
4342         (avr_encode_section_info): Don't warn for uninitialized progmem
4343         variable if it's just an alias.
4344
4345 2017-04-19  Richard Biener  <rguenther@suse.de>
4346
4347         PR ipa/65972
4348         * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
4349         when needed by AutoPGO.
4350
4351 2017-04-19  Paulo J. Matos  <paulo@matos-sorge.com>
4352
4353         PR lto/50345
4354         * doc/lto.texi: Remove an extra 'that'.
4355
4356 2017-04-19  Segher Boessenkool  <segher@kernel.crashing.org>
4357
4358         PR rtl-optimization/80429
4359         * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
4360         are only used in debug insns.
4361
4362 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4363             Vladimir Makarov  <vmakarov@redhat.com>
4364
4365         * config/sparc/predicates.md (input_operand): Add comment.  Return
4366         true for any memory operand when LRA is in progress.
4367         * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
4368
4369 2017-04-18  Jeff Law  <law@redhat.com>
4370
4371         PR target/74563
4372         * mips.md ({return,simple_return}_internal): Do not overwrite
4373         operands[0].
4374
4375 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
4376
4377         PR tree-optimization/80443
4378         * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
4379         instead of adding 1, subtract -1 and similarly instead of subtracting
4380         1 add -1.
4381
4382 2017-04-18  Richard Sandiford  <richard.sandiford@arm.com>
4383
4384         PR rtl-optimization/80357
4385         * haifa-sched.c (tmp_bitmap): New variable.
4386         (model_recompute): Handle duplicate use records.
4387         (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
4388         (free_global_sched_pressure_data): Free it.
4389
4390 2017-04-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4391
4392         Revert:
4393         2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4394         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
4395         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
4396         instead of SYSTEM_HEADER_DIR.
4397
4398 2017-04-18  Jeff Law  <law@redhat.com>
4399
4400         PR middle-end/80422
4401         * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
4402         predecessors after walking up the insn chain.
4403
4404 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
4405
4406         PR debug/80263
4407         * dwarf2out.c (modified_type_die): Try harder not to emit internal
4408         sizetype type into debug info.
4409
4410 2017-04-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
4411
4412         PR target/80099
4413         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
4414         unneeded test for TARGET_UPPER_REGS_SF.
4415         * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
4416
4417 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
4418
4419         PR sanitizer/80444
4420         * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
4421         instead of gsi_after_labels.
4422
4423 2017-04-18  Jeff Law  <law@redhat.com>
4424
4425         * regcprop.c (maybe_mode_change): Avoid creating copies of the
4426         stack pointer.
4427
4428         Revert:
4429         2017-04-13  Jeff Law  <law@redhat.com>
4430         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
4431         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
4432
4433 2017-04-18  Georg-Johann Lay  <avr@gjlay.de>
4434
4435         PR target/79453
4436         * config/avr/avr.c (intl.h): Include it.
4437         (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
4438
4439 2017-04-18  Martin Liska  <mliska@suse.cz>
4440
4441         PR gcov-profile/78783
4442         * gcov-tool.c (gcov_output_files): Validate that destination
4443         file is either removed by the tool or by a user.
4444
4445 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
4446             Guy Benyei  <guybe@mellanox.com>
4447
4448         * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
4449         block, and do not negate it, the stored id is already negative.
4450
4451 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
4452
4453         * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
4454
4455 2017-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
4456
4457         PR target/80098
4458         * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
4459         masks of options that should be turned off if the VSX vector
4460         options are turned off.
4461         (OTHER_P8_VECTOR_MASKS): Likewise.
4462         (OTHER_VSX_VECTOR_MASKS): Likewise.
4463         * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
4464         rs6000_disable_incompatible_switches to validate no type switches
4465         like -mvsx.
4466         (rs6000_incompatible_switch): New function to disallow turning on
4467         other vector options if -mno-vsx, -mno-power8-vector, or
4468         -mno-power9-vector are specified.
4469
4470 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
4471
4472         * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
4473
4474 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
4475
4476         * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
4477         * config/arc/arc.c (arc_decl_pretend_args): Likewise.
4478         * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
4479         (ARG_POINTER_CFA_OFFSET): Likewise.
4480
4481 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
4482
4483         * config/arc/arc.c (arc_mode_dependent_address_p): Relax
4484         conditions to take advantage of various optimizations.
4485
4486 2017-04-13  Jeff Law  <law@redhat.com>
4487
4488         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
4489         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
4490         (zero_extendsidi2_dext): Likewise.
4491
4492 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
4493
4494         PR sanitizer/80403
4495         * fold-const.c (fold_ternary_loc): Revert
4496         use op0 instead of fold_convert_loc (loc, type, arg0) part of
4497         2017-04-12 change.
4498
4499 2017-04-13  Vladimir Makarov  <vmakarov@redhat.com>
4500
4501         PR rtl-optimization/80343
4502         * lra-remat.c (update_scratch_ops): Assign original hard reg to
4503         new scratch pseudo.
4504
4505 2017-04-13  Denis Khalikov <d.khalikov@partner.samsung.com>
4506
4507         PR sanitizer/80414
4508         * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
4509         to ubsan_encode_value.
4510
4511 2017-04-13  Jeff Law  <law@redhat.com>
4512
4513         * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
4514         appearing in DEBUG_INSNs.
4515
4516 2017-04-13  Martin Liska  <mliska@suse.cz>
4517
4518         PR gcov-profile/80413
4519         * gcov-io.c (gcov_write_string): Copy to buffer just when
4520         allocated size is greater than zero.
4521
4522 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
4523
4524         PR debug/80321
4525         * dwarf2out.c (decls_for_scope): Ignore declarations of
4526         current_function_decl in BLOCK_NONLOCALIZED_VARS.
4527
4528 2017-04-12  Jan Hubicka  <hubicka@ucw.cz>
4529
4530         PR lto/69953
4531         * ipa-visibility.c (non_local_p): Fix typos.
4532         (localize_node): When localizing symbol in same comdat group,
4533         dissolve the group only when we know external symbols are going
4534         to be privatized.
4535         (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
4536
4537 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
4538
4539         PR tree-optimization/79390
4540         * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
4541         order does not result in usable sequence, retry with reversed operand
4542         order.
4543
4544         PR sanitizer/80403
4545         PR sanitizer/80404
4546         PR sanitizer/80405
4547         * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
4548         to fold_build2_loc.  Convert TREE_OPERAND (tem, 0) to type.  Use
4549         op0 instead of fold_convert_loc (loc, type, arg0).
4550
4551 2017-04-12  Jeff Law  <law@redhat.com>
4552
4553         * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
4554         has a delay slot in the generated code.
4555
4556         * config/cris/cris.md (cris_preferred_reload_class): Return
4557         GENNONACR_REGS rather than GENERAL_REGS.
4558
4559 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
4560
4561         PR c/80163
4562         * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
4563         vs. ZERO_EXTEND based on signedness of treeop0's type rather than
4564         signedness of the result type.
4565
4566 2017-04-12  Richard Biener  <rguenther@suse.de>
4567             Jeff Law  <law@redhat.com>
4568
4569         PR tree-optimization/80359
4570         * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
4571         trim stores to TARGET_MEM_REFs.
4572
4573 2017-04-12  Richard Biener  <rguenther@suse.de>
4574
4575         PR tree-optimization/79390
4576         * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
4577         threading case even more.
4578
4579 2017-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
4580
4581         PR target/80382
4582         * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
4583         for quad_address_p for TImode, instead of just not indexed_address.
4584
4585 2017-04-12  Richard Biener  <rguenther@suse.de>
4586             Bernd Edlinger  <bernd.edlinger@hotmail.de>
4587
4588         PR middle-end/79671
4589         * alias.c (component_uses_parent_alias_set_from): Handle
4590         TYPE_TYPELESS_STORAGE.
4591         (get_alias_set): Likewise.
4592         * tree-core.h (tree_type_common): Add typeless_storage flag.
4593         * tree.h (TYPE_TYPELESS_STORAGE): New macro.
4594         * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
4595         for types containing members with TYPE_TYPELESS_STORAGE.
4596         (place_field): Likewise.
4597         (layout_type): Likewise for ARRAY_TYPE.
4598         * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
4599         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
4600         TYPE_TYPELESS_STORAGE.
4601         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
4602
4603 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
4604
4605         PR sanitizer/80349
4606         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
4607         first argument to type.
4608
4609 2017-04-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4610
4611         PR target/80376
4612         PR target/80315
4613         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
4614         CONST0_RTX (mode) rather than const0_rtx where appropriate.
4615         (rs6000_expand_binop_builtin): Likewise.
4616         (rs6000_expand_ternop_builtin): Likewise; also add missing
4617         vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
4618         vshasigma built-ins.
4619         * doc/extend.texi: Document that vec_xxpermdi's third argument
4620         must be a constant.
4621
4622 2017-04-11  Uros Bizjak  <ubizjak@gmail.com>
4623
4624         * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
4625         Use shift_const cost parameter when calculating gain of STV shifts.
4626
4627 2017-04-11  Vladimir Makarov  <vmakarov@redhat.com>
4628
4629         PR rtl-optimization/70478
4630         * lra-constraints.c (process_alt_operands): Check memory for
4631         disfavoring memory insn operand.
4632
4633 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
4634
4635         PR middle-end/80100
4636         * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
4637         left shift in unsigned HOST_WIDE_INT type.
4638
4639         PR rtl-optimization/80385
4640         * simplify-rtx.c (simplify_unary_operation_1): Don't transform
4641         (not (neg X)) into (plus X -1) for complex or non-integral modes.
4642
4643         PR libgomp/80394
4644         * omp-low.c (scan_omp_task): Don't optimize away empty tasks
4645         if they have any depend clauses.
4646
4647 2017-04-11  Martin Liska  <mliska@suse.cz>
4648
4649         PR ipa/80212
4650         * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
4651         * ipa-split.c (split_function): Create a local comdat symbol
4652         if caller is in a comdat group.
4653
4654 2017-04-11  Martin Liska  <mliska@suse.cz>
4655
4656         PR ipa/80212
4657         * ipa-cp.c (determine_versionability): Handle calls_comdat_local
4658         flags.
4659
4660 2017-04-11  Martin Sebor  <msebor@redhat.com>
4661
4662         PR middle-end/80364
4663         * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
4664         always use the int type.  Use INTEGRAL_TYPE_P() rather than testing
4665         for INTEGER_TYPE.
4666         (directive::set_width, directive::set_precision, format_character):
4667         Adjust.
4668         (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
4669         INTEGER_TYPE.
4670
4671 2017-04-11  Richard Earnshaw  <rearnsha@arm.com>
4672
4673         PR target/80389
4674         * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
4675         conflict, set target->arch_name instead of target->cpu_name.
4676
4677 2017-04-11  Richard Biener  <rguenther@suse.de>
4678
4679         PR tree-optimization/80374
4680         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
4681         build_zero_cst, remove fold_convertible_p check again.
4682
4683 2017-04-11  Martin Liska  <mliska@suse.cz>
4684
4685         PR sanitizer/70878
4686         * ubsan.c (instrument_object_size): Do not instrument register
4687         variables.
4688
4689 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
4690
4691         PR target/80381
4692         * config/i386/i386-builtin-types.def
4693         (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
4694         V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
4695         V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
4696         V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
4697         V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
4698         V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
4699         V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
4700         V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
4701         V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
4702         V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
4703         V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
4704         V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
4705         V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
4706         V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
4707         V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
4708         V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
4709         V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
4710         V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
4711         * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
4712         __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
4713         __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
4714         __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
4715         __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
4716         __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
4717         __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
4718         __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
4719         __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
4720         __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
4721         __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
4722         __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
4723         __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
4724         __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
4725         __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
4726         __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
4727         __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
4728         __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
4729         __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
4730         __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
4731         __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
4732         __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
4733         __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
4734         __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
4735         __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
4736         __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
4737         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
4738         __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
4739         aliases.
4740         * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
4741         flag to second_arg_count, handle 4 argument function type _COUNT
4742         aliases, handle second_arg_count on second argument rather than last.
4743
4744 2017-04-10  Jeff Law  <law@redhat.com>
4745
4746         PR tree-optimization/80374
4747         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
4748         record anything if we can not convert integer_zero_node to the
4749         desired type.
4750
4751 2017-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
4752
4753         PR target/80108
4754         * config/rs6000/rs6000.c (rs6000_option_override_internal):
4755         Enhance special handling given to the TARGET_P9_MINMAX option in
4756         relation to certain other options.
4757
4758 2017-04-10  Bin Cheng  <bin.cheng@arm.com>
4759
4760         PR tree-optimization/80153
4761         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
4762         remove POINTER_PLUS_EXPR's base part directly, rather than through
4763         aff_tree.
4764
4765 2017-04-10  Richard Biener  <rguenther@suse.de>
4766             Bin Cheng  <bin.cheng@arm.com>
4767
4768         PR tree-optimization/80153
4769         * tree-affine.c (aff_combination_to_tree): Get base pointer from
4770         the first element of pointer type aff_tree.  Build result expr in
4771         aff_tree's type.
4772         (add_elt_to_tree): Convert to type unconditionally.  Remove other
4773         fold_convert calls.
4774         * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
4775         (rewrite_use_nonlinear_expr): Check invariant using iv information.
4776
4777 2017-04-10  Richard Biener  <rguenther@suse.de>
4778
4779         * tree-ssa-structalias.c (find_func_aliases): Properly handle
4780         asm inputs.
4781
4782 2017-04-10  Vladimir Makarov  <vmakarov@redhat.com>
4783
4784         PR rtl-optimization/70478
4785         * lra-constraints.c (curr_small_class_check): New.
4786         (update_and_check_small_class_inputs): New.
4787         (process_alt_operands): Update curr_small_class_check.  Disfavor
4788         alternative insn memory operands.  Check available regs for small
4789         class operands.
4790
4791 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
4792
4793         PR target/80057
4794         * config/mips/mips.opt (-mvirt): Update description.
4795         * doc/invoke.texi (-mvirt): Likewise.
4796
4797 2017-04-10  Richard Biener  <rguenther@suse.de>
4798
4799         PR middle-end/80362
4800         * fold-const.c (fold_binary_loc): Look at unstripped ops when
4801         looking for NEGATE_EXPR in -A / -B to A / B folding.
4802
4803 2017-04-10  Martin Liska  <mliska@suse.cz>
4804
4805         PR gcov-profile/80224
4806         * gcov.c (print_usage): Fix usage string.
4807         (get_gcov_intermediate_filename): Remove.
4808         (output_gcov_file): Use both for normal and intermediate format.
4809         (generate_results): Do not initialize special file for
4810         intermediate format.
4811
4812 2017-04-10  Richard Biener  <rguenther@suse.de>
4813
4814         PR tree-optimization/80304
4815         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
4816         for safelen.
4817
4818 2017-04-10  Nathan Sidwell  <nathan@acm.org>
4819
4820         PR target/79905
4821         * config/rs6000/rs6000.c (rs6000_vector_type): New.
4822         (rs6000_init_builtins): Use it.
4823
4824 2016-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4825
4826         * config/arm/arm.md (<mrc>): Add mode to SET source.
4827         (<mrrc>): Likewise.
4828
4829 2017-04-10  Richard Biener  <rguenther@suse.de>
4830
4831         PR middle-end/80344
4832         * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
4833
4834 2017-04-10  Jakub Jelinek  <jakub@redhat.com>
4835
4836         PR target/80324
4837         * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
4838         _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
4839         _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
4840         _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
4841         _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
4842         _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
4843         _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
4844         _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
4845         _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
4846         _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
4847         _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
4848         _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
4849         _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
4850         _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
4851         _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
4852         _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
4853         _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
4854         _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
4855         _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
4856         _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
4857         _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
4858         _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
4859         _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
4860
4861 2017-04-08  Vladimir Makarov  <vmakarov@redhat.com>
4862
4863         PR rtl-optimization/70478
4864         * lra-constraints.c: Reverse the last patch.
4865
4866 2017-04-08  Andreas Tobler  <andreast@gcc.gnu.org>
4867
4868         * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
4869         Add comment for WCHAR_T.
4870
4871 2017-04-08  Martin Liska  <mliska@suse.cz>
4872
4873         Revert:
4874         2017-04-07  Martin Liska  <mliska@suse.cz>
4875
4876         PR ipa/80212
4877         * ipa-split.c (split_function): Add function part to a same comdat
4878         group.
4879
4880 2017-04-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
4881
4882         PR target/80358
4883         * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
4884
4885 2017-04-07  Pat Haugen  <pthaugen@us.ibm.com>
4886
4887         * rs6000/rs6000.c (vec_load_pendulum): Rename...
4888         (vec_pairing): ...to this.
4889         (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
4890         (rs6000_sched_init): Adjust for name change.
4891         (struct rs6000_sched_context): Likewise.
4892         (rs6000_init_sched_context): Likewise.
4893         (rs6000_set_sched_context): Likewise.
4894
4895 2017-04-07  Jakub Jelinek  <jakub@redhat.com>
4896
4897         PR target/80322
4898         PR target/80323
4899         PR target/80325
4900         PR target/80326
4901         * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
4902         intrinsics.
4903         * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
4904         _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
4905         _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
4906
4907 2017-04-07  Andreas Tobler  <andreast@gcc.gnu.org>
4908
4909         * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
4910
4911 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
4912
4913         PR rtl-optimization/70703
4914         * ira-color.c (update_conflict_hard_regno_costs): Use
4915         int64_t instead of HOST_WIDE_INT.
4916
4917 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
4918
4919         PR rtl-optimization/70478
4920         * lra-constraints.c (process_alt_operands): Disfavor alternative
4921         insn memory operands.
4922
4923 2017-04-07  Jeff Law  <law@redhat.com>
4924
4925         * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
4926         CALL and NOTE_INSN_CALL_ARG_LOCATION.
4927
4928 2017-04-07  Martin Liska  <mliska@suse.cz>
4929
4930         PR target/79889
4931         * config/aarch64/aarch64.c (aarch64_process_target_attr):
4932         Show error message instead of an ICE.
4933
4934 2017-04-07  Martin Liska  <mliska@suse.cz>
4935
4936         PR ipa/80212
4937         * ipa-split.c (split_function): Add function part to a same comdat
4938         group.
4939
4940 2017-04-07  Richard Biener  <rguenther@suse.de>
4941
4942         PR middle-end/80341
4943         * tree.c (get_unwidened): Also handle ! for_type case for
4944         INTEGER_CSTs.
4945         * convert.c (do_narrow): Split out from ...
4946         (convert_to_integer_1): ... here.  Do not pass final truncation
4947         type to get_unwidened for TRUNC_DIV_EXPR.
4948
4949 2017-04-07  Richard Biener  <rguenther@suse.de>
4950
4951         * tree-affine.c (wide_int_ext_for_comb): Take type rather
4952         than aff_tree.
4953         (aff_combination_const): Adjust.
4954         (aff_combination_scale): Likewise.
4955         (aff_combination_add_elt): Likewise.
4956         (aff_combination_add_cst): Likewise.
4957         (aff_combination_convert): Likewise.
4958         (add_elt_to_tree): Likewise.  Remove unused argument.
4959         (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
4960
4961 2017-04-07  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4962
4963         * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
4964         definition.
4965         * config/arm/arm.c (arm_default_short_enums): Use
4966         ARM_DEFAULT_SHORT_ENUMS.
4967         * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
4968
4969 2017-04-06  Jakub Jelinek  <jakub@redhat.com>
4970
4971         PR debug/80234
4972         * dwarf2out.c (gen_member_die): Handle C++17 inline static data
4973         members with redundant out-of-class redeclaration.
4974
4975 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
4976
4977         PR target/80286
4978         * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
4979         * config/i386/i386.md (*zero_extendsidi2):
4980         Add (?*x,*x) and (?*v,*v) alternatives.
4981
4982 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
4983
4984         PR target/79733
4985         * config/i386/i386.c (ix86_expand_builtin)
4986         <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
4987         mode from insn data. Convert operands to insn operand mode.
4988         Copy operands that don't satisfy insn predicate to a register.
4989
4990 2017-04-06  Sam Thursfield  <sam.thursfield@codethink.co.uk>
4991
4992         * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
4993         Update comments.
4994
4995 2017-04-06  Richard Biener  <rguenther@suse.de>
4996
4997         PR tree-optimization/80334
4998         * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
4999         preserve alignment of accesses.
5000
5001 2017-04-06  Richard Biener  <rguenther@suse.de>
5002
5003         PR tree-optimization/80262
5004         * tree-sra.c (build_ref_for_offset): Preserve address-space
5005         information.
5006         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
5007         Drop useless address-space information on MEM_REF offsets.
5008
5009 2017-04-05  Andreas Schwab  <schwab@linux-m68k.org>
5010
5011         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
5012
5013 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
5014
5015         PR rtl-optimization/70703
5016         * ira-color.c (update_conflict_hard_regno_costs): Use
5017         HOST_WIDE_INT instead of long.
5018
5019 2017-04-05  Uros Bizjak  <ubizjak@gmail.com>
5020
5021         PR target/80298
5022         * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
5023         not defined for x86_64 target.  Add -mmmx target option when __SSE2__
5024         is not defined.
5025         * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
5026         for x86_64 target.  Handle -m3dnowa option.
5027
5028 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
5029
5030         PR rtl-optimization/70703
5031         * ira-color.c (update_costs_from_allocno): Use the smallest mode.
5032         (update_conflict_hard_regno_costs): Use long instead of unsigned
5033         arithmetic for cost calculation.
5034
5035 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
5036             Bernd Edlinger  <bernd.edlinger@hotmail.de>
5037
5038         PR sanitizer/80308
5039         * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
5040         for big endian.
5041
5042 2017-04-05  Eric Botcazou  <ebotcazou@adacore.com>
5043
5044         PR target/78002
5045         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
5046         ptr_mode with Pmode throughout.
5047         * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
5048         into probe_stack_range and use DImode.
5049
5050 2017-04-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
5051
5052         PR target/79890
5053         * config/s390/s390.c (s390_register_info_gprtofpr): Return if
5054         call_eh_return is true.
5055
5056 2017-04-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5057
5058         * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
5059         Initialize last_match_fntype_index.
5060
5061 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
5062
5063         PR target/80310
5064         * tree-nvr.c: Include internal-fn.h.
5065         (pass_return_slot::execute): Ignore internal calls without
5066         direct optab.
5067
5068 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
5069             Richard Biener  <rguenther@suse.de>
5070
5071         PR c++/80297
5072         * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
5073         captures used multiple times, except for the last use.
5074         * generic-match-head.c: Include gimplify.h.
5075
5076 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
5077
5078         PR tree-optimization/79390
5079         * target.h (struct noce_if_info): Declare.
5080         * targhooks.h (default_noce_conversion_profitable_p): Declare.
5081         * target.def (noce_conversion_profitable_p): New target hook.
5082         * ifcvt.h (struct noce_if_info): New type, moved from ...
5083         * ifcvt.c (struct noce_if_info): ... here.
5084         (noce_conversion_profitable_p): Renamed to ...
5085         (default_noce_conversion_profitable_p): ... this.  No longer
5086         static nor inline.
5087         (noce_try_store_flag_constants, noce_try_addcc,
5088         noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
5089         noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
5090         instead of noce_conversion_profitable_p.
5091         * config/i386/i386.c: Include ifcvt.h.
5092         (ix86_option_override_internal): Don't override
5093         PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
5094         (ix86_noce_conversion_profitable_p): New function.
5095         (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
5096         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
5097         * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
5098         * doc/tm.texi: Regenerated.
5099
5100 2017-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5101
5102         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
5103         correction.
5104
5105 2017-04-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5106
5107         PR target/80307
5108         * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
5109         instructions for small multiply cores.
5110
5111 2017-04-04  Jeff Law  <law@redhat.com>
5112
5113         * config/mips/mips.c (mips_multi_add): Zero initialize the newly
5114         added member.
5115         (mips_expand_vec_perm_const): Initialize elements in orig_perm
5116         that are not set by the loop over the elements.
5117
5118 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
5119
5120         PR target/80286
5121         * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
5122         int mode, convert_modes it to mode as unsigned, otherwise use
5123         lowpart_subreg to mode rather than SImode.
5124         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
5125         ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
5126         Use DImode instead of SImode for the shift count operand.
5127         * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
5128         Likewise.
5129
5130 2017-04-04  Richard Biener  <rguenther@suse.de>
5131
5132         PR middle-end/80281
5133         * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
5134         arithmetic done for the negate or the plus.  Simplify.
5135         (A - (-B) -> A + B): Likewise.
5136         * fold-const.c (split_tree): Make sure to not negate pointers.
5137
5138 2017-04-04  Segher Boessenkool  <segher@kernel.crashing.org>
5139
5140         PR rtl-optimization/60818
5141         * simplify-rtx.c (simplify_binary_operation_1): Do not replace
5142         a compare of comparisons with the thing compared if this results
5143         in a different machine mode.
5144
5145 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
5146
5147         * alias.c (base_alias_check): Fix typo in comment.
5148         * cgraph.h (class ipa_polymorphic_call_context): Likewise.
5149         * cgraphunit.c (symbol_table::compile): Likewise.
5150         * collect2.c (maybe_run_lto_and_relink): Likewise.
5151         * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
5152         * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
5153         * config/avr/avr.c (avr_map_op_t): Likewise.
5154         * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
5155         * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
5156         * config/epiphany/epiphany.md (movcc): Likewise.
5157         * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
5158         * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
5159         Likewise.
5160         * config/mips/mips.c (mips_save_restore_reg): Likewise.
5161         * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
5162         * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
5163         * config/sh/sh.c (sh_rtx_costs): Likewise.
5164         * fold-const.c (fold_truth_andor): Likewise.
5165         * genautomata.c (collapse_flag): Likewise.
5166         * gengtype.h (struct type::u::s): Likewise.
5167         * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
5168         * input.c (FORMAT_AMOUNT): Likewise.
5169         * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
5170         (known_aggs_to_agg_replacement_list): Likewise.
5171         * ipa-inline-analysis.c: Likewise.
5172         * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
5173         * ipa-polymorphic-call.c
5174         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
5175         * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
5176         * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
5177         Likewise.
5178         * modulo-sched.c (apply_reg_moves): Likewise.
5179         * omp-expand.c (build_omp_regions_1): Likewise.
5180         * trans-mem.c (struct tm_wrapper_hasher): Likewise.
5181         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
5182         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
5183         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
5184         * value-prof.c: Likewise.
5185         * var-tracking.c (val_reset): Likewise.
5186
5187 2017-04-03  Richard Biener  <rguenther@suse.de>
5188
5189         PR tree-optimization/80275
5190         * fold-const.c (split_address_to_core_and_offset): Handle
5191         POINTER_PLUS_EXPR.
5192
5193 2017-04-03  Eric Botcazou  <ebotcazou@adacore.com>
5194
5195         * tree-nested.c (get_descriptor_type): Make sure that the alignment of
5196         descriptors is at least equal to that of functions.
5197
5198 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
5199
5200         * config/i386/sse.md (movdi_to_sse): Add missing DONE.
5201
5202 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
5203
5204         PR target/80250
5205         * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
5206         (mov<IMOD4:mode>): New expander.
5207         (*mov<IMOD4:mode>_internal): New insn and split pattern.
5208
5209 2017-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
5210
5211         PR rtl-optimization/79405
5212         * fwprop.c (propagations_left): New variable.
5213         (forward_propagate_into): Decrement it.
5214         (fwprop_init): Initialize it.
5215         (fw_prop): If the variable has reached zero, stop propagating.
5216         (fwprop_addr): Ditto.
5217
5218 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
5219
5220         PR debug/79255
5221         * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
5222         a FUNCTION_DECL, pass it as decl instead of origin to
5223         process_scope_var.
5224
5225 2017-03-31  Alexander Monakov  <amonakov@ispras.ru>
5226
5227         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
5228         string.
5229
5230 2017-03-31  Pat Haugen  <pthaugen@us.ibm.com>
5231
5232         PR target/80107
5233         * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
5234         TARGET_VSX_SMALL_INTEGER.
5235
5236 2017-03-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5237
5238         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
5239         reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
5240
5241 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
5242
5243         * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
5244         extraction from odd-numbered MSA register.
5245
5246 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
5247
5248         PR middle-end/80173
5249         * expmed.c (store_bit_field_1): Don't attempt to create
5250         a word subreg out of hard registers wider than word if they
5251         have HARD_REGNO_NREGS of 1 for their mode.
5252
5253         PR middle-end/80163
5254         * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
5255         conversions to integer types wider than word and pointer.
5256
5257         PR debug/80025
5258         * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
5259         (rtx_equal_for_cselib_p): Pass 0 to it.
5260         * cselib.c (cselib_hasher::equal): Likewise.
5261         (rtx_equal_for_cselib_1): Add depth argument.  If depth
5262         is 128, don't look up VALUE locs and punt.  Increment
5263         depth in recursive calls when walking VALUE locs.
5264
5265 2017-03-31  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5266
5267         * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
5268         (make_gcov_file_name): Use the canonical path name for generating
5269         the MD5 value.
5270         (read_line): Fix handling of files with ascii null bytes.
5271
5272 2017-03-30  Matthew Fortune  <matthew.fortune@imgtec.com>
5273
5274         * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
5275         to initialise a vector register instead
5276         of using a const_int.
5277
5278 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
5279
5280         PR translation/80189
5281         * gimplify.c (omp_default_clause): Use %qs instead of %s in
5282         diagnostic messages.
5283
5284 2017-03-30  Peter Bergner  <bergner@vnet.ibm.com>
5285
5286         PR target/80246
5287         * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
5288         (dfp_diex_<mode>): Update mode of operand 1.
5289         * doc/extend.texi (dxex, dxexq): Document change to return type.
5290         (diex, diexq): Document change to argument type.
5291
5292 2017-03-30  Martin Jambor  <mjambor@suse.cz>
5293
5294         PR ipa/77333
5295         * cgraph.h (cgraph_build_function_type_skip_args): Declare.
5296         * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
5297         it reflects the signature changes performed at the callee side.
5298         * cgraphclones.c (build_function_type_skip_args): Make public, renamed
5299         to cgraph_build_function_type_skip_args.
5300         (build_function_decl_skip_args): Adjust call to the above function.
5301
5302 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
5303
5304         PR target/80206
5305         * config/i386/sse.md
5306         (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
5307         register as dest whenever it is a MEM not rtx_equal_p to the
5308         corresponding dup operand, and when forcing into reg move the
5309         reg into the memory afterwards.
5310         (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
5311         Likewise.  Use <ssehalfvecmode> instead of <ssequartermode>
5312         for the force_reg mode.
5313         (avx512vl_vextractf128<mode>): Use register as dest either
5314         always when a MEM, or when it is a MEM not rtx_equal_p to the
5315         corresponding dup operand, or even not when it is a CONST_VECTOR
5316         depending on the mode and lo vs. hi.
5317         (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
5318         parens.
5319         (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
5320         (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
5321         Likewise.  Require that operands[2] is even.
5322         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
5323         Remove extraneous parens.  Require that operands[2] is a multiple
5324         of 4.
5325         (vec_extract_lo_<mode><mask_name>): Don't bother testing if
5326         operands[0] is a MEM if <mask_applied>, the predicates/constraints
5327         disallow memory then.
5328
5329 2017-03-30  Richard Biener  <rguenther@suse.de>
5330
5331         PR tree-optimization/77498
5332         * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
5333         to non-constants over backedges.
5334
5335 2017-03-29  Segher Boessenkool  <segher@kernel.crashing.org>
5336
5337         PR rtl-optimization/80233
5338         * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
5339         as last_combined_insn.  Do not test for BARRIER_P separately.
5340
5341 2017-03-29  Andreas Schwab  <schwab@suse.de>
5342
5343         PR ada/80146
5344         * calls.c (prepare_call_address): Convert funexp to Pmode before
5345         copying to temp reg.
5346
5347 2017-03-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5348
5349         PR tree-optimization/80158
5350         * gimple-ssa-strength-reduction.c (replace_mult_candidate):
5351         Handle possible future case of more than one alternate
5352         interpretation.
5353         (replace_rhs_if_not_dup): Likewise.
5354         (replace_one_candidate): Likewise.
5355
5356 2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>
5357
5358         PR rtl-optimization/80193
5359         * ira.c (ira): Do not check allocation for LRA.
5360
5361 2017-03-28  Alexander Monakov  <amonakov@ispras.ru>
5362
5363         * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
5364         (nvptx_output_simt_exit): Declare.
5365         * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
5366         cfun->machine->unisimt_location.  Handle NULL unisimt_predicate.
5367         (init_softstack_frame): Move initialization of crtl->is_leaf to...
5368         (nvptx_declare_function_name): ...here.  Emit declaration of local
5369         memory space buffer for omp_simt_enter insn.
5370         (nvptx_output_unisimt_switch): New.
5371         (nvptx_output_softstack_switch): New.
5372         (nvptx_output_simt_enter): New.
5373         (nvptx_output_simt_exit): New.
5374         * config/nvptx/nvptx.h (struct machine_function): New fields
5375         has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
5376         * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
5377         (UNSPECV_SIMT_EXIT): Ditto.
5378         (omp_simt_enter_insn): New insn.
5379         (omp_simt_enter): New expansion.
5380         (omp_simt_exit): New insn.
5381         * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
5382
5383         * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
5384         (expand_GOMP_SIMT_ENTER_ALLOC): New.
5385         (expand_GOMP_SIMT_EXIT): New.
5386         * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
5387         (GOMP_SIMT_ENTER_ALLOC): Ditto.
5388         (GOMP_SIMT_EXIT): Ditto.
5389         * target-insns.def (omp_simt_enter): New insn.
5390         (omp_simt_exit): Ditto.
5391         * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
5392         simt_dlist.
5393         (lower_rec_simd_input_clauses): Implement SIMT privatization.
5394         (lower_rec_input_clauses): Likewise.
5395         (lower_lastprivate_clauses): Handle SIMT privatization.
5396
5397         * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
5398         (ompdevlow_adjust_simt_enter): New.
5399         (find_simtpriv_var_op): New.
5400         (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
5401         IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
5402
5403         * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
5404         * tree-inline.c (expand_call_inline): Handle SIMT privatization.
5405         (copy_decl_for_dup_finish): Ditto.
5406
5407         * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
5408
5409 2017-03-28  Uros Bizjak  <ubizjak@gmail.com>
5410
5411         PR target/53383
5412         * config/i386/i386.c (ix86_option_override_internal): Always
5413         allow -mpreferred-stack-boundary=3 for 64-bit targets.
5414
5415 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
5416
5417         * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
5418
5419 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
5420
5421         * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
5422         mark new edge's irreducible flag accordign to it.
5423         (vect_do_peeling): Check loop preheader edge's irreducible flag
5424         and pass it to function slpeel_add_loop_guard.
5425
5426 2017-03-28  Richard Sandiford  <richard.sandiford@arm.com>
5427
5428         PR tree-optimization/80218
5429         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
5430         Update block frequencies and counts.
5431
5432 2017-03-28  Richard Biener  <rguenther@suse.de>
5433
5434         PR tree-optimization/78644
5435         * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
5436         of a simplification result we may not use it at all.
5437
5438 2017-03-28  Richard Biener  <rguenther@suse.de>
5439
5440         PR ipa/80205
5441         * tree-inline.c (copy_phis_for_bb): Do not create PHI node
5442         without arguments, generate default definition of a SSA name.
5443
5444 2017-03-28  Richard Biener  <rguenther@suse.de>
5445
5446         PR middle-end/80222
5447         * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
5448         TYPE_REF_CAN_ALIAS_ALL references.
5449         * fold-const.c (fold_indirect_ref_1): Likewise.
5450
5451 2017-03-28  Martin Liska  <mliska@suse.cz>
5452
5453         PR ipa/80104
5454         * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
5455         thunk call as DECL_GIMPLE_REG_P when vector or complex type.
5456
5457 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
5458             Thomas Petazzoni  <thomas.petazzoni@free-electrons.com>
5459
5460         * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
5461         (EXTRA_SPECS): Define.
5462         (SUBTARGET_EXTRA_SPECS): Likewise.
5463         (SUBTARGET_CPP_SPEC): Likewise.
5464         * config/arc/elf.h (EXTRA_SPECS): Renamed to
5465         SUBTARGET_EXTRA_SPECS.
5466         * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
5467
5468 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
5469
5470         * config/arc/simdext.md (vst64_insn): Update pattern.
5471         (vld32wh_insn): Likewise.
5472         (vld32wl_insn): Likewise.
5473         (vld64_insn): Likewise.
5474         (vld32_insn): Likewise.
5475
5476 2017-03-28  Marek Polacek  <polacek@redhat.com>
5477
5478         PR sanitizer/80067
5479         * fold-const.c (fold_comparison): Use protected_set_expr_location
5480         instead of SET_EXPR_LOCATION.
5481
5482 2017-03-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
5483
5484         * tree.c (add_expr): Avoid name lookup warning.
5485
5486 2017-03-27  Jeff Law  <law@redhat.com>
5487
5488         PR tree-optimization/80216
5489         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
5490         function name.  Limit recursion depth.
5491         (record_temporary_equivalences): Corresponding changes.
5492
5493 2017-03-27  Jonathan Wakely  <jwakely@redhat.com>
5494
5495         * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
5496         covered first.
5497
5498 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
5499
5500         PR target/80102
5501         * reg-notes.def (REG_CFA_NOTE): Define.  Use it for CFA related
5502         notes.
5503         * cfgcleanup.c (reg_note_cfa_p): New array.
5504         (insns_have_identical_cfa_notes): New function.
5505         (old_insns_match_p): Don't cross-jump in between /f
5506         and non-/f instructions.  If both i1 and i2 are frame related,
5507         verify all CFA notes, their order and content.
5508
5509 2017-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
5510
5511         PR target/78543
5512         * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
5513         HImode and SImode with zero extend to DImode to one insn.
5514         (bswap<mode>2_extenddi): Likewise.
5515         (bswapsi2_extenddi): Likewise.
5516         (bswaphi2_extendsi): Likewise.
5517         (bswaphi2): Combine bswap HImode and SImode into one insn.
5518         Separate memory insns from swapping register.
5519         (bswapsi2): Likewise.
5520         (bswap<mode>2): Likewise.
5521         (bswaphi2_internal): Delete, no longer used.
5522         (bswapsi2_internal): Likewise.
5523         (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
5524         store, and gpr<-gpr swap insns.
5525         (bswap<mode>2_store): Likewise.
5526         (bswaphi2_reg): Register only splitter, combine with the splitter.
5527         (bswaphi2 splitter): Likewise.
5528         (bswapsi2_reg): Likewise.
5529         (bswapsi2 splitter): Likewise.
5530         (bswapdi2): If we have the LDBRX and STDBRX instructions, split
5531         the insns into load, store, and register/register insns.
5532         (bswapdi2_ldbrx): Likewise.
5533         (bswapdi2_load): Likewise.
5534         (bswapdi2_store): Likewise.
5535         (bswapdi2_reg): Likewise.
5536
5537 2017-03-27  Gunther Nikl  <gnikl@users.sourceforge.net>
5538
5539         * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
5540         (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
5541
5542 2017-03-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5543
5544         PR target/80103
5545         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
5546         add comments.
5547         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
5548         special handling for target option conflicts between dform
5549         options (-mpower9-dform, -mpower9-dform-vector,
5550         -mpower9-dform-scalar) and -mno-direct-move.
5551
5552 2017-03-27  Richard Biener  <rguenther@suse.de>
5553
5554         PR tree-optimization/80181
5555         * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
5556
5557 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
5558
5559         * config/arc/predicates.md (move_double_src_operand): Replace the
5560         call to move_double_src_operand with a call to address_operand.
5561
5562 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
5563
5564         * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
5565         * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
5566         * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
5567
5568 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
5569
5570         * config/arc/predicates.md (long_immediate_loadstore_operand):
5571         Consider scaled addresses cases.
5572
5573 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
5574
5575         * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
5576         restored when in interrupt.
5577         * config/arc/arc.md (simple_return): ARCv2 rtie instruction
5578         doesn't have delay slot.
5579
5580 2017-03-27  Richard Biener  <rguenther@suse.de>
5581
5582         PR ipa/79776
5583         * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
5584         inlined thunk clones.
5585
5586 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
5587
5588         PR sanitizer/80168
5589         * asan.c (instrument_derefs): Copy over last operand from
5590         original COMPONENT_REF to the new COMPONENT_REF with
5591         DECL_BIT_FIELD_REPRESENTATIVE.
5592         * ubsan.c (instrument_object_size): Likewise.
5593
5594 2017-03-27  Richard Biener  <rguenther@suse.de>
5595
5596         PR tree-optimization/80170
5597         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
5598         sure DR/SCEV didnt fold in constants we do not see when looking
5599         at the reference base alignment.
5600
5601 2017-03-27  Richard Biener  <rguenther@suse.de>
5602
5603         PR middle-end/80171
5604         * gimple-fold.c (fold_ctor_reference): Properly guard against
5605         NULL return value from canonicalize_constructor_val.
5606
5607 2017-03-25  Uros Bizjak  <ubizjak@gmail.com>
5608
5609         PR target/80180
5610         * config/i386/i386.c (ix86_expand_builtin)
5611         <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
5612         flags reg setting and flags reg using instructions.
5613         <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
5614         clobbering instructions to zero extend op2.
5615
5616 2017-03-25  Gerald Pfeifer  <gerald@pfeifer.com>
5617
5618         * doc/install.texi (Configuration) <--with-aix-soname>:
5619         Update link to AIX ld.
5620
5621 2017-03-25  Bernd Schmidt  <bschmidt@redhat.com>
5622
5623         PR rtl-optimization/80160
5624         PR rtl-optimization/80159
5625         * lra-assigns.c (must_not_spill_p): Tighten new test to also take
5626         reg_alternate_class into account.
5627
5628 2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>
5629
5630         PR target/80148
5631         * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
5632         to consider in curr_insn_transform.
5633
5634 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
5635
5636         * genrecog.c (validate_pattern): Add VEC_SELECT validation.
5637         * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
5638         and emit_mode_inner.
5639
5640 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5641
5642         * config/s390/s390-builtins.def: Add VXE builtins.  Add a flags
5643         argument to the overloaded builtin variants.  Use the new flag to
5644         deprecate certain builtin variants.
5645         * config/s390/s390-builtin-types.def: Add new builtin types.
5646         * config/s390/s390-builtins.h: Support new flags field for
5647         overloaded builtins.
5648         * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
5649         (s390_macro_to_expand): Enable vector float data type.
5650         (s390_cpu_cpp_builtins_internal): Indicate support of the new
5651         builtins by incrementing the __VEC__ version number.
5652         (s390_expand_overloaded_builtin): Support expansion of vec_xl and
5653         vec_xst.
5654         (s390_resolve_overloaded_builtin): Emit error messages depending
5655         on the builtin flags.
5656         * config/s390/s390.c (s390_expand_builtin): Support additional
5657         flags argument.  Change error message to match the messages
5658         emitted in s390-c.c.
5659         * config/s390/s390.md: New UNSPEC_* constants.
5660         (op_type): Add new instruction types.
5661         * config/s390/vecintrin.h: Add new builtins and test data class
5662         constants.
5663         * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
5664         (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
5665         (VEC_INEXACT, VEC_NOINEXACT): New constants.
5666         ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
5667         ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
5668         ("vec_mergel<mode>"): V_HW -> VEC_HW.
5669
5670         ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
5671         ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
5672         ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
5673         ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
5674
5675         ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
5676         ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
5677         ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
5678         ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
5679
5680         ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
5681         ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
5682         ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
5683         ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
5684         ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
5685         ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
5686         ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
5687
5688         ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
5689         ("vec_scatter_element<V_HW_4:mode>_DI")
5690         ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
5691         ("vec_fpint<mode>", "vflls")
5692         ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
5693         ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
5694         ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
5695         ("*vec_cmphe<mode>_cc"): ... these.
5696
5697         ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
5698         mode constant instead of magic value.
5699
5700 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5701
5702         * config/s390/s390.c (s390_expand_vec_compare): Support other
5703         vector floating point modes than just V2DF.
5704         (s390_expand_vcond): Likewise.
5705         (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
5706         (s390_cannot_change_mode_class): Prevent mode changes between TF
5707         and V1TF in vector registers.
5708         * config/s390/s390.md (DF, SF): New mode attributes.
5709         ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
5710         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
5711         SFmode support for VRs.
5712         * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
5713         vector fp modes.
5714         (VFT, VF_HW): New mode iterators.
5715         (vw, sdx): New mode attributes.
5716         ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
5717         ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
5718         ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
5719         ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
5720         ("vec_unorderedv2df"): Adjust the v2df only patterns to support
5721         also the new vector floating point modes.  Renaming to ...
5722
5723         ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
5724         ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
5725         ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
5726         ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
5727         ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
5728         ("vec_unordered<mode>"): ... these.
5729
5730         ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
5731         ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
5732         ("*vec_extendv2df"): New insn definitions.
5733
5734 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5735
5736         * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
5737         ("mulditi3_2", "*muldi3_sign"): New patterns.
5738         ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
5739         rename the pattern definition.
5740
5741 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5742
5743         * config/s390/s390.md ("indirect_jump"): Turn insn definition into
5744         expander.
5745         ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
5746
5747 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5748
5749         * config/s390/s390.c (s390_expand_vec_init): Use vllezl
5750         instruction if possible.
5751         * config/s390/vector.md (vec_halfnumelts): New mode
5752         attribute.
5753         ("*vec_vllezlf<mode>"): New pattern.
5754
5755 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5756
5757         * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
5758         ("popcountv4si2", "popcountv2di2"): Rename to ...
5759         ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
5760         ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
5761         condition.
5762         ("popcount<mode>2_vxe"): New pattern.
5763
5764 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5765
5766         * common/config/s390/s390-common.c (processor_flags_table): Add
5767         arch12.
5768         * config.gcc: Add arch12.
5769         * config/s390/driver-native.c (s390_host_detect_local_cpu):
5770         Default to arch12 for unknown CPU model numbers.
5771         * config/s390/s390-builtins.def: Add B_VXE builtin flag.
5772         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
5773         PROCESSOR_max sanity check.
5774         * config/s390/s390-opts.h (enum processor_type): Add
5775         PROCESSOR_ARCH12.
5776         * config/s390/s390.c (processor_table): Add arch12.
5777         (s390_expand_builtin): Add check for B_VXE flag.
5778         (s390_issue_rate): Add PROCESSOR_ARCH12.
5779         (s390_get_sched_attrmask): Likewise.
5780         (s390_get_unit_mask): Likewise.
5781         (s390_sched_score): Enable z13 scheduling for arch12.
5782         (s390_sched_reorder): Likewise.
5783         (s390_sched_variable_issue): Likewise.
5784         * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
5785         PF_VXE.
5786         (s390_tune_attr): Use z13 scheduling also for arch12.
5787         (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
5788         (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
5789         (TARGET_VXE_P): New macros.
5790         * config/s390/s390.md: Add arch12 to cpu attribute.  Add arch12
5791         and vxe to cpu_facility.  Add arch12 and vxe to enabled attribute.
5792         * config/s390/s390.opt: Add arch12 as processor_type.
5793
5794 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5795
5796         * config/s390/s390.md
5797         ("fixuns_truncdddi2", "fixuns_trunctddi2")
5798         ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
5799         ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
5800
5801         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
5802         Rename expanders to ...
5803
5804         ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
5805         ("fixuns_truncdddi2_emu"): ... these.
5806
5807         ("fixuns_trunc<mode>si2_emu"): New expander.
5808
5809         ("*fixuns_truncdfdi2_z13"): Rename to ...
5810         ("*fixuns_truncdfdi2_vx"): ... this.
5811
5812 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5813
5814         * config/s390/2964.md: Remove the single element vector compare
5815         instructions which are no longer used.
5816         * config/s390/s390.c (s390_select_ccmode): Remove handling of
5817         vector CCmodes.
5818         (s390_canonicalize_comparison): Remove handling of DFmode
5819         compares.
5820         (s390_expand_vec_compare_scalar): Remove function.
5821         (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
5822         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
5823         pattern.
5824         ("*cmp<mode>_ccs"): Add wfcdb instruction.
5825
5826 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5827
5828         * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
5829         FP zero.
5830         ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
5831         will anyway by matched by mov<mode>_64dfp.
5832
5833 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5834
5835         * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
5836         vlef/vstef.  Add missing operand to vleif.
5837
5838 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5839
5840         * config/s390/s390.c (s390_expand_vec_init): Enable vector load
5841         pair for all vector types with 64 bit elements.
5842         * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
5843         * config/s390/vector.md (V_HW_64): ... here.
5844         (V_128_NOSINGLE): New mode iterator.
5845         ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
5846         ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
5847         ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
5848         ("*vec_load_pairv2di"): Change to ...
5849         ("*vec_load_pair<mode>"): ... this one.
5850
5851 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5852
5853         * config/s390/constraints.md: Add comments.
5854         (jKK): Reject element sizes > 8 bytes.
5855         * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
5856         s_operands.
5857         * config/s390/s390.md: Add the s_operand checks formerly in
5858         s390_split_ok_p to various splitters where they are still
5859         required.
5860         * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
5861         for 128 bit vectors.  Plus two splitters.
5862
5863 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5864
5865         * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
5866         the file.
5867
5868 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5869
5870         PR target/79893
5871         * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
5872         error if the boundary argument is not constant.
5873
5874 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
5875
5876         PR rtl-optimization/80112
5877         * loop-doloop.c (doloop_condition_get): Don't check condition
5878         if cmp isn't SET with IF_THEN_ELSE src.
5879
5880 2017-03-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5881
5882         PR tree-optimization/80158
5883         * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
5884         replacing a candidate statement, also replace it for the
5885         candidate's alternate interpretation.
5886         (replace_rhs_if_not_dup): Likewise.
5887         (replace_one_candidate): Likewise.
5888
5889 2017-03-24  Richard Biener  <rguenther@suse.de>
5890
5891         PR tree-optimization/80167
5892         * graphite-isl-ast-to-gimple.c
5893         (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
5894         properly.
5895         (translate_isl_ast_to_gimple::get_rename): Likewise.
5896
5897 2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5898
5899         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
5900         handling of certain combinations of target options, including the
5901         combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
5902         -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
5903
5904 2017-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5905
5906         PR target/71436
5907         * config/arm/arm.md (*load_multiple): Add reload_completed to
5908         matching condition.
5909
5910 2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5911             Richard Biener  <rguenth@suse.de>
5912
5913         PR tree-optimization/79908
5914         PR tree-optimization/80136
5915         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
5916         been cast away, gimplify_and_add suffices.
5917
5918 2017-03-23  Markus Trippelsdorf  <markus@trippelsdorf.de>
5919
5920         * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
5921
5922 2017-03-23  Richard Biener  <rguenther@suse.de>
5923
5924         PR tree-optimization/80032
5925         * gimplify.c (gimple_push_cleanup): Forced unconditional
5926         cleanups still have to go to the conditional_cleanups
5927         sequence.
5928
5929 2017-03-22  Jakub Jelinek  <jakub@redhat.com>
5930
5931         PR tree-optimization/80072
5932         * tree-ssa-reassoc.c (struct operand_entry): Change id field type
5933         to unsigned int.
5934         (next_operand_entry_id): Change type to unsigned int.
5935         (sort_by_operand_rank): Make sure to return the right return value
5936         even if unsigned fields are bigger than INT_MAX.
5937         (struct oecount): Change cnt and id type to unsigned int.
5938         (oecount_hasher::equal): Formatting fix.
5939         (oecount_cmp): Make sure to return the right return value
5940         even if unsigned fields are bigger than INT_MAX.
5941         (undistribute_ops_list): Change next_oecount_id type to unsigned int.
5942
5943         PR c++/80129
5944         * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
5945         TREE_READONLY on result if writing it more than once.
5946
5947         PR sanitizer/80110
5948         * doc/invoke.texi (-fsanitize=thread): Document that with
5949         -fnon-call-exceptions atomics are not able to throw
5950         exceptions.
5951
5952         PR sanitizer/80110
5953         * tsan.c: Include tree-eh.h.
5954         (instrument_builtin_call): Call maybe_clean_eh_stmt or
5955         maybe_clean_or_replace_eh_stmt where needed.
5956         (instrument_memory_accesses): Add cfg_changed argument.
5957         Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
5958         if it returned true.
5959         (tsan_pass): Adjust caller.  Return TODO_cleanup_cfg if cfg_changed.
5960
5961         PR rtl-optimization/63191
5962         * config/i386/i386.c (ix86_delegitimize_address): Turn into small
5963         wrapper function, moved the whole old content into ...
5964         (ix86_delegitimize_address_1): ... this.  New inline function.
5965         (ix86_find_base_term): Use ix86_delegitimize_address_1 with
5966         true as last argument instead of ix86_delegitimize_address.
5967
5968 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
5969
5970         * config/aarch64/aarch64.c (generic_branch_cost): Copy
5971         cortexa57_branch_cost.
5972
5973 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
5974
5975         * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
5976
5977 2017-03-21  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
5978
5979         PR target/80123
5980         * doc/md.texi (Constraints): Document wA constraint.
5981         * config/rs6000/constraints.md (wA): New.
5982         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
5983         (rs6000_init_hard_regno_mode_ok): Init wA constraint.
5984         * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
5985         * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
5986
5987 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
5988
5989         PR c++/80029
5990         * gimplify.c (is_oacc_declared): New function.
5991         (oacc_default_clause): Use it to set default flags for acc declared
5992         variables inside parallel regions.
5993         (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
5994         declared variables.
5995         (gimplify_oacc_declare): Gimplify the declare clauses.  Add the
5996         declare attribute to any decl as necessary.
5997
5998 2017-03-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5999
6000         PR target/80082
6001         * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
6002         (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
6003         * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
6004         (arm_arch_lpae): This.
6005         * config/arm/arm.c (arm_arch7ve): Rename into ...
6006         (arm_arch_lpae): This.  Define it in term of isa_bit_lpae.
6007         * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
6008         arm_arch_lpae.
6009
6010 2017-03-22  Martin Liska  <mliska@suse.cz>
6011
6012         PR target/79906
6013         * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
6014         error message instead of an ICE.
6015
6016 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6017
6018         * doc/extend.texi (6.11 Additional Floating Types): Revise.
6019
6020 2017-03-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
6021
6022         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
6023         comments.
6024         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
6025         comments.
6026
6027 2017-03-21  Martin Sebor  <msebor@redhat.com>
6028
6029         * doc/extend.texi: Use "cannot" instead of "can't."
6030         * doc/hostconfig.texi: Same.
6031         * doc/install.texi: Same.
6032         * doc/invoke.texi: Same.
6033         * doc/loop.texi: Same.
6034         * doc/md.texi: Same.
6035         * doc/objc.texi: Same.
6036         * doc/rtl.texi: Same.
6037         * doc/tm.texi: Same.
6038         * doc/tm.texi.in: Same.
6039         * doc/trouble.texi: Same.
6040
6041 2017-03-21  Alexandre Oliva <aoliva@redhat.com>
6042
6043         PR debug/63238
6044         * dwarf2out.c (struct checksum_attributes): Add at_alignment.
6045         (collect_checksum_attributes): Set it.
6046         (die_checksum_ordered): Use it.
6047
6048 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6049
6050         PR tree-optimization/79908
6051         * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
6052         change: For a VA_ARG whose LHS has been cast away, use
6053         force_gimple_operand to construct the side effects.
6054
6055 2017-03-21  David Malcolm  <dmalcolm@redhat.com>
6056
6057         PR translation/80001
6058         * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
6059         more amenable to translation.
6060         (oacc_loop_auto_partitions): Likewise.
6061
6062 2017-03-21  Marek Polacek  <polacek@redhat.com>
6063             Martin Sebor  <msebor@redhat.com>
6064
6065         PR tree-optimization/80109
6066         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
6067         on INTEGRAL_TYPE_P.
6068
6069 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
6070             Segher Boessenkool  <segher@kernel.crashing.org>
6071
6072         PR target/80125
6073         * combine.c (can_combine_p): Revert the 2017-03-20 change, only
6074         check reg_used_between_p between insn and one of succ or succ2
6075         depending on if succ is artificial insn not inserted into insn
6076         stream.
6077
6078 2017-03-21  Martin Liska  <mliska@suse.cz>
6079
6080         PR gcov-profile/80081
6081         * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
6082         * doc/gcc.texi: Include gcov-dump stuff.
6083         * doc/gcov-dump.texi: New file.
6084
6085 2017-03-21  Toma Tabacu  <toma.tabacu@imgtec.com>
6086
6087         PR rtl-optimization/79150
6088         * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
6089         conditional jump, if the jump is the last insn of the loop.
6090
6091 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6092             Richard Biener  <rguenth@suse.de>
6093
6094         PR tree-optimization/79908
6095         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
6096         been cast away, use force_gimple_operand to construct the side
6097         effects.
6098
6099 2017-03-21  Martin Liska  <mliska@suse.cz>
6100
6101         PR libfortran/79956
6102         * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
6103         to NULL.
6104
6105 2017-03-21  Brad Spengler <spender@grsecurity.net>
6106
6107         PR plugins/80094
6108         * plugin.c (htab_hash_plugin): New function.
6109         (add_new_plugin): Use it and adjust.
6110         (parse_plugin_arg_opt): Adjust.
6111         (init_one_plugin): Likewise.
6112
6113 2017-03-21  Richard Biener  <rguenther@suse.de>
6114
6115         PR tree-optimization/80032
6116         * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
6117         if set force the cleanup to happen unconditionally.
6118         (gimplify_target_expr): Push inserted clobbers with force_uncond
6119         to avoid them being removed by control-dependent DCE.
6120
6121 2017-03-21  Richard Biener  <rguenther@suse.de>
6122
6123         PR tree-optimization/80122
6124         * tree-inline.c (copy_bb): Do not expans va-arg packs or
6125         va_arg_pack_len when the inlined call stmt requires pack
6126         expansion itself.
6127         * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
6128
6129 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
6130
6131         PR sanitizer/78158
6132         * tsan.c (instrument_builtin_call): If the memory model argument
6133         is not a constant, assume it is valid.
6134
6135         PR c/67338
6136         * fold-const.c (round_up_loc): Negate divisor in unsigned type to
6137         avoid UB.
6138
6139 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
6140
6141         PR rtl-optimization/79910
6142         * combine.c (can_combine_p): Do not allow combining an I0 or I1
6143         if its dest is used by an insn before I2 (other than the combined
6144         insns themselves, which are properly handled already).
6145
6146 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
6147
6148         Revert:
6149         2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
6150
6151         * combine.c (record_used_regs): New static function.
6152         (try_combine): Handle situations where there is an additional
6153         instruction between I2 and I3 which needs to have a LOG_LINK
6154         updated.
6155
6156         Revert:
6157         2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
6158
6159         * combine.c (try_combine): Delete redundant i1 test.  Call
6160         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
6161
6162 2017-03-20  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
6163
6164         PR target/80083
6165         * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
6166         alternatives 13/14.
6167
6168 2017-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6169
6170         PR tree-optimization/80054
6171         * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
6172         the optimization if a PHI or any of its arguments is not dominated
6173         by the candidate's basis.  Use gphi* rather than gimple* as
6174         appropriate.
6175         (replace_profitable_candidates): Clean up a gimple* variable that
6176         should be a gphi* variable.
6177
6178 2017-03-20  Martin Sebor  <msebor@redhat.com>
6179
6180         PR c++/52477
6181         * doc/extend.texi (attribute constructor): Document present limitation.
6182
6183 2017-03-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
6184
6185         PR target/79963
6186         * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
6187         __POWER9_VECTOR__ #ifdef control, change template definition to
6188         use Power9-specific built-in function.
6189         (vec_any_eq): Likewise.
6190         * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
6191         to control outcomes from this test.
6192         (vector_ae_<mode>p): For VEC_F modes, likewise.
6193
6194 2017-03-20  Ian Lance Taylor  <iant@google.com>
6195
6196         * config/i386/i386.c (ix86_function_regparm): Save an extra
6197         register for -fsplit-stack with DECL_STATIC_CHAIN.
6198
6199 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
6200
6201         PR target/79912
6202         * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
6203         (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
6204
6205 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
6206
6207         * config/riscv/riscv.c (riscv_print_operand): Use "fence
6208         iorw,ow".
6209         * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
6210         iorw,iorw".
6211
6212 2017-03-20  Marek Polacek  <polacek@redhat.com>
6213
6214         PR sanitizer/80063
6215         * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
6216
6217 2017-03-20  Richard Biener  <rguenther@suse.de>
6218
6219         PR tree-optimization/80113
6220         * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
6221         allocate extra SSA name for PHI def.
6222         (add_close_phis_to_outer_loops): Likewise.
6223         (add_close_phis_to_merge_points): Likewise.
6224         (copy_loop_close_phi_args): Likewise.
6225         (copy_cond_phi_nodes): Likewise.
6226
6227 2017-03-20  Martin Liska  <mliska@suse.cz>
6228
6229         PR middle-end/79753
6230         * tree-chkp.c (chkp_build_returned_bound): Do not build
6231         returned bounds for a LHS that's not a BOUNDED_P type.
6232
6233 2017-03-20  Martin Liska  <mliska@suse.cz>
6234
6235         PR target/79769
6236         PR target/79770
6237         * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
6238         COMPLEX_CST and VECTOR_CST.
6239
6240 2017-03-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6241
6242         PR target/78857
6243         * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
6244         target operand.  A new splitter adds the clobber statement in case
6245         the target operand is dead anyway.
6246
6247 2017-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
6248
6249         * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
6250         to age-old versions of binutils and glibc.
6251
6252 2017-03-18  Segher Boessenkool  <segher@kernel.crashing.org>
6253
6254         * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
6255
6256 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
6257
6258         * doc/contrib.texi (Contributors): Add Segher Boessenkool.
6259
6260 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
6261
6262         * doc/install.texi (Specific) <arm-*-eabi>: Remove old
6263         requirement for binutils 2.13.
6264
6265 2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
6266
6267         * combine.c (try_combine): Delete redundant i1 test.  Call
6268         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
6269
6270 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com
6271
6272         * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
6273         riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
6274         contents.
6275         <riscv64-*-elf>: Re-arrange section
6276         <riscv32-*-elf>: Add a note about requiring binutils 2.28.
6277         <riscv32-*-linux>: Likewise.
6278         <riscv64-*-elf>: Likewise
6279         <riscv64-*-linux>: Likewise.
6280
6281 2017-03-17  Richard Earnshaw  <rearnsha@arm.com>
6282
6283         PR target/80052
6284         * aarch64.opt(verbose-cost-dump): Fix typo.
6285
6286 2017-03-17  Pat Haugen  <pthaugen@us.ibm.com>
6287
6288         PR target/79951
6289         * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
6290         for VECTOR_UNIT_VSX_P (<MODE>mode) too.
6291
6292 2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
6293
6294         * reload.c (find_reloads): When reloading a nonoffsettable address,
6295         use RELOAD_OTHER for it and its address reloads.
6296
6297         PR rtl-optimization/79910
6298         * combine.c (record_used_regs): New static function.
6299         (try_combine): Handle situations where there is an additional
6300         instruction between I2 and I3 which needs to have a LOG_LINK
6301         updated.
6302
6303 2017-03-17  Jeff Law  <law@redhat.com>
6304
6305         PR tree-optimization/71437
6306         * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
6307         conditional in the hash table first.
6308         (vrp_dom_walker::before_dom_children): Extract condition from
6309         ASSERT_EXPR.  Record condition, its inverion and any implied
6310         conditions as well.
6311
6312 2017-03-17  Marek Polacek  <polacek@redhat.com>
6313             Markus Trippelsdorf  <markus@trippelsdorf.de>
6314
6315         PR tree-optimization/80079
6316         * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
6317         m_stores_head.
6318
6319 2017-03-17  Richard Biener  <rguenther@suse.de>
6320
6321         PR middle-end/80075
6322         * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
6323         Properly verify the LHS before the RHS possibly claims to be
6324         handled.
6325         (stmt_could_throw_p): Hande gimple conds fully here.  Clobbers
6326         do not throw.
6327
6328 2017-03-17  Martin Jambor  <mjambor@suse.cz>
6329
6330         * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
6331         (List of -O2 options): Likewise.
6332         (-fipa-bit-cp): Replace "ipa" with "interprocedural."
6333         (-fipa-vrp) New.
6334
6335 2017-03-17  Tom de Vries  <tom@codesourcery.com>
6336
6337         * gcov-dump.c (print_usage): Print bug_report_url.
6338
6339 2017-03-17  Richard Biener  <rguenther@suse.de>
6340
6341         PR middle-end/80050
6342         * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
6343         (parser::peek): Likewise.
6344
6345 2017-03-17  Richard Biener  <rguenther@suse.de>
6346
6347         PR tree-optimization/80048
6348         * sese.c (free_sese_info): Properly release rename_map and
6349         copied_bb_map elements.
6350
6351 2017-03-16  Alexandre Oliva <aoliva@redhat.com>
6352
6353         * gimple-ssa-store-merging.c (struct imm_store_chain_info):
6354         Add linked-list forward and backlinks.  Insert on
6355         construction, remove on destruction.
6356         (class pass_store_merging): Add m_stores_head field.
6357         (pass_store_merging::terminate_and_process_all_chains):
6358         Iterate over m_stores_head list.
6359         (pass_store_merging::terminate_all_aliasing_chains):
6360         Likewise.
6361         (pass_store_merging::execute): Check for debug stmts first.
6362         Push new chains onto the m_stores_head stack.
6363
6364 2017-03-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
6365
6366         PR target/71294
6367         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
6368         SPLAT operation on ISA 2.07 64-bit systems that have direct move,
6369         but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
6370
6371 2017-03-16  Jeff Law  <law@redhat.com>
6372
6373         PR tree-optimization/71437
6374         * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
6375         member function.  Implementation moved into after_dom_children
6376         member function and into the threader's thread_outgoing_edges
6377         function.
6378         (dom_opt_dom_walker::after_dom_children): Simplify by moving
6379         some code into new thread_outgoing_edges.
6380         * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
6381         definition.  Simplify marker handling (do it here).   Assume we always
6382         have the available expression and the const/copies tables.
6383         (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
6384         and tree-vrp.c
6385         * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
6386         * tree-vrp.c (equiv_stack): No longer file scoped.
6387         (vrp_dom_walker): New class.
6388         (vrp_dom_walker::before_dom_children): New member function.
6389         (vrp_dom_walker::after_dom_children): Likewise.
6390         (identify_jump_threads):  Setup domwalker.  Use it rather than
6391         walking edges in a random order by hand.  Simplify setup/finalization.
6392         (finalize_jump_threads): Remove.
6393         (vrp_finalize): Do not call identify_jump_threads here.
6394         (execute_vrp): Do it here instead and call thread_through_all_blocks
6395         here too.
6396
6397         PR tree-optimization/71437
6398         * tree-ssa-dom.c (pfn_simplify): Add basic_block argument.  All
6399         callers changed.
6400         (simplify_stmt_for_jump_threading): Add basic_block argument.  All
6401         callers changed.
6402         (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
6403         (dom_opt_dom_walker::thread_across_edge): Remove
6404         handle_dominating_asserts argument.  All callers changed.
6405         (record_temporary_equivalences_from_stmts_at_dest): Corresponding
6406         changes.  Remove calls to lhs_of_dominating_assert.  Other
6407         uses of handle_dominating_asserts turn into unconditional code
6408         (simplify_control_stmt_condition_1): Likewise.
6409         (simplify_control_stmt_condition): Likewise.
6410         (thread_through_normal_block, thread_across_edge): Likewise.
6411         * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
6412         * tree-vrp.c (lhs_of_dominating_assert): Move here.  Return original
6413         object if it is not an SSA_NAME.
6414         (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
6415         before calling into the VRP specific simplifiers.
6416         (identify_jump_threads): Remove handle_dominating_asserts
6417         argument.
6418
6419 2017-03-16  Jakub Jelinek  <jakub@redhat.com>
6420
6421         PR fortran/79886
6422         * tree-diagnostic.c (default_tree_printer): No longer static.
6423         * tree-diagnostic.h (default_tree_printer): New prototype.
6424
6425 2017-03-16  Tamar Christina  <tamar.christina@arm.com>
6426
6427         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
6428         Change ins into fmov.
6429
6430 2017-03-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6431
6432         * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
6433         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
6434         Use h_con constraint for operand 1.
6435         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
6436         (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
6437
6438 2017-03-15  Jeff Law  <law@redhat.com>
6439
6440         PR tree-optimization/71437
6441         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
6442         (record_temporary_equivalences): Use it.
6443
6444         PR tree-optimization/71437
6445         * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
6446         tree-ssa-scopedtables.
6447         (lookup_avail_expr, build_and_record_new_cond): Likewise.
6448         (record_conditions, record_cond, vuse_eq): Likewise.
6449         (record_edge_info): Adjust to API tweak of record_conditions.
6450         (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
6451         (record_temporary_equivalences, optimize_stmt): Likewise.
6452         (eliminate_redundant_computations): Likewise.
6453         (record_equivalences_from_stmt): Likewise.
6454         * tree-ssa-scopedtables.c: Include options.h and params.h.
6455         (vuse_eq): New function, moved from tree-ssa-dom.c
6456         (build_and_record_new_cond): Likewise.
6457         (record_conditions): Likewise.  Accept vector of conditions rather
6458         than edge_equivalence structure for first argument.
6459         for the first argument.
6460         (avail_exprs_stack::lookup_avail_expr): New member function, moved
6461         from tree-ssa-dom.c.
6462         (avail_exprs_stack::record_cond): Likewise.
6463         * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
6464         from tree-ssa-dom.c.
6465         (avail_exprs_stack): Add new member functions lookup_avail_expr
6466         and record_cond.
6467         (record_conditions): Declare.
6468
6469 2017-03-15  Vladimir Makarov  <vmakarov@redhat.com>
6470
6471         PR target/80017
6472         * lra-constraints.c (process_alt_operands): Increase reject for
6473         reloading an input/output operand.
6474
6475 2017-03-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
6476
6477         PR target/79038
6478         * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
6479         insns to convert from signed/unsigned char/short to IEEE 128-bit
6480         floating point.
6481         (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
6482
6483 2017-03-15  Uros Bizjak  <ubizjak@gmail.com>
6484
6485         PR target/80019
6486         * config/i386/i386.c (ix86_vector_duplicate_value): Create
6487         subreg of inner mode for values already in registers.
6488
6489 2017-03-15  Bernd Schmidt  <bschmidt@redhat.com>
6490
6491         * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
6492         iteration reg is used after the loop.
6493
6494 2017-03-14  Martin Sebor  <msebor@redhat.com>
6495
6496         PR tree-optimization/79800
6497         * gimple-ssa-sprintf.c (format_floating: Add argument.  Handle
6498         precision in negative-positive range.
6499         (format_floating): Call non-const overload with adjusted precision.
6500
6501 2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6502
6503         PR target/79947
6504         * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
6505         -mpowerpc-gfxopt.
6506
6507 2017-03-14  Martin Sebor  <msebor@redhat.com>
6508
6509         PR middle-end/80020
6510         * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
6511         * builtins.def (aligned_alloc): Use it.
6512
6513         PR c/79936
6514         * Makefile.in (GTFILES): Add calls.c.
6515         * calls.c: Include "gt-calls.h".
6516
6517 2017-03-14  Bernd Schmidt  <bschmidt@redhat.com>
6518
6519         PR rtl-optimization/79728
6520         * regs.h (struct target_regs): New field
6521         x_contains_allocatable_regs_of_mode.
6522         (contains_allocatable_regs_of_mode): New macro.
6523         * reginfo.c (init_reg_sets_1): Initialize it, and change
6524         contains_reg_of_mode so it includes global regs as well.
6525         * reload.c (push_reload): Use contains_allocatable_regs_of_mode
6526         rather than contains_regs_of_mode.
6527
6528 2017-03-14  Martin Liska  <mliska@suse.cz>
6529
6530         * doc/invoke.texi: Document options that can't be combined with
6531         -fcheck-pointer-bounds.
6532
6533 2017-03-14  Martin Liska  <mliska@suse.cz>
6534
6535         PR middle-end/79831
6536         * doc/invoke.texi (-Wchkp): Document the option.
6537
6538 2017-03-14  Martin Liska  <mliska@suse.cz>
6539
6540         * Makefile.in: Install gcov-dump.
6541
6542 2017-03-14  Martin Liska  <mliska@suse.cz>
6543
6544         * multiple_target.c (expand_target_clones): Bail out for
6545         an invalid attribute.
6546
6547 2017-03-14  Richard Biener  <rguenther@suse.de>
6548
6549         * alias.c (struct alias_set_entry): Pack properly.
6550         * cfgloop.h (struct loop): Likewise.
6551         * cse.c (struct set): Likewise.
6552         * ipa-utils.c (struct searchc_env): Likewise.
6553         * loop-invariant.c (struct invariant): Likewise.
6554         * lra-remat.c (struct cand): Likewise.
6555         * recog.c (struct change_t): Likewise.
6556         * rtl.h (struct address_info): Likewise.
6557         * symbol-summary.h (function_summary): Likewise.
6558         * tree-loop-distribution.c (struct partition): Likewise.
6559         * tree-object-size.c (struct object_size_info): Likewise.
6560         * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
6561         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
6562         * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
6563         * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
6564         * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
6565         * tree-vectorizer.h (struct _loop_vec_info): Likewise.
6566         (struct _stmt_vec_info): Likewise.
6567
6568 2017-03-14  Martin Liska  <mliska@suse.cz>
6569
6570         PR target/79892
6571         * multiple_target.c (create_dispatcher_calls): Check that
6572         a target can create a function dispatcher.
6573
6574 2017-03-14  Martin Liska  <mliska@suse.cz>
6575
6576         PR lto/66295
6577         * multiple_target.c (expand_target_clones): Drop local.local
6578         flag for default implementation.
6579
6580 2017-03-14  Richard Biener  <rguenther@suse.de>
6581
6582         PR tree-optimization/80030
6583         * tree-vect-stmts.c (vectorizable_store): Plug memleak.
6584
6585 2017-03-13  Kito Cheng  <kito.cheng@gmail.com>
6586
6587         * config/riscv/riscv.c (riscv_emit_float_compare>: Use
6588         gcc_fallthrough() instead of __attribute__((fallthrough));
6589
6590 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
6591
6592         * doc/gcc.texi: Remove "up" link to (DIR).
6593         * doc/gccint.texi: Ditto.
6594
6595 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
6596
6597         * doc/install.texi (Specific) <avr>: Remove reference to
6598         binutils 2.13.
6599
6600 2017-03-13  Jeff Law  <law@redhat.com>
6601
6602         * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
6603         attribute rather than comments.
6604
6605         * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
6606         match_scratch operand is highest.
6607
6608 2017-03-13  Martin Liska  <mliska@suse.cz>
6609
6610         PR middle-end/78339
6611         * ipa-pure-const.c (warn_function_noreturn): If the declarations
6612         is a CHKP clone, use original declaration.
6613
6614 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
6615
6616         * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
6617         (arc_conditional_register_usage): Use a different allocation order
6618         when optimizing for size.
6619         * common/config/arc/arc-common.c (arc_option_optimization_table):
6620         Section anchors default on when optimizing for size.
6621
6622 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
6623
6624         * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
6625
6626 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
6627
6628         * config/arc/arc.c (arc_output_addsi): Emit code density adds.
6629         * config/arc/arc.md (cpu_facility): Add cd variant.
6630         (*movqi_insn): Add code density variant.
6631         (*movhi_insn): Likewise.
6632         (*movqi_insn): Likewise.
6633         (*addsi3_mixed): Likewise.
6634         (subsi3_insn): Likewise.
6635
6636 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
6637
6638         * config/arc/arc.md (movsi_cond_exec): Update constraint.
6639
6640 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
6641
6642         * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
6643         expressions with MINUS and UNARY ops.
6644
6645 2017-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6646
6647         PR target/79911
6648         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
6649         Rename to...
6650         (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
6651         between vec_select and vector argument.
6652         (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
6653         (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
6654         (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
6655         (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
6656         (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
6657         (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
6658
6659 2017-03-13  Richard Biener  <rguenther@suse.de>
6660
6661         PR other/79991
6662         * params.def (vect-max-peeling-for-alignment): Fix typo.
6663
6664 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
6665
6666         * doc/install.texi (Specific) <mips-*-*>: Remove description of
6667         issue that only occurred with binutils below 2.18.
6668
6669 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
6670
6671         * doc/install.texi (Specific) <cris-axis-elf>: No longer
6672         refer to binutils 2.11/2.12 minimum.
6673
6674 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
6675
6676         * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
6677         ftp.kernel.org and simplify binutils requirement.
6678
6679 2017-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
6680
6681         * doc/invoke.texi (Warning Options): Fix spelling of link-time
6682         optimization.
6683         (Optimize Options): Ditto.  Also remove redundancy.
6684
6685 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
6686
6687         PR translation/79848
6688         * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
6689         "%qs".
6690         * ipa-pure-const.c (suggest_attribute): Likewise.  Convert _
6691         to G_ to avoid double translation.
6692
6693 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
6694
6695         PR translation/79923
6696         * auto-profile.c (get_combined_location): Convert leading
6697         character of diagnostics to lower case and remove trailing period.
6698         (read_profile): Likewise for various diagnostics.
6699         * config/arm/arm.c (arm_option_override): Remove trailing period
6700         from various diagnostics.
6701         * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
6702         (msp430_expand_delay_cycles): Likewise.
6703
6704 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
6705
6706         PR target/79925
6707         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
6708         full command-line argument, rather than just "str".
6709         (aarch64_validate_march): Likewise.
6710         (aarch64_validate_mtune): Likewise.
6711
6712 2017-03-10  Bernd Schmidt  <bschmidt@redhat.com>
6713
6714         PR rtl-optimization/78911
6715         * lra-assigns.c (must_not_spill_p): New function.
6716         (spill_for): Use it.
6717
6718 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
6719
6720         PR tree-optimization/79981
6721         * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
6722         ATOMIC_COMPARE_EXCHANGE ifn result.
6723         (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
6724         IFN_ATOMIC_COMPARE_EXCHANGE.
6725
6726 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
6727
6728         PR driver/79875
6729         * opts.c (parse_sanitizer_options): Add missing question mark to
6730         "did you mean" message.
6731
6732 2017-03-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6733
6734         * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
6735         built-in.
6736         (VMULEUH_UNS): Likewise.
6737         (VMULOUB_UNS): Likewise.
6738         (VMULOUH_UNS): Likewise.
6739         * config/rs6000/rs6000.c (builtin_function_type): Remove
6740         references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
6741
6742 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
6743
6744         PR bootstrap/79952
6745         * read-rtl-function.c (function_reader::read_rtx_operand): Update
6746         x with result of extra_parsing_for_operand_code_0.
6747         (function_reader::extra_parsing_for_operand_code_0): Convert
6748         return type from void to rtx, returning x.  When reading
6749         SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
6750         larger size containing struct block_symbol.
6751
6752 2017-03-10  Segher Boessenkool  <segher@kernel.crashing.org>
6753
6754         * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
6755         -mfloat128-hardware without -m64.
6756
6757 2017-03-10  Will Schmidt <will_schmidt@vnet.ibm.com>
6758
6759         PR target/79941
6760         * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
6761         entries to the case statement that marks unsigned arguments to
6762         overloaded functions.
6763
6764 2017-03-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
6765
6766         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
6767         two typographic errors in the handling of TARGET_UPPER_REGS_DI.
6768
6769 2017-03-10  Pat Haugen  <pthaugen@us.ibm.com>
6770
6771         PR target/79907
6772         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
6773         TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
6774
6775 2017-03-10  Martin Liska  <mliska@suse.cz>
6776
6777         PR target/65705
6778         PR target/69804
6779         * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
6780         * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
6781         FIELD != NULL.
6782
6783 2017-03-10  Olivier Hainque  <hainque@adacore.com>
6784
6785         * tree-switch-conversion (array_value_type): Start by resetting
6786         candidate type to it's main variant.
6787
6788 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
6789
6790         PR rtl-optimization/79909
6791         * combine.c (try_combine): Use simplify_replace_rtx on individual
6792         CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
6793         of the whole CALL_INSN_FUNCTION_USAGE.
6794
6795         PR tree-optimization/79972
6796         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
6797         get_range_info on SSA_NAMEs.  Formatting fixes.
6798
6799 2017-03-10  Richard Biener  <rguenther@suse.de>
6800             Jakub Jelinek  <jakub@redhat.com>
6801
6802         PR tree-optimization/77975
6803         * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
6804         edge to be constant.
6805         (get_val_for): For constant x return it.  Formatting fix.
6806         (loop_niter_by_eval): Avoid pointless looping if the next iteration
6807         would use the same bases as the current one.
6808
6809 2017-03-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6810
6811         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
6812         instead of vec_select for V1TImode.
6813         * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
6814         longer needed.
6815         (VSX_LE_128): Add V1TI to this mode iterator.
6816         (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
6817         (*vsx_le_perm_store_<mode>): Likewise.
6818         (pre-reload splitter for VSX stores): Likewise.
6819         (post-reload splitter for VSX stores): Likewise.
6820         (*vsx_xxpermdi2_le_<mode>): Likewise.
6821         (*vsx_lxvd2x2_le_<mode>): Likewise.
6822         (*vsx_stxvd2x2_le_<mode>): Likewise.
6823
6824 2017-03-09  Michael Eager  <eager@eagercon.com>
6825
6826         Correct failures with --enable-checking=yes,rtl.
6827
6828         * config/microblaze/microblaze.c (microblaze_expand_shift):
6829         Replace GET_CODE test with CONST_INT_P and INTVAL test with
6830         test for const0_rtx.
6831         * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
6832         lshrsi3_byone): Replace INTVAL with test for const1_rtx.
6833
6834 2017-03-09  Richard Biener  <rguenther@suse.de>
6835
6836         PR tree-optimization/79977
6837         * graphite-scop-detection.c (scop_detection::merge_sese):
6838         Handle the case of extra exits to blocks dominating the entry.
6839
6840 2017-03-09  Toma Tabacu  <toma.tabacu@imgtec.com>
6841
6842         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
6843         Document rdynamic.
6844
6845 2017-03-09  Vladimir Makarov  <vmakarov@redhat.com>
6846
6847         PR rtl-optimization/79949
6848         * lra-constraints.c (process_alt_operands): Check memory when
6849         trying to predict a cycle.  Print about the overall increase.
6850
6851 2017-03-09  Richard Biener  <rguenther@suse.de>
6852
6853         PR middle-end/79971
6854         * gimple-expr.c (useless_type_conversion_p): Preserve
6855         TYPE_SATURATING for fixed-point types.
6856
6857 2017-03-09  Richard Biener  <rguenther@suse.de>
6858
6859         PR ipa/79970
6860         * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
6861         alignment of BLKmode params.
6862
6863 2017-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6864
6865         PR target/79913
6866         * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
6867         (VALL_NO_V2Q): Likewise.
6868         (VDQF_DF): Delete.
6869         * config/aarch64/aarch64-simd.md
6870         (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
6871         iterator.
6872         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
6873         VALL_NO_V2Q mode iterator.
6874         (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
6875
6876 2017-03-09  Martin Liska  <mliska@suse.cz>
6877
6878         PR tree-optimization/79631
6879         * tree-chkp-opt.c (chkp_is_constant_addr): Call
6880         tree_int_cst_sign_bit just for INTEGER constants.
6881
6882 2017-03-09  Martin Liska  <mliska@suse.cz>
6883
6884         PR target/65705
6885         PR target/69804
6886         * toplev.c (process_options): Disable -fcheck-pointer-bounds with
6887         sanitizers.
6888
6889 2017-03-09  Marek Polacek  <polacek@redhat.com>
6890
6891         PR c++/79672
6892         * tree.c (inchash::add_expr): Handle TREE_VEC.
6893
6894 2017-03-09  Martin Liska  <mliska@suse.cz>
6895
6896         PR ipa/79764
6897         (chkp_narrow_size_and_offset): New function.
6898         (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
6899         (void chkp_parse_bit_field_ref): New function.
6900         (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
6901         (chkp_process_stmt): Use chkp_parse_bit_field_ref.
6902
6903 2017-03-09  Martin Liska  <mliska@suse.cz>
6904
6905         PR ipa/79761
6906         * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
6907         (chkp_find_bounds_1): Remove gcc_unreachable.
6908
6909 2017-03-09  Jakub Jelinek  <jakub@redhat.com>
6910
6911         PR sanitizer/79944
6912         * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
6913         BUILT_IN_SYNC*, determine the access type from the size suffix and
6914         always build a MEM_REF with that type.  Handle forgotten
6915         BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
6916
6917         PR target/79932
6918         * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
6919         _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
6920         _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
6921         _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
6922         _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
6923         _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
6924         _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
6925         _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
6926         _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
6927         _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
6928         _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
6929         _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
6930         _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
6931         _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
6932         _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
6933         _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
6934         _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
6935         _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
6936         _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
6937         _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
6938         _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
6939         _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
6940         _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
6941         _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
6942         _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
6943         _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
6944         _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
6945         _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
6946         _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
6947         _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
6948         definitions outside of __OPTIMIZE__ guarded section.
6949
6950         PR target/79932
6951         * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
6952         _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
6953         _mm512_packus_epi32, _mm512_maskz_packus_epi32,
6954         _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
6955         guarded section.
6956
6957 2017-03-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6958
6959         * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
6960         ("vfenez<mode>"): Add missing constraints.
6961
6962 2017-03-08  Martin Sebor  <msebor@redhat.com>
6963
6964         PR target/79928
6965         * config/nds32/nds32.c (nds32_option_override):
6966         Fix misspelled diagnostic.
6967
6968 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
6969
6970         PR c/79940
6971         * gimplify.c (gimplify_omp_for): Replace index var in outer
6972         taskloop statement with an artificial variable and add
6973         OMP_CLAUSE_PRIVATE clause for it.
6974
6975 2017-03-08  Richard Biener  <rguenther@suse.de>
6976
6977         PR tree-optimization/79955
6978         * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
6979         for accesses that are completely outside of the variable.
6980
6981 2017-03-08  Andrew Haley  <aph@redhat.com>
6982
6983         PR tree-optimization/79943
6984         * tree-ssa-loop-split.c (compute_new_first_bound): When
6985         calculating the new upper bound, (END-BEG) should be added, not
6986         subtracted.
6987
6988 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
6989
6990         * config/avr/avr.md (setmemhi): Make sure match_dup
6991         operand number comes before match_scratch.
6992
6993 2017-03-08  Richard Biener  <rguenther@suse.de>
6994
6995         PR tree-optimization/79920
6996         * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
6997         with ncopies == 1 to ...
6998         (vect_transform_slp_perm_load): ... here.  Properly compute
6999         all element loads by iterating VF times over the group.  Do
7000         not handle ncopies (computed in a broken way) in
7001         vect_create_mask_and_perm.
7002
7003 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
7004
7005         PR sanitizer/79904
7006         * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
7007         is a uniform vector, use uniform_vector_p return value instead of
7008         building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
7009
7010 2017-03-07  Marek Polacek  <polacek@redhat.com>
7011
7012         PR middle-end/79809
7013         * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
7014         (alloca_call_type): Likewise.
7015
7016 2017-03-07  Martin Liska  <mliska@suse.cz>
7017
7018         * gcov.c (process_args): Put comment to correct location.
7019
7020 2017-03-07  Martin Liska  <mliska@suse.cz>
7021
7022         PR middle-end/68270
7023         * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
7024         Use array_at_struct_end_p instead of DECL_CHAIN (field).
7025         (chkp_narrow_bounds_for_field): Likewise.
7026         (chkp_parse_array_and_component_ref): Pass one more argument to
7027         call.
7028
7029 2017-03-07  Richard Biener  <rguenther@suse.de>
7030
7031         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
7032         preheaders.
7033
7034 2017-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
7035
7036         * config/i386/i386.c (ix86_local_alignment): Align most aggregates
7037         of 16 bytes and more to 16 bytes, not those of 16 bits and more.
7038
7039 2017-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7040
7041         PR c/79855
7042         * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
7043         to end of description.
7044         (PARAM_MAX_STORES_TO_MERGE): Likewise.
7045
7046 2017-03-07  Jakub Jelinek  <jakub@redhat.com>
7047
7048         PR rtl-optimization/79901
7049         * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
7050         ...
7051         (*avx512f_<code><mode>3<mask_name>): ... this.
7052         (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
7053         iterator instead of VI8_AVX2_AVX512BW.
7054
7055         PR rtl-optimization/79901
7056         * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
7057         min/max expander, expand it using expand_vec_cond_expr.
7058
7059         PR sanitizer/79897
7060         * ubsan.c (ubsan_encode_value): Call mark_addressable on the
7061         temporary.
7062
7063 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
7064
7065         PR c++/79821
7066         * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
7067         to void * for PCH reasons.
7068         * dwarf2out.c (output_loc_operands, output_die): Cast
7069         v.val_vec.array to unsigned char *.
7070
7071 2017-03-06  John David Anglin  <danglin@gcc.gnu.org>
7072
7073         PR target/77850
7074         * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
7075         vector types.
7076
7077 2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>
7078
7079         PR rtl-optimization/79571
7080         * lra-constraints.c (process_alt_operands): Calculate static
7081         reject and subtract it from overall when only addresses will be
7082         reloaded.
7083
7084 2017-03-06  Julia Koval  <julia.koval@intel.com>
7085
7086         PR target/79793
7087         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
7088         incoming stack boundary to 128 for 64-bit targets.
7089
7090 2017-03-06  Richard Biener  <rguenther@suse.de>
7091
7092         PR tree-optimization/79894
7093         * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
7094         to NULL after folding it.
7095
7096 2017-03-06  Richard Biener  <rguenther@suse.de>
7097
7098         PR tree-optimization/79824
7099         * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
7100         check disabling peeling for gaps.
7101
7102 2017-03-06  Toma Tabacu  <toma.tabacu@imgtec.com>
7103
7104         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
7105         attributes): Document gettimeofday.
7106
7107 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
7108
7109         * config/s390/s390.c (s390_option_override_internal): Set
7110         PARAM_MIN_VECT_LOOP_BOUND
7111
7112 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
7113
7114         * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
7115         * config/s390/s390.md: Likewise.
7116
7117 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
7118
7119         PR target/79812
7120         * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
7121         (<avx2_avx512>_perm<mode>): Rename to ...
7122         (avx2_perm<mode>): ... this.  Use VI8F_256 iterator instead
7123         of VI8F_256_512.
7124         (<avx512>_perm<mode>_mask): Rename to ...
7125         (avx512vl_perm<mode>_mask): ... this.  Use VI8F_256 iterator instead
7126         of VI8F_256_512.
7127         (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
7128         (avx2_perm<mode>_1<mask_name): ... this.  Use VI8F_256 iterator
7129         instead of VI8F_256_512.
7130         (avx512f_perm<mode>): New define_expand.
7131         (avx512f_perm<mode>_mask): Likewise.
7132         (avx512f_perm<mode>_1<mask_name>): New define_insn.
7133         (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
7134
7135 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
7136
7137         * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
7138         msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
7139         if_then_else.
7140         (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
7141
7142 2017-03-06  Martin Liska  <mliska@suse.cz>
7143
7144         PR sanitize/79783
7145         * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
7146         when having a SSA NAME w/o VAR_DECL assigned to it.
7147
7148 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
7149
7150         * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
7151         msa_dpsub_<su>_d): Fix MODE for vec_select.
7152
7153 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
7154
7155         * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
7156         argument.
7157         * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
7158
7159 2017-03-06  Richard Biener  <rguenther@suse.de>
7160
7161         * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
7162         * plugin.c (register_plugin_info): Likewise.
7163         * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
7164
7165 2017-03-05  Jakub Jelinek  <jakub@redhat.com>
7166
7167         * config/i386/sse.md (sse_storehps, sse_storelps,
7168         avx_<castmode><avxsizesuffix>_<castmode>,
7169         avx512f_<castmode><avxsizesuffix>_<castmode>,
7170         avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
7171         in condition that at least one operand is not a MEM.
7172
7173 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
7174
7175         PR middle-end/79805
7176         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
7177         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
7178         ECF_NOTHROW.
7179         * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
7180         gimple_call_nothrow_p flag based on whether original builtin can throw.
7181         If it can, emit following stmts on the fallthrough edge.
7182         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
7183         don't create new bb if inserting just debug stmts on the edge, try to
7184         insert them on the fallthru bb or just reset debug stmts.
7185
7186 2017-03-03  Segher Boesssenkool  <segher@kernel.crashing.org>
7187
7188         PR target/43763
7189         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
7190         restore recog_data (including the operand rtxes inside it) around
7191         the call to get_insn_template.
7192
7193 2017-03-03  Martin Sebor  <msebor@redhat.com>
7194
7195         PR tree-optimization/79699
7196         * context.c (context::~context): Free MPFR caches to avoid
7197         a memory leak on program exit.
7198
7199 2017-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7200
7201         * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
7202         Use wide_int::ulow () instead of .elt (0).
7203
7204 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
7205
7206         * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
7207         (*pushxf): Limit oF constraint to 32bit targets and add oC
7208         constraint for 64bit targets.
7209         (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
7210         (*pushdf): Change rmF constraint to rmC.
7211
7212 2017-03-03  Martin Liska  <mliska@suse.cz>
7213
7214         * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
7215         Remove unused variable.
7216
7217 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
7218
7219         PR target/79807
7220         * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
7221         is a memory operand, increase num_memory.
7222         (ix86_expand_args_builtin): Likewise.
7223
7224 2017-03-03  Jan Hubicka  <jh@suse.cz>
7225
7226         PR lto/79760
7227         * ipa-devirt.c (maybe_record_node): Properly handle
7228         __cxa_pure_virtual visibility.
7229
7230 2017-03-03  Martin Liska  <mliska@suse.cz>
7231
7232         PR tree-optimization/79803
7233         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
7234         assert.
7235         (pass_loop_prefetch::execute): Disabled optimization if an
7236         assumption about L1 cache size is not met.
7237
7238 2017-03-03  Martin Liska  <mliska@suse.cz>
7239
7240         PR rtl-optimization/79574
7241         * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
7242         (hash_scan_set): Likewise.
7243         (dump_hash_table): Likewise.
7244         (hoist_code): Likewise.
7245
7246 2017-03-03  Richard Biener  <rguenther@suse.de>
7247
7248         * fixed-value.c (fixed_from_string): Restore use of elt (1)
7249         in place of uhigh ().
7250         (fixed_convert_from_real): Likewise.
7251
7252 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
7253
7254         PR target/79514
7255         * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
7256
7257 2017-03-03  Richard Biener  <rguenther@suse.de>
7258
7259         PR middle-end/79818
7260         * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
7261         TYPE_OVERFLOW_UNDEFINED check.
7262
7263 2017-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7264
7265         * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
7266         numbers.
7267         (vector_ae_<mode>_p): Likewise.
7268         (vector_nez_<mode>_p): Likewise.
7269         (vector_ne_v2di_p): Likewise.
7270         (vector_ae_v2di_p): Likewise.
7271         (vector_ne_<mode>_p): Likewise.
7272         * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
7273         numbers.
7274         (vsx_tsqrt<mode>2_fe): Likewise.
7275
7276 2017-03-02  Uros Bizjak  <ubizjak@gmail.com>
7277
7278         PR target/79514
7279         * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
7280
7281 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
7282
7283         PR rtl-optimization/79780
7284         * cprop.c (one_cprop_pass): When second and further conditional trap
7285         in a single basic block is turned into an unconditional trap, turn it
7286         into a deleted note to avoid RTL verification failures.
7287
7288 2017-03-02  Richard Biener  <rguenther@suse.de>
7289
7290         * fold-const.c (const_binop): Use ulow () instead of elt (0).
7291
7292 2017-03-02  Richard Biener  <rguenther@suse.de>
7293
7294         PR tree-optimization/79345
7295         PR c++/42000
7296         * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
7297         param and abort the walk, returning -1 if it is hit.
7298         (walk_aliased_vdefs): Take a limit param and pass it on.
7299         * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
7300         defaulting to 0 and return a signed int.
7301         * tree-ssa-uninit.c (struct check_defs_data): New struct.
7302         (check_defs): New helper.
7303         (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
7304         about uninitialized memory.
7305         * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
7306         bogus uninitialized warning.
7307         (fixed_convert_from_real): Likewise.
7308
7309 2017-03-02  Bin Cheng  <bin.cheng@arm.com>
7310
7311         PR tree-optimization/66768
7312         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
7313         iv_use if base object can't be determined.
7314
7315 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
7316
7317         PR tree-optimization/79345
7318         * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
7319         * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
7320         (get_pattern_stats): Initialize it.
7321         * genemit.c (gen_expand): Verify match_scratch numbers come after
7322         match_operand/match_dup numbers.
7323         * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
7324         match_scratch numbers.
7325         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
7326         Likewise.
7327         * config/s390/s390.md (trunctdsd2): Likewise.
7328
7329 2017-03-02  Richard Biener  <rguenther@suse.de>
7330
7331         * wide-int.h (wide_int_storage::operator=): Implement in terms
7332         of wi::copy.
7333
7334 2017-03-02  Richard Biener  <rguenther@suse.de>
7335
7336         PR tree-optimization/79777
7337         * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
7338         the to insert expression to sth existing.
7339
7340 2017-03-01  Martin Sebor  <msebor@redhat.com>
7341
7342         PR middle-end/79692
7343         * gimple-ssa-sprintf.c
7344         (directive::known_width_and_precision): New function.
7345         (format_integer): Use it.
7346         (get_mpfr_format_length): Consider the full range of precision
7347         when computing %g output with the # flag.  Set the likely byte
7348         count to 3 rather than 1 when precision is indeterminate.
7349         (format_floating): Correct the lower bound of precision.
7350
7351 2017-03-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7352
7353         * doc/invoke.texi: Document default code model for 64-bit Linux.
7354
7355 2017-03-01  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
7356
7357         PR target/79752
7358         * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
7359         udiv rather than div since input pattern is unsigned.
7360
7361 2017-03-01  Uros Bizjak  <ubizjak@gmail.com>
7362
7363         * config/i386/i386.c (print_reg): Warn for values of
7364         unsupported size in integer register.
7365
7366 2017-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
7367
7368         PR target/79439
7369         * config/rs6000/predicates.md (current_file_function_operand): Do
7370         not allow self calls to be local if the function is replaceable.
7371
7372 2017-03-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
7373
7374         PR target/79395
7375         * config/rs6000/altivec.h (vec_ctz and others): Change the
7376         preprocessor macro that controls conditional compilation from
7377         _ARCH_PWR9 to __POWER9_VECTOR__.
7378         (vec_all_ne): Change parameterization of __altivec_scalar_pred
7379         macro expansion under preprocessor #ifdef __POWER9_VECTOR__
7380         control (instead of _ARCH_PWR9 control) so that template
7381         definition uses power9-specific function.
7382         (vec_any_eq): Likewise.
7383         (vec_all_ne): Change macro definition to use a power9-specific
7384         expansion under #ifdef __POWER9_VECTOR__ control (instead of
7385         _ARCH_PWR9 control).
7386         (vec_any_eq) Likewise.
7387         * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
7388         expansion for CMPNEF to remove support for xvcmpnesp instruction.
7389         (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
7390         support for xvcmpnedp instruction.
7391         (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
7392         macro expansion so that Power9 implementation of vec_all_ne does
7393         not use the AltiVec predicate framework.
7394         (VCMPNEH_P): Likewise.
7395         (VCMPNEW_P): Likewise.
7396         (VCMPNED_P): Likewise.
7397         (VCMPNEFP_P): Likewise.
7398         (VCMPNEDP_P): Likewise.
7399         (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
7400         implementation of vec_any_eq to not use AltiVec predicate
7401         framework.
7402         (VCMPAEH_P): Likewise.
7403         (VCMPAEW_P): Likewise.
7404         (VCMPAED_P): Likewise.
7405         (VCMPAEFP_P): Likewise.
7406         (VCMPAEDP_P): Likewise.
7407         (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
7408         BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
7409         not use the AltiVec predicate framework.
7410         (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
7411         of vec_any_eq to not use AltiVec predicate framework.
7412         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
7413         support for predefined __POWER9_VECTOR__ macro to indicate that
7414         Power9 instruction selection is enabled.
7415         (altivec_overloaded_builtins): Remove extraneous
7416         ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
7417         function argument types RS6000_BTI_bool_V16QI and
7418         RS6000_BTI_bool_V16QI.  Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
7419         entry for overloaded function argument types RS6000_BTI_bool_V4SI
7420         andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB.  Remove
7421         two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
7422         P9V_BUILTIN_CMPNEF to force use of instructions not specific to
7423         Power9 for implementations of vec_cmpne.  Change the signature for
7424         all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
7425         (representing vec_all_ne) to remove the previously described first
7426         argument of type RS6000_BTI_INTSI, as this was an artifact of
7427         reliance on the AltiVec predicate framework, which is no longer
7428         used in the implementation of these functions.  Add
7429         P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
7430         function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
7431         since, unlike the AltiVec predicate framework implementation, we
7432         do not share function descriptors between vec_alle and vec_anyeq.
7433         (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
7434         set of modes that receive special treatment even when
7435         TARGET_P9_VECTOR is true.  The special treatment emits code that
7436         does not depend on Power9 instructions.
7437         * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
7438         define_expand to not rely on AltiVec predicate framework.
7439         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
7440         function.
7441         (vector_ne_v2di_p): Change this define_expand to not rely on
7442         AltiVec predicate framework.
7443         (vector_ae_v2di_p): New define_expand to represent vec_any_eq
7444         function.
7445         (vector_ne_<mode>_p): Change this define_expand to not rely on
7446         AltiVec predicate framework.
7447         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
7448         function.
7449         * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
7450         (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
7451         define_insn pattern.
7452         (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
7453         define_insn pattern because the xvcmpne<VSs>. instruction is not
7454         supported.
7455         (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
7456         instruction is not supported.
7457
7458 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
7459
7460         * config/nvptx/nvptx.c: Include intl.h.
7461
7462 2017-03-01  Martin Jambor  <mjambor@suse.cz>
7463
7464         PR lto/78140
7465         * ipa-prop.h (ipa_bits): Removed field known.
7466         (ipa_jump_func): Removed field vr_known.  Changed fields bits and m_vr
7467         to pointers.  Adjusted their comments to warn about their sharing.
7468         (ipcp_transformation_summary): Change bits to a vector of pointers.
7469         (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
7470         (ipa_get_ipa_bits_for_value): Declare.
7471         * tree-vrp.h (value_range): Mark as GTY((for_user)).
7472         * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
7473         (ipa_bits_hash_table): Likewise.
7474         (ipa_vr_ggc_hash_traits): Likewise.
7475         (ipa_vr_hash_table): Likewise.
7476         (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
7477         being pointers and vr_known being removed.
7478         (ipa_set_jf_unknown): Likewise.
7479         (ipa_get_ipa_bits_for_value): New function.
7480         (ipa_set_jfunc_bits): Likewise.
7481         (ipa_get_value_range): New overloaded functions.
7482         (ipa_set_jfunc_vr): Likewise.
7483         (ipa_compute_jump_functions_for_edge): Use the above functions to
7484         construct bits and vr parts of jump functions.
7485         (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
7486         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
7487         exist.
7488         (ipcp_grow_transformations_if_necessary): Also allocate
7489         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
7490         exist.
7491         (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
7492         them.  Fix too long lines.
7493         (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
7494         vr_known being removed.
7495         (ipa_read_jump_function): Use new setter functions to construct bits
7496         and vr parts of jump functions or set them to NULL.
7497         (write_ipcp_transformation_info): Adjust for bits being pointers.
7498         (read_ipcp_transformation_info): Likewise.
7499         (ipcp_update_bits): Likewise.  Fix excessively long lines a trailing
7500         space.
7501         Include gt-ipa-prop.h.
7502         * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
7503         being pointers.
7504         (ipcp_store_bits_results): Likewise.
7505         (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
7506         Do not write to existing jump functions but use a temporary instead.
7507
7508 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
7509
7510         PR c++/79681
7511         * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
7512         attempt to use its first operand as BIT_FIELD_REF base.
7513
7514 2017-03-01  Richard Biener  <rguenther@suse.de>
7515
7516         PR middle-end/79721
7517         * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
7518         interpolating formula in wrapping arithmetic.
7519         (chrec_apply): Convert chrec_evaluate return value to wanted type.
7520
7521 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
7522
7523         PR tree-optimization/79734
7524         * tree-vect-generic.c (expand_vector_condition): Optimize
7525         AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
7526         Handle VEC_COND_EXPR where comparison has different inner width from
7527         type's inner width.
7528
7529 2017-02-28  Sandra Loosemore  <sandra@codesourcery.com>
7530
7531         * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
7532         markup, and similar issues.  Remove @opindex entries for things
7533         that aren't options.  Add missing -mmpy-option entries.
7534
7535 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
7536
7537         PR tree-optimization/79737
7538         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
7539         a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
7540         tmpbuf[byte_size - 1].  Call natice_encode_expr with byte_size - 1
7541         instead of byte_size.  Formatting fix.
7542         (shift_bytes_in_array_right): Formatting fix.
7543
7544 2017-02-28  Eric Botcazou  <ebotcazou@adacore.com>
7545
7546         PR target/79749
7547         * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
7548         condition on optimize for the leaf function test.
7549
7550 2017-02-28  Martin Liska  <mliska@suse.cz>
7551
7552         PR lto/79625
7553         * read-rtl-function.c (function_reader::handle_unknown_directive):
7554         Bail out when one uses -flto.
7555
7556 2017-02-28  Martin Liska  <mliska@suse.cz>
7557
7558         * common.opt: Replace space with tabular for options of <number>
7559         type.
7560         * config/i386/i386.opt: Show <number> value for
7561         -mlarge-data-threshold.
7562         * opts.c (print_filtered_help): Do not display number in hexadecimal
7563         format.
7564
7565 2017-02-28  Martin Liska  <mliska@suse.cz>
7566
7567         * common.opt: Fix --help=option -Q for options which are of
7568         an enum type.
7569
7570 2017-02-28  Uros Bizjak  <ubizjak@gmail.com>
7571
7572         * config/i386/i386.c (print_reg): Error out for values
7573         of 8-bit size in invalid integer register.
7574
7575 2017-02-28  Martin Sebor  <msebor@redhat.com>
7576
7577         PR tree-optimization/79691
7578         * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
7579
7580 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
7581
7582         PR target/79729
7583         * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
7584         gcc_unreachable with output_operand_lossage.
7585
7586 2017-02-28  Richard Biener  <rguenther@suse.de>
7587
7588         PR tree-optimization/79740
7589         * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
7590         inserts.
7591         (visit_nary_op): Insert the nary into the hashtable if we
7592         pattern-matched sth.
7593         * tree-ssa-pre.c (eliminate_insert): Robustify.
7594
7595 2017-02-28  Richard Biener  <rguenther@suse.de>
7596
7597         PR middle-end/79731
7598         * fold-const.c (decode_field_reference): Reject out-of-bound
7599         accesses.
7600
7601 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
7602
7603         * config/i386/i386.c: Include intl.h.
7604         (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
7605         instead of just cond ? "..." : "...".
7606         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
7607         * coverage.c (read_counts_file): Likewise.
7608         * omp-offload.c: Include intl.h.
7609         (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
7610         of just cond ? "..." : "...".
7611         * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
7612         of just cond ? "..." : "...".
7613
7614 2017-02-28  Richard Earnshaw  <rearnsha@arm.com>
7615
7616         PR target/79742
7617         * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
7618         entry, if present.
7619         * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
7620         'tune for' CPU name.
7621         * config/arm/arm-cpu-data.h: Regenerated.
7622
7623 2017-02-28  Richard Biener  <rguenther@suse.de>
7624
7625         PR tree-optimization/79732
7626         * tree-inline.c (expand_call_inline): Do not shadow var.
7627
7628 2017-02-28  Richard Biener  <rguenther@suse.de>
7629
7630         PR tree-optimization/79723
7631         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
7632         address-space properly.
7633
7634 2017-02-28  Thomas Schwinge  <thomas@codesourcery.com>
7635
7636         * doc/optinfo.texi (Optimization groups): Fix option used for
7637         OPTGROUP_ALL.
7638         * doc/invoke.texi (-fopt-info): Document "omp".
7639         * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
7640         (OPTGROUP_ALL): Add OPTGROUP_OMP.
7641         * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
7642         * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
7643         * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
7644
7645         * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP.  Adjust
7646         all users.
7647         * dumpfile.c (optgroup_options): Instead of "openmp", associate
7648         OPTGROUP_OMP with "omp".
7649
7650 2017-02-27  Pat Haugen  <pthaugen@us.ibm.com>
7651
7652         PR target/79544
7653         * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
7654         for arithmetic shift of unsigned V2DI.
7655
7656 2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>
7657
7658         * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
7659         arc/linux.h headers.
7660         * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
7661         (LINK_SPEC): Likewise.
7662         (ARC_TLS_EXTRA_START_SPEC): Likewise.
7663         (EXTRA_SPECS): Likewise.
7664         (STARTFILE_SPEC): Likewise.
7665         (ENDFILE_SPEC): Likewise.
7666         (LIB_SPEC): Likewise.
7667         (TARGET_SDATA_DEFAULT): Likewise.
7668         (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
7669         (MULTILIB_DEFAULTS): Likewise.
7670         (DWARF2_UNWIND_INFO): Likewise.
7671         * config/arc/big.h: New file.
7672         * config/arc/elf.h: Likewise.
7673         * config/arc/linux.h: Likewise.
7674         * config/arc/t-uClibc: Remove.
7675
7676 2017-02-27  Bin Cheng  <bin.cheng@arm.com>
7677
7678         PR tree-optimization/77536
7679         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
7680         (tree_transform_and_unroll_loop): Use above function to compute the
7681         estimated niter of unrolled loop and use it when scaling profile.
7682         Also use count info rather than frequency if it's non-zero.
7683         * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
7684         * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
7685         (vect_transform_loop): Call above function.
7686
7687 2017-02-27  Richard Biener  <rguenther@suse.de>
7688
7689         PR tree-optimization/45397
7690         * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
7691         * tree-ssa-sccvn.c (valueized_wider_op): New helper.
7692         (visit_nary_op): Add pattern matching for CSEing sign-changed
7693         or truncated operations with wider ones.
7694
7695 2017-02-27  Richard Biener  <rguenther@suse.de>
7696
7697         PR tree-optimization/79690
7698         * tree-vect-stmts.c (vectorizable_store): Use vector type
7699         built from the DR with address-space.
7700
7701 2017-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
7702
7703         * doc/invoke.texi (Optimize Options): Refine the description
7704         of asan-use-after-return.
7705
7706 2017-02-25  Alan Modra  <amodra@gmail.com>
7707
7708         PR rtl-optimization/79584
7709         * lra-constraints.c (base_to_reg): Reload ad->base, the entire
7710         base, not ad->base_term, the reg within base.  Remove assertion
7711         that ad->base == ad->base_term.  Replace gen_int_mode using
7712         bogus mode with const0_rtx.
7713
7714 2017-02-25  Jakub Jelinek  <jakub@redhat.com>
7715
7716         PR middle-end/79396
7717         * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
7718         FMA_EXPR like tcc_binary or tcc_unary.
7719
7720         * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
7721
7722         PR debug/77589
7723         * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
7724         bitfield.
7725         (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
7726         (output_loc_operands): Handle DW_OP_call_ref and
7727         DW_OP_GNU_variable_value.
7728         (struct variable_value_struct): New type.
7729         (struct variable_value_hasher): Likewise.
7730         (variable_value_hash): New variable.
7731         (string_types): Remove.
7732         (copy_loc_descr): New function.
7733         (add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
7734         (prepend_loc_descr_to_each): New function.
7735         (add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
7736         instead of add_loc_descr_to_each if the first argument is single
7737         location list and the second has multiple.
7738         (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
7739         (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
7740         when looking for variable value which doesn't have other location info.
7741         (loc_list_from_tree): Formatting fix.
7742         (gen_array_type_die): Simplify DW_AT_string_length handling.
7743         (adjust_string_types): Remove.
7744         (gen_subprogram_die): Don't call adjust_string_types nor test/set
7745         string_types.  Call resolve_variable_values.
7746         (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
7747         (resolve_addr_in_expr): Likewise.  Add A argument.
7748         (copy_deref_exprloc): Remove deref argument.  Adjust for the
7749         original expression being DW_OP_GNU_variable_value with optionally
7750         DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
7751         optionally after it.
7752         (optimize_string_length): Rework for DW_OP_GNU_variable_value.
7753         (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
7754         callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
7755         (variable_value_hasher::hash, variable_value_hasher::equal): New
7756         methods.
7757         (resolve_variable_value_in_expr, resolve_variable_value,
7758         resolve_variable_values, note_variable_value_in_expr,
7759         note_variable_value): New functions.
7760         (dwarf2out_early_finish): Call note_variable_value on all toplevel
7761         DIEs.
7762
7763 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
7764
7765         PR c/79677
7766         * opts.h (handle_generated_option): Add GENERATED_P argument.
7767         * opts-common.c (handle_option): Adjust function comment.
7768         (handle_generated_option): Add GENERATED_P argument, pass it to
7769         handle_option.
7770         (control_warning_option): Pass false to handle_generated_option
7771         GENERATED_P.
7772         * opts.c (maybe_default_option): Pass true to handle_generated_option
7773         GENERATED_P.
7774         * optc-gen.awk: Likewise.
7775
7776 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
7777
7778         * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
7779         a REG, look at the REG it is a SUBREG of.
7780         (splitter for cmpeqsi_t): Ditto.
7781
7782 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
7783
7784         * config/pa/pa.c (pa_combine_instructions): Do not share RTL.  Make
7785         the special USEs with the pattern of the insn, not the insn itself.
7786
7787 2017-02-24  Matthew Fortune  <matthew.fortune@imgtec.com>
7788
7789         PR target/79473
7790         * doc/invoke.texi: Document -mload-store-pairs.
7791
7792 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
7793             Sandra Loosemore  <sandra@codesourcery.com>
7794
7795         * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
7796         argument isn't a CONST_INT.
7797         (nios2_alternate_compare_const): Assert op is a CONST_INT.
7798         (nios2_valid_compare_const_p): Assert op is a CONST_INT.
7799         (nios2_validate_compare): Bypass alternate compare logic if *op2
7800         is not a CONST_INT.
7801         (ldstwm_operation_p): Return false if first_base is not a REG or
7802         if first_offset is not a CONST_INT.
7803
7804 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
7805
7806         * config/cris/cris.md: Use correct operand in a define_peephole2.
7807
7808 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
7809
7810         * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
7811
7812 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
7813
7814         * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
7815         this_insn if it is an INSN or JUMP_INSN.
7816         (force_offsettable): Look at base, not at addr.
7817         * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
7818         on things that aren't necessarily CONST_INTs.
7819
7820 2017-02-24  Uros Bizjak  <ubizjak@gmail.com>
7821
7822         * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
7823         -mfpmath=sse is the default also for x86-32 targets with SSE2
7824         instruction set when @option{-ffast-math} is enabled
7825
7826 2017-02-24  Jeff Law  <law@redhat.com>
7827
7828         PR rtl-optimizatoin/79286
7829         * ira.c (update_equiv_regs): Drop may_trap_p exception to
7830         dominance test.
7831
7832 2017-02-24  Richard Biener  <rguenther@suse.de>
7833
7834         PR tree-optimization/79389
7835         * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
7836         debug insns.
7837
7838 2017-02-24  Aldy Hernandez  <aldyh@redhat.com>
7839
7840         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
7841         function comment to reflect reality.
7842         (loop_exits_before_overflow): Fix typo in function description.
7843
7844 2017-02-24  Richard Biener  <rguenther@suse.de>
7845
7846         PR tree-optimization/79389
7847         * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
7848         properly that a threading opportunity exists.  Detect conditional
7849         copy/constant propagation opportunities.
7850
7851 2017-02-23  Eric Botcazou  <ebotcazou@adacore.com>
7852
7853         * config/visium/visium.md (type): Add trap.
7854         (b): New mode attribute.
7855         (*btst): Rename into...
7856         (*btst<mode>): ...this and adjust.
7857         (*cbranchsi4_btst_insn): Rename into...
7858         (*cbranch<mode>4_btst_insn): ...this and adjust.
7859         (trap): New define_insn.
7860
7861 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
7862
7863         PR tree-optimization/79389
7864         * ifcvt.c (struct noce_if_info): Add rev_cond field.
7865         (noce_reversed_cond_code): New function.
7866         (noce_emit_store_flag): Use rev_cond if non-NULL instead of
7867         reversed_comparison_code.  Formatting fix.
7868         (noce_try_store_flag): Test rev_cond != NULL in addition to
7869         reversed_comparison_code.
7870         (noce_try_store_flag_constants): Likewise.
7871         (noce_try_store_flag_mask): Likewise.
7872         (noce_try_addcc): Use rev_cond if non-NULL instead of
7873         reversed_comparison_code.
7874         (noce_try_cmove_arith): Likewise.  Formatting fixes.
7875         (noce_try_minmax, noce_try_abs): Clear rev_cond.
7876         (noce_find_if_block): Initialize rev_cond.
7877         (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
7878         instead of false as last argument never attempt to reverse it
7879         afterwards.
7880
7881 2017-02-23  Bin Cheng  <bin.cheng@arm.com>
7882
7883         PR tree-optimization/79663
7884         * tree-predcom.c (combine_chains): Process refs in reverse order
7885         only for ZERO length chains, and add explaining comment.
7886
7887 2017-02-23  Jeff Law  <law@redhat.com>
7888
7889         PR tree-optimization/79578
7890         * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
7891         in call to operand_equal_p.
7892
7893 2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>
7894
7895         PR target/71017
7896         * config/i386/cpuid.h: Fix another undefined behavior.
7897
7898 2017-02-23  Richard Biener  <rguenther@suse.de>
7899
7900         PR tree-optimization/79683
7901         * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
7902         vector types for data-refs.
7903
7904 2017-02-23  Martin Liska  <mliska@suse.cz>
7905
7906         * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
7907
7908 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
7909
7910         PR middle-end/79665
7911         * internal-fn.c (get_range_pos_neg): Moved to ...
7912         * tree.c (get_range_pos_neg): ... here.  No longer static.
7913         * tree.h (get_range_pos_neg): New prototype.
7914         * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
7915         are known to be in between 0 and signed maximum inclusive, try to
7916         expand both unsigned and signed divmod and use the cheaper one from
7917         those.
7918
7919 2017-02-22  Jeff Law  <law@redhat.com>
7920
7921         PR tree-optimization/79578
7922         * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
7923         to compare base operands.
7924
7925 2017-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
7926
7927         PR target/79211
7928         * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
7929         gpc_reg_operand instead of fpr_reg_operand.
7930
7931 2017-02-22  Sameera Deshpande  <sameera.deshpande@imgtec.com>
7932
7933         * config/mips/mips.c (mips_return_in_memory): Force FP
7934         vector types to be returned in memory for o32 ABI.
7935
7936 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
7937
7938         * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
7939         instead of DW_TAG_member for static data member declarations and don't
7940         set no_linkage_name for static inline data members.
7941         (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
7942         to DW_TAG_member.
7943
7944 2017-02-22  Martin Liska  <mliska@suse.cz>
7945
7946         * doc/invoke.texi: Replace inequality signs with square brackets
7947         for -Wnormalized.
7948
7949 2017-02-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7950
7951         PR tree-optimization/68644
7952         * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
7953
7954 2017-02-22  Matthew Fortune  <matthew.fortune@imgtec.com>
7955
7956         PR target/78660
7957         * lra-constraints.c (simplify_operand_subreg): Handle
7958         WORD_REGISTER_OPERATIONS targets.
7959
7960 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
7961
7962         PR target/70465
7963         * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
7964         and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
7965         elimination by swapping fld*.
7966
7967 2017-02-22  Richard Biener  <rguenther@suse.de>
7968
7969         PR tree-optimization/79673
7970         * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
7971         convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
7972         irrelevant address-space qualifiers and avoiding a
7973         ADDR_SPACE_CONVERT_EXPR from fold_convert.
7974
7975 2017-02-22  Richard Biener  <rguenther@suse.de>
7976
7977         PR tree-optimization/79666
7978         * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
7979         to not symbolically negate if that may introduce undefined
7980         overflow.
7981
7982 2017-02-22  Martin Liska  <mliska@suse.cz>
7983
7984         PR lto/79587
7985         * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
7986         * data-streamer-out.c (streamer_write_gcov_count_stream):
7987         Likewise.
7988         * value-prof.c (stream_out_histogram_value): Make assert more
7989         precise based on type of counter.
7990
7991 2017-02-21  Uros Bizjak  <ubizjak@gmail.com>
7992
7993         PR target/79593
7994         * config/i386/i386.md (standard_x87sse_constant_load splitter):
7995         Use nonimmediate_operand instead of memory_operand for operand 1.
7996         (float-extend standard_x87sse_constant_load splitter): Ditto.
7997
7998 2017-02-21  Jeff Law  <law@redhat.com>
7999
8000         PR tree-optimization/79621
8001         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
8002         blocks with edges to themselves.
8003
8004 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
8005
8006         PR target/79633
8007         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
8008         is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
8009         Use gimple_call_builtin_p.
8010
8011         PR target/79570
8012         * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
8013         on temporarily removed DEBUG_INSNs.
8014
8015         PR tree-optimization/79649
8016         * tree-loop-distribution.c (classify_partition): Give up on
8017         non-generic address space loads/stores.
8018
8019 2017-02-21  Aldy Hernandez  <aldyh@redhat.com>
8020
8021         * doc/loop.texi (Loop manipulation): Remove nonexistent
8022         tree_ssa_loop_version from the documentation.
8023         * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
8024
8025 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
8026
8027         PR target/79494
8028         * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
8029         make_reg_eh_region_note_nothrow_nononlocal on call_insn.
8030         * config/rs6000/rs6000.c: Include except.h.
8031         (rs6000_expand_split_stack_prologue): Call
8032         make_reg_eh_region_note_nothrow_nononlocal on the call insn.
8033
8034 2017-02-21  Martin Jambor  <mjambor@suse.cz>
8035
8036         PR lto/79579
8037         * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
8038         have been analyzed.
8039
8040 2017-02-21  Martin Jambor  <mjambor@suse.cz>
8041
8042         * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
8043         for backward compatibility only.
8044         * doc/invoke.texi (Option Summary): Remove all references to
8045         -fipa-cp-alignment.
8046
8047 2017-02-21  Matthew Fortune  <matthew.fortune@imgtec.com>
8048
8049         PR target/78660
8050         Revert:
8051         2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
8052
8053         * lra-constraints.c (curr_insn_transform): Handle
8054         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
8055
8056 2017-02-21  Martin Liska  <mliska@suse.cz>
8057
8058         * config/i386/i386.opt: Replace -masm-dialect with -masm.
8059
8060 2017-02-21  Thomas Schwinge  <thomas@codesourcery.com>
8061
8062         PR translation/79638
8063         * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
8064
8065 2017-02-21  Eric Botcazou  <ebotcazou@adacore.com>
8066
8067         PR ada/67205
8068         * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
8069         (arm_function_ok_for_sibcall): Return false for an indirect call by
8070         descriptor if all the argument registers are used.
8071         (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
8072         alignment of the function.
8073
8074 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
8075
8076         PR tree-optimization/61441
8077         * simplify-rtx.c (simplify_const_unary_operation): For
8078         -fsignaling-nans and sNaN operand, return NULL_RTX rather than
8079         the sNaN unmodified.
8080
8081 2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8082
8083         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
8084         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
8085         instead of SYSTEM_HEADER_DIR.
8086
8087 2017-02-20  Gerald Pfeifer  <gerald@pfeifer.com>
8088             Martin LiÅ¡ka  <mliska@suse.cz>
8089
8090         * doc/invoke.texi (use-after-scope-direct-emission-threshold):
8091         Fix typos and grammar, use active voice, and clarify.
8092
8093 2017-02-20  Marek Polacek  <polacek@redhat.com>
8094
8095         PR middle-end/79537
8096         * gimplify.c (gimplify_expr): Handle unused *&&L;.
8097
8098         PR sanitizer/79558
8099         * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
8100
8101 2017-02-20  Jakub Jelinek  <jakub@redhat.com>
8102
8103         PR target/79568
8104         * config/i386/i386.c (ix86_expand_builtin): Handle
8105         OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
8106         ix86_builtins_isa[fcode].isa as a requirement of those
8107         flags and any other flag in the bitmask.
8108         (ix86_init_mmx_sse_builtins): Use 0 instead of
8109         ~OPTION_MASK_ISA_64BIT as mask.
8110         * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
8111         __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
8112         __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
8113         __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
8114
8115 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
8116
8117         PR target/78012
8118         * lra-constraints.c (split_reg): Check requested split mode
8119         is supported by the register.
8120
8121 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
8122
8123         * lra-constraints.c (simplify_operand_subreg): Remove early
8124         return false.
8125
8126 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
8127
8128         PR target/78660
8129         * lra-constraints.c (curr_insn_transform): Tighten condition
8130         for converting SUBREG reloads from OP_OUT to OP_INOUT.
8131
8132 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
8133
8134         PR target/78660
8135         * lra-constraints.c (curr_insn_transform): Handle
8136         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
8137
8138 2017-02-19  Uros Bizjak  <ubizjak@gmail.com>
8139
8140         Revert:
8141         2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
8142
8143         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
8144
8145 2017-02-19  Jonathan Wakely  <jwakely@redhat.com>
8146
8147         PR c++/69523
8148         * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
8149         description.
8150
8151 2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8152
8153         * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
8154         for FMA_EXPR.
8155
8156 2017-02-18  Jakub Jelinek  <jakub@redhat.com>
8157
8158         * final.c (last_columnnum, override_columnnum): New variables.
8159         (final_start_function): Set last_columnnum, pass it to begin_prologue
8160         hook and pass 0 to dwarf2out_begin_prologue.
8161         (final_scan_insn): Update override_columnnum.  Pass last_columnnum
8162         to source_line debug hook.
8163         (notice_source_line): Compute last_columnnum and for debug_column_info
8164         return true on column changes.
8165         * debug.h (struct gcc_debug_hooks): Add column argument to
8166         source_line and begin_prologue hooks.
8167         (debug_nothing_int_charstar_int_bool): Remove prototype.
8168         (debug_nothing_int_int_charstar,
8169         debug_nothing_int_int_charstar_int_bool): New prototypes.
8170         (dwarf2out_begin_prologue): Add column argument.
8171         * debug.c (do_nothing_debug_hooks): Adjust source_line and
8172         begin_prologue hooks.
8173         (debug_nothing_int_charstar_int_bool): Remove.
8174         (debug_nothing_int_int_charstar,
8175         debug_nothing_int_int_charstar_int_bool): New functions.
8176         * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
8177         through to dwarf2out_source_line.
8178         (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
8179         (dwarf2out_source_line): Add column argument, emit it if requested.
8180         * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
8181         arguments.
8182         * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
8183         * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
8184         * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
8185         through to dwarf2out_begin_prologue.
8186         (vmsdbgout_source_line): Add column argument, pass it through to
8187         dwarf2out_source_line.
8188         * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
8189         dbxout_source_line caller.
8190         (dbxout_source_line): Add column argument.
8191
8192         * common.opt (gno-column-info, gcolumn-info): New options.
8193         * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
8194         (check_die): Also test for multiple DW_AT_decl_column attributes.
8195         (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
8196         DW_AT_decl_column if requested.
8197         (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
8198         if requested.
8199         (gen_variable_die): Likewise.
8200         (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
8201         * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
8202
8203         PR target/79569
8204         * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
8205         * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
8206         (ix86_handle_option): Handle OPT_m3dnowa.
8207         * doc/invoke.texi (-m3dnowa): Document.
8208         * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
8209         -m3dnowa instead of -m3dnow -march=athlon.
8210
8211         PR target/79559
8212         * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
8213         instead of gcc_assert for K, r and R code checks.  Formatting fixes.
8214
8215 2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8216
8217         PR target/79261
8218         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
8219         support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
8220         * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
8221         generator for vsx_xxpermdi_<mode>_be.
8222         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
8223         force big-endian semantics.
8224         (vsx_xxpermdi_<mode>_be): New define_expand with same
8225         implementation as previous version of vsx_xxpermdi_<mode>.
8226
8227 2017-02-17  Jakub Jelinek  <jakub@redhat.com>
8228
8229         PR tree-optimization/79327
8230         * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
8231         variable, its initialization and use.
8232
8233 2017-02-17  Julia Koval  <julia.koval@intel.com>
8234
8235         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
8236         (OPTION_MASK_ISA_PKU_UNSET): New.
8237         (ix86_handle_option): Handle -mrdpid.
8238         * config/i386/cpuid.h (bit_RDPID): New.
8239         * config/i386/driver-i386.c (host_detect_local_cpu):
8240         Detect RDPID feature.
8241         * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
8242         * config/i386/i386-c.c (ix86_target_macros_internal):
8243         Handle RDPID flag.
8244         * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
8245         (ix86_valid_target_attribute_inner_p): Add "rdpid".
8246         (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
8247         * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
8248         * config/i386/i386.md (define_insn "rdpid"): New.
8249         * config/i386/i386.opt Add -mrdpid.
8250         * config/i386/immintrin.h (_rdpid_u32): New.
8251
8252 2017-02-17  Vladimir Makarov  <vmakarov@redhat.com>
8253
8254         PR rtl-optimization/79541
8255         * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
8256         instead of transforming it into USE.
8257
8258 2017-02-17  Segher Boessenkool  <segher@kernel.crashing.org>
8259
8260         * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
8261         If HONOR_SNANS (SFmode) force the input to a register.
8262         (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
8263         (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
8264         an frsp or similar insn.
8265
8266 2017-02-17  Martin Liska  <mliska@suse.cz>
8267
8268         PR rtl-optimization/79577
8269         * params.def (selsched-max-sched-times): Increase minimum to 1.
8270
8271 2017-02-17  Martin Liska  <mliska@suse.cz>
8272
8273         PR rtl-optimization/79574
8274         * gcse.c (want_to_gcse_p): Prevent integer overflow.
8275
8276 2017-02-17  Martin Liska  <mliska@suse.cz>
8277
8278         PR tree-optimization/79529
8279         * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
8280         ssa_defined_default_def_p to handle cases which are implicitly
8281         defined.
8282         * tree-ssa.c (ssa_defined_default_def_p): New function.
8283         (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
8284         which are implicitly defined.
8285         * tree-ssa.h (ssa_defined_default_def_p): Declare.
8286
8287 2017-02-17  Richard Biener  <rguenther@suse.de>
8288
8289         PR middle-end/79576
8290         * params.def (max-ssa-name-query-depth): Limit to 10.
8291
8292 2017-02-17  Richard Biener  <rguenther@suse.de>
8293
8294         PR tree-optimization/79552
8295         * tree-ssa-structalias.c (visit_loadstore): Properly verify
8296         default defs.
8297
8298 2017-02-17  Richard Biener  <rguenther@suse.de>
8299
8300         PR bootstrap/79567
8301         * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
8302
8303 2017-02-17  Marek Polacek  <polacek@redhat.com>
8304
8305         PR middle-end/79536
8306         * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
8307         (fold_negate_expr): New wrapper.
8308
8309 2017-02-16  Sandra Loosemore  <sandra@codesourcery.com>
8310
8311         * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: 
8312         Correct terminology and de-emphasize pre-standard behavior.
8313
8314 2017-02-16  Alan Modra  <amodra@gmail.com>
8315
8316         PR rtl-optimization/79286
8317         * ira.c (def_dominates_uses): New function.
8318         (update_equiv_regs): Don't create an equivalence for insns that
8319         may trap where the register def does not dominate the use.
8320
8321 2017-02-16  Vladimir Makarov  <vmakarov@redhat.com>
8322
8323         PR rtl-optimization/78127
8324         * lra.c (lra): Call lra_eliminate before finish the loop after
8325         lra_constraint.
8326
8327 2017-02-16  Richard Biener  <rguenther@suse.de>
8328
8329         * graphite.h: Do not include isl/isl_val_gmp.h, instead include
8330         isl/isl_val.h.
8331         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
8332         (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
8333         * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
8334         (isl_val_int_from_wi): New function.
8335         (extract_affine_gmp): Rename to ...
8336         (extract_affine_wi): ... this, take a widest_int.
8337         (extract_affine_int): Just wrap extract_affine_wi.
8338         (add_param_constraints): Use isl_val_int_from_wi.
8339         (add_loop_constraints): Likewise, and extract_affine_wi.
8340
8341 2017-02-15  Jeff Law  <law@redhat.com>
8342
8343         PR middle-end/79521
8344         * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
8345         ira_init_register_move_cost_if_necessary.
8346
8347 2017-02-15  Martin Sebor  <msebor@redhat.com>
8348
8349         PR middle-end/32003
8350         * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
8351         removed in a prior commit.
8352
8353 2017-02-15  Bin Cheng  <bin.cheng@arm.com>
8354
8355         PR tree-optimization/79347
8356         * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
8357         counters during peeling.
8358
8359 2017-02-15  Thomas Schwinge  <thomas@codesourcery.com>
8360
8361         * Makefile.in (site.exp): Remove "set ISLVER".
8362
8363 2017-02-15  Jakub Jelinek  <jakub@redhat.com>
8364
8365         PR target/79487
8366         * real.c (real_from_integer): Call real_convert even for decimal.
8367
8368 2017-02-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8369
8370         PR target/79421
8371         * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
8372
8373 2017-02-14  Andrew Pinski  <apinski@cavium.com>
8374
8375         * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
8376         cores and change the partno/implementer to be correct.
8377         (thunderx2t99p1): New core which replaces thunderx2t99 and still has
8378         the 'B" as the implementer.
8379         * config/aarch64/aarch64-tune.md: Regenerate.
8380
8381 2017-02-14  Carl Love  <cel@us.ibm.com>
8382
8383         * config/rs6000/rs6000.c: Add case statement entry to make the
8384         xvcvuxdsp built-in argument unsigned.
8385         * config/rs6000/vsx.md: Fix the source and return operand types so they
8386         match the instruction definitions from the ISA document.  Fix typo
8387         in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
8388         statement.
8389
8390 2017-02-14  Vladimir Makarov  <vmakarov@redhat.com>
8391
8392         PR target/79282
8393         * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
8394         member early_clobber_alts.
8395         * lra-lives.c (reg_early_clobber_p): New.
8396         (process_bb_lives): Use it.
8397         * lra.c (new_insn_reg): New arg early_clobber_alts.  Use it.
8398         (debug_operand_data): Initialize early_clobber_alts.
8399         (setup_operand_alternative): Set up early_clobber_alts.
8400         (collect_non_operand_hard_regs): Ditto.  Pass early clobber
8401         alternatives to new_insn_reg.
8402         (add_regs_to_insn_regno_info): Add arg early_clobber_alts.  Use
8403         it.
8404         (lra_update_insn_regno_info): Pass the new arg.
8405
8406 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
8407
8408         PR middle-end/79505
8409         * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
8410         (new_oacc_loop_raw): Don't clear already cleared fields.
8411
8412         PR target/79481
8413         * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
8414         _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
8415         _mm512_prefetch_i64gather_ps): New inline functions and macros.
8416
8417 2017-02-14  Uros Bizjak  <ubizjak@gmail.com>
8418
8419         PR target/79495
8420         * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
8421
8422 2017-02-14  H.J. Lu  <hongjiu.lu@intel.com>
8423
8424         PR target/79498
8425         * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
8426         the extra instruction to the right place to store 128-bit constant
8427         when needed.
8428
8429 2017-02-14  Martin Sebor  <msebor@redhat.com>
8430
8431         PR middle-end/79448
8432         * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
8433           warning for strings of unknown length.
8434
8435 2017-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
8436
8437         * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
8438
8439 2017-02-14  Jeff Law  <law@redhat.com>
8440
8441         PR target/79404
8442         * ira-costs.c (scan_one_insn): Initialize register move costs
8443         for pseudos seen in USE/CLOBBER insns.
8444
8445         PR tree-optimization/79095
8446         * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
8447         if the numerator has the range ~[0,0] make the resultant range ~[0,0].
8448         (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
8449         if the operands are known to be not equal, then the resulting range
8450         is ~[0,0].
8451         (intersect_ranges): If the new range is ~[0,0] and the old range is
8452         wide, then prefer ~[0,0].
8453         * tree-vrp.c (overflow_comparison_p_1): New function.
8454         (overflow_comparison_p): New function.
8455         * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
8456         if NAME is used in an overflow test.
8457         (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
8458         overflow check that can be expressed as an equality test, then adjust
8459         ops to be that equality test.
8460
8461 2017-02-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8462
8463         * config/s390/s390-builtin-types.def: Remove flags argument.
8464         * config/s390/s390.c (s390_init_builtins): Likewise.
8465
8466 2017-02-14  Martin Liska  <mliska@suse.cz>
8467
8468         * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
8469         vector.  Fix trailing white spaces.
8470
8471 2017-02-14  James Greenhalgh  <james.greenhalgh@arm.com>
8472
8473         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
8474         HFmode.
8475
8476 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8477
8478         PR rtl-optimization/68664
8479         * config/arm/arm.c (arm_sched_can_speculate_insn):
8480         New function.  Declare prototype.
8481         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
8482
8483 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8484
8485         PR rtl-optimization/68664
8486         * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
8487         New function.
8488         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
8489
8490 2017-02-14  Amit Pawar  <amit.pawar@amd.com>
8491
8492         * config/i386/i386.c (znver1_cost): Fix the alignment for function and
8493         max skip bytes for function, loop and jump.
8494
8495 2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8496
8497         * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
8498         ABS_EXPR for gimple dump.
8499
8500 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
8501
8502         PR target/79462
8503         * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
8504
8505         PR tree-optimization/79408
8506         * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
8507         case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
8508         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
8509         also if rhs1 is INTEGER_CST.
8510
8511 2017-02-14  Richard Biener  <rguenther@suse.de>
8512
8513         PR middle-end/79432
8514         * tree-into-ssa.c (insert_phi_nodes): When the function can
8515         have abnormal edges rewrite SSA names with broken use-def
8516         dominance out of SSA and register them for PHI insertion.
8517
8518 2017-02-13  Martin Sebor  <msebor@redhat.com>
8519
8520         PR middle-end/79496
8521         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
8522         clearing info.nowrite flag when snprintf size argument is a range.
8523
8524 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
8525
8526         * cprop.c (cprop_jump): Add missing space in string literal.
8527         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
8528         (get_constraint_for_component_ref): Likewise.
8529         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
8530         * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
8531         * lra-constraints.c (process_alt_operands): Likewise.
8532         * ipa-inline.c (inline_small_functions): Likewise.
8533         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
8534         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
8535         * trans-mem.c (diagnose_tm_1_op): Likewise.
8536         * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
8537         (grid_parallel_clauses_gridifiable): Likewise.
8538
8539         * config/nvptx/mkoffload.c (process): Add space in between
8540         , and %d.
8541
8542         * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
8543         "MOD4_SSE_REGS" and "ALL_REGS".
8544
8545         * spellcheck.c (test_data): Add , in between "foo" and "food".
8546
8547 2017-02-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
8548
8549         PR target/79449
8550         * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
8551         boundary crossing check and subsequent code generation agree.
8552
8553 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8554
8555         * config/aarch64/aarch64.c (has_memory_op): Delete.
8556         (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
8557         has_memory_op.
8558
8559 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
8560
8561         PR rtl-optimization/79388
8562         PR rtl-optimization/79450
8563         * combine.c (distribute_notes): When removing TEM_INSN for which
8564         corresponding dest has last value recorded, invalidate that last
8565         value.
8566
8567 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8568
8569         * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
8570         of explicit '@'.  Add missing assembly comment marker on branch costs
8571         printout.
8572
8573 2017-02-13  Nathan Sidwell  <nathan@acm.org>
8574
8575         * gengtype-lex.l (<in_struct>): Add '/'.
8576
8577 2017-02-13  Martin Liska  <mliska@suse.cz>
8578
8579         PR c/79471
8580         * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
8581
8582 2017-02-13  Richard Biener  <rguenther@suse.de>
8583
8584         * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
8585         Remove.
8586         * configure: Re-generate.
8587         * config.in: Likewise.
8588         * graphite-dependences.c: Simplify as if
8589         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
8590         * graphite-isl-ast-to-gimple.c: Likewise.
8591         * graphite-optimize-isl.c: Likewise.
8592         * graphite-poly.c: Likewise.
8593         * graphite-sese-to-poly.c: Likewise.
8594         * graphite.h: Likewise.
8595         * toplev.c: Include isl/version.h and use isl_version () for
8596         printing the ISL version.
8597         * doc/install.texi: Update ISL requirement.
8598
8599 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
8600
8601         * doc/standards.texi (Standards): Update reference to
8602         Objective-C 2.0.
8603
8604 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
8605
8606         * doc/extend.texi (Named Address Spaces): sourceware.org now
8607         defaults to https.
8608         * doc/install.texi (Binaries): Ditto.
8609         (Specific): Ditto.
8610
8611 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
8612
8613         * doc/cpp.texi: Replace "stringify"/"stringification" with C
8614         standard terminology "stringize"/"stringizing" throughout.
8615         * doc/cppinternals.texi: Likewise.
8616
8617 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
8618
8619         * doc/extend.texi: Fix some spelling mistakes and typos.
8620         * doc/invoke.texi: Likewise.
8621
8622 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
8623
8624         PR ipa/79224
8625         * params.def (inline-min-speedup) Change from 10 to 8.
8626
8627 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
8628
8629         * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
8630         4.5.
8631
8632 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
8633
8634         PR ipa/79224
8635         * ipa-inline-analysis.c (get_minimal_bb): New function.
8636         (record_modified): Use it.
8637         (remap_edge_change_prob): Handle also ancestor functions.
8638
8639 2017-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
8640
8641         * doc/contrib.texi (Contributors): Remove broken link into
8642         the Mauve CVS repository.
8643
8644 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
8645
8646         PR middle-end/79454
8647         * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
8648         result computation whenever lhs doesn't have vector mode, not
8649         just when it has BLKmode.
8650
8651 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
8652
8653         * doc/makefile.texi (profiledbootstrap): Refer to the
8654         installation instructions only in textual form.
8655
8656 2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
8657
8658         PR target/79295
8659         * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
8660
8661 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
8662
8663         * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
8664         (Specific): Update mingw-w64 reference.
8665         (Binaries): Ditto.
8666         (Specific): Remove broken link to Renesas RX processor.
8667
8668 2017-02-10  Richard Biener  <rguenther@suse.de>
8669
8670         * toplev.c (process_options): Do not mention obsolete graphite
8671         options when printing sorry message about missing graphite support.
8672         Mention -floop-nest-optimize.
8673
8674 2017-02-10  Christophe Lyon  <christophe.lyon@linaro.org>
8675
8676         * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
8677         (vtst_p16): Likewise.
8678         (vtstq_p8): Likewise.
8679         (vtstq_p16): Likewise.
8680         (vtst_p64): New.
8681         (vtstq_p64): Likewise.
8682         * config/arm/arm_neon.h (vgetq_lane_p64): New.
8683         (vset_lane_p64): New.
8684         (vsetq_lane_p64): New.
8685
8686 2017-02-10  Jakub Jelinek  <jakub@redhat.com>
8687
8688         PR tree-optimization/79411
8689         * tree-ssa-reassoc.c (is_reassociable_op): Return false if
8690         stmt operands are SSA_NAMEs used in abnormal phis.
8691         (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
8692         phis.
8693
8694 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
8695
8696         PR ipa/70795
8697         * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
8698         flag if needed.
8699
8700 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
8701
8702         * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
8703
8704 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
8705
8706         * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
8707         to avoid warning.
8708
8709         PR c/79413
8710         * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
8711         not arbitrary TREE_CONSTANT.
8712
8713         PR c/79431
8714         * gimplify.c (gimplify_adjust_omp_clauses): Ignore
8715         "omp declare target link" attribute unless is_global_var.
8716         * omp-offload.c (find_link_var_op): Likewise.
8717
8718 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
8719             Chung-Lin Tang  <cltang@codesourcery.com>
8720
8721         * gimplify.c (gimplify_scan_omp_clauses): No special handling for
8722         OMP_CLAUSE_TILE.
8723         (gimplify_adjust_omp_clauses): Don't delete TILE.
8724         (gimplify_omp_for): Deal with TILE.
8725         * internal-fn.c (expand_GOACC_TILE): New function.
8726         * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
8727         (GOACC_TILE): New.
8728         * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
8729         (expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
8730         element fields.
8731         (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
8732         avoid DIV for outermost collapse var.
8733         (expand_oacc_for): Insert tile element loop as needed.  Adjust.
8734         Remove out of date comments, fix whitespace.
8735         * omp-general.c (omp_extract_for_data): Deal with tiling.
8736         * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
8737         adjust OLF_DIM_BASE value.
8738         (struct omp_for_data): Add tiling field.
8739         * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
8740         (lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
8741         for auto loops.  Remove default auto determining, moved to
8742         oacc_loop_fixed_partitions.
8743         * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
8744         stmts, add e_mask field.
8745         (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
8746         (oacc_thread_numbers): Use oacc_dim_call.
8747         (oacc_xform_tile): New.
8748         (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
8749         (finish_oacc_loop): Adjust for ifns vector.
8750         (oacc_loop_discover_walk): Append loop abstraction sites to list,
8751         add case for GOACC_TILE fns.
8752         (oacc_loop_xform_loop): Delete.
8753         (oacc_loop_process): Iterate over call list directly, and add
8754         handling for GOACC_TILE fns.
8755         (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
8756         dump partitioning.
8757         (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
8758         vector partitioning to outer loops.  Assign 2 partitions to loops
8759         when available. Add TILE handling.
8760         (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
8761         (execite_oacc_device_lower): Process GOACC_TILE fns,
8762         ignore unknown specs.
8763         * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
8764         * tree.c (omp_clause_num_ops): Adjust TILE ops.
8765         * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
8766
8767 2017-02-09  Gerald Pfeifer  <gerald@pfeifer.com>
8768
8769         * configure.ac (ACX_BUGURL): Update.
8770         * configure: Regenerate.
8771
8772 2017-02-09  Richard Biener  <rguenther@suse.de>
8773
8774         PR tree-optimization/69823
8775         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
8776         Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.
8777
8778 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
8779
8780         * config/arc/arc-c.def: Add __NPS400__ definition.
8781         * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
8782         (TARGET_NPS400): Define.
8783
8784 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
8785
8786         * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
8787         file.
8788         (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
8789         pointer, arch_info.
8790         (arc_cpu_types): Fill the arch_info field with a pointer into the
8791         arc_arch_types table.
8792         (arc_selected_cpu): Declare.
8793         * config/arc/arc.c (arc_selected_cpu): Make global.
8794         (arc_selected_arch): Delete.
8795         (arc_base_cpu): Delete.
8796         (arc_override_options): Remove references to deleted variables,
8797         update access to arch information.
8798         (ARC_OPT): Update access to arch information.
8799         (ARC_OPTX): Likewise.
8800         * config/arc/arc.h (arc_base_cpu): Remove declaration.
8801         (TARGET_ARC600): Update access to arch information.
8802         (TARGET_ARC601): Likewise.
8803         (TARGET_ARC700): Likewise.
8804         (TARGET_EM): Likewise.
8805         (TARGET_HS): Likewise.
8806         * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
8807         information.
8808
8809 2017-02-08  Pat Haugen  <pthaugen@us.ibm.com>
8810
8811         PR target/78604
8812         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
8813         condition/operands for integer GE/LE/GEU/LEU operations.
8814
8815 2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>
8816
8817         PR translation/79397
8818         * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
8819         of AltiVec.
8820
8821 2017-02-08  Martin Jambor  <mjambor@suse.cz>
8822
8823         PR ipa/79375
8824         * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
8825         whether allocation happened.
8826         (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
8827         nothing was allocated.
8828
8829 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
8830
8831         PR tree-optimization/79408
8832         * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
8833         constant, but SSA_NAME with a known integer range, use the minimum
8834         of that range instead of op1 to determine if modulo can be replaced
8835         with its first operand.
8836
8837 2016-02-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8838
8839         * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
8840
8841 2017-02-08  Richard Biener  <rguenther@suse.de>
8842
8843         PR tree-optimization/71824
8844         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
8845         Check all loops contained in the merged region.
8846
8847 2017-02-07  Andrew Pinski  <apinski@cavium.com>
8848
8849         * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
8850
8851 2017-02-07  Andrew Pinski  <apinski@cavium.com>
8852
8853         * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
8854         (thunderxt88): Likewise.
8855         (thunderxt81): Disable LSE and change v8.1 to v8.
8856         (thunderxt83): Likewise.
8857
8858 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
8859             Richard Biener  <rguenther@suse.de>
8860
8861         PR middle-end/79399
8862         * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
8863         type from int to size_t.
8864         * ira-costs.c (struct_costs_size): Change type from int to size_t.
8865
8866 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
8867
8868         PR rtl-optimization/79386
8869         * cprop.c (bypass_conditional_jumps): Initialize
8870         bypass_last_basic_block already before splitting bbs after
8871         unconditional traps...
8872         (bypass_conditional_jumps): ... rather than here.
8873
8874         PR target/79299
8875         * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
8876         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
8877         *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
8878         fix -masm=intel patterns.
8879
8880 2017-02-07  Richard Biener  <rguenther@suse.de>
8881
8882         PR tree-optimization/79256
8883         PR middle-end/79278
8884         * builtins.c (get_object_alignment_2): Use min_align_of_type
8885         to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
8886         and ADJUST_FIELD_ALIGN.
8887
8888         * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
8889         type parameter.
8890         * doc/tm.texi: Regenerate.
8891         * stor-layout.c (layout_decl): Adjust.
8892         (update_alignment_for_field): Likewise.
8893         (place_field): Likewise.
8894         (min_align_of_type): Likewise.
8895         * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
8896         * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
8897         * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
8898         * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
8899         * config/frv/frv.c (frv_adjust_field_align): Likewise.
8900         * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
8901         * config/i386/i386.c (x86_field_alignment): Likewise.
8902         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
8903         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
8904         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
8905         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
8906         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
8907         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
8908          Likewise.
8909
8910         Revert
8911         2017-01-30  Richard Biener  <rguenther@suse.de>
8912
8913         PR tree-optimization/79256
8914         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
8915         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
8916         alignment on TYPE.
8917
8918 2017-02-07  Toma Tabacu  <toma.tabacu@imgtec.com>
8919
8920         * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
8921         argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
8922         builtins to SImode and emit a zero-extend, if necessary.
8923
8924 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
8925
8926         * docs/invoke.texi (RISC-V Options): Alphabetize.
8927
8928 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
8929
8930         * doc/invoke.texi (RISC-V Options): Use two spaces to separate
8931         options.
8932
8933 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
8934
8935         * config/riscv/riscv.c: New file.
8936         * gcc/common/config/riscv/riscv-common.c: Likewise.
8937         * config.gcc: Likewise.
8938         * config/riscv/constraints.md: Likewise.
8939         * config/riscv/elf.h: Likewise.
8940         * config/riscv/generic.md: Likewise.
8941         * config/riscv/linux.h: Likewise.
8942         * config/riscv/multilib-generator: Likewise.
8943         * config/riscv/peephole.md: Likewise.
8944         * config/riscv/pic.md: Likewise.
8945         * config/riscv/predicates.md: Likewise.
8946         * config/riscv/riscv-builtins.c: Likewise.
8947         * config/riscv/riscv-c.c: Likewise.
8948         * config/riscv/riscv-ftypes.def: Likewise.
8949         * config/riscv/riscv-modes.def: Likewise.
8950         * config/riscv/riscv-opts.h: Likewise.
8951         * config/riscv/riscv-protos.h: Likewise.
8952         * config/riscv/riscv.h: Likewise.
8953         * config/riscv/riscv.md: Likewise.
8954         * config/riscv/riscv.opt: Likewise.
8955         * config/riscv/sync.md: Likewise.
8956         * config/riscv/t-elf-multilib: Likewise.
8957         * config/riscv/t-linux: Likewise.
8958         * config/riscv/t-linux-multilib: Likewise.
8959         * config/riscv/t-riscv: Likewise.
8960         * configure.ac: Likewise.
8961         * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
8962         Waterman as RISC-V maintainers.
8963         * doc/install.texi: Add RISC-V entries.
8964         * doc/invoke.texi: Add RISC-V options section.
8965         * doc/md.texi: Add RISC-V constraints section.
8966         * configure: Regenerated.
8967
8968 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
8969
8970         PR target/66144
8971         * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
8972         false values to be constant vectors with all 0 or all 1 bits set.
8973         (vcondu<mode><mode>): Likewise.
8974         * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
8975         predicate.
8976         (fpmask_comparison_operator): Update comment.
8977         (vecint_comparison_operator): New predicate.
8978         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
8979         vector conditionals when the true and false values are constant
8980         vectors with all 0 bits or all 1 bits set.
8981
8982 2017-02-06  Martin Sebor  <msebor@redhat.com>
8983
8984         PR  tree-optimization/79376
8985         * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
8986
8987 2017-02-06  Uros Bizjak  <ubizjak@gmail.com>
8988
8989         * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
8990         explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
8991         to simplify split condition.
8992
8993 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
8994
8995         * omp-expand.c (oxpand_omp_atomic_fetch_op,
8996         expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
8997         false.
8998
8999 2017-02-06  Segher Boessenkool  <segher@kernel.crashing.org>
9000
9001         PR rtl-optimization/68664
9002         * target.def (can_speculate_insn): New hook.
9003         * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
9004         * doc/tm.texi: Regenerate.
9005         * sched-rgn.c (can_schedule_ready_p): Use the new hook.
9006         * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
9007         (rs6000_sched_can_speculate_insn): New function.
9008
9009 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
9010
9011         PR tree-optimization/79284
9012         * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
9013         * tree-vect-stmts.c (vect_get_vec_def_for_operand,
9014         vectorizable_mask_load_store, vectorizable_operation,
9015         vect_is_simple_cond, get_same_sized_vectype): Use it instead
9016         of comparing TREE_CODE of a type against BOOLEAN_TYPE.
9017         * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
9018         vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
9019         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
9020         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
9021         Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
9022         is_gimple_assign (stmt).  Replace another such test with
9023         is_gimple_assign (stmt).
9024
9025 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
9026
9027         PR target/78883
9028         * config/avr/avr.c (rtl-iter.h): Include it.
9029         (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
9030         (avr_legitimate_combined_insn): ...and implementation.
9031
9032 2017-02-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9033
9034         * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
9035         * config/s390/s390.c (s390_const_operand_ok)
9036         (s390_canonicalize_comparison, s390_extract_part)
9037         (s390_single_part, s390_contiguous_bitmask_nowrap_p)
9038         (s390_contiguous_bitmask_p, s390_rtx_costs)
9039         (legitimize_pic_address): Likewise.
9040         * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
9041         * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
9042         ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
9043         ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
9044         * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
9045
9046 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
9047
9048         * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
9049         REGNO($0) == REGNO($1).
9050
9051 2017-02-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9052
9053         * config/s390/linux.h(SIZE_TYPE): Add comment.
9054
9055 2017-02-06  Julian Brown  <julian@codesourcery.com>
9056             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
9057             Virendra Pathak  <virendra.pathak@broadcom.com>
9058
9059         * config/aarch64/aarch64-cores.def: Change the scheduler
9060         to Thunderx2t99.
9061         * config/aarch64/aarch64.md: Include thunderx2t99.md.
9062         * config/aarch64/thunderx2t99.md: New file.
9063
9064 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
9065
9066         * doc/standards.texi (Go Language): Update link to language
9067         standard.
9068
9069 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
9070
9071         * tree-eh.c (lower_resx): Sanitize profile.
9072         (cleanup_empty_eh_move_lp): Likewise.
9073
9074 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
9075
9076         PR tree-ssa/79347
9077         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
9078         ELSE_PROB.
9079         * cfgloopmanip.h (loop_version): Update prototype.
9080         * modulo-sched.c (sms_schedule): Update call of loop_version.
9081         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
9082         * tree-parloops.c (gen_parallel_loop): Likewise.
9083         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
9084         * tree-ssa-loop-split.c (split_loop): Likewise.
9085         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
9086         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
9087
9088 2017-02-05  Martin Liska  <mliska@suse.cz>
9089
9090         PR bootstrap/78985
9091         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
9092         variable to NULL.
9093         (print_operand_address): Initialize a struct to zero.
9094
9095 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
9096
9097         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
9098         garbage collector only in textual form.
9099
9100 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
9101
9102         * doc/extend.texi (x86 specific memory model extensions for
9103         transactional memory): Simplify a phrase.
9104
9105 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
9106
9107         PR target/79353
9108         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
9109         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
9110         (atomic_storedi_1): Likewise.
9111
9112 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
9113
9114         PR tree-optimization/79338
9115         * tree-parloops.c (gather_scalar_reductions): Don't call
9116         vect_analyze_loop_form for loop->inner before destroying loop's
9117         loop_vinfo.
9118
9119 2017-02-03  Martin Sebor  <msebor@redhat.com>
9120
9121         PR tree-optimization/79327
9122         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
9123         when precision has resulted in leading zeros.
9124         (format_integer): Adjust the likely counter to assume an unknown
9125         argument that may be zero is non-zero.
9126
9127 2017-02-03  Jason Merrill  <jason@redhat.com>
9128
9129         PR c++/78689
9130         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
9131         avoid copying non-taken branch.
9132
9133 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
9134
9135         PR tree-optimization/79340
9136         * tree-vect-loop.c (vectorizable_reduction): Release
9137         vec_defs elements after safe_splicing them into other vectors.
9138         Formatting fixes.
9139
9140         PR tree-optimization/79327
9141         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
9142         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
9143         dirtype.
9144         (format_integer): Use wide_int_to_tree instead of build_int_cst
9145         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
9146         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
9147         of shortest and longest sequence.
9148
9149 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
9150
9151         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
9152         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
9153
9154 2017-02-03  Walter Lee  <walt@tilera.com>
9155
9156         PR target/78862
9157         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
9158         after initial stackframe link reg save.
9159         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
9160
9161 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
9162
9163         PR target/79354
9164         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
9165         wu for stxssp alternative.
9166
9167 2017-02-03  Martin Sebor  <msebor@redhat.com>
9168
9169         PR tree-optimization/79352
9170         * gimple-fold.c (get_range_strlen): Add argument.
9171         (get_range_strlen): Change return type to bool.
9172         (get_maxval_strlen): Pass in a dummy argument.
9173         * gimple-fold.h (get_range_strlen): Change return type to bool.
9174         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
9175         * tree.h (array_at_struct_end_p): Add argument.
9176         * tree.c (array_at_struct_end_p): Handle it.
9177
9178 2017-02-03  Martin Liska  <mliska@suse.cz>
9179
9180         PR lto/66295
9181         * multiple_target.c (create_dispatcher_calls): Redirect edge
9182         from a caller of a dispatcher.
9183         (expand_target_clones): Make the clones local.
9184         (ipa_target_clone): Do both target clones and resolvers.
9185         (ipa_dispatcher_calls): Remove the pass.
9186         (pass_dispatcher_calls::gate): Likewise.
9187         (make_pass_dispatcher_calls): Likewise.
9188         * passes.def (pass_target_clone): Put as very first IPA early
9189         pass.
9190
9191 2017-02-03  Martin Liska  <mliska@suse.cz>
9192
9193         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
9194         in case of a function with ifunc attribute.
9195
9196 2017-02-03  Martin Liska  <mliska@suse.cz>
9197
9198         * cgraph.c (cgraph_node::dump): Dump function version info.
9199         * symtab.c (symtab_node::dump_base): Add missing new line.
9200
9201 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
9202
9203         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
9204         (ifcombine_ifandif): Use it.
9205
9206 2017-02-03  Martin Liska  <mliska@suse.cz>
9207
9208         * doc/invoke.texi: Document default value for
9209         use-after-scope-direct-emission-threshold.
9210
9211 2017-02-03  Martin Liska  <mliska@suse.cz>
9212
9213         PR tree-optimization/79339
9214         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
9215         (format_floating): Likewise.
9216
9217 2017-02-03  Martin Liska  <mliska@suse.cz>
9218
9219         PR ipa/79337
9220         * ipa-prop.c (ipa_node_params_t::insert): Remove current
9221         implementation.
9222         (ipa_node_params_t::remove): Likewise.
9223         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
9224         initialization from removed ipa_node_params_t::insert.
9225         (ipa_node_params::~ipa_node_params): Move from removed
9226         ipa_node_params_t::release.
9227         * symbol-summary.h (symbol_summary::m_released): New member.
9228         Do not release a summary twice.  Do not allow to call finalizer
9229         for types of a summary that live in GGC memory.
9230
9231 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
9232
9233         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
9234         cmp_branch fusion.
9235
9236 2017-02-02  Martin Sebor  <msebor@redhat.com>
9237
9238         PR middle-end/79275
9239         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
9240         (format_string): Tighten up the range of output for non-constant
9241         strings and correct the expected range for wide non-constant strings.
9242
9243 2017-02-02  Martin Sebor  <msebor@redhat.com>
9244
9245         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
9246
9247         PR middle-end/32003
9248         * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
9249         index.
9250         (-fdump-tree-@var): Add to index and document how to come up
9251         with pass-specific option and dump file names.
9252         (-fdump-passes): Clarify where to look for output.
9253
9254 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
9255
9256         PR middle-end/77445
9257         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
9258         statistics of the analyzed path; allow threading for speed when
9259         any of BBs along the path are optimized for speed.
9260
9261 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
9262
9263         PR middle-end/78468
9264         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
9265         settings of the virtual registers.
9266
9267         Revert again
9268         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9269
9270         * explow.c (get_dynamic_stack_size): Take known alignment of stack
9271         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
9272         needed.
9273
9274 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9275
9276         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
9277         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
9278
9279 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9280
9281         * config/s390/s390.md: Add missing comments with the expanded
9282         mnemonics.
9283         * config/s390/vector.md: Likewise.
9284         * config/s390/vx-builtins.md: Likewise.
9285
9286 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
9287
9288         PR target/79197
9289         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
9290         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
9291         conditions on a single line.
9292
9293 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9294
9295         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
9296         __S390_VX__ to __VX__.
9297
9298 2017-02-01  Andrew Pinski  <apinski@cavium.com>
9299
9300         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
9301         stmt_info to record_stmt_cost.
9302         (vect_get_known_peeling_cost): Pass stmt_info if known to
9303         record_stmt_cost.
9304         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
9305         cpu_vector_cost field into
9306         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
9307         field into vec_int_stmt_cost and vec_fp_stmt_cost.
9308         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
9309         splitting of scalar_stmt_cost and vec_stmt_cost.
9310         (thunderx_vector_cost): Likewise.
9311         (cortexa57_vector_cost): LIkewise.
9312         (exynosm1_vector_cost): Likewise.
9313         (xgene1_vector_cost): Likewise.
9314         (thunderx2t99_vector_cost): Improve after the splitting of the two
9315         fields.
9316         (aarch64_builtin_vectorization_cost): Update for the splitting of
9317         scalar_stmt_cost and vec_stmt_cost.
9318
9319 2017-02-01  Torvald Riegel  <triegel@redhat.com>
9320             Richard Henderson  <rth@redhat.com>
9321
9322         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
9323         conditional on existance of a fast atomic load.
9324         * optabs-query.c (can_atomic_load_p): New function.
9325         * optabs-query.h (can_atomic_load_p): Declare it.
9326         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
9327         no fast atomic load is available for the particular size of access.
9328         (expand_atomic_compare_and_swap): Likewise.
9329         (expand_atomic_load): Likewise.
9330         (expand_atomic_store): Likewise.
9331         (expand_atomic_fetch_op): Likewise.
9332         * testsuite/lib/target-supports.exp
9333         (check_effective_target_sync_int_128): Remove x86 because it provides
9334         no fast atomic load.
9335         (check_effective_target_sync_int_128_runtime): Likewise.
9336
9337 2017-02-01  Richard Biener  <rguenther@suse.de>
9338
9339         * graphite.c: Include tree-vectorizer.h for find_loop_location.
9340         (graphite_transform_loops): Provide opt-info for optimized nests.
9341         * tree-parloop.c (parallelize_loops): Provide opt-info for
9342         parallelized loops.
9343
9344 2017-02-01  Richard Biener  <rguenther@suse.de>
9345
9346         PR middle-end/79315
9347         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
9348         was not set before.
9349
9350 2017-02-01  Richard Biener  <rguenther@suse.de>
9351
9352         PR tree-optimization/71824
9353         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
9354         Verify the loops are valid in the merged SESE region.
9355         (scop_detection::can_represent_loop_1): Check analyzing the
9356         evolution of the number of iterations in the region succeeds.
9357
9358 2017-01-31  Ian Lance Taylor  <iant@golang.org>
9359
9360         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
9361         REG_ARGS_SIZE note to 32-bit push insns and call insn.
9362
9363 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
9364
9365         PR preprocessor/79210
9366         * input.c (get_substring_ranges_for_loc): Replace line_width
9367         assertion with error-handling.
9368
9369 2017-01-31  Richard Biener  <rguenther@suse.de>
9370
9371         PR tree-optimization/77318
9372         * graphite-sese-to-poly.c (extract_affine): Fix assert.
9373         (create_pw_aff_from_tree): Take loop parameter.
9374         (add_condition_to_pbb): Pass loop of the condition to
9375         create_pw_aff_from_tree.
9376
9377 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
9378
9379         * config/s390/s390.c (s390_asan_shadow_offset): New function.
9380         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
9381
9382 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
9383
9384         PR target/78597
9385         PR target/79038
9386         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
9387         no longer used.
9388         (convert_int_to_float128): Likewise.
9389         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
9390         (convert_int_to_float128): Likewise.
9391         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
9392         (UNSPEC_IEEE128_CONVERT): Likewise.
9393         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
9394         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
9395         Use local variables for IBM extended format.
9396         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
9397         (fix_trunc<mode>si2_fprs): Likewise.
9398         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
9399         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
9400         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
9401         to know that we can now have integers of all sizes in vector
9402         registers.
9403         (fix<uns>_<mode>di2_hw): Likewise.
9404         (float<uns>_<mode>si2_hw): Likewise.
9405         (fix_<mode>si2_hw): Likewise.
9406         (fixuns_<mode>si2_hw): Likewise.
9407         (float<uns>_<mode>di2_hw): Likewise.
9408         (float_<mode>di2_hw): Likewise.
9409         (float_<mode>si2_hw): Likewise.
9410         (floatuns_<mode>di2_hw): Likewise.
9411         (floatuns_<mode>si2_hw): Likewise.
9412         (xscvqp<su>wz_<mode>): Delete, no longer used.
9413         (xscvqp<su>dz_<mode>): Likewise.
9414         (xscv<su>dqp_<mode>): Likewise.
9415         (ieee128_mfvsrd_64bit): Likewise.
9416         (ieee128_mfvsrd_32bit): Likewise.
9417         (ieee128_mfvsrwz): Likewise.
9418         (ieee128_mtvsrw): Likewise.
9419         (ieee128_mtvsrd_64bit): Likewise.
9420         (ieee128_mtvsrd_32bit): Likewise.
9421
9422 2017-01-31  Martin Liska  <mliska@suse.cz>
9423
9424         PR ipa/79285
9425         * ipa-prop.c (ipa_free_all_node_params): Call release method
9426         instead of ~sumbol_summary to not to trigger double times
9427         dtor of hash_map.
9428
9429 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
9430
9431         PR tree-optimization/71691
9432         * bitmap.h (class auto_bitmap): New.
9433         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
9434         is_maybe_undefined instead of ssa_undefined_value_p.
9435
9436 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9437
9438         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
9439         __S390_ARCH_LEVEL__ to __ARCH__.
9440
9441 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
9442
9443         PR tree-optimization/79267
9444         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
9445         if should_remove_lhs_p is true.
9446
9447 2017-01-30  Alexandre Oliva <aoliva@redhat.com>
9448
9449         PR debug/63238
9450         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
9451         (add_alignment_attribute): New.
9452         (base_type_die): Add alignment attribute.
9453         (subrange_type_die): Likewise.
9454         (modified_type_die): Likewise.
9455         (gen_array_type_die): Likewise.
9456         (gen_descr_array_type_die: Likewise.
9457         (gen_enumeration_type_die): Likewise.
9458         (gen_subprogram_die): Likewise.
9459         (gen_variable_die): Likewise.
9460         (gen_field_die): Likewise.
9461         (gen_ptr_to_mbr_type_die): Likewise.
9462         (gen_struct_or_union_type_die): Likewise.
9463         (gen_subroutine_type_die): Likewise.
9464         (gen_typedef_die): Likewise.
9465         (base_type_cmp): Compare alignment attribute.
9466
9467 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
9468
9469         PR target/79170
9470         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
9471         (setb_unsigned) New pattern for setb with CCUNS.
9472         * config/rs6000/rs6000.c (expand_block_compare): Use a different
9473         subfc./subfe sequence to avoid overflow problems.  Generate a
9474         shorter sequence with cmpld/setb for power9.
9475         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
9476         for generating subfc. instruction.
9477         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
9478         now uses this instruction.
9479
9480 2017-01-30  Ian Lance Taylor  <iant@google.com>
9481
9482         PR debug/79289
9483         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
9484         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
9485
9486 2017-01-30  Martin Sebor  <msebor@redhat.com>
9487
9488         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
9489         Move constant to the right of a relational operator.
9490         (get_mpfr_format_length, format_character, format_string): Ditto.
9491         (should_warn_p, maybe_warn): Same.
9492
9493         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
9494
9495 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
9496
9497         PR lto/79061
9498         * asan.c (get_translation_unit_decl): Remove function.
9499         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
9500
9501 2017-01-30  Martin Liska  <mliska@suse.cz>
9502
9503         PR gcov-profile/79259
9504         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
9505         -fprofile-generate.
9506
9507 2017-01-30  Martin Liska  <mliska@suse.cz>
9508
9509         PR bootstrap/78985
9510         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
9511         Initialize variables with NULL value.
9512
9513 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
9514
9515         PR target/79260
9516         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
9517         tm_p_file.
9518         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
9519
9520 2017-01-30  Richard Biener  <rguenther@suse.de>
9521
9522         PR tree-optimization/79276
9523         * tree-vrp.c (process_assert_insertions): Properly adjust common
9524         when removing a duplicate.
9525
9526         * gcc.dg/torture/pr79276.c: New testcase.
9527
9528 2017-01-30  Richard Biener  <rguenther@suse.de>
9529
9530         PR tree-optimization/79256
9531         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
9532         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
9533         alignment on TYPE.
9534         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
9535
9536 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9537
9538         PR target/79240
9539         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
9540         ("*r<noxa>sbg_<mode>_sll_bitmask")
9541         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
9542         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
9543         Use contiguous_bitmask_nowrap_operand.
9544
9545 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9546
9547         PR target/79268
9548         * config/rs6000/altivec.h (vec_xl): Revise #define.
9549         (vec_xst): Likewise.
9550
9551 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
9552
9553         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
9554
9555 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
9556
9557         PR rtl-optimization/79194
9558         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
9559         traps before call to bypass_conditional_jumps.
9560
9561 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
9562
9563         PR tree-optimization/71374
9564         * lra-constraints.c (check_conflict_input_operands): New.
9565         (match_reload): Use it.
9566
9567 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
9568
9569         PR target/79131
9570         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
9571         account to calculate conflict_set.
9572
9573 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
9574
9575         PR rtl-optimization/78559
9576         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
9577         other_insn in combine.
9578
9579 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
9580
9581         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
9582         uint16_type_node for BT_UINT16.
9583
9584 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
9585
9586         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
9587         "RTL Tests" to menu.
9588         (GIMPLE Tests): New node.
9589         (RTL Tests): New node.
9590
9591 2017-01-27  Richard Biener  <rguenther@suse.de>
9592
9593         PR tree-optimization/79245
9594         * tree-loop-distribution.c (distribute_loop): Apply cost
9595         modeling also to detected patterns.
9596
9597 2017-01-27  Richard Biener  <rguenther@suse.de>
9598
9599         PR tree-optimization/71433
9600         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
9601         (compare_assert_loc): New function.
9602         (process_assert_insertions): Sort and optimize assert locations
9603         to remove duplicates and push down identical assertions on
9604         edges to their destination block.
9605
9606 2017-01-27  Richard Biener  <rguenther@suse.de>
9607
9608         PR tree-optimization/79244
9609         * tree-vrp.c (remove_range_assertions): Forcefully propagate
9610         out SSA names even if abnormal.
9611
9612 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
9613
9614         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
9615         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
9616         instead of MPFR_RNDN.
9617
9618 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
9619
9620         PR target/79239
9621         * arm.c (arm_option_override): Don't call build_target_option_node
9622         until after doing all option overrides.
9623         (arm_valid_target_attribute_tree): Likewise.
9624
9625 2017-01-27  Martin Liska  <mliska@suse.cz>
9626
9627         * doc/invoke.texi (-fprofile-arcs): Document profiling support
9628         for {cd}tors and C++ {cd}tors.
9629
9630 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9631
9632         * config/s390/s390.md ("*setmem_long_and")
9633         ("*setmem_long_and_31z"): Use zero_extend instead of and.
9634
9635 2017-01-26  Martin Sebor  <msebor@redhat.com>
9636
9637         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
9638         of precision.
9639
9640 2017-01-26  Martin Sebor  <msebor@redhat.com>
9641
9642         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
9643         HAVE_DFmode before using XFmode or DFmode.
9644         (parse_directive): Avoid using the z length modifier to avoid
9645         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
9646
9647         PR middle-end/78703
9648         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
9649         to accept adjustment as an array.
9650         (get_int_range): New function.
9651         (struct directive): Make width and prec arrays.
9652         (directive::set_width, directive::set_precision): Call get_int_range.
9653         (format_integer, format_floating): Handle width and precision ranges.
9654         (format_string, parse_directive): Same.
9655
9656 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
9657
9658         PR debug/79129
9659         * dwarf2out.c (generate_skeleton_bottom_up): For children with
9660         comdat_type_p set, just clone them, but keep the children in the
9661         original DIE.
9662
9663         PR debug/78835
9664         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
9665         which have direct callers with -fvar-tracking-assignments enabled
9666         in the current TU.
9667         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
9668         inside of type units.
9669
9670 2017-01-26  Martin Sebor  <msebor@redhat.com>
9671
9672         PR middle-end/78703
9673         * gimple-ssa-sprintf.c (struct result_range): Add likely and
9674         unlikely counters.
9675         (struct format_result): Replace number_chars, number_chars_min,
9676         and number_chars_max with a single member of struct result_range.
9677         Remove bounded.
9678         (format_result::operator+=): Adjust.
9679         (struct fmtresult): Remove bounded.  Handle likely and unlikely
9680         counters.
9681         (fmtresult::adjust_for_width_or_precision): New function.
9682         (fmtresult:type_max_digits): New function.
9683         (bytes_remaining): Handle likely and unlikely counters.
9684         (min_bytes_remaining): Remove.
9685         (format_percent): Simplify.
9686         (format_integer, format_floating): Set likely and unlikely counters.
9687         (get_string_length, format_character, format_string): Same.
9688         (format_plain, should_warn_p): New function.
9689         (maybe_warn): Call should_warn_p.  Update diagnostic messages
9690         and handle those for all directives, including plain strings.
9691         (format_directive): Handle likely and unlikely counters.
9692         Remove unnecessary quoting from diagnostics.  Add an informational
9693         note.
9694         (add_bytes): Remove.
9695         (pass_sprintf_length::compute_format_length): Simplify.
9696         (try_substitute_return_value): Handle likely and unlikely counters.
9697
9698 2017-01-26  Carl Love  <cel@us.ibm.com>
9699
9700         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
9701         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
9702
9703 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
9704
9705         PR target/79131
9706         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
9707         endianess for subregs into account.
9708         * lra-constraints.c (lra_constraints): Do risky transformations
9709         always on the first iteration.
9710         * lra-lives.c (check_pseudos_live_through_calls): Add arg
9711         last_call_used_reg_set.
9712         (process_bb_lives): Define and use last_call_used_reg_set.
9713         * lra.c (lra): Always continue after lra_constraints on the first
9714         iteration.
9715
9716 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
9717
9718         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
9719         constant.
9720         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
9721
9722 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
9723
9724         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
9725         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
9726         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
9727         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
9728         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
9729         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
9730         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
9731         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
9732         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
9733
9734 2017-01-26  Marek Polacek  <polacek@redhat.com>
9735
9736         PR c/79199
9737         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
9738         for the third operand.
9739
9740 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
9741
9742         PR middle-end/79236
9743         * omp-low.c (struct omp_context): Add simt_stmt field.
9744         (scan_omp_for): Return omp_context *.
9745         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
9746         context to the _simt_ SIMD stmt.
9747         (lower_omp_for): For combined SIMD with sibling _simt_
9748         SIMD, make sure to use the same decls in _looptemp_
9749         clauses as in the sibling.
9750
9751 2017-01-26  David Sherwood  <david.sherwood@arm.com>
9752
9753         PR middle-end/79212
9754         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
9755         all contexts.
9756
9757 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
9758
9759         PR target/70465
9760         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
9761         emit fld b; fld a; if possible.
9762
9763         * brig-builtins.def: Update copyright years.
9764         * config/arm/arm_acle_builtins.def: Update copyright years.
9765
9766 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
9767
9768         PR target/79179
9769         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
9770         constraint instead of o for the stxsd instruction.
9771
9772 2017-01-25  Carl Love  <cel@us.ibm.com>
9773
9774         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
9775         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
9776
9777 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
9778
9779         * doc/invoke.texi (C++ Dialect Options): Fix typo.
9780
9781 2017-01-25  Richard Biener  <rguenther@suse.de>
9782
9783         PR tree-optimization/69264
9784         * target.def (vector_alignment_reachable): Improve documentation.
9785         * doc/tm.texi: Regenerate.
9786         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
9787         and add a comment.
9788         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
9789         earlier changes with respect to TYPE_USER_ALIGN.
9790         (vector_alignment_reachable_p): Likewise.  Improve dumping.
9791
9792 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9793
9794         PR target/79145
9795         * config/arm/arm.md (xordi3): Force constant operand into a register
9796         for TARGET_IWMMXT.
9797
9798 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9799
9800         * doc/invoke.texi (-fstore-merging): Correct default optimization
9801         levels at which it is enabled.
9802         (-O): Move -fstore-merging from list to...
9803         (-O2): ... Here.
9804
9805 2017-01-25  Richard Biener  <rguenther@suse.de>
9806
9807         PR debug/78363
9808         * omp-expand.c: Include debug.h.
9809         (expand_omp_taskreg): Make sure to generate early debug before
9810         outlining anything from a function.
9811         (expand_omp_target): Likewise.
9812         (grid_expand_target_grid_body): Likewise.
9813
9814 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
9815
9816         PR lto/79061
9817         * asan.c (get_translation_unit_decl): New function.
9818         (asan_add_global): Extract modules file name from globals
9819         TRANSLATION_UNIT_DECL name.
9820
9821 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
9822
9823         PR target/77439
9824         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
9825         for long calls with APCS frame and VFP.
9826
9827 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
9828
9829         * cfg.c (original_copy_tables_initialized_p): New function.
9830         * cfg.h (original_copy_tables_initialized_p): New decl.
9831         * cfgrtl.c (relink_block_chain): Guard the call to
9832         free_original_copy_tables with a call to
9833         original_copy_tables_initialized_p.
9834         * cgraph.h (symtab_node::native_rtl_p): New decl.
9835         * cgraphunit.c (symtab_node::native_rtl_p): New function.
9836         (symtab_node::needed_p): Don't assert for early assembly output
9837         for __RTL functions.
9838         (cgraph_node::finalize_function): Set "force_output" for __RTL
9839         functions.
9840         (cgraph_node::analyze): Bail out early for __RTL functions.
9841         (analyze_functions): Update assertion to support __RTL functions.
9842         (cgraph_node::expand): Bail out early for __RTL functions.
9843         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
9844         __RTL functions.
9845         * function.h (struct function): Update comment for field
9846         "pass_startwith".
9847         * gimple-expr.c: Include "tree-pass.h".
9848         (gimple_has_body_p): Return false for __RTL functions.
9849         * Makefile.in (OBJS): Add run-rtl-passes.o.
9850         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
9851         accessor.
9852         (gcc::pass_manager::get_clean_slate): New accessor.
9853         * passes.c: Include "insn-addr.h".
9854         (should_skip_pass_p): Add logging.  Update logic for running
9855         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
9856         property-provider override so it is only done for gimple passes.
9857         Don't skip dfinit.
9858         (skip_pass): New function.
9859         (execute_one_pass): Call skip_pass when skipping passes.
9860         * read-md.c (md_reader::read_char): Support filtering
9861         the input to a subset of line numbers.
9862         (md_reader::md_reader): Initialize fields
9863         m_first_line and m_last_line.
9864         (md_reader::read_file_fragment): New function.
9865         * read-md.h (md_reader::read_file_fragment): New decl.
9866         (md_reader::m_first_line): New field.
9867         (md_reader::m_last_line): New field.
9868         * read-rtl-function.c (function_reader::create_function): Only
9869         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
9870         curr_properties.  Set DECL_INITIAL to a dummy block.
9871         (read_rtl_function_body_from_file_range): New function.
9872         * read-rtl-function.h (read_rtl_function_body_from_file_range):
9873         New decl.
9874         * run-rtl-passes.c: New file.
9875         * run-rtl-passes.h: New file.
9876
9877 2017-01-24  Jeff Law  <law@redhat.com>
9878
9879         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
9880         buffer size.
9881
9882 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
9883
9884         PR tree-optimization/79159
9885         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
9886         (record_nonwrapping_iv): Improve boundary using above function if no
9887         value range information.
9888
9889 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
9890             Martin Jambor  <mjambor@suse.cz>
9891
9892         * brig-builtins.def: New file.
9893         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
9894         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
9895         (DEF_HSAIL_SAT_BUILTIN): Likewise.
9896         (DEF_HSAIL_INTR_BUILTIN): Likewise.
9897         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
9898         * builtin-types.def (BT_INT8): New.
9899         (BT_INT16): Likewise.
9900         (BT_UINT8): Likewise.
9901         (BT_UINT16): Likewise.
9902         (BT_FN_ULONG): Likewise.
9903         (BT_FN_UINT_INT): Likewise.
9904         (BT_FN_UINT_ULONG): Likewise.
9905         (BT_FN_UINT_LONG): Likewise.
9906         (BT_FN_UINT_PTR): Likewise.
9907         (BT_FN_ULONG_PTR): Likewise.
9908         (BT_FN_INT8_FLOAT): Likewise.
9909         (BT_FN_INT16_FLOAT): Likewise.
9910         (BT_FN_UINT32_FLOAT): Likewise.
9911         (BT_FN_UINT16_FLOAT): Likewise.
9912         (BT_FN_UINT8_FLOAT): Likewise.
9913         (BT_FN_UINT64_FLOAT): Likewise.
9914         (BT_FN_UINT16_UINT32): Likewise.
9915         (BT_FN_UINT32_UINT16): Likewise.
9916         (BT_FN_UINT16_UINT16_UINT16): Likewise.
9917         (BT_FN_INT_PTR_INT): Likewise.
9918         (BT_FN_UINT_PTR_UINT): Likewise.
9919         (BT_FN_LONG_PTR_LONG): Likewise.
9920         (BT_FN_ULONG_PTR_ULONG): Likewise.
9921         (BT_FN_VOID_UINT64_UINT64): Likewise.
9922         (BT_FN_UINT8_UINT8_UINT8): Likewise.
9923         (BT_FN_INT8_INT8_INT8): Likewise.
9924         (BT_FN_INT16_INT16_INT16): Likewise.
9925         (BT_FN_INT_INT_INT): Likewise.
9926         (BT_FN_UINT_FLOAT_UINT): Likewise.
9927         (BT_FN_FLOAT_UINT_UINT): Likewise.
9928         (BT_FN_ULONG_UINT_UINT): Likewise.
9929         (BT_FN_ULONG_UINT_PTR): Likewise.
9930         (BT_FN_ULONG_ULONG_ULONG): Likewise.
9931         (BT_FN_UINT_UINT_UINT): Likewise.
9932         (BT_FN_VOID_UINT_PTR): Likewise.
9933         (BT_FN_UINT_UINT_PTR: Likewise.
9934         (BT_FN_UINT32_UINT64_PTR): Likewise.
9935         (BT_FN_INT_INT_UINT_UINT): Likewise.
9936         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
9937         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
9938         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
9939         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
9940         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
9941         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
9942         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
9943         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
9944         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
9945         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
9946         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
9947         * doc/frontends.texi: List BRIG FE.
9948         * doc/install.texi (Testing): Add BRIG tesring requirements.
9949         * doc/invoke.texi (Overall Options): Mention BRIG.
9950         * doc/standards.texi (Standards): Doucment BRIG HSA version.
9951
9952 2017-01-24  Richard Biener  <rguenther@suse.de>
9953
9954         PR translation/79208
9955         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
9956
9957 2017-01-24  Martin Jambor  <mjambor@suse.cz>
9958
9959         PR bootstrap/79198
9960         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
9961         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
9962         and known_contexts.
9963
9964 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
9965
9966         PR middle-end/79123
9967         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
9968         casts from signed to unsigned really don't have a range.
9969
9970 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
9971
9972         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
9973         GMP_RNDx for compatiblity.
9974
9975 2017-01-24  Martin Liska  <mliska@suse.cz>
9976
9977         PR bootstrap/79132
9978         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
9979         that would prevent us to call alloca with -1 as argument.
9980
9981 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
9982
9983         * dwarf2out.c (output_compilation_unit_header, output_file_names):
9984         Avoid -Wformat-security warning.
9985
9986 2017-01-23  Andrew Pinski  <apinski@cavium.com>
9987
9988         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
9989         cost table.
9990
9991 2017-01-23  Martin Sebor  <msebor@redhat.com>
9992
9993         PR middle-end/78703
9994         * gimple-ssa-sprintf.c (warn_level): New global.
9995         (format_integer): Use it here and throughout the rest of the file.
9996         Use the same switch to compute sign as base.
9997         (maybe_warn): New function.
9998         (format_directive): Factor out warnings into maybe_warn.
9999         Add debugging output.  Use warn_level.
10000         (add_bytes): Use warn_level.
10001         (pass_sprintf_length::compute_format_length): Add debugging output.
10002         (try_substitute_return_value): Same.
10003         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
10004
10005         PR middle-end/78703
10006         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
10007         (struct fmtresult, format_integer, format_floating): Adjust.
10008         (fmtresult::fmtresult): Set max correctly in two argument ctor.
10009         (get_string_length, format_string,format_directive): Same.
10010         (pass_sprintf_length::compute_format_length): Same.
10011         (try_substitute_return_value): Simplify slightly.
10012
10013         PR middle-end/78703
10014         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
10015         (fmtresult::operator+=): Outlined.
10016         (struct fmtresult): Add ctors.
10017         (struct conversion_spec): Rename...
10018         (struct directive): ...to this.  Add and remove data members.
10019         (directive::set_width, directive::set_precision): New functions.
10020         (format_percent): Use fmtresult ctor.
10021         (get_width_and_precision): Remove.
10022         (format_integer): Make naming changes.  Avoid computing width and
10023         precision.
10024         (format_floating): Same.  Adjust indentation.
10025         (format_character, format_none): New functions.
10026         (format_string): Moved character handling to format_character.
10027         (format_directive): Remove arguments, change return type.
10028         (parse_directive): New function.
10029         (pass_sprintf_length::compute_format_length): Move directive
10030         parsing to parse_directive.
10031
10032 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
10033
10034         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
10035         (assign_assembler_name_if_needed): ... this.
10036         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
10037         (assign_assembler_name_if_needed): ... this.
10038         (free_lang_data_in_cgraph): Adjust callers.
10039         * cgraphunit.c (cgraph_node::analyze): Likewise.
10040         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
10041         Likewise.
10042
10043 2017-01-23  Richard Biener  <rguenther@suse.de>
10044
10045         PR tree-optimization/79088
10046         PR tree-optimization/79188
10047         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
10048         resetting loop bounds after last path deletion.  Reset loop
10049         bounds of the target loop, make code match the comments.
10050         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
10051         Make sure loops need no fixups.
10052
10053 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
10054
10055         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
10056         exponent support with double type for first argument.
10057         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
10058         type returned by __builtin_vec_extract_sig,
10059         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
10060         functions from "vector int" to "vector unsigned int" or from
10061         "vector long long int" to "vector unsigned long long int".
10062         Changed type returned by __builtin_vec_extract_exp,
10063         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
10064         functions from "vector int" to "vector unsigned int" or from
10065         "vector long long int" to "vector unsigned long long int".
10066         Changed return type of __builtin_vec_test_data_class,
10067         __builtin_vec_test_data_class_sp, and
10068         __builtin_vec_test_data_class_dp from "vector int" to
10069         "vector bool int" or from "vector long long int" to "vector bool
10070         long long int" and changed second argument type from "unsigned
10071         int" to "int".  Added new overloaded function forms "vector float
10072         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
10073         "vector float __builtin_vec_insert_exp_sp (vector float, vector
10074         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
10075         double, vector unsigned long long int)" and "vector double
10076         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
10077         long int)".  Changed return type of
10078         __builtin_scalar_test_data_class and
10079         __builtin_scalar_test_data_class_sp and
10080         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
10081         int" and changed second argument from "unsigned int" to "int".
10082         Changed type returned by __builtin_scalar_test_neg,
10083         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
10084         from "int" to "bool int".  Added new overloaded function form
10085         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
10086         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
10087         exponent double-precision with floating point first argument.
10088         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
10089         documentation of scalar_test_data_class, scalar_test_neg,
10090         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
10091         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
10092         vec_test_data_class built-in functions to reflect refinements in
10093         their type signatures.
10094
10095 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
10096
10097         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
10098         size of buf.
10099         (aarch64_elf_asm_destructor): Likewise.
10100
10101 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
10102
10103         PR rtl-optimization/78634
10104         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
10105         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
10106         * ifcvt.c (noce_try_cmove): Add missing cost check.
10107
10108         PR rtl-optimization/71724
10109         * combine.c (if_then_else_cond): Look for situations where it is
10110         beneficial to undo the work of one of the recursive calls.
10111
10112 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
10113
10114         PR tree-optimization/70754
10115         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
10116         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
10117         combined stmt before it if not NULL.
10118         (combine_chains): Process refs reversely and compute dominance point
10119         for root ref.
10120
10121 2017-01-23  Martin Liska  <mliska@suse.cz>
10122
10123         PR tree-optimization/79196
10124         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
10125         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
10126         instead of memcmp.
10127         (strlen_optimize_stmt): Call the renamed function.
10128
10129 2017-01-23  Michael Matz  <matz@suse.de>
10130
10131         PR tree-optimization/78384
10132         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
10133
10134 2017-01-23  Richard Biener  <rguenther@suse.de>
10135
10136         PR tree-optimization/79186
10137         * tree-vrp.c (register_new_assert_for): Make sure we've seen
10138         both incoming edges before moving an assert.
10139
10140 2017-01-23  Martin Jambor  <mjambor@suse.cz>
10141
10142         * ipa-prop.c (load_from_param_1): Removed.
10143         (load_from_unmodified_param): Bits from load_from_param_1 put back
10144         here.
10145         (load_from_param): Removed.
10146         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
10147         with stmt.  Reverted back to use of load_from_unmodified_param.
10148
10149 2017-01-23  Martin Jambor  <mjambor@suse.cz>
10150
10151         PR ipa/79108
10152         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
10153         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
10154         field a pointer to garbage collected vector, mark lattices and
10155         ipcp_orig_node with GTY((skip)).
10156         (ipa_get_param_count): Adjust to descriptors being a pointer.
10157         (ipa_get_param): Likewise.
10158         (ipa_get_type): Likewise.
10159         (ipa_get_param_move_cost): Likewise.
10160         (ipa_set_param_used): Likewise.
10161         (ipa_get_controlled_uses): Likewise.
10162         (ipa_set_controlled_uses): Likewise.
10163         (ipa_is_param_used): Likewise.
10164         (ipa_node_params_t): Move into garbage collector.  New methods insert
10165         and remove.
10166         (ipa_node_params_sum): Annotate wth GTY(()).
10167         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
10168         garbage collected.
10169         (ipa_load_from_parm_agg): Adjust declaration.
10170         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
10171         * ipa-profile.c (ipa_profile): Likewise.
10172         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
10173         (ipa_populate_param_decls): Make descriptors parameter garbage
10174         collected.
10175         (ipa_dump_param): Adjust to descriptors being a pointer.
10176         (ipa_alloc_node_params): Likewise.
10177         (ipa_initialize_node_params): Likewise.
10178         (load_from_param_1): Make descriptors parameter garbage collected.
10179         (load_from_unmodified_param): Likewise.
10180         (load_from_param): Likewise.
10181         (ipa_load_from_parm_agg): Likewise.
10182         (ipa_node_params::~ipa_node_params): Removed.
10183         (ipa_free_all_node_params): Remove call to delete operator.
10184         (ipa_node_params_t::insert): New.
10185         (ipa_node_params_t::remove): Likewise.
10186         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
10187         copy known_csts and known_contexts vectors.
10188         (ipa_read_node_info): Adjust to descriptors being a pointer.
10189         (ipcp_modif_dom_walker): Make m_descriptors field garbage
10190         collected.
10191         (ipcp_transform_function): Make descriptors variable garbage
10192         collected.
10193
10194 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
10195
10196         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
10197         * config/i386/avx512dqintrin.h: Ditto.
10198         * config/i386/avx512fintrin.h: Ditto.
10199         * gcc/config/i386/i386.c: Handle new builtins.
10200         * config/i386/i386-builtin.def: Add new builtins.
10201         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
10202         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
10203
10204 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
10205             Martin Liska  <mliska@suse.cz>
10206
10207         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
10208         * asan.c (asan_expand_poison_ifn): Support stores and use
10209         appropriate ASAN report function.
10210         * internal-fn.c (expand_ASAN_POISON_USE): New function.
10211         * internal-fn.def (ASAN_POISON_USE): Declare.
10212         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
10213         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
10214         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
10215         ASAN_POISON calls w/o LHS.
10216         * tree-ssa.c (execute_update_addresses_taken): Create clobber
10217         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
10218         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
10219         * gimplify.c (asan_poison_variables): Add attribute
10220         use_after_scope_memory to variables that really needs to live
10221         in memory.
10222         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
10223         having the attribute.
10224
10225 2017-01-23  Martin Liska  <mliska@suse.cz>
10226
10227         * asan.c (create_asan_shadow_var): New function.
10228         (asan_expand_poison_ifn): Likewise.
10229         * asan.h (asan_expand_poison_ifn): New declaration.
10230         * internal-fn.c (expand_ASAN_POISON): Likewise.
10231         * internal-fn.def (ASAN_POISON): New builtin.
10232         * sanopt.c (pass_sanopt::execute): Expand
10233         asan_expand_poison_ifn.
10234         * tree-inline.c (copy_decl_for_dup_finish): Make function
10235         external.
10236         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
10237         * tree-ssa.c (is_asan_mark_p): New function.
10238         (execute_update_addresses_taken): Rewrite local variables
10239         (identified just by use-after-scope as addressable) into SSA.
10240
10241 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
10242
10243         * doc/install.texi (Specific): opensource.apple.com uses https
10244         now. Remove trailing slash.
10245
10246 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
10247
10248         * README.Portability: Remove note on an Irix compatibility issue.
10249
10250 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
10251
10252         * gcov.c (INCLUDE_ALGORITHM): Define.
10253         (INCLUDE_VECTOR): Define.
10254         No longer include <vector> and <algorithm> directly.
10255
10256 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
10257
10258         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
10259         to https.
10260         * doc/invoke.texi (Code Gen Options): Ditto.
10261
10262 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
10263
10264         PR lto/78407
10265         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
10266
10267 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
10268
10269         rtl-optimization/79125
10270         * cprop.c (local_cprop_pass): Handle cases where we make an
10271         unconditional trap.
10272
10273 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
10274
10275         PR target/61729
10276         PR target/77850
10277         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
10278         read from, for big endian.
10279
10280 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
10281
10282         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
10283         register pauth builtins for LP64 only.
10284
10285 2017-01-20  Marek Polacek  <polacek@redhat.com>
10286
10287         PR c/79152
10288         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
10289         non-case labels.
10290
10291 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
10292
10293         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
10294         of safelen status.
10295         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
10296         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
10297         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
10298
10299 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10300
10301         PR target/71270
10302         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
10303         in big-endian mode when they are not a single duplicated value.
10304
10305 2017-01-20  Richard Biener  <rguenther@suse.de>
10306
10307         * BASE-VER: Bump to 7.0.1.
10308
10309 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
10310
10311         * omp-low.c (omplow_simd_context): New struct.  Use it...
10312         (lower_rec_simd_input_clauses): ...here and...
10313         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
10314         references to idx, lane, max_vf, is_simt.
10315
10316 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
10317
10318         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
10319         mcpu=nps400.
10320
10321 2017-01-20  Martin Jambor  <mjambor@suse.cz>
10322
10323         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
10324         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
10325         gt-hsa-common.h.
10326         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
10327         (GTFILES): Rename hsa.c to hsa-common.c.
10328         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
10329         * hsa-dump.c: Likewise.
10330         * hsa-gen.c: Likewise.
10331         * hsa-regalloc.c: Likewise.
10332         * ipa-hsa.c: Likewise.
10333         * omp-expand.c: Likewise.
10334         * omp-low.c: Likewise.
10335         * toplev.c: Likewise.
10336
10337 2017-01-20  Marek Polacek  <polacek@redhat.com>
10338
10339         PR c/64279
10340         * doc/invoke.texi: Document -Wduplicated-branches.
10341         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
10342         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
10343         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
10344         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
10345         return 0 only when not OEP_LEXICOGRAPHIC.
10346         (fold_build_cleanup_point_expr): Use the expression
10347         location when building CLEANUP_POINT_EXPR.
10348         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
10349         * tree.c (add_expr): Handle error_mark_node.
10350
10351 2017-01-20  Martin Liska  <mliska@suse.cz>
10352
10353         PR lto/69188
10354         * tree-profile.c (init_ic_make_global_vars): Do not call
10355         finalize_decl.
10356         (gimple_init_gcov_profiler): Likewise.
10357
10358 2017-01-20  Martin Liska  <mliska@suse.cz>
10359
10360         PR ipa/71190
10361         * cgraph.h (maybe_create_reference): Remove argument and
10362         update comment.
10363         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
10364         argument.
10365         * ipa-cp.c (create_specialized_node): Likewise.
10366         * symtab.c (symtab_node::maybe_create_reference): Handle
10367         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
10368
10369 2017-01-20  Martin Liska  <mliska@suse.cz>
10370
10371         * read-rtl-function.c (function_reader::create_function): Use
10372         build_decl instread of build_decl_stat.
10373
10374 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
10375
10376         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
10377         * config/i386/avx512dqintrin.h: Ditto.
10378         * config/i386/avx512fintrin.h: Ditto.
10379         * config/i386/i386-builtin-types.def: Add new types.
10380         * gcc/config/i386/i386.c: Handle new types.
10381         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
10382         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
10383         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
10384         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
10385         (__builtin_ia32_kshiftridi): New.
10386         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
10387
10388 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
10389
10390         PR target/78875
10391         PR target/79140
10392         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
10393         define to rs6000_init_stack_protect_guard.
10394         (rs6000_init_stack_protect_guard): New function.
10395
10396 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
10397             Yunqiang Su  <yunqiang.su@imgtec.com>
10398
10399         * config.gcc (supported_defaults): Add madd4.
10400         (with_madd4): Add validation.
10401         (all_defaults): Add madd4.
10402         * config/mips/mips.opt (mmadd4): New option.
10403         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
10404         mmadd4.
10405         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
10406         __mips_no_madd4.
10407         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
10408         (ISA_HAS_FUSED_MADD4): Likewise.
10409         * gcc/doc/invoke.texi (-mmadd4): Document the new option.
10410         * gcc/doc/install.texi (--with-madd4): Document the new option.
10411
10412 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
10413
10414         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
10415         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
10416         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
10417         (aarch64_init_pauth_hint_builtins): New.
10418         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
10419         (aarch64_expand_builtin): Expand new builtins.
10420
10421 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
10422
10423         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
10424         * combine-stack-adj.c (no_unhandled_cfa): Handle
10425         REG_CFA_TOGGLE_RA_MANGLE.
10426         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
10427         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
10428         info for return address signing.
10429         (aarch64_expand_epilogue): Likewise.
10430
10431 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
10432
10433         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
10434         * config/aarch64/aarch64-protos.h
10435         (aarch64_return_address_signing_enabled): New declaration.
10436         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
10437         New function.
10438         (aarch64_expand_prologue): Sign return address before it's pushed onto
10439         stack.
10440         (aarch64_expand_epilogue): Authenticate return address fetched from
10441         stack.
10442         (aarch64_override_options): Sanity check for ILP32 and ISA level.
10443         (aarch64_attributes): New function attributes for "sign-return-address".
10444         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
10445         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
10446         ("*do_return"): Generate combined instructions according to key index.
10447         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
10448         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
10449         iterators.
10450         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
10451         * config/aarch64/aarch64.opt (msign-return-address=): New.
10452         * doc/extend.texi (AArch64 Function Attributes): Documents
10453         "sign-return-address=".
10454         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
10455
10456 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
10457
10458         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
10459         overall option summary.
10460
10461 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
10462
10463         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
10464         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
10465         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
10466         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
10467
10468 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
10469
10470         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
10471         -mpower9-minmax by default for -mcpu=power9.
10472         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
10473         128-bit floating point.
10474
10475 2017-01-20  Alan Modra  <amodra@gmail.com>
10476
10477         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
10478         optimizing for size.
10479
10480 2017-01-20  Alan Modra  <amodra@gmail.com>
10481
10482         PR target/79144
10483         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
10484         for strcmp and strncmp from corresponding builtin decl.
10485
10486 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
10487
10488         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
10489         instead of i386/rtems-64.h.
10490         * config/i386/rtems-64.h: Remove.
10491
10492 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
10493
10494         PR target/78478
10495         Revert:
10496         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
10497
10498         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
10499
10500 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
10501
10502         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
10503         Change int to HOST_WIDE_INT.
10504         * config/aarch64/aarch64-protos.h
10505         (aarch64_simd_gen_const_vector_dup): Likewise.
10506         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
10507
10508 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
10509
10510         * langhooks-def.h (lhd_type_for_size): New decl.
10511         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
10512         * langhooks.c (lhd_type_for_size): New function, taken from
10513         lto_type_for_size.
10514
10515 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
10516
10517         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
10518         define_bypass for CR latency.
10519         (power9-cracked-alu): Update bypass latency and remove power9-branch.
10520         (power9-alu2): Add define_bypass for CR latency.
10521         (power9-cmp): New.
10522         (power9-mul): Update insn latency.
10523         (power9-mul-compare): Update insn latency, bypass latency and remove
10524         power9-branch.
10525
10526 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10527
10528         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
10529         Delete.
10530         * config/aarch64/aarch64.md
10531         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
10532         aarch64_nopcrelative_literal_loads.
10533         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
10534
10535 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
10536
10537         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
10538         TARGET_LOONGSON_3A.
10539         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
10540
10541 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
10542
10543         PR target/78176
10544         * config.gcc (supported_defaults): Add lxc1-sxc1.
10545         (with_lxc1_sxc1): Add validation.
10546         (all_defaults): Add lxc1-sxc1.
10547         * config/mips/mips.opt (mlxc1-sxc1): New option.
10548         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
10549         mlxc1-sxc1.
10550         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
10551         __mips_no_lxc1_sxc1.
10552         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
10553         * gcc/doc/invoke.texi (-mlxc1-sxc1): Document the new option.
10554         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
10555
10556 2017-01-19  Richard Biener  <rguenther@suse.de>
10557
10558         PR tree-optimization/72488
10559         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
10560         sure to restore SSA info.
10561         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
10562
10563 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
10564
10565         PR rtl-optimization/79121
10566         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
10567         of the inner type when shifting an extended value.
10568
10569 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
10570
10571         PR lto/78407
10572         * symtab.c (symtab_node::equal_address_to): Fix comparing of
10573         interposable aliases.
10574
10575 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
10576
10577         PR target/78516
10578         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
10579         Use the evmergelohi instruction.
10580         (mov_si<mode>_e500_subreg4_2_le): Likewise.
10581         (mov_sitf_e500_subreg8_2_be): Likewise.
10582         (mov_sitf_e500_subreg12_2_le): Likewise.
10583         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
10584         (mov_si<mode>_e500_subreg4_2_be): Likewise.
10585         (mov_sitf_e500_subreg8_2_le): Likewise.
10586         (mov_sitf_e500_subreg12_2_be): Likewise.
10587
10588 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10589
10590         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
10591         attribute from vecsimple to vecperm.
10592         (altivec_vbpermq2): Likewise.
10593
10594 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10595
10596         PR target/79040
10597         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
10598
10599 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
10600         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
10601         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
10602         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
10603         case where N arg is SIZE_MAX.
10604         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
10605         (cmpstrsi): Add pattern.
10606
10607 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
10608
10609         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10610         __builtin_vec_revb builtins.
10611         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
10612         built-in functions to support generation of the ISA 3.0 XXBR<x>
10613         vector byte reverse instructions.
10614         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
10615         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
10616         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
10617         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
10618         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
10619         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
10620         (P9V_BUILTIN_VEC_REVB): Likewise.
10621         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
10622         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
10623         (p9_xxbrq_v16qi): Likewise.
10624         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
10625         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
10626         (p9_xxbrh_v8hi): Likewise.
10627         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
10628         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
10629         vec_revb built-in functions.
10630
10631 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
10632
10633         PR rtl-optimization/78952
10634         * config/i386/i386.md (any_extract): New code iterator.
10635         (*insvqi_2): Use any_extract for source operand.
10636         (*insvqi_3): Use any_shiftrt for source operand.
10637
10638 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
10639
10640         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
10641         New function.
10642         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
10643
10644 2017-01-18  Matthias Klose  <doko@ubuntu.com>
10645
10646         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
10647
10648 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10649
10650         * config/rs6000/altivec.h (vec_bperm): Change #define.
10651         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
10652         (altivec_vbpermq2): New define_insn.
10653         (altivec_vbpermd): Likewise.
10654         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
10655         function interface.
10656         (VBPERMD): Likewise.
10657         (VBPERM): New polymorphic function interface.
10658         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
10659         Add entries for P9V_BUILTIN_VEC_VBPERM.
10660         * doc/extend.texi: Add interfaces for vec_bperm.
10661
10662 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10663
10664         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
10665         first letter of error messages.
10666         (s390_resolve_overloaded_builtin): Likewise.
10667         * config/s390/s390.c (s390_expand_builtin): Likewise.
10668         (s390_invalid_arg_for_unprototyped_fn): Likewise.
10669         (s390_valid_target_attribute_inner_p): Likewise.
10670         * config/s390/s390.md ("tabort"): Likewise.
10671
10672 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
10673
10674         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
10675         (ISA_AVOID_DIV_HILO): New macro.
10676         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
10677         (ISA_HAS_DDIV): Likewise.
10678
10679 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
10680
10681         * doc/invoke.texi (fabi-version): Correct number of occurrences.
10682
10683 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
10684
10685         * doc/invoke.texi (fabi-version): Spelling fix.
10686
10687 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
10688
10689         PR c++/70182
10690         * doc/invoke.texi (fabi-version): Mention mangling fix for
10691         operator names.
10692
10693 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
10694
10695         PR c++/77489
10696         * doc/invoke.texi (fabi-version): Document discriminator mangling.
10697
10698 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
10699
10700         PR target/78875
10701         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
10702         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
10703         the new options.
10704         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
10705         flexible settings.
10706         (stack_protect_test): Ditto.
10707         * config/rs6000/rs6000.opt (mstack-protector-guard=,
10708         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
10709         options.
10710         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
10711         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
10712         -mstack-protector-guard-offset=.
10713         (RS/6000 and PowerPC Options): Ditto.
10714
10715 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
10716
10717         * config/i386/i386.h (MASK_CLASS_P): New define.
10718         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
10719         there are no registers from different register sets also when
10720         mask registers are used.  Update function comment.
10721         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
10722         to (*k/*r) and (*k/*km) alternatives.
10723
10724 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
10725
10726         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
10727         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
10728         (EH_RETURN_HANDLER_RTX): New define.
10729         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
10730         Force frame pointer in EH return functions.
10731         (aarch64_expand_epilogue): Add barrier for eh_return.
10732         (aarch64_final_eh_return_addr): Remove.
10733         (aarch64_eh_return_handler_rtx): New function.
10734         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
10735         Remove.
10736         (aarch64_eh_return_handler_rtx): New prototype.
10737
10738 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10739
10740         * config/rs6000/altivec.h (vec_rlmi): New #define.
10741         (vec_vrlnm): Likewise.
10742         (vec_rlnm): Likewise.
10743         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
10744         (UNSPEC_VRLNM): Likewise.
10745         (VIlong): New mode iterator.
10746         (altivec_vrl<VI_char>mi): New define_insn.
10747         (altivec_vrl<VI_char>nm): Likewise.
10748         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
10749         function entry.
10750         (VRLDNM): Likewise.
10751         (RLNM): New polymorphic function entry.
10752         (VRLWMI): New monomorphic function entry.
10753         (VRLDMI): Likewise.
10754         (RLMI): New polymorphic function entry.
10755         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
10756         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
10757         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
10758         vec_vrlnm.
10759
10760 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
10761
10762         PR debug/78839
10763         * dwarf2out.c (field_byte_offset): Restore the
10764         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
10765         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
10766         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
10767         of build2 + fold.
10768
10769 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
10770
10771         PR ada/67205
10772         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
10773
10774 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
10775
10776         PR debug/71669
10777         * dwarf2out.c (add_data_member_location_attribute): For constant
10778         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
10779         instead of DW_AT_data_member_location, DW_AT_bit_offset and
10780         DW_AT_byte_size attributes.
10781
10782 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
10783
10784         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
10785         after forcing to constant memory when the code model is medium.
10786
10787 2017-01-17  Julia Koval  <julia.koval@intel.com>
10788
10789         PR target/76731
10790         * config/i386/avx512fintrin.h
10791         (_mm512_i32gather_ps): Change __addr type to void const*.
10792         (_mm512_mask_i32gather_ps): Ditto.
10793         (_mm512_i32gather_pd): Ditto.
10794         (_mm512_mask_i32gather_pd): Ditto.
10795         (_mm512_i64gather_ps): Ditto.
10796         (_mm512_mask_i64gather_ps): Ditto.
10797         (_mm512_i64gather_pd): Ditto.
10798         (_mm512_mask_i64gather_pd): Ditto.
10799         (_mm512_i32gather_epi32): Ditto.
10800         (_mm512_mask_i32gather_epi32): Ditto.
10801         (_mm512_i32gather_epi64): Ditto.
10802         (_mm512_mask_i32gather_epi64): Ditto.
10803         (_mm512_i64gather_epi32): Ditto.
10804         (_mm512_mask_i64gather_epi32): Ditto.
10805         (_mm512_i64gather_epi64): Ditto.
10806         (_mm512_mask_i64gather_epi64): Ditto.
10807         (_mm512_i32scatter_ps): Change __addr type to void*.
10808         (_mm512_mask_i32scatter_ps): Ditto.
10809         (_mm512_i32scatter_pd): Ditto.
10810         (_mm512_mask_i32scatter_pd): Ditto.
10811         (_mm512_i64scatter_ps): Ditto.
10812         (_mm512_mask_i64scatter_ps): Ditto.
10813         (_mm512_i64scatter_pd): Ditto.
10814         (_mm512_mask_i64scatter_pd): Ditto.
10815         (_mm512_i32scatter_epi32): Ditto.
10816         (_mm512_mask_i32scatter_epi32): Ditto.
10817         (_mm512_i32scatter_epi64): Ditto.
10818         (_mm512_mask_i32scatter_epi64): Ditto.
10819         (_mm512_i64scatter_epi32): Ditto.
10820         (_mm512_mask_i64scatter_epi32): Ditto.
10821         (_mm512_i64scatter_epi64): Ditto.
10822         (_mm512_mask_i64scatter_epi64): Ditto.
10823         * config/i386/avx512pfintrin.h
10824         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
10825         (_mm512_mask_prefetch_i32gather_ps): Ditto.
10826         (_mm512_mask_prefetch_i64gather_pd): Ditto.
10827         (_mm512_mask_prefetch_i64gather_ps): Ditto.
10828         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
10829         (_mm512_prefetch_i32scatter_ps): Ditto.
10830         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
10831         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
10832         (_mm512_prefetch_i64scatter_pd): Ditto.
10833         (_mm512_prefetch_i64scatter_ps): Ditto.
10834         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
10835         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
10836         * config/i386/avx512vlintrin.h
10837         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
10838         (_mm_mmask_i32gather_ps): Ditto.
10839         (_mm256_mmask_i32gather_pd): Ditto.
10840         (_mm_mmask_i32gather_pd): Ditto.
10841         (_mm256_mmask_i64gather_ps): Ditto.
10842         (_mm_mmask_i64gather_ps): Ditto.
10843         (_mm256_mmask_i64gather_pd): Ditto.
10844         (_mm_mmask_i64gather_pd): Ditto.
10845         (_mm256_mmask_i32gather_epi32): Ditto.
10846         (_mm_mmask_i32gather_epi32): Ditto.
10847         (_mm256_mmask_i32gather_epi64): Ditto.
10848         (_mm_mmask_i32gather_epi64): Ditto.
10849         (_mm256_mmask_i64gather_epi32): Ditto.
10850         (_mm_mmask_i64gather_epi32): Ditto.
10851         (_mm256_mmask_i64gather_epi64): Ditto.
10852         (_mm_mmask_i64gather_epi64): Ditto.
10853         (_mm256_i32scatter_ps): Change __addr type to void*.
10854         (_mm256_mask_i32scatter_ps): Ditto.
10855         (_mm_i32scatter_ps): Ditto.
10856         (_mm_mask_i32scatter_ps): Ditto.
10857         (_mm256_i32scatter_pd): Ditto.
10858         (_mm256_mask_i32scatter_pd): Ditto.
10859         (_mm_i32scatter_pd): Ditto.
10860         (_mm_mask_i32scatter_pd): Ditto.
10861         (_mm256_i64scatter_ps): Ditto.
10862         (_mm256_mask_i64scatter_ps): Ditto.
10863         (_mm_i64scatter_ps): Ditto.
10864         (_mm_mask_i64scatter_ps): Ditto.
10865         (_mm256_i64scatter_pd): Ditto.
10866         (_mm256_mask_i64scatter_pd): Ditto.
10867         (_mm_i64scatter_pd): Ditto.
10868         (_mm_mask_i64scatter_pd): Ditto.
10869         (_mm256_i32scatter_epi32): Ditto.
10870         (_mm256_mask_i32scatter_epi32): Ditto.
10871         (_mm_i32scatter_epi32): Ditto.
10872         (_mm_mask_i32scatter_epi32): Ditto.
10873         (_mm256_i32scatter_epi64): Ditto.
10874         (_mm256_mask_i32scatter_epi64): Ditto.
10875         (_mm_i32scatter_epi64): Ditto.
10876         (_mm_mask_i32scatter_epi64): Ditto.
10877         (_mm256_i64scatter_epi32): Ditto.
10878         (_mm256_mask_i64scatter_epi32): Ditto.
10879         (_mm_i64scatter_epi32): Ditto.
10880         (_mm_mask_i64scatter_epi32): Ditto.
10881         (_mm256_i64scatter_epi64): Ditto.
10882         (_mm256_mask_i64scatter_epi64): Ditto.
10883         (_mm_i64scatter_epi64): Ditto.
10884         (_mm_mask_i64scatter_epi64): Ditto.
10885         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
10886         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
10887         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
10888         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
10889         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
10890         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
10891         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
10892         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
10893         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
10894         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
10895         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
10896         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
10897         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
10898         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
10899         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
10900         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
10901         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
10902         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
10903         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
10904         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
10905         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
10906         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
10907         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
10908         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
10909         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
10910         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
10911         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
10912         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
10913         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
10914         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
10915         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
10916         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
10917         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
10918         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
10919         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
10920         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
10921         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
10922         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
10923         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
10924         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
10925         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
10926         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
10927         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
10928         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
10929         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
10930         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
10931         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
10932         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
10933         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
10934         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
10935         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
10936         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
10937         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
10938         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
10939         definitions accordingly.
10940
10941 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
10942             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
10943
10944         PR target/79079
10945         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
10946         gen_lowpart.
10947
10948 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
10949
10950         PR target/79058
10951         * ira-conflicts.c (ira_build_conflicts): Update total conflict
10952         hard regs for inner regno.
10953
10954 2017-01-17  Martin Liska  <mliska@suse.cz>
10955
10956         PR ipa/71207
10957         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
10958         assumption and add comment.
10959
10960 2017-01-17  Nathan Sidwell  <nathan@acm.org>
10961
10962         * ipa-visibility.c (localize_node): New function, broken out of ...
10963         (function_and_variable_visibility): ... here. Call it.
10964
10965 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
10966
10967         PR middle-end/77445
10968         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
10969         correctly set frequency of oudgoing edge.
10970         (duplicate_thread_path): Fix profile updating.
10971
10972 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
10973
10974         PR other/79046
10975         * configure.ac: Add GCC_BASE_VER.
10976         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
10977         version from BASE-VER file.
10978         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
10979         (gcc.o): Depend on $(BASEVER).
10980         * common.opt (dumpfullversion): New option.
10981         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
10982         * doc/invoke.texi: Document -dumpfullversion.
10983         * doc/install.texi: Document --with-gcc-major-version-only.
10984         * configure: Regenerated.
10985
10986 2017-01-17  Richard Biener  <rguenther@suse.de>
10987
10988         PR tree-optimization/71433
10989         * tree-vrp.c (register_new_assert_for): Merge same asserts
10990         on all incoming edges.
10991         (process_assert_insertions_for): Handle insertions at the
10992         beginning of BBs.
10993
10994 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
10995
10996         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
10997         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
10998
10999 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
11000
11001         PR target/78633
11002         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
11003         RTL sharing.
11004
11005 2017-01-17  Alan Modra  <amodra@gmail.com>
11006
11007         PR target/79066
11008         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
11009         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
11010         symbolic stack limit when pic.
11011
11012 2017-01-16  Martin Sebor  <msebor@redhat.com>
11013
11014         PR tree-optimization/78608
11015         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
11016
11017 2017-01-16  Jeff Law  <law@redhat.com>
11018
11019         Revert:
11020         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
11021         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
11022         for several include directories that may be relative to sysroot.
11023         * config/i386/x-mingw32 (gplus_includedir): Define.
11024         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
11025         (native_system_includedir): Likewise.
11026         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
11027         override if TARGET_SYSTEM_ROOT is defined.
11028         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
11029
11030         PR tree-optimization/79090
11031         PR tree-optimization/33562
11032         PR tree-optimization/61912
11033         PR tree-optimization/77485
11034         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
11035         and computed trims into the dump file.
11036
11037 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
11038
11039         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
11040
11041 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
11042
11043         PR c/79089
11044         * gimplify.c (gimplify_init_constructor): If want_value and
11045         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
11046         fix.
11047
11048         PR target/79080
11049         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
11050         sequence.  Formatting fixes.
11051         (doloop_optimize): Formatting fixes.
11052
11053         PR driver/49726
11054         * gcc.c (debug_level_greater_than_spec_func): New function.
11055         (static_spec_functions): Add debug-level-gt spec function.
11056         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
11057         !g0.
11058         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
11059         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
11060         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
11061         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
11062         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
11063         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
11064
11065 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
11066
11067         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
11068         QImode fixups to general and mask registers only.
11069
11070 2017-01-16  Carl Love  <cel@us.ibm.com>
11071
11072         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
11073         for built-in functions
11074         vector signed char vec_nabs (vector signed char)
11075         vector signed short vec_nabs (vector signed short)
11076         vector signed int vec_nabs (vector signed int)
11077         vector signed long long vec_nabs (vector signed long long)
11078         vector float vec_nabs (vector float)
11079         vector double vec_nabs (vector double)
11080         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
11081         and NABS overload.
11082         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
11083         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
11084         * doc/extend.texi: Update the documentation file for the new built-in
11085         functions.
11086
11087 2017-01-16  Martin Sebor  <msebor@redhat.com>
11088
11089         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
11090         message.
11091
11092 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11093
11094         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
11095         UNSPEC_VSX__XXSPLTD to require special splat handling.
11096
11097 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
11098
11099         PR bootstrap/78616
11100         * system.h: Poison strndup.
11101
11102 2017-01-16  Alan Modra  <amodra@gmail.com>
11103
11104         PR target/79098
11105         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
11106         use a switch.
11107
11108 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
11109
11110         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
11111
11112 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
11113
11114         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
11115         call recog here.  Assert that INSN_CODE (insn) is non-negative.
11116
11117 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
11118
11119         PR target/72749
11120         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
11121         fallthrough.
11122         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
11123         in the currently scheduled RTL fragment.
11124
11125 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
11126
11127         PR rtl-optimization/78751
11128         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
11129         give up.
11130
11131 2017-01-14  Jeff Law  <law@redhat.com>
11132
11133         PR tree-optimization/79090
11134         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
11135         variable length stores.
11136         (compute_trims): Delete dead assignment to *trim_tail.
11137         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
11138         zero length.
11139
11140 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
11141
11142         PR rtl-optimization/78626
11143         PR rtl-optimization/78727
11144         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
11145         of a block, and split such blocks after everything else is finished.
11146
11147 2017-01-14  Alan Modra  <amodra@gmail.com>
11148
11149         PR target/72749
11150         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
11151         target legitimate_combined_insn.
11152         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
11153         (rs6000_legitimate_combined_insn): New function.
11154         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
11155         all uses.
11156         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
11157         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
11158         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
11159
11160 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
11161
11162         * doc/frontends.texi (G++ and GCC): Remove references to Java.
11163
11164 2017-01-13  Jeff Law  <law@redhat.com>
11165
11166         PR tree-optimization/33562
11167         PR tree-optimization/61912
11168         PR tree-optimization/77485
11169         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
11170         a statement.
11171         (delete_dead_assignment): Likewise.
11172         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
11173         statement to delete_dead_call and delete_dead_assignment.
11174
11175 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
11176
11177         PR c/78304
11178         * substring-locations.c (format_warning_va): Strengthen case 1 so
11179         that both endpoints of the substring must be within the format
11180         range for just the substring to be printed.
11181
11182 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
11183
11184         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
11185         * config/i386/i386.c (ix86_target_string): Add missing options
11186         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
11187         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
11188         flags_other and ix86_target_other to flags2_other.  Display unknown
11189         isa2 options.
11190         (ix86_valid_target_attribute_inner_p): Add missing options and
11191         reorder options by implied ISAs, as in ix86_target_string.
11192
11193 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
11194
11195         * hash-table.h (hash_table::too_empty_p): New function.
11196         (hash_table::expand): Use it.
11197         (hash_table::traverse): Likewise.
11198         (hash_table::empty_slot): Use sizeof (value_type) instead of
11199         sizeof (PTR) to convert bytes to elements.  Shrink the table
11200         if the current size is excessive for the current number of
11201         elements.
11202
11203 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
11204
11205         * ira-costs.c (record_reg_classes): Break from the inner loop
11206         early once alt_fail is known to be true.  Update outer loop
11207         handling accordingly.
11208
11209 2017-01-13  Jeff Law  <law@redhat.com>
11210
11211         * tree-ssa-dse.c (decrement_count): New function.
11212         (increment_start_addr, maybe_trim_memstar_call): Likewise.
11213         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
11214         when we know the partially dead statement is a mem* function.
11215
11216         PR tree-optimization/61912
11217         PR tree-optimization/77485
11218         * tree-ssa-dse.c: Include expr.h.
11219         (maybe_trim_constructor_store): New function.
11220         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
11221
11222         PR tree-optimization/33562
11223         PR tree-optimization/61912
11224         PR tree-optimization/77485
11225         * doc/invoke.texi: Document new dse-max-object-size param.
11226         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
11227         * tree-ssa-dse.c: Include params.h.
11228         (dse_store_status): New enum.
11229         (initialize_ao_ref_for_dse): New, partially extracted from
11230         dse_optimize_stmt.
11231         (valid_ao_ref_for_dse, normalize_ref): New.
11232         (setup_live_bytes_from_ref, compute_trims): Likewise.
11233         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
11234         (maybe_trim_partially_dead_store): Likewise.
11235         (maybe_trim_complex_store): Likewise.
11236         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
11237         Track what bytes live from the original store.  Return tri-state
11238         for dead, partially dead or live.
11239         (dse_dom_walker): Add constructor, destructor and new private members.
11240         (delete_dead_call, delete_dead_assignment): New extracted from
11241         dse_optimize_stmt.
11242         (dse_optimize_stmt): Make a member of dse_dom_walker.
11243         Use initialize_ao_ref_for_dse.
11244
11245         PR tree-optimization/33562
11246         PR tree-optimization/61912
11247         PR tree-optimization/77485
11248         * sbitmap.h (bitmap_count_bits): Prototype.
11249         (bitmap_clear_range, bitmap_set_range): Likewise.
11250         * sbitmap.c (bitmap_clear_range): New function.
11251         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
11252
11253 2017-01-13  Martin Liska  <mliska@suse.cz>
11254
11255         PR ipa/79043
11256         * function.c (set_cfun): Add new argument force.
11257         * function.h (set_cfun): Likewise.
11258         * ipa-inline-transform.c (inline_call): Use the function when
11259         strict alising from is dropped for function we inline to.
11260
11261 2017-01-13  Richard Biener  <rguenther@suse.de>
11262
11263         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
11264         for dumping GIMPLE INTEGER_CSTs.
11265
11266 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11267
11268         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
11269         to 201112L since C++17.
11270
11271 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
11272
11273         PR sanitizer/78887
11274         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
11275         if -fsanitize=kernel-address is present.
11276
11277 2017-01-13  Richard Biener  <rguenther@suse.de>
11278
11279         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
11280         as _Literal ( type ) number in case usual suffixes do not
11281         preserve all information.
11282
11283 2017-01-13  Richard Biener  <rguenther@suse.de>
11284
11285         PR tree-optimization/77283
11286         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
11287         and ssa-iterators.h.
11288         (is_feasible_trace): Implement a cost model based on joiner
11289         PHI node uses.
11290
11291 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
11292
11293         PR target/79004
11294         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
11295         char or short to __float128/_Float128 directly.
11296
11297 2017-01-12  Martin Sebor  <msebor@redhat.com>
11298
11299         to -Wformat-overflow.
11300         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
11301         (min_bytes_remaining): Same.
11302         (get_string_length): Same.
11303         (format_string): Same.
11304         (format_directive): Same.
11305         (add_bytes): Same.
11306         (pass_sprintf_length::handle_gimple_call): Same.
11307
11308 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
11309
11310         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
11311         info.nowrite calls with no lhs that can't throw.  Return bool
11312         whether gsi_remove has been called or not.
11313         (pass_sprintf_length::handle_gimple_call): Return bool whether
11314         try_substitute_return_value called gsi_remove.  Formatting fix.
11315         (pass_sprintf_length::execute): Don't use gsi_remove if
11316         handle_gimple_call returned true.
11317
11318         PR bootstrap/79069
11319         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
11320         be removed due to side-effects, don't remove following barrier nor
11321         turn the successor edge into fallthru edge.
11322
11323 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11324
11325         PR target/79044
11326         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
11327         element-reversing loads and stores as not swappable.
11328
11329 2017-01-12  Nathan Sidwell  <nathan@acm.org>
11330             Nicolai Stange  <nicstange@gmail.com>
11331
11332         * combine.c (try_combine): Don't ignore result of overlap checking
11333         loop.  Combine overlap & asm check into single loop.
11334
11335 2017-01-12  Richard Biener  <rguenther@suse.de>
11336
11337         * tree-pretty-print.c (dump_generic_node): Provide -gimple
11338         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
11339
11340 2017-01-12  Richard Biener  <rguenther@suse.de>
11341
11342         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
11343         and TS_TARGET_OPTION directly derive from TS_BASE.
11344         * tree-core.h (tree_optimization_option): Derive from tree_base.
11345         (tree_target_option): Likewise.
11346
11347 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
11348
11349         * config/i386/i386.c (memory_address_length): Increase len
11350         only when rip_relative_addr_p returns false.
11351
11352 2017-01-11  Julia Koval  <julia.koval@intel.com>
11353
11354         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
11355         (OPTION_MASK_ISA_SGX_SET): New.
11356         (ix86_handle_option): Handle OPT_msgx.
11357         * config.gcc: Added sgxintrin.h.
11358         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
11359         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
11360         * config/i386/i386.c (ix86_target_string): Add -msgx.
11361         (PTA_SGX): New.
11362         (ix86_option_override_internal): Handle new options.
11363         (ix86_valid_target_attribute_inner_p): Add sgx.
11364         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
11365         * config/i386/i386.opt: Add msgx.
11366         * config/i386/sgxintrin.h: New file.
11367         * config/i386/x86intrin.h: Add sgxintrin.h.
11368
11369 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
11370
11371         PR c++/71537
11372         * fold-const.c (maybe_nonzero_address): Return 1 for function
11373         local objects.
11374         (tree_single_nonzero_warnv_p): Don't handle function local objects
11375         here.
11376
11377         PR c++/72813
11378         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
11379         of c-header.
11380
11381 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
11382
11383         PR driver/78877
11384         * opts.c: Include "spellcheck.h"
11385         (struct string_fragment): New struct.
11386         (struct edit_distance_traits<const string_fragment &>): New
11387         struct.
11388         (get_closest_sanitizer_option): New function.
11389         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
11390
11391 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
11392
11393         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
11394         by 12.
11395         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
11396         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
11397         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
11398         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
11399         for initial die_offset if dwarf_split_debug_info.
11400         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
11401         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
11402         fields.
11403         (output_skeleton_debug_sections): Formatting fix.  Use
11404         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
11405         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
11406
11407 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
11408
11409         * config/arm/cortex-a53.md: Add bypasses for
11410         cortex_a53_r2f_cvt.
11411         (cortex_a53_r2f): Only use for transfers.
11412         (cortex_a53_f2r): Likewise.
11413         (cortex_a53_r2f_cvt): Add reservation for conversions.
11414         (cortex_a53_f2r_cvt): Likewise.
11415
11416 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
11417
11418         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
11419         to all inlined functions, change static to extern.
11420
11421 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
11422
11423         PR target/78253
11424         * config/arm/arm.c (legitimize_pic_address): Handle reference to
11425         weak symbol.
11426         (arm_assemble_integer): Likewise.
11427
11428 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
11429
11430         * config.gcc: Use new awk script to check CPU, FPU and architecture
11431         parameters for --with-... options.
11432         * config/arm/parsecpu.awk: New file
11433         * config/arm/arm-cpus.in: New file.
11434         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
11435         files.
11436         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
11437         files.
11438         * config/arm/t-arm: Update dependency rules.
11439         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
11440         of processing .def files.
11441         * config/arm/genopt.sh: Deleted.
11442         * config/arm/gentune.sh: Deleted.
11443         * config/arm/arm-cores.def: Deleted.
11444         * config/arm/arm-arches.def: Deleted.
11445         * config/arm/arm-fpus.def: Deleted.
11446         * config/arm/arm-tune.md: Regenerated.
11447         * config/arm/arm-tables.opt: Regenerated.
11448         * config/arm/arm-cpu.h: New generated file.
11449         * config/arm/arm-cpu-data.h: New generated file.
11450         * config/arm/arm-cpu-cdata.h: New generated file.
11451
11452 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
11453
11454         PR lto/79042
11455         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
11456         bit.
11457         (input_varpool_node): Unpack dynamically_initialized bit.
11458
11459 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
11460
11461         PR rtl-optimization/79032
11462         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
11463         the alignment of the adjusted memory reference against that of MODE,
11464         instead of the alignment of the original memory reference.
11465
11466 2017-01-11  Martin Jambor  <mjambor@suse.cz>
11467
11468         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
11469         test.
11470         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
11471         decorated functions.
11472
11473 2017-01-11  Richard Biener  <rguenther@suse.de>
11474
11475         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
11476         set range/nonnull info for PHI results.  Do not set it on
11477         stmts marked for removal.
11478
11479 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
11480
11481         * expr.c (store_field): In the bitfield case, fetch the return value
11482         from the registers before applying a single big-endian adjustment.
11483         Always do a final load for a BLKmode value not larger than a word.
11484
11485 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
11486
11487         PR c++/77949
11488         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
11489         that we correctly handle column numbers greater than
11490         LINE_MAP_MAX_COLUMN_NUMBER.
11491
11492 2017-01-10  Martin Sebor  <msebor@redhat.com>
11493
11494         PR middle-end/78245
11495         * gimple-ssa-sprintf.c (get_destination_size): Call
11496         {init,fini}object_sizes.
11497         * tree-object-size.c (addr_object_size): Adjust.
11498         (pass_through_call): Adjust.
11499         (pass_object_sizes::execute): Adjust.
11500         * tree-object-size.h (fini_object_sizes): Declare.
11501
11502 2017-01-10  Martin Sebor  <msebor@redhat.com>
11503
11504         PR tree-optimization/78775
11505         * builtins.c (get_size_range): Move...
11506         * calls.c: ...to here.
11507         (alloc_max_size): Accept zero argument.
11508         (operand_signed_p): Remove.
11509         (maybe_warn_alloc_args_overflow): Call get_size_range.
11510         * calls.h (get_size_range): Declare.
11511
11512 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
11513
11514         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
11515         from TI's devices.csv file as of September 2016.
11516         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
11517
11518 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
11519
11520         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
11521         * doc/invoke.texi: Likewise.
11522         * doc/md.texi: Likewise.
11523         * doc/objc.texi: Likewise.
11524
11525 2017-01-10  Joshua Conner  <joshconner@google.com>
11526
11527         * config/arm/fuchsia-elf.h: New file.
11528         * config/fuchsia.h: New file.
11529         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
11530         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
11531         targets.
11532         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
11533
11534 2016-01-10  Richard Biener  <rguenther@suse.de>
11535
11536         PR tree-optimization/79034
11537         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
11538         Propagate out degenerate PHIs in the joiner.
11539
11540 2017-01-10  Martin Liska  <mliska@suse.cz>
11541
11542         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
11543         (sort_congruence_classes_by_decl_uid): Likewise.
11544         (sort_congruence_class_groups_by_decl_uid): Likewise.
11545         (sem_item_optimizer::merge_classes): Sort class, groups in these
11546         classes and members in the groups by DECL_UID of declarations.
11547         This would make merge operations stable.
11548
11549 2017-01-10  Martin Liska  <mliska@suse.cz>
11550
11551         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
11552         usage of m_classes_vec.
11553         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
11554         (sem_item_optimizer::get_group_by_hash): Likewise.
11555         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
11556         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
11557         (sem_item_optimizer::verify_classes): Likewise.
11558         (sem_item_optimizer::process_cong_reduction): Likewise.
11559         (sem_item_optimizer::dump_cong_classes): Likewise.
11560         (sem_item_optimizer::merge_classes): Likewise.
11561         * ipa-icf.h (congruence_class_hash): Rename from
11562         congruence_class_group_hash.  Remove declaration of m_classes_vec.
11563
11564 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
11565
11566         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
11567         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
11568         * config.gcc: Add avx512vpopcntdqintrin.h.
11569         * config/i386/avx512vpopcntdqintrin.h: New.
11570         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
11571         * config/i386/i386-builtin-types.def: Add new types.
11572         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
11573         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
11574         __builtin_ia32_vpopcountq_v8di_mask): New.
11575         * config/i386/i386-c.c (ix86_target_macros_internal): Define
11576         __AVX512VPOPCNTDQ__.
11577         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
11578         (PTA_AVX512VPOPCNTDQ): Define.
11579         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
11580         TARGET_AVX512VPOPCNTDQ_P): Define.
11581         * config/i386/i386.opt: Add mavx512vpopcntdq.
11582         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
11583         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
11584
11585 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
11586
11587         PR middle-end/77484
11588         * predict.def (PRED_CALL): Set to 67.
11589
11590 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
11591
11592         * expr.c (store_field): In the bitfield case, if the value comes from
11593         a function call and is of an aggregate type returned in registers, do
11594         not modify the field mode; extract the value in all cases if the mode
11595         is BLKmode and the size is not larger than a word.
11596
11597 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
11598
11599         PR target/71017
11600         * config/i386/cpuid.h: Fix undefined behavior.
11601
11602 2017-01-04  Jeff Law  <law@redhat.com>
11603
11604         PR tree-optimization/79007
11605         PR tree-optimization/67955
11606         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
11607         conservative for pt.null when flag_non_call_exceptions is on.
11608
11609 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
11610
11611         PR translation/79019
11612         PR translation/79020
11613         * params.def (PARAM_INLINE_MIN_SPEEDUP,
11614         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
11615         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
11616         in descriptions.
11617         * config/avr/avr.opt (maccumulate-args): Likewise.
11618         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
11619         * common.opt (freport-bug): Likewise.
11620         * cif-code.def (CIF_FINAL_ERROR): Likewise.
11621         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
11622         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
11623         translatable string.
11624         * config/i386/i386.c (function_value_32): Likewise.
11625         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
11626         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
11627         Likewise.
11628         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
11629         * common/config/msp430/msp430-common.c (msp430_handle_option):
11630         Likewise.
11631         * symtab.c (symtab_node::verify_base): Likewise.
11632         * opts.c (set_debug_level): Likewise.
11633         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
11634         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
11635         missing whitespace to translatable strings.
11636         * config/avr/avr.md (bswapsi2): Fix typo in comment.
11637         * config/sh/superh.h: Likewise.
11638         * config/i386/xopintrin.h: Likewise.
11639         * config/i386/znver1.md: Likewise.
11640         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
11641         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
11642         * double-int.h (struct double_int): Likewise.
11643         * double-int.c (div_and_round_double): Likewise.
11644         * wide-int.cc: Likewise.
11645         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
11646         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
11647         * cfgcleanup.c (crossjumps_occured): Renamed to ...
11648         (crossjumps_occurred): ... this.
11649         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
11650         Adjust all uses.
11651
11652         PR tree-optimization/78899
11653         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
11654         returning bool return struct loop *, NULL for failure and the new
11655         loop on success.
11656         (versionable_outer_loop_p): Don't version outer loop if it has
11657         dont_vectorized bit set.
11658         (tree_if_conversion): When versioning outer loop, ensure
11659         tree_if_conversion is performed also on the inner loop of the
11660         non-vectorizable outer loop copy.
11661         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
11662         LOOP_VECTORIZED in inner loop of the scalar outer loop and
11663         prevent vectorization of it.
11664         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
11665         the outer loop vectorization of the non-scalar version is attempted
11666         before vectorization of the inner loop in scalar version.  If
11667         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
11668         vectorization of its inner loop.
11669         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
11670         has 2 inner loops, rename also on edges from bb whose single pred
11671         is outer_loop->header.  Fix typo in function comment.
11672
11673 2017-01-09  Martin Sebor  <msebor@redhat.com>
11674
11675         PR bootstrap/79033
11676         * asan.c (asan_emit_stack_protection): Increase local buffer size
11677         to avoid snprintf truncation warning.
11678
11679 2017-01-09  Andrew Pinski  <apinski@cavium.com>
11680
11681         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
11682         to reference thunderx2t99 for the tuning structure
11683         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
11684         Rename to ...
11685         (thunderx2t99_extra_costs): This.
11686         * config/aarch64/aarch64-tune.md: Regenerate.
11687         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
11688         (vulcan_addrcost_table): This.
11689         (vulcan_regmove_cost): Rename to ...
11690         (thunderx2t99_regmove_cost): This.
11691         (vulcan_vector_cost): Rename to ...
11692         (thunderx2t99_vector_cost): this.
11693         (vulcan_branch_cost): Rename to ...
11694         (thunderx2t99_branch_cost): This.
11695         (vulcan_tunings): Rename to ...
11696         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
11697         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
11698
11699 2017-01-09  Martin Jambor  <mjambor@suse.cz>
11700
11701         PR ipa/78365
11702         PR ipa/78599
11703         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
11704         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
11705         (propagate_vr_accross_jump_function): Use the above function for all
11706         value range computations for pass-through jump functions and type
11707         converasion from explicit value range values.
11708         (ipcp_propagate_stage): Do not attempt to deduce types of formal
11709         parameters from TYPE_ARG_TYPES.
11710         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
11711         (ipa_write_node_info): Stream type of the actual argument.
11712         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
11713
11714 2017-01-09  Martin Liska  <mliska@suse.cz>
11715
11716         PR pch/78970
11717         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
11718         (lookup_compiler): Do not show error message with have_E.
11719
11720 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
11721
11722         PR tree-optimization/78938
11723         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
11724         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
11725         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
11726         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
11727         fixes.
11728
11729 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11730
11731         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
11732         is const0_rtx.
11733
11734 2017-01-09  Richard Biener  <rguenther@suse.de>
11735
11736         PR tree-optimization/78997
11737         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
11738         name condition properly.
11739
11740 2017-01-09  Richard Biener  <rguenther@suse.de>
11741
11742         PR debug/79000
11743         * dwarf2out.c (is_cxx): New overload with context.
11744         (is_naming_typedef_decl): Use it.
11745
11746 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
11747
11748         * invoke.texi (Option Summary): Correct spacing in option lists
11749         and add line breaks to fix over-long lines.
11750
11751 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
11752
11753         PR middle-end/17660
11754
11755         * extend.texi (Common Variable Attributes): Add xref to GCC
11756         Internals manual to explain mode attribute keywords.
11757
11758 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
11759
11760         PR other/16519
11761         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
11762         and Preprocessor Options.
11763         (Options for Linking): Document -pthread here....
11764         (RS/6000 and PowerPC Options): ...not here.
11765         (Solaris 2 Options): ...or here.
11766         * doc/cppopts.texi: Document -pthread.
11767
11768 2017-01-08  Martin Sebor  <msebor@redhat.com>
11769
11770         PR middle-end/77708
11771         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
11772         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
11773         New member functions.
11774         (format_directive): Used them.
11775         (add_bytes): Same.
11776         (pass_sprintf_length::handle_gimple_call): Same.
11777         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
11778         to avoid truncation for any argument.
11779         (extract_affine_mul): Same.
11780         * tree.c (get_file_function_name): Same.
11781
11782 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
11783
11784         PR middle-end/77484
11785         * predict.def (PRED_INDIR_CALL): Set to 86.
11786
11787 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
11788
11789         PR preprocessor/54124
11790         * doc/cppopts.texi: Reformat -d subtable to list the full name
11791         of the options.  Add cross-reference to the docs for the general
11792         compiler -d options.
11793         * doc/invoke.texi (Developer Options): Add cross-reference to the
11794         preprocessor-specific -d option documentation.
11795
11796 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
11797
11798         PR preprocessor/13498
11799         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
11800         redudant material, and reflect new command-line options.
11801         (System Headers): Likewise.
11802
11803 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
11804
11805         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
11806         -isystem, and -idirafter.  Copy-edit.
11807         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
11808         default for -ftrack-macro-expansion.  Delete obsolete and
11809         badly-formatted implementation details about -fdebug-cpp output.
11810         * doc/cppwarnopts.texi: Copy-edit.
11811
11812 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
11813
11814         PR c++/72803
11815         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
11816         that the transition from a max line width >= 1<<10 to narrower
11817         lines works correctly.
11818
11819 2017-01-07  Alexandre Oliva <aoliva@redhat.com>
11820
11821         * doc/options.texi (PerFunction): New.
11822         * opt-functions.awk (switch_flags): Map both Optimization and
11823         PerFunction to CL_OPTIMIZATION.
11824         * opth-gen.awk: Test for PerFunction flag along with
11825         Optimization.
11826         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
11827         it only when the latter is present.  Skip those that don't in
11828         the hash function generator.
11829         * common.opt (fvar-tracking): Mark as PerFunction instead of
11830         Optimization.
11831         (fvar-tracking-assignments): Likewise.
11832         (fvar-tracking-assignments-toggle): Likewise.
11833         (fvar-tracking-uninit): Likewise.
11834
11835 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
11836
11837         PR translation/79018
11838         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
11839         the and store.
11840
11841 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
11842
11843         PR target/57583
11844         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
11845         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
11846         TARGET_LONG_JUMP_TABLE_OFFSETS.
11847         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
11848         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
11849         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
11850         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
11851         * config/m68k/m68k.md (tablejump expander): Likewise.
11852         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
11853         TARGET_LONG_JUMP_TABLE_OFFSETS.
11854         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
11855         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
11856
11857 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
11858             David Holsgrove <david.holsgrove@xilinx.com>
11859
11860         * common/config/microblaze/microblaze-common.c
11861         (TARGET_EXCEPT_UNWIND_INFO): Remove.
11862         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
11863         New prototype.
11864         * config/microblaze/microblaze.c (microblaze_must_save_register)
11865         (microblaze_expand_epilogue, microblaze_return_addr): Handle
11866         calls_eh_return.
11867         (microblaze_eh_return): New function.
11868         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
11869         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
11870         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
11871         * config/microblaze/microblaze.md (eh_return): New pattern.
11872
11873 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
11874
11875         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
11876         GCC_DIAGNOSTIC_STRINGIFY): Define.
11877
11878         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
11879
11880 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
11881
11882         * config/arm/arm.md (<mcrr>): New.
11883         (<mrrc>): New.
11884         * config/arm/arm.c (arm_arch5te): New.
11885         (arm_option_override): Set arm_arch5te.
11886         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
11887         and mrrc2.
11888         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
11889         (arm_mcrr_qualifiers): ... this. New.
11890         (MRRC_QUALIFIERS): Define to...
11891         (arm_mrrc_qualifiers): ... this. New.
11892         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
11893         __arm_mrrc2): New.
11894         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
11895         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
11896         (MRRCI, mrrc, MRRC): New.
11897         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
11898         VUNSPEC_MRRC2): New.
11899
11900 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
11901
11902         * config/arm/arm.md (<mcr>): New.
11903         (<mrc>): New.
11904         * config/arm/arm.c (arm_coproc_builtin_available): Add
11905         support for mcr, mrc, mcr2 and mrc2.
11906         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
11907         (arm_mcr_qualifiers): ... this. New.
11908         (MRC_QUALIFIERS): Define to ...
11909         (arm_mrc_qualifiers): ... this. New.
11910         (MCR_QUALIFIERS): Define to ...
11911         (arm_mcr_qualifiers): ... this. New.
11912         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
11913         __arm_mrc2): New.
11914         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
11915         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
11916         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
11917         VUNSPEC_MRC2): New.
11918
11919 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
11920
11921         * config/arm/arm.md (*ldc): New.
11922         (*stc): New.
11923         (<ldc>): New.
11924         (<stc>): New.
11925         * config/arm/arm.c (arm_coproc_builtin_available): Add
11926         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
11927         (arm_coproc_ldc_stc_legitimate_address): New.
11928         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
11929         'qualifier_const_pointer'.
11930         (LDC_QUALIFIERS): Define to...
11931         (arm_ldc_qualifiers): ... this. New.
11932         (STC_QUALIFIERS): Define to...
11933         (arm_stc_qualifiers): ... this. New.
11934         * config/arm/arm-protos.h
11935         (arm_coproc_ldc_stc_legitimate_address): New.
11936         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
11937         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
11938         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
11939         stc2, stcl, stc2l): New.
11940         * config/arm/constraints.md (Uz): New.
11941         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
11942         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
11943         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
11944         VUNSPEC_STC2L): New.
11945
11946 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
11947
11948         * config/arm/arm.md (<cdp>): New.
11949         * config/arm/arm.c (neon_const_bounds): Rename this ...
11950         (arm_const_bounds): ... this.
11951         (arm_coproc_builtin_available): New.
11952         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
11953         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
11954         (CDP_QUALIFIERS): Define to...
11955         (arm_cdp_qualifiers): ... this. New.
11956         (void_UP): Define.
11957         (arm_expand_builtin_args): Add case for 6 arguments.
11958         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
11959         (arm_const_bounds): ... this.
11960         (arm_coproc_builtin_available): New.
11961         * config/arm/arm_acle.h (__arm_cdp): New.
11962         (__arm_cdp2): New.
11963         * config/arm/arm_acle_builtins.def (cdp): New.
11964         (cdp2): New.
11965         * config/arm/iterators.md (CDPI,CDP,cdp): New.
11966         * config/arm/neon.md: Rename all 'neon_const_bounds' to
11967         'arm_const_bounds'.
11968         * config/arm/types.md (coproc): New.
11969         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
11970         * gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
11971         * gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
11972         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
11973
11974 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
11975
11976         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
11977         (UBINOP_QUALIFIERS): New.
11978         (si_UP): Define.
11979         (acle_builtin_data): New. Change comment.
11980         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
11981         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
11982         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
11983         arm_acle_builtins.def.
11984         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
11985         (arm_init_acle_builtins): New.
11986         (CRC32_BUILTIN): Remove.
11987         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
11988         crc32cb, crc32ch and crc32cw.
11989         (arm_init_crc32_builtins): Remove.
11990         (arm_init_builtins): Use arm_init_acle_builtins rather
11991         than arm_init_crc32_builtins.
11992         (arm_expand_acle_builtin): New.
11993         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
11994         * config/arm/arm_acle_builtins.def: New.
11995
11996 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
11997
11998         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
11999         (arm_builtin_datum): ... this.
12000         (arm_init_neon_builtin): Rename to ...
12001         (arm_init_builtin): ... this. Add a new parameters PREFIX
12002         and USE_SIG_IN_NAME.
12003         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
12004         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
12005         'arm_builtin_datum'.
12006         (arm_init_vfp_builtins): Likewise.
12007         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
12008         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
12009         (arm_expand_neon_args): Rename to ...
12010         (arm_expand_builtin_args): ... this. Rename builtin_arg
12011         enum values and differentiate between ARG_BUILTIN_MEMORY
12012         and ARG_BUILTIN_NEON_MEMORY.
12013         (arm_expand_neon_builtin_1): Rename to ...
12014         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
12015         values, arm_expand_builtin_args and add bool parameter NEON.
12016         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
12017         (arm_expand_vfp_builtin): Likewise.
12018         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
12019
12020 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
12021
12022         PR middle-end/77484
12023         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
12024         * predict.c (tree_estimate_probability_bb): Reverse direction of
12025         polymorphic call predictor.
12026
12027 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
12028
12029         * passes.c (execute_one_pass): Split out pass-skipping logic into...
12030         (determine_pass_name_match): ...this new function and...
12031         (should_skip_pass_p): ...this new function.
12032
12033 2017-01-06  Nathan Sidwell  <nathan@acm.org>
12034
12035         * ipa-visibility.c (function_and_variable_visibility): Reformat
12036         comments and long lines.  Remove extrneous if.
12037         * symtab.c (symtab_node::make_decl_local): Fix code format.
12038         (symtab_node::set_section_for_node): Fix comment typo.
12039
12040 2017-01-06  Martin Liska  <mliska@suse.cz>
12041
12042         PR bootstrap/79003
12043         * lra-constraints.c: Rename invariant to lra_invariant.
12044         * predict.c (set_even_probabilities): Initialize e to NULL.
12045
12046 2017-01-05  Martin Sebor  <msebor@redhat.com>
12047
12048         PR tree-optimization/78910
12049         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
12050         (format_integer): Correct off-by-one error in the handling
12051         of precision with negative numbers in signed conversions..
12052
12053 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
12054
12055         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
12056
12057 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
12058
12059         PR tree-optimization/71016
12060         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
12061         factor_out_conditional_conversion.  Formatting fix.
12062         (factor_out_conditional_conversion): Add cond_stmt argument.
12063         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
12064         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
12065         Formatting fix.
12066
12067 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
12068
12069         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
12070         read-rtl-function.o, and selftest-rtl.o.
12071         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
12072         (selftest::aarch64_test_loading_full_dump): New function.
12073         (selftest::aarch64_run_selftests): New function.
12074         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
12075         selftest::aarch64_run_selftests.
12076         * config/i386/i386.c
12077         (selftest::ix86_test_loading_dump_fragment_1): New function.
12078         (selftest::ix86_test_loading_call_insn): New function.
12079         (selftest::ix86_test_loading_full_dump): New function.
12080         (selftest::ix86_test_loading_unspec): New function.
12081         (selftest::ix86_run_selftests): Call the new functions.
12082         * emit-rtl.c (maybe_set_max_label_num): New function.
12083         * emit-rtl.h (maybe_set_max_label_num): New decl.
12084         * function.c (instantiate_decls): Guard call to
12085         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
12086         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
12087         "static".
12088         * gensupport.c (gen_reader::gen_reader): Pass "false"
12089         for new "compact" param of rtx_reader.
12090         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
12091         rather than an empty string for NULL strings.
12092         * read-md.c: Potentially include config.h rather than bconfig.h.
12093         Wrap include of errors.h with #ifdef GENERATOR_FILE.
12094         (have_error): New global, copied from errors.c.
12095         (md_reader::read_name): Rename to...
12096         (md_reader::read_name_1): ...this, adding "out_loc" param,
12097         and converting "missing name or number" to returning false, rather
12098         than failing.
12099         (md_reader::read_name): Reimplement in terms of read_name_1.
12100         (md_reader::read_name_or_nil): New function.
12101         (md_reader::read_string): Handle "(nil)" by returning NULL.
12102         (md_reader::md_reader): Add new param "compact".
12103         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
12104         (md_reader::read_file): New method.
12105         * read-md.h (md_reader::md_reader): Add new param "compact".
12106         (md_reader::read_file): New method.
12107         (md_reader::is_compact): New accessor.
12108         (md_reader::read_name): Convert return type from void to file_location.
12109         (md_reader::read_name_or_nil): New decl.
12110         (md_reader::read_name_1): New decl.
12111         (md_reader::m_compact): New field.
12112         (noop_reader::noop_reader): Pass "false" for new "compact" param
12113         of rtx_reader.
12114         (rtx_reader::rtx_reader): Add new "compact" param.
12115         (rtx_reader::read_rtx_operand): Make virtual and convert return
12116         type from void to rtx.
12117         (rtx_reader::read_until): New decl.
12118         (rtx_reader::handle_any_trailing_information): New virtual function.
12119         (rtx_reader::postprocess): New virtual function.
12120         (rtx_reader::finalize_string): New virtual function.
12121         (rtx_reader::m_in_call_function_usage): New field.
12122         (rtx_reader::m_reuse_rtx_by_id): New field.
12123         * read-rtl-function.c: New file.
12124         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
12125         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
12126         (selftest::verify_three_block_rtl_cfg): New decl.
12127         * read-rtl-function.h: New file.
12128         * read-rtl.c: Potentially include config.h rather than bconfig.h.
12129         For host, include function.h, memmodel.h, and emit-rtl.h.
12130         (one_time_initialization): New function.
12131         (struct compact_insn_name): New struct.
12132         (compact_insn_names): New array.
12133         (find_code): Handle insn codes in compact dumps.
12134         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
12135         (bind_subst_iter_and_attr): Likewise.
12136         (add_condition_to_string): Likewise.
12137         (add_condition_to_rtx): Likewise.
12138         (apply_attribute_uses): Likewise.
12139         (add_current_iterators): Likewise.
12140         (apply_iterators): Likewise.
12141         (initialize_iterators): Guard usage of apply_subst_iterator with
12142         #ifdef GENERATOR_FILE.
12143         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
12144         (md_reader::read_mapping): Likewise.
12145         (add_define_attr_for_define_subst): Likewise.
12146         (add_define_subst_attr): Likewise.
12147         (read_subst_mapping): Likewise.
12148         (check_code_iterator): Likewise.
12149         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
12150         logic to...
12151         (one_time_initialization): New function.
12152         (rtx_reader::read_until): New method.
12153         (read_flags): New function.
12154         (parse_reg_note_name): New function.
12155         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
12156         Handle reuse_rtx ids.
12157         Wrap iterator lookup within #ifdef GENERATOR_FILE.
12158         Add parsing support for RTL dumps, mirroring the special-cases in
12159         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
12160         values, and calling handle_any_trailing_information.
12161         (rtx_reader::read_rtx_operand): Convert return type from void
12162         to rtx, returning return_rtx.  Handle case 'e'.  Call
12163         finalize_string on XSTR and XTMPL fields.
12164         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
12165          "(nil)" values were omitted.  Call the postprocess vfunc on the
12166         return_rtx.
12167         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
12168         class ctor.  Initialize m_in_call_function_usage.  Call
12169         one_time_initialization.
12170         * rtl-tests.c (selftest::test_uncond_jump): Call
12171         set_new_first_and_last_insn.
12172         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
12173         * selftest-rtl.c: New file.
12174         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
12175         (selftest::get_insn_by_uid): New decl.
12176         * selftest-run-tests.c (selftest::run_tests): Call
12177         read_rtl_function_c_tests.
12178         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
12179         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
12180         dumps.
12181
12182 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
12183
12184         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
12185         operands in a special way.  Assert that pos+len <= mode precision.
12186
12187 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
12188
12189         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
12190         3 argument Alias with unlimited for the negative form.
12191         (fno-vect-cost-model): Removed.
12192
12193 2017-01-05  Martin Liska  <mliska@suse.cz>
12194
12195         * hsa-gen.c (gen_hsa_divmod): New function.
12196         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
12197
12198 2017-01-05  Martin Liska  <mliska@suse.cz>
12199
12200         PR pch/78970
12201         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
12202         header.
12203
12204 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12205
12206         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
12207         small constant length operands.
12208
12209 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12210
12211         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
12212         between loop iterations.
12213
12214 2017-01-05  Martin Liska  <mliska@suse.cz>
12215
12216         PR sanitizer/78815
12217         * gimplify.c (gimplify_decl_expr): Compare to
12218         asan_poisoned_variables instread of checking flags.
12219         (gimplify_target_expr): Likewise.
12220         (gimplify_expr): Likewise.
12221         (gimplify_function_tree): Conditionally initialize
12222         asan_poisoned_variables.
12223
12224 2017-01-04  Jeff Law  <law@redhat.com>
12225
12226         PR tree-optimizatin/78812
12227         * rtl.h (contains_mem_rtx_p): Prototype.
12228         * ifcvt.c (containts_mem_rtx_p): Move from here to...
12229         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
12230         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
12231         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
12232         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
12233
12234 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
12235
12236         * input.c (assert_char_at_range): Default-initialize actual_range.
12237
12238 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
12239
12240         * df-scan.c (df_ref_create_structure): Make regno unsigned,
12241         to match the caller.
12242
12243 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
12244
12245         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
12246         insns after final jump in test to emit dummy move.
12247
12248 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
12249
12250         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
12251         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
12252
12253 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
12254
12255         * multiple_target.c (create_dispatcher_calls): Init e_next.
12256         * tree-ssa-loop-split.c (split_loop): Init border.
12257         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
12258         scalar_type.
12259
12260 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
12261
12262         PR target/71977
12263         PR target/70568
12264         PR target/78823
12265         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
12266         (altivec_register_operand): Do not return true if the operand
12267         contains a SUBREG mixing SImode and SFmode.
12268         (vsx_register_operand): Likewise.
12269         (vsx_reg_sfsubreg_ok): New predicate.
12270         (vfloat_operand): Do not return true if the operand contains a
12271         SUBREG mixing SImode and SFmode.
12272         (vint_operand): Likewise.
12273         (vlogical_operand): Likewise.
12274         (gpc_reg_operand): Likewise.
12275         (int_reg_operand): Likewise.
12276         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
12277         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
12278         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
12279         SImode and SFmode.
12280         (rs6000_emit_move_si_sf_subreg): New helper function.
12281         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
12282         fixup SUBREGs involving SImode and SFmode.
12283         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
12284         numbers for the new peephole2 optimization.
12285         (peephole2 for SFmode unions): New peephole2 to optimize cases in
12286         the GLIBC math library that do AND/IOR/XOR operations on single
12287         precision floating point.
12288         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
12289         target macros to say whether we need to avoid SUBREGs mixing
12290         SImode and SFmode.
12291         (TARGET_ALLOW_SF_SUBREG): Likewise.
12292         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
12293         (UNSPEC_SI_FROM_SF): Likewise.
12294         (iorxor): Change spacing.
12295         (and_ior_xor): New iterator for AND, IOR, and XOR.
12296         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
12297         (movdi_from_sf_zero_ext): Likewise.
12298         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
12299         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
12300         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
12301         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
12302         (fms<mode>4): Likewise.
12303         (fnma<mode>4): Likewise.
12304         (fnms<mode>4): Likewise.
12305         (nfma<mode>4): Likewise.
12306         (nfms<mode>4): Likewise.
12307
12308 2017-01-04  Marek Polacek  <polacek@redhat.com>
12309
12310         PR c++/64767
12311         * doc/invoke.texi: Document -Wpointer-compare.
12312
12313 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
12314
12315         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
12316         RejectNegative.
12317
12318         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
12319         descriptions for -gdwarf-5 and emit them as uleb128 instead of
12320         2-byte data.
12321
12322 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
12323
12324         PR target/78056
12325         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
12326         documentation of the powerpc_popcntb_ok attribute.
12327         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
12328         code to issue warning messages if a requested CPU configuration is
12329         not supported by the binary (assembler and loader) toolchain.
12330         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
12331         made to define a built-in function that has been disabled.
12332         (paired_init_builtins): Add assertion to prevent ICE if attempt is
12333         made to define a built-in function that has been disabled.
12334         (altivec_init_builtins): Add comment explaining why definition
12335         of the DST built-in functions is not preceded by an assertion
12336         check.  Add assertions to prevent ICE if attempts are made to
12337         define an altivec predicate or an abs* built-in function that has
12338         been disabled.
12339         (htm_init_builtins): Add comment explaining why definition of the
12340         htm built-in functions is not preceded by an assertion check.
12341
12342 2017-01-04  Jeff Law  <law@redhat.com>
12343
12344         PR tree-optimizatin/67955
12345         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
12346         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
12347         the points-to solution does not include pt_null.  Use DECL_PT_UID
12348         unconditionally.
12349
12350 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
12351
12352         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
12353         Use gen_int_mode instead of gen_lopwart for const_int operands.
12354
12355 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
12356
12357         PR tree-optimization/71563
12358         * match.pd: Simplify X << Y into X if Y is known to be 0 or
12359         out of range value - has low bits known to be zero.
12360
12361 2017-01-04  Alan Modra  <amodra@gmail.com>
12362
12363         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
12364         * configure: Regenerate.
12365         * config.in: Regenerate.
12366
12367 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
12368
12369         PR bootstrap/77569
12370         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
12371         a substring of the message, but strcmp with the whole message.  Ifdef
12372         ENABLE_NLS, translate the message first using dgettext.
12373
12374 2017-01-03  Jeff Law  <law@redhat.com>
12375
12376         PR tree-optimizatin/78856
12377         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
12378         (mark_threaded_blocks): Remove code to truncate thread paths that
12379         cross multiple loop headers.  Instead invalidate the cached loop
12380         iteration information and handle case of a thread path walking
12381         into an irreducible region.
12382
12383 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
12384
12385         PR target/78900
12386         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
12387         assertions.  Add support for doing the signbit if the IEEE 128-bit
12388         floating point value is in a GPR.
12389         * config/rs6000/rs6000.md (Fsignbit): Delete.
12390         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
12391         Update the length attribute if the value is in a GPR.
12392         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
12393         the sign or zero extension instruction, since the value is always 0/1.
12394         (signbit<mode>2_dm2): Delete using <Fsignbit>.
12395
12396         PR target/78953
12397         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
12398         extracting SImode to a GPR register so that we can generate a
12399         store, limit the vector to be in a traditional Altivec register
12400         for the vextuwrx instruction.
12401
12402 2017-01-03  Ian Lance Taylor  <iant@google.com>
12403
12404         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
12405
12406 2017-01-03  Martin Sebor  <msebor@redhat.com>
12407
12408         PR tree-optimization/78696
12409         * gimple-ssa-sprintf.c (format_floating): Correct handling of
12410         precision.  Use MPFR for %f for greater fidelity.  Correct handling
12411         of %g.
12412         (pass_sprintf_length::compute_format_length): Set width and precision
12413         specified by asrerisk to void_node for vararg functions.
12414         (try_substitute_return_value): Adjust dump output.
12415
12416 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
12417
12418         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
12419
12420 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
12421
12422         * doc/invoke.texi (SPARC options): Document -mlra as the default.
12423         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
12424         -mlra/-mno-lra was passed to the compiler.
12425
12426 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
12427
12428         PR rtl-optimization/65618
12429         * emit-rtl.c (try_split): Move initialization of "before" and
12430         "after" to just before the call to emit_insn_after_setloc.
12431
12432 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
12433
12434         * doc/md.texi (Standard Names): Remove reference to Java frontend.
12435
12436 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
12437
12438         * dwarf2out.c (gen_enumeration_type_die): When
12439         -gno-strict-dwarf, add a DW_AT_encoding attribute.
12440
12441 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
12442
12443         PR tree-optimization/78965
12444         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
12445         Change first argument from const call_info & to call_info &.  For %n
12446         set info.nowrite to false.
12447
12448         PR middle-end/78901
12449         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
12450         possibly throwing calls.
12451
12452         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
12453         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
12454         and fns handling, rather than in a separate case SSA_NAME.
12455
12456 2017-01-02  Jeff Law  <law@redhat.com>
12457
12458         * config/darwin-driver.c (darwin_driver_init): Const-correctness
12459         fixes for first_period and second_period variables.
12460
12461 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
12462
12463         PR target/78967
12464         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
12465         (*insvqi_1): New insn pattern.
12466         (*insvqi_1_mem_rex64): Ditto.
12467         (*insvqi_2): Ditto.
12468         (*insvqi_3): Rename from *insvqi.
12469
12470         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
12471
12472 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
12473
12474         * doc/cfg.texi (Edges): Remove reference to Java.
12475         (Maintaining the CFG): Ditto.
12476
12477 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
12478
12479         PR middle-end/77674
12480         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
12481         transparent aliases.
12482
12483 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
12484
12485         PR middle-end/77484
12486         * predict.def (PRED_CALL): Update hitrate.
12487         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
12488         * predict.c (tree_estimate_probability_bb): Split CALL predictor
12489         into direct/indirect/polymorphic variants.
12490
12491 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
12492
12493         Update copyright years.
12494
12495         * gcc.c (process_command): Update copyright notice dates.
12496         * gcov-dump.c (print_version): Ditto.
12497         * gcov.c (print_version): Ditto.
12498         * gcov-tool.c (print_version): Ditto.
12499         * gengtype.c (create_file): Ditto.
12500         * doc/cpp.texi: Bump @copying's copyright year.
12501         * doc/cppinternals.texi: Ditto.
12502         * doc/gcc.texi: Ditto.
12503         * doc/gccint.texi: Ditto.
12504         * doc/gcov.texi: Ditto.
12505         * doc/install.texi: Ditto.
12506         * doc/invoke.texi: Ditto.
12507 \f
12508 Copyright (C) 2017 Free Software Foundation, Inc.
12509
12510 Copying and distribution of this file, with or without modification,
12511 are permitted in any medium without royalty provided the copyright
12512 notice and this notice are preserved.