DWARF: add DW_AT_location for global decls with DECL_VALUE_EXPR
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
2
3         * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
4         symbols that hold a DECL_VALUE_EXPR.
5
6 2017-06-01  Martin Jambor  <mjambor@suse.cz>
7
8         PR tree-optimization/80898
9         * tree-sra.c (process_subtree_disqualification): Removed.
10         (disqualify_candidate): Do not acll
11         process_subtree_disqualification.
12         (subtree_mark_written_and_enqueue): New function.
13         (propagate_all_subaccesses): Set grp_write of LHS subtree if the
14         RHS has been disqualified and re-queue LHS if necessary.  Apart
15         from that, ignore disqualified RHS.
16
17 2017-06-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18
19         * config/s390/s390.c (s390_emit_epilogue): Disable early return
20         address fetch for z10 or later.
21
22 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
23
24         * config/arc/arc.md (tst_movb): Add guard when splitting.
25
26 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
27
28         * config/arc/arc.c (arc_can_eliminate): Test against
29         arc_frame_pointer_needed.
30
31 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
32
33         * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
34         to prevent store reordering.
35         * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
36         (type): Add block type.
37         (stack_tie): Define special instruction to be used in
38         expand_prologue.
39
40 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
41
42         * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
43         constraint. It is not valid for the pattern.
44         (noncommutative_binary_comparison): Likewise.
45
46 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
47
48         * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
49         scaled addresses.
50
51 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
52
53         * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
54         be used by the reg-alloc.
55
56 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
57
58         * config/arc/arc.md (mulsi3): Avoid use of hard registers before
59         reg-alloc when having mul64 or mul32x16 instructions.
60         (mulsidi3): Likewise.
61         (umulsidi3): Likewise.
62         (mulsi32x16): New pattern.
63         (mulsi64): Likewise.
64         (mulsidi64): Likewise.
65         (umulsidi64): Likewise.
66         (MUL32x16_REG): Define.
67         (mul64_600): Use MUL32x16_REG.
68         (mac64_600): Likewise.
69         (umul64_600): Likewise.
70         (umac64_600): Likewise.
71
72 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
73
74         * config/arc/arc.md (mulsi3_700): Make it commutative.
75
76 2017-06-01  Jose E. Marchesi  <jose.marchesi@oracle.com>
77
78         * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
79         type for movstouw.
80         (*sign_extendsidi2_insn): Likewise for movstosw.
81
82 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
83
84         * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
85         the type of the input discriminant value.  Convert the
86         discriminant value of signedness vary.
87
88 2017-06-01  Volker Reichelt  <v.reichelt@netcologne.de>
89
90         * doc/invoke.texi (-Wcatch-value): Document new shortcut.
91         Add to -Wall section.
92
93 2017-06-01  Richard Biener  <rguenther@suse.de>
94
95         PR middle-end/66313
96         * fold-const.c (fold_plusminus_mult_expr): If the factored
97         factor may be zero use a wrapping type for the inner operation.
98         * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
99         and handle moved defs.
100         (process_assignment): Properly guard the unary op case.  Return a
101         tri-state indicating that moving the stmt before the call may allow
102         to continue.  Pass through to_move.
103         (find_tail_calls): Handle moving unrelated defs before
104         the call.
105
106 2017-05-31  Segher Boessenkool  <segher@kernel.crashing.org>
107
108         PR target/80618
109         * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
110         splitter result in the canonical way.
111
112 2017-05-31  Uros Bizjak  <ubizjak@gmail.com>
113
114         * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
115         also for 32bit target.  Update insn attributes.
116         (zero-extendsidi2 splitter): Allow all registers for operand 1.
117
118 2017-05-31  Sebastian Peryt  <sebastian.peryt@intel.com>
119
120         * config/i386/avx512fintrin.h (_mm_mask_max_sd)
121         (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
122         (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
123         (_mm_maskz_min_ss): New intrinsics.
124
125 2017-05-31  Martin Liska  <mliska@suse.cz>
126
127         * tree-vect-loop.c (vect_create_epilog_for_reduction):
128         Change comment style to one we normally use.
129         (vectorizable_reduction): Likewise.
130         (vectorizable_induction): Likewise.
131         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
132         (vectorizable_call): Likewise.
133         (vectorizable_simd_clone_call): Likewise.
134         (vectorizable_conversion): Likewise.
135         (vectorizable_assignment): Likewise.
136         (vectorizable_shift): Likewise.
137         (vectorizable_operation): Likewise.
138         (vectorizable_store): Likewise.
139         (vectorizable_load): Likewise.
140         * tree-vectorizer.h: Likewise.
141
142 2017-05-31  Alexander Monakov  <amonakov@ispras.ru>
143
144         * passes.c (emergency_dump_function): New.
145         * tree-pass.h (emergency_dump_function): Declare.
146         * plugin.c (plugins_internal_error_function): Remove.
147         * plugin.h (plugins_internal_error_function): Remove declaration.
148         * toplev.c (internal_error_function): New static function.  Use it...
149         (general_init): ...here.
150
151 2017-05-31  Graham Markall  <graham.markall@embecosm.com>
152
153         * config/arc/arc.c (arc_print_operand): Handle constant operands.
154         (arc_rtx_costs): Add costs for new patterns.
155         * config/arc/arc.md: Additional *add_n and *sub_n patterns.
156         * config/arc/predicates.md: Add _1_2_3_operand predicate.
157
158 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
159
160         * tree-ssa-strlen.c (get_next_strinfo): New function.
161         (get_stridx_plus_constant): Use it.
162         (zero_length_string): Likewise.
163         (adjust_related_strinfos): Likewise.
164         (adjust_last_stmt): Likewise.
165
166 2017-05-31  Richard Biener  <rguenther@suse.de>
167
168         PR target/80880
169         * config/i386/i386.c (ix86_expand_builtin): Remove assert
170         for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
171
172 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
173
174         * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
175         loop_vinfo argument and use of dependence distance vectors.
176         Check instead whether the two references differ only in their
177         initial value and assume that they have the same alignment if the
178         difference is a multiple of the vector alignment.
179         (vect_analyze_data_refs_alignment): Update call accordingly.
180
181 2017-05-31  Martin Liska  <mliska@suse.cz>
182
183         PR target/79155
184         * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
185
186 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
187
188         * tree-vect-loop-manip.c (create_intersect_range_checks_index)
189         (create_intersect_range_checks): Move from ...
190         * tree-data-ref.c (create_intersect_range_checks_index)
191         (create_intersect_range_checks): ... to here.
192         (create_runtime_alias_checks): New function factored from ...
193         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
194         here.  Call above function.
195         * tree-data-ref.h (create_runtime_alias_checks): New function.
196
197 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
198
199         * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
200         segment length for dr_b and compute it in wide_int.
201
202 2017-05-31  Richard Biener  <rguenther@suse.de>
203
204         PR tree-optimization/80906
205         * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
206         and pass through iv_map.
207         (copy_bb_and_scalar_dependences): Adjust.
208         (translate_pending_phi_nodes): Likewise.
209         (copy_loop_close_phi_args): Handle code-generating IVs instead
210         of ICEing.
211
212 2017-05-30  David Malcolm  <dmalcolm@redhat.com>
213
214         * diagnostic-color.c (color_dict): Add "type-diff".
215         (parse_gcc_colors): Update comment.
216         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
217         -fdiagnostics-show-template-tree and -fno-elide-type.
218         (GCC_COLORS): Add type-diff to example.
219         (type-diff=): New.
220         (-fdiagnostics-show-template-tree): New.
221         (-fno-elide-type): New.
222         * pretty-print.c (pp_format): Pass quote and formatters[argno] to
223         the pp_format_decoder callback.  Call any m_format_postprocessor's
224         "handle" method.
225         (pretty_printer::pretty_printer): Initialize
226         m_format_postprocessor.
227         (pretty_printer::~pretty_printer): Delete any
228         m_format_postprocessor.
229         * pretty-print.h (printer_fn): Add bool and const char ** parameters.
230         (class format_postprocessor): New class.
231         (struct pretty_printer::format_decoder): Document the new parameters.
232         (struct pretty_printer::m_format_postprocessor): New field.
233         * tree-diagnostic.c (default_tree_printer): Update for new
234         bool and const char ** params.
235         * tree-diagnostic.h (default_tree_printer): Likewise.
236
237 2017-05-30  Segher Boessenkool  <segher@kernel.crashing.org>
238
239         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
240         (lwa_operand): Delete rs6000_gen_cell_microcode test.
241         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
242         rs6000_gen_cell_microcode code.
243         (rs6000_final_prescan_insn): Delete.
244         (rs6000_opt_vars): Delete the "gen-cell-microcode" and
245         "warn-cell-microcode" entries.
246         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
247         * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
248         throughout.  Change cc_reg_not_micro_cr0_operand to
249         cc_reg_not_cr0_operand throughout.
250         (*extendhi<mode>2_noload): Delete.
251         * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
252         (mwarn-cell-microcode): Delete.
253         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
254         -mgen-cell-microcode and -mwarn-cell-microcode.
255
256 2017-05-30  Uros Bizjak  <ubizjak@gmail.com>
257
258         PR target/80833
259         * config/i386/constraints.md (Yd): New constraint.
260         (Ye): Ditto.
261         * config/i386/i386.md (*movti_internal): Add (?r, Ye)
262         and (?Yd, r) alternatives.  Update insn attributes.
263         * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
264         and (?*Yd, r) alternatives.  Update insn attributes.
265         (double-mode inter-unit splitters): Add new GR<->XMM splitters.
266
267 2017-05-30  Pierre-Marie de Rodat  <derodat@adacore.com>
268
269         * gimplify.c (gimplify_modify_expr): Don't create a
270         DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
271         function.
272
273 2017-05-30  Wilco Dijkstra  <wdijkstr@arm.com>
274
275         * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
276
277 2017-05-30  Richard Biener  <rguenther@suse.de>
278
279         * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
280         and reduc_def fields.
281         (STMT_VINFO_REDUC_TYPE): New define.
282         (STMT_VINFO_REDUC_DEF): Likewise.
283         (vect_force_simple_reduction): Adjust prototype.
284         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
285         (vect_is_simple_reduction): Remove check_reduction argument.
286         (vect_force_simple_reduction): Adjust and set
287         STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
288         (vectorizable_reduction): Do not re-do reduction analysis
289         but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
290         * tree-parloops.c (gather_scalar_reductions): Adjust.
291
292 2017-05-30  Richard Biener  <rguenther@suse.de>
293
294         PR middle-end/80901
295         * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
296         split_edge code.
297
298 2017-05-24  Robin Dapp  <rdapp@linux.vnet.ibm.com>
299
300         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
301         Introduce unknown_misalignment parameter and remove vf.
302         (vect_peeling_hash_get_lowest_cost):
303         Pass unknown_misalignment parameter.
304         (vect_enhance_data_refs_alignment):
305         Fix unsupportable data ref treatment.
306
307 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
308
309         * tree-vect-data-refs.c (vect_get_data_access_cost):
310         Workaround for SLP handling.
311         (vect_enhance_data_refs_alignment):
312         Compute costs for doing no peeling at all, compare to the best
313         peeling costs so far and avoid peeling if cheaper.
314
315 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
316
317         * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
318         Return peeling info and set costs to zero for unlimited cost
319         model.
320         (vect_enhance_data_refs_alignment): Also inspect all datarefs
321         with unknown misalignment. Compute and costs for unknown
322         misalignment, compare them to the costs for known misalignment
323         and choose the cheapest for peeling.
324
325 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
326
327         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
328         (vect_get_peeling_costs_all_drs): Create function.
329         (vect_peeling_hash_get_lowest_cost):
330         Use vect_get_peeling_costs_all_drs.
331         (vect_peeling_supportable): Create function.
332         (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
333
334 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
335
336         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
337         DR_HAS_NEGATIVE_STEP.
338         (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
339         (vect_enhance_data_refs_alignment): Use.
340         (vect_duplicate_ssa_name_ptr_info): Use.
341         * tree-vectorizer.h (dr_misalignment): Use.
342         (known_alignment_for_access_p): Use.
343
344 2017-05-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
345
346         PR target/78838
347         * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
348         .lowtext.
349         (has_section_name): New function.
350
351 2017-05-30  Martin Liska  <mliska@suse.cz>
352
353         PR other/80909
354         * auto-profile.c (get_function_decl_from_block): Fix
355         parenthesis.
356
357 2017-05-30  Richard Biener  <rguenther@suse.de>
358
359         PR middle-end/80876
360         * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
361
362 2017-05-30  Martin Liska  <mliska@suse.cz>
363
364         * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
365         * dumpfile.h (struct dump_file_info): Remove ctors.
366
367 2017-05-30  Martin Liska  <mliska@suse.cz>
368
369         * predict.def: Fix GNU coding style.
370
371 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
372
373         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
374         Mark 'to' argument with ATTRIBUTE_UNUSED.
375
376 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
377
378         * config/xtensa/xtensa.c (xtensa_emit_call): Use
379         HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
380         (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
381         format string.
382
383 2017-05-29  Eric Botcazou  <ebotcazou@adacore.com>
384
385         * doc/install.texi (Options specification): Restore entry of
386         --enable-sjlj-exceptions.
387
388 2017-05-27  Michael Eager  <eager@eagercon.com>
389
390         Revert:
391         2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
392
393         See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
394
395         * config/microblaze/microblaze.h
396         (FIXED_REGISTERS): Update in macro.
397         (CALL_USED_REGISTERS): Update in macro.
398
399 2017-05-27  François-Xavier Coudett  <fxcoudert@gcc.gnu.org>
400
401         * doc/install.texi: Add links to macOS binary distributions.
402
403 2017-05-27  Jakub Jelinek  <jakub@redhat.com>
404
405         PR bootstrap/80887
406         Revert:
407         2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
408
409         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
410
411 2017-05-26  Martin Liska  <mliska@suse.cz>
412
413         * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
414
415 2017-05-26  Martin Liska  <mliska@suse.cz>
416
417         * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
418         always leading ';; '.
419         (dump_bb_info): Likewise.
420         (brief_dump_cfg): Likewise.
421         * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
422         * dumpfile.c: Remove usage of TDF_VERBOSE.
423         * dumpfile.h (enum dump_kind): Likewise.
424         (dump_gimple_bb_header): Do not use TDF_COMMENT.
425         * print-tree.c (debug_verbose): Remove.
426         * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
427         (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
428         * tree-diagnostic.c (default_tree_printer): Replace
429         TDF_DIAGNOSTIC with TDF_SLIM.
430
431 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
432
433         * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
434         in parameter loop, rather than loop_vinfo.
435         (create_intersect_range_checks): Ditto.
436         (vect_create_cond_for_alias_checks): Update call to above functions.
437
438 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
439
440         PR tree-optimization/80815
441         * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
442         for merging runtime alias checks.  Handle negative DR_STEPs.
443
444 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
445
446         * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
447         Move from ...
448         * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
449         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
450         out code pruning runtime alias checks.
451         * tree-data-ref.c (prune_runtime_alias_test_list): New function
452         factored out from above.
453         * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
454         Move from ...
455         * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
456         ... to here.
457         (prune_runtime_alias_test_list): New decalaration.
458
459 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
460
461         * tree-vect-data-refs.c (compare_tree): Rename and move ...
462         * tree-data-ref.c (data_ref_compare_tree): ... to here.
463         * tree-data-ref.h (data_ref_compare_tree): New decalaration.
464         * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
465         (operator==, comp_dr_with_seg_len_pair): Ditto.
466         (vect_prune_runtime_alias_test_list): Ditto.
467
468 2017-05-26  Martin Liska  <mliska@suse.cz>
469
470         PR ipa/80663
471         * params.def: Bound partial-inlining-entry-probability param.
472
473 2017-05-26  Marek Polacek  <polacek@redhat.com>
474
475         PR sanitizer/80875
476         * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
477         can be negated.
478
479 2017-05-26  Richard Biener  <rguenther@suse.de>
480
481         PR tree-optimization/80842
482         * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
483         value.
484
485 2017-05-26  Richard Biener  <rguenther@suse.de>
486
487         PR tree-optimization/80844
488         * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
489
490 2017-05-25  Sebastian Peryt  <sebastian.peryt@intel.com>
491
492         * doc/md.texi (Machine Constraints): Update x86 family
493         machine constraints section to match 'config/i386/constraints.md'.
494
495 2017-05-25  Volker Reichelt  <v.reichelt@netcologne.de>
496
497         * doc/invoke.texi (-Wcatch-value=): Document new warning option.
498
499 2017-05-25  Nathan Sidwell  <nathan@acm.org>
500
501         * doc/invoke.texi (--enable-languages): Update documentation.
502
503 2017-05-25  Martin Liska  <mliska@suse.cz>
504
505         * dumpfile.c: Add TDF_FOLDING.
506         * dumpfile.h (enum dump_kind): Likewise.
507         * genmatch.c (dt_simplify::gen_1): Use it.
508
509 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
510
511         * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
512
513 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
514
515         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
516         * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
517
518 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
519
520         * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
521         * match.pd (X == C): Rewrite it here.
522         (with_possible_nonzero_bits, with_possible_nonzero_bits2,
523         with_certain_nonzero_bits2): New predicates.
524         * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
525
526 2017-05-24  Nathan Sidwell  <nathan@acm.org>
527
528         * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
529         avoid warning.
530
531         * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
532         warning.
533
534 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
535
536         * config/powerpcspe: New port.  Files are copied from the rs6000
537         port, with "rs6000" in filenames replaced by "powerpcspe".
538
539 2017-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
540
541         PR rtl-optimization/80754
542         * lra-remat.c (do_remat): Add overlap checks for dst_regno.
543
544 2017-05-24  Sheldon Lobo  <smlobo@sheldon.us.oracle.com>
545
546         * config/sparc/sparc.md (length): Return the correct value for -mflat
547         sibcalls to match output_sibcall.
548
549 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
550
551         PR bootstrap/80860
552         PR bootstrap/80843
553         * config/rs6000/rs6000.c (struct machine_function): Add new field
554         n_components.
555         (rs6000_get_separate_components): Init that field, use it.
556         (rs6000_components_for_bb): Use the field.
557
558 2017-05-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
559
560         * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
561
562 2017-05-24  Peter Bergner  <bergner@vnet.ibm.com>
563
564         PR middle-end/80823
565         * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
566
567 2017-05-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
568
569         PR target/80725
570         * config/s390/s390.c (s390_check_qrst_address): Check incoming
571         address against address_operand predicate.
572         * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
573
574 2017-05-24  Eric Botcazou  <ebotcazou@adacore.com>
575
576         * var-tracking.c (track_expr_p): Do not return 0 for tracked record
577         parameters passed indirectly.
578
579 2017-05-23  Uros Bizjak  <ubizjak@gmail.com>
580
581         * config/i386/i386.md (*movdi_internal): Remove SSE4
582         alternative 18 (?r, *v).  Update insn attributes.
583         (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
584         Update insn attributes.
585         (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
586         Update insn attributes.
587         * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
588         alternative 1 (r, v). Remove isa attribute.
589         * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
590         Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
591         and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
592
593 2017-05-23  Tom de Vries  <tom@codesourcery.com>
594
595         * doc/sourcebuild.texi (Directives, Verify compiler message): Document
596         dg-line directive.
597
598 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
599
600         * cgraphunit.c (symbol_table::process_new_functions): Update.
601         * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
602         (inline_generate_summary): Rename to ...
603         (ipa_fn_summary_generate): ... this one.
604         (inline_read_summary): Rename to ...
605         (ipa_fn_summary_read): ... this one.
606         (inline_write_summary): Rename to ...
607         (ipa_fn_summary_write): ... this one.
608         (inline_free_summary): Rename to ...
609         (ipa_free_fn_summary): ... this one.
610         (pass_data_local_fn_summary, pass_local_fn_summary,
611         make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
612         pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
613         pass_data_ipa_fn_summary, pass_ipa_fn_summary,
614         make_pass_ipa_fn_summary): New.
615         * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
616         inline_write_summary, inline_free_summary): Remove.
617         (ipa_free_fn_summary) : New.
618         * ipa-inline.c (ipa_inline): Update.
619         (pass_ipa_inline): Do not generate summaries.
620         * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
621         Remove.
622         * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
623         and add pass_ipa_fn_summary.
624         * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
625         New.
626         (make_pass_inline_parameters): Remove.
627
628 2017-05-23  Thomas Schwinge  <thomas@codesourcery.com>
629
630         * omp-low.c (struct omp_context): Remove "default_kind" member.
631         Adjust all users.
632
633         * omp-offload.c (execute_oacc_device_lower): Remove the
634         parallelism dimensions function attributes for unparallelized
635         OpenACC kernels constructs.
636
637 2017-05-23  Martin Liska  <mliska@suse.cz>
638
639         * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
640         functions.
641         (cgraph_edge::make_speculative): Likewise.
642         (cgraph_edge::resolve_speculation): Likewise.
643         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
644         (cgraph_node::dump): Likewise.
645         * cgraph.h: Likewise.
646         * cgraphunit.c (analyze_functions): Likewise.
647         (symbol_table::compile): Likewise.
648         * ipa-cp.c (print_all_lattices): Likewise.
649         (determine_versionability): Likewise.
650         (initialize_node_lattices): Likewise.
651         (ipcp_verify_propagated_values): Likewise.
652         (estimate_local_effects): Likewise.
653         (update_profiling_info): Likewise.
654         (create_specialized_node): Likewise.
655         (perhaps_add_new_callers): Likewise.
656         (decide_about_value): Likewise.
657         (decide_whether_version_node): Likewise.
658         (identify_dead_nodes): Likewise.
659         (ipcp_store_bits_results): Likewise.
660         * ipa-devirt.c (dump_targets): Likewise.
661         (ipa_devirt): Likewise.
662         * ipa-icf.c (sem_item::dump): Likewise.
663         (sem_function::equals): Likewise.
664         (sem_variable::equals): Likewise.
665         (sem_item_optimizer::read_section): Likewise.
666         (sem_item_optimizer::execute): Likewise.
667         (congruence_class::dump): Likewise.
668         * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
669         (dump_inline_summary): Likewise.
670         (estimate_node_size_and_time): Likewise.
671         (inline_analyze_function): Likewise.
672         * ipa-inline-transform.c (inline_call): Likewise.
673         * ipa-inline.c (report_inline_failed_reason): Likewise.
674         (want_early_inline_function_p): Likewise.
675         (edge_badness): Likewise.
676         (update_edge_key): Likewise.
677         (inline_small_functions): Likewise.
678         * ipa-profile.c (ipa_profile): Likewise.
679         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
680         (ipa_make_edge_direct_to_target): Likewise.
681         (remove_described_reference): Likewise.
682         (ipa_impossible_devirt_target): Likewise.
683         (propagate_controlled_uses): Likewise.
684         (ipa_print_node_params): Likewise.
685         (ipcp_transform_function): Likewise.
686         * ipa-pure-const.c (pure_const_read_summary): Likewise.
687         (propagate_pure_const): Likewise.
688         * ipa-reference.c (generate_summary): Likewise.
689         (read_write_all_from_decl): Likewise.
690         (propagate): Likewise.
691         (ipa_reference_read_optimization_summary): Likewise.
692         * ipa-utils.c (ipa_merge_profiles): Likewise.
693         * ipa.c (walk_polymorphic_call_targets): Likewise.
694         (symbol_table::remove_unreachable_nodes): Likewise.
695         (ipa_single_use): Likewise.
696         * passes.c (execute_todo): Likewise.
697         * predict.c (drop_profile): Likewise.
698         * symtab.c (symtab_node::get_dump_name): New function.
699         (symtab_node::dump_name): Likewise.
700         (symtab_node::dump_asm_name): Likewise.
701         (symtab_node::dump_references): Likewise.
702         (symtab_node::dump_referring): Likewise.
703         (symtab_node::dump_base): Likewise.
704         (symtab_node::debug_symtab): Likewise.
705         * tree-sra.c (convert_callers_for_node): Likewise.
706         * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
707         * value-prof.c (init_node_map): Likewise.
708
709 2017-05-23  Martin Liska  <mliska@suse.cz>
710
711         * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
712         and symtab_node::debug_symtab to symbol_table::debug.
713         * cgraphunit.c (analyze_functions): Use the renamed function.
714         (symbol_table::compile): Likewise.
715         * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
716         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
717         * passes.c (execute_todo): Likewise.
718         * symtab.c (symbol_table::dump): New function.
719         * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
720
721 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
722
723         * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
724         that nonconst implies exec.
725
726 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
727
728         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
729         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
730         (inline_edge_summary_vec): Turn into ...
731         (ipa_call_summaries): ... this one.
732         (redirect_to_unreachable, edge_set_predicate,
733         evaluate_properties_for_edge, inline_summary_alloc,
734         reset_ipa_call_summary, reset_inline_summary,
735         inline_summary_t::duplicate): Update.
736         (inline_edge_duplication_hook): Turn to ...
737         (ipa_call_summary_t::duplicate): ... this one.
738         (inline_edge_removal_hook): Turn to ...
739         (ipa_call_summary_t::remove): ... this one.
740         (dump_inline_edge_summary): Turn to ...
741         (dump_ipa_call_summary): ... this one.
742         (estimate_function_body_sizes): Update.
743         (inline_update_callee_summaries): Update.
744         (remap_edge_change_prob): Update.
745         (remap_edge_summaries): Update.
746         (inline_merge_summary): Update.
747         (do_estimate_edge_time): Update.
748         (inline_generate_summary): Update.
749         (inline_read_section): Update.
750         (inline_read_summary): Update.
751         (inline_free_summary): Update.
752         * ipa-inline.c (can_inline_edge_p): Update.
753         (compute_inlined_call_time): Update.
754         (want_inline_small_function_p): Update.
755         (edge_badness): Update.
756         (early_inliner): Update.
757         * ipa-inline.h (inline_edge_summary): Turn to ...
758         (ipa_call_summary): ... this one.
759         (ipa_call_summary_t): New class.
760         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
761         (ipa_call_summaries): New.
762         (inline_edge_summary): Remove.
763         (estimate_edge_growth): Update.
764         * ipa-profile.c (ipa_propagate_frequency_1): Update.
765         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
766         * ipa-split.c (execute_split_functions): Update.
767         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
768
769 2017-05-23  Tom de Vries  <tom@codesourcery.com>
770
771         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
772         attributes): Document rdrand effective target.
773
774 2017-05-23  Tom de Vries  <tom@codesourcery.com>
775
776         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
777         attributes): Sort alphabetically.
778
779 2017-05-23  Georg-Johann Lay  <avr@gjlay.de>
780
781         * config/avr/genmultilib.awk: Use gsub instead of gensub.
782
783 2017-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
784
785         PR target/80718
786         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
787         V2DF/V2DI splat into two separate patterns, one that handles
788         registers, and the other that only handles memory.  Drop support
789         for splatting from a GPR on ISA 2.07 and then splitting the
790         splat into direct move and splat.
791         (vsx_splat_<mode>_reg): Likewise.
792         (vsx_splat_<mode>_mem): Likewise.
793
794 2017-05-22  Segher Boessenkool  <segher@kernel.crashing.org>
795
796         * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
797
798 2017-05-22  Jakub Jelinek  <jakub@redhat.com>
799
800         PR middle-end/80809
801         * omp-low.c (finish_taskreg_remap): New function.
802         (finish_taskreg_scan): If unit size of ctx->record_type
803         is non-constant, unshare the size expression and replace
804         decls in it with possible outer var refs.
805
806         PR middle-end/80809
807         * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
808         GOVD_SHARED rather than GOVD_PRIVATE with it.
809         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
810         GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
811
812         PR middle-end/80853
813         * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
814         as last argument to build_outer_var_ref for pointer bases of array
815         section reductions.
816
817 2017-05-19  Martin Sebor  <msebor@redhat.com>
818
819         * print-tree.c (print_node): Print DECL_READ_P flag.
820
821 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
822
823         * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
824         * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
825         * cgraph.c: Likewise.
826         * cgraphunit.c: Likewise.
827         * gengtype.c: Likewise.
828         * ipa-cp.c: Likewise.
829         * ipa-devirt.c: Likewise.
830         * ipa-icf.c: Likewise.
831         * ipa-predicate.c: Likewise.
832         * ipa-profile.c: Likewise.
833         * ipa-prop.c: Likewise.
834         * ipa-split.c: Likewise.
835         * ipa.c: Likewise.
836         * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
837         edge_predicate_pool, dump_inline_hints,
838         inline_summary::account_size_time, redirect_to_unreachable,
839         edge_set_predicate, set_hint_predicate,
840         evaluate_conditions_for_known_args, evaluate_properties_for_edge,
841         inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
842         inline_summary_t::remove, remap_hint_predicate_after_duplication,
843         inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
844         ipa_call_summary_t::remove, initialize_growth_caches,
845         free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
846         debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
847         mark_modified, unmodified_parm_1, unmodified_parm,
848         unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
849         set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
850         compute_bb_predicates, will_be_nonconstant_expr_predicate,
851         will_be_nonconstant_predicate, record_modified_bb_info,
852         get_minimal_bb, record_modified, param_change_prob,
853         phi_result_unknown_predicate, predicate_for_phi_result,
854         array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
855         estimate_function_body_sizes, compute_inline_parameters,
856         compute_inline_parameters_for_curren, pass_data_inline_parameters,
857         estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
858         inline_update_callee_summaries, remap_edge_change_prob,
859         remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
860         inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
861         inline_analyze_function, inline_summary_t::insert,
862         inline_generate_summary, read_ipa_call_summary, inline_read_section,
863         inline_read_summary, write_ipa_call_summary, inline_write_summary,
864         inline_free_summary): Move to ipa-fnsummary.h
865         (predicate_t): Remove.
866         * ipa-fnsummary.c: New file.
867         * ipa-inline.h:  Do not include sreal.h and ipa-predicate.h
868         (enum inline_hints_vals, inline_hints, agg_position_info,
869         INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
870         inline_summaries, ipa_call_summary, ipa_call_summary_t,
871         ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
872         dump_inline_summary, dump_inline_hints, inline_generate_summary,
873         inline_read_summary, inline_write_summary, inline_free_summary,
874         inline_analyze_function, initialize_inline_failed,
875         inline_merge_summary, inline_update_overall_summary,
876         compute_inline_parameters): Move to ipa-fnsummary.h
877         * ipa-fnsummary.h: New file.
878         * ipa-inline-transform.h: Include ipa-inline.h.
879         * ipa-inline.c: LIkewise.
880
881 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
882
883         * ipa-inline.c (edge_badness): Use inlined_time instead of
884         inline_summaries->get.
885
886 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
887
888         * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
889
890 2017-05-22  Nathan Sidwell  <nathan@acm.org>
891
892         * doc/invoke.texi (fdump-translation-unit): Delete documentation.
893         (fdump-lang): Document 'raw' option.
894         * dumpfile.h (TDI_tu): Delete.
895         * dumpfile.c (dump_files): Remove translation-unit.
896         (FIRST_AUTO_NUMBERED_DUMP): Decrement.
897
898 2017-05-22  Georg-Johann Lay  <avr@gjlay.de>
899
900         * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
901         command option from $(AWK) call.
902         * config/avr/genmultilib.awk: Simplify and rewrite so that it
903         generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
904         [FORMAT]: Remove handling of variable.
905         * config/avr/t-multilib: Regenerate.
906
907 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
908
909         * ipa-inline-analysis.c (inline_summary::reset): Do not reset
910         self_time.
911         (dump_inline_summary): Do not print self_time.
912         (estimate_function_body_sizes): Do not set self_time.
913         (compute_inline_parameters): Likewise.
914         (inline_read_section, inline_write_summary): Do not stream self_time.
915         * ipa-inline.h (inline_summary): Drop self_time.
916
917 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
918
919         * ipa-inline-analysis.c (account_size_time): Rename to ...
920         (inline_summary::account_size_time): ... this one.
921         (reset_ipa_call_summary): Turn to ...
922         (ipa_call_summary::reset): ... this one.
923         (reset_inline_summary): Turn to ...
924         (inline_summary::reset): ... this one.
925         (inline_summary_t::remove): Update.
926         (inline_summary_t::duplicate): Update.
927         (ipa_call_summary_t::remove): Update.
928         (dump_inline_summary): Update.
929         (estimate_function_body_sizes): Update.
930         (compute_inline_parameters): Update.
931         (estimate_node_size_and_time): Update.
932         (inline_merge_summary): Update.
933         (inline_update_overall_summary): Update.
934         (inline_read_section): Update.
935         (inline_write_summary): Update.
936         * ipa-inline.h (inline_summary): Rename entry to size_time_table;
937         add account_size_time and reset member functions.
938         (ipa_call_summary): Add reset function.
939         * ipa-predicate.h (predicate::operator &): Constify.
940
941 2017-05-22  Richard Biener  <rguenther@suse.de>
942
943         * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
944
945 2017-05-19  Jason Merrill  <jason@redhat.com>
946
947         * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
948
949 2017-05-19  Marek Polacek  <polacek@redhat.com>
950
951         PR sanitizer/80800
952         * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
953         TYPE_OVERFLOW_WRAPS checks.
954
955 2017-05-19  Thomas Schwinge  <thomas@codesourcery.com>
956
957         * tree-core.h (enum omp_clause_default_kind): Add
958         "OMP_CLAUSE_DEFAULT_PRESENT".
959         * tree-pretty-print.c (dump_omp_clause): Handle it.
960         * gimplify.c (enum gimplify_omp_var_data): Add
961         "GOVD_MAP_FORCE_PRESENT".
962         (gimplify_adjust_omp_clauses_1): Map it to
963         "GOMP_MAP_FORCE_PRESENT".
964         (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
965
966         * gimplify.c (oacc_default_clause): Clarify.
967
968 2017-05-19  Nathan Sidwell  <nathan@acm.org>
969
970         LANG_HOOK_REGISTER_DUMPS
971         * toplev.c (general_init): Call register dump lang hook.
972         * doc/invoke.texi: Document -fdump-lang option family.
973         * dumpfile.c (dump_files): Remove class dump here.
974         (FIRST_AUTO_NUMBERED_DUMP): Adjust.
975         * dumpfile.h (tree_dump_index): Remove TDI_class.
976         * langhooks-def.h (lhd_register_dumps): Declare.
977         (LANG_HOOKS_REGISTER_DUMPS): Define.
978         (LANG_HOOKS_INITIALIZER): Add it.
979         * langhooks.c (lhd_register_dumps): Define.
980         * langhooks.h (struct lang_hooks): Add register_dumps.
981
982 2017-05-19  Nathan Sidwell  <nathan@acm.org>
983
984         * context.h (context::set_passes): New.
985         * context.c (context::context): Do not create pass manager.
986         * toplev.c (general_init): Create pass manager here.
987
988 2017-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
989
990         * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
991         use this splitter if two add or or instructions would also work for
992         the constant we want to generate.
993
994 2017-05-19  Richard Biener  <rguenther@suse.de>
995
996         PR build/80821
997         * genmatch.c (dt_node::gen_kids_1): Add missing scope around
998         predicate evaluation.
999
1000 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
1001
1002         * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
1003         add ctor.
1004         * ipa-inline.c (want_inline_small_function_p): Do not cast to
1005         unsigned.
1006
1007 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
1008
1009         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
1010         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
1011         (inline_edge_summary_vec): Turn into ...
1012         (ipa_call_summaries): ... this one.
1013         (redirect_to_unreachable, edge_set_predicate,
1014         evaluate_properties_for_edge, inline_summary_alloc,
1015         reset_ipa_call_summary, reset_inline_summary,
1016         inline_summary_t::duplicate): Update.
1017         (inline_edge_duplication_hook): Turn to ...
1018         (ipa_call_summary_t::duplicate): ... this one.
1019         (inline_edge_removal_hook): Turn to ...
1020         (ipa_call_summary_t::remove): ... this one.
1021         (dump_inline_edge_summary): Turn to ...
1022         (dump_ipa_call_summary): ... this one.
1023         (estimate_function_body_sizes): Update.
1024         (inline_update_callee_summaries): Update.
1025         (remap_edge_change_prob): Update.
1026         (remap_edge_summaries): Update.
1027         (inline_merge_summary): Update.
1028         (do_estimate_edge_time): Update.
1029         (inline_generate_summary): Update.
1030         (inline_read_section): Update.
1031         (inline_read_summary): Update.
1032         (inline_free_summary): Update.
1033         * ipa-inline.c (can_inline_edge_p): Update.
1034         (compute_inlined_call_time): Update.
1035         (want_inline_small_function_p): Update.
1036         (edge_badness): Update.
1037         (early_inliner): Update.
1038         * ipa-inline.h (inline_edge_summary): Turn to ...
1039         (ipa_call_summary): ... this one.
1040         (ipa_call_summary_t): New class.
1041         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
1042         (ipa_call_summaries): New.
1043         (inline_edge_summary): Remove.
1044         (estimate_edge_growth): Update.
1045         * ipa-profile.c (ipa_propagate_frequency_1): Update.
1046         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
1047         * ipa-split.c (execute_split_functions): Update.
1048         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
1049
1050 2017-05-19  Richard Biener  <rguenther@suse.de>
1051
1052         PR middle-end/80764
1053         * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
1054
1055 2017-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
1056
1057         * config/rs6000/rs6000.c (struct machine_function): Add field
1058         fpr_is_wrapped_separately.
1059         (rs6000_get_separate_components): Use 64 components.  Handle the
1060         new FPR components.
1061         (rs6000_components_for_bb): Handle the FPR components.
1062         (rs6000_emit_prologue_components): Handle the FPR components.
1063         (rs6000_emit_epilogue_components): Handle the FPR components.
1064         (rs6000_set_handled_components): Handle the FPR components.
1065         (rs6000_emit_prologue): Don't output prologue code for those FPRs
1066         that are already separately shrink-wrapped.
1067         (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
1068         that are already separately shrink-wrapped.
1069
1070 2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
1071
1072         PR target/80510
1073         * config/rs6000/predicates.md (simple_offsettable_mem_operand):
1074         New predicate.
1075
1076         * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
1077         (define_peephole2 for Altivec d-form load): Add peepholes to catch
1078         cases where the register allocator uses a move and an offsettable
1079         memory operation to/from a FPR register on ISA 2.06/2.07.
1080         (define_peephole2 for Altivec d-form store): Likewise.
1081
1082 2017-05-18  Uros Bizjak  <ubizjak@gmail.com>
1083
1084         PR target/80799
1085         * config/i386/mmx.md (*mov<mode>_internal): Enable
1086         alternatives 11, 12, 13 and 14 also for 32bit targets.
1087         Remove alternatives 15, 16, 17 and 18.
1088         * config/i386/sse.md (vec_concatv2di): Change
1089         alternative (!x, *y) to (x, ?!*Yn).
1090
1091 2017-05-18  Paolo Carlini  <paolo.carlini@oracle.com>
1092
1093         * dumpfile.h (enum dump_kind): Remove stray comma.
1094
1095 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
1096
1097         * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
1098         * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
1099         predicate::num_conditions
1100         (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
1101         (CHANGED): turn into predicate::changed.
1102         (agg_position_info): Move to ipa-predicate.h
1103         (add_condition, predicate::add_clause, predicate::operator &=,
1104         predicate::or_with, predicate::evaluate, predicate::probability,
1105         dump_condition, dump_clause, predicate::dump,
1106         predicate::remap_after_duplication, predicate::remap_after_inlining,
1107         predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
1108         (evaluate_conditions_for_known_args): Update.
1109         (set_cond_stmt_execution_predicate): Update.
1110         * ipa-inline.h: Include ipa-predicate.h
1111         (condition, inline_param_summary, conditions, agg_position_info,
1112         predicate): Move to ipa-predicate.h
1113         * ipa-predicate.c: New file.
1114         * ipa-predicate.h: New file.
1115
1116 2017-05-18  Wilco Dijkstra  <wdijkstr@arm.com>
1117
1118         * final.c (leaf_function_p): Check we are not in a sequence.
1119
1120 2017-05-18  Martin Liska  <mliska@suse.cz>
1121
1122         * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
1123         * dumpfile.c (dump_register): Use new enum dump_kind.
1124         (get_dump_file_name): Likewise.
1125         (dump_enable_all): Likewise.
1126         (dump_switch_p_1): Likewise.
1127         (enable_rtl_dump_file): Remove usage of TDF_RTL.
1128         * dumpfile.h (enum dump_kind): New enum type.
1129         (struct dump_file_info): Create constructor and
1130         format fields and comments.
1131         * passes.c (pass_manager::register_one_dump_file):
1132         Use num dump_kind.
1133         * statistics.c (statistics_early_init): Likewise.
1134         * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
1135         TDF_TREE with TDF_SLIM.
1136         (gather_memory_references_ref): Likewise.
1137
1138 2017-05-18  Martin Liska  <mliska@suse.cz>
1139
1140         * vec.h (struct vnull): Use it.
1141
1142 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
1143
1144         * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
1145         (true_predicate, false_predicate, true_predicate_p,
1146         false_predicate_p): Remove.
1147         (single_cond_predicate, not_inlined_predicate): Turn to member function
1148         in ipa-inline.h
1149         (add_condition): Update.
1150         (add_clause): Turn to...
1151         (predicate::add_clause): ... this one; update; allow passing NULL
1152         as parameter.
1153         (and_predicates): Turn to ...
1154         (predicate::operator &=): ... this one.
1155         (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
1156         (or_predicates): Turn to ...
1157         (predicate::or_with): ... this one.
1158         (evaluate_predicate): Turn to ...
1159         (predicate::evaluate): ... this one.
1160         (predicate_probability): Turn to ...
1161         (predicate::probability): ... this one.
1162         (dump_condition): Update.
1163         (dump_predicate): Turn to ...
1164         (predicate::dump): ... this one.
1165         (account_size_time): Update.
1166         (edge_set_predicate): Update.
1167         (set_hint_predicate): UPdate.
1168         (evaluate_conditions_for_known_args): Update.
1169         (evaluate_properties_for_edge): Update.
1170         (remap_predicate_after_duplication): Turn to...
1171         (predicate::remap_after_duplication): ... this one.
1172         (remap_hint_predicate_after_duplication): Update.
1173         (inline_summary_t::duplicate): UPdate.
1174         (dump_inline_edge_summary): Update.
1175         (dump_inline_summary): Update.
1176         (set_cond_stmt_execution_predicate): Update.
1177         (set_switch_stmt_execution_predicate): Update.
1178         (compute_bb_predicates): Update.
1179         (will_be_nonconstant_expr_predicate): Update.
1180         (will_be_nonconstant_predicate): Update.
1181         (phi_result_unknown_predicate): Update.
1182         (predicate_for_phi_result): Update.
1183         (array_index_predicate): Update.
1184         (estimate_function_body_sizes): Update.
1185         (estimate_node_size_and_time): Update.
1186         (estimate_ipcp_clone_size_and_time): Update.
1187         (remap_predicate): Rename to ...
1188         (predicate::remap_after_inlining): ... this one.
1189         (remap_hint_predicate): Update.
1190         (inline_merge_summary): Update.
1191         (inline_update_overall_summary): Update.
1192         (estimate_size_after_inlining): Update.
1193         (read_predicate): Rename to ...
1194         (predicate::stream_in): ... this one.
1195         (read_inline_edge_summary): Update.
1196         (write_predicate): Rename to ...
1197         (predicate::stream_out): ... this one.
1198         (write_inline_edge_summary): Update.
1199         * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
1200         (clause_t): Turn to uint32_t
1201         (predicate): Turn to class; implement constructor and operators
1202         ==, !=, &
1203         (size_time_entry): Update.
1204         (inline_summary): Update.
1205         (inline_edge_summary): Update.
1206
1207 2017-05-18  Marc Glisse  <marc.glisse@inria.fr>
1208
1209         * fold-const.c (fold_binary_loc): Move transformation...
1210         * match.pd (C - X CMP X): ... here.
1211
1212 2017-05-18  Sheldon Lobo  <sheldon.lobo@oracle.com>
1213
1214         * config/sparc/sparc.c (sparc_option_override): Set function
1215         alignment for -mcpu=niagara7 to 64 to match the I$ line.
1216         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
1217         latency to 1.
1218         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
1219         latency to 2.
1220         * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
1221
1222 2017-05-18  Marek Polacek  <polacek@redhat.com>
1223
1224         PR sanitizer/80797
1225         * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
1226         (pass_ubsan::execute): Call gimple_assign_single_p instead of
1227         gimple_assign_load_p.
1228
1229 2017-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
1230
1231         PR middle-end/80692
1232         * real.c (do_compare): Give decimal_do_compare preference over
1233         comparing just the signs.
1234
1235 2017-05-17  Uros Bizjak  <ubizjak@gmail.com>
1236
1237         * doc/md.texi (Canonicalization of Instructions): Describe the
1238         canonical form of instructions that inherently set a condition
1239         code register.
1240
1241 2017-05-17  Peter Bergner  <bergner@vnet.ibm.com>
1242
1243         PR middle-end/80775
1244         * tree-cfg.c: Move deletion of unreachable case statements to after
1245         the merging of consecutive case labels.
1246
1247 2017-05-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1248
1249         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
1250         readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
1251         restoring of callee-saved registers.
1252
1253 2017-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1254
1255         * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
1256         * config/visium/visium.c (single_set_and_flags): Likewise.
1257         * config/visium/visium.md (Substitutions): Likewise.
1258
1259 2017-05-17  Martin Liska  <mliska@suse.cz>
1260
1261         * cfg.c: Introduce dump_flags_t type and
1262         use it instead of int type.
1263         * cfg.h: Likewise.
1264         * cfghooks.c: Likewise.
1265         * cfghooks.h (struct cfg_hooks): Likewise.
1266         * cfgrtl.c: Likewise.
1267         * cfgrtl.h: Likewise.
1268         * cgraph.c (cgraph_node::get_body): Likewise.
1269         * coretypes.h: Likewise.
1270         * domwalk.c: Likewise.
1271         * domwalk.h: Likewise.
1272         * dumpfile.c (struct dump_option_value_info): Likewise.
1273         (dump_enable_all): Likewise.
1274         (dump_switch_p_1): Likewise.
1275         (opt_info_switch_p): Likewise.
1276         * dumpfile.h (enum tree_dump_index): Likewise.
1277         (struct dump_file_info): Likewise.
1278         * genemit.c: Likewise.
1279         * generic-match-head.c: Likewise.
1280         * gengtype.c (open_base_files): Likewise.
1281         * gimple-pretty-print.c: Likewise.
1282         * gimple-pretty-print.h: Likewise.
1283         * graph.c (print_graph_cfg): Likewise.
1284         * graphite-scop-detection.c (dot_all_sese): Likewise.
1285         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
1286         * loop-unroll.c (report_unroll): Likewise.
1287         * passes.c (pass_manager::register_one_dump_file): Likewise.
1288         * print-tree.c: Likewise.
1289         * statistics.c: Likewise.
1290         * tree-cfg.c: Likewise.
1291         * tree-cfg.h: Likewise.
1292         * tree-dfa.c: Likewise.
1293         * tree-dfa.h: Likewise.
1294         * tree-dump.c (dump_function): Likewise.
1295         * tree-dump.h (struct dump_info): Likewise.
1296         * tree-pretty-print.c: Likewise.
1297         * tree-pretty-print.h: Likewise.
1298         * tree-ssa-live.c: Likewise.
1299         * tree-ssa-live.h: Likewise.
1300         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
1301         * tree-vect-loop.c: Likewise.
1302         * tree-vect-slp.c: Likewise.
1303
1304 2017-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
1305             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1306
1307         PR tree-optimization/80457
1308         * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
1309         of all arguments to a statement as scalar_to_vec operations.
1310         (vectorizable_call): Adjust call to vect_model_simple_cost for
1311         new parameter.
1312         (vectorizable_conversion): Likewise.
1313         (vectorizable_assignment): Likewise.
1314         (vectorizable_shift): Likewise.
1315         (vectorizable_operation): Likewise.
1316         (vectorizable_comparison): Likewise.
1317         (vect_is_simple_cond): Record the def types for operands.
1318         (vectorizable_condition): Likewise, call vect_model_simple_cost.
1319         * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
1320         for statement argument count.
1321
1322 2017-05-16  Carl Love  <cel@us.ibm.com>
1323
1324         * config/rs6000/rs6000-c: Add support for built-in functions
1325         vector unsigned long long vec_bperm (vector unsigned long long,
1326                                              vector unsigned char)
1327         vector signed long long vec_mule (vector signed int,
1328                                           vector signed int)
1329         vector unsigned long long vec_mule (vector unsigned int,
1330                                             vector unsigned int)
1331         vector signed long long vec_mulo (vector signed int,
1332                                           vector signed int)
1333         vector unsigned long long vec_mulo (vector unsigned int,
1334                                             vector unsigned int)
1335         vector signed char vec_sldw (vector signed char,
1336                                      vector signed char,
1337                                      const int)
1338         vector unsigned char vec_sldw (vector unsigned char,
1339                                        vector unsigned char,
1340                                        const int)
1341         vector signed short vec_sldw (vector signed short,
1342                                       vector signed short,
1343                                       const int)
1344         vector unsigned short vec_sldw (vector unsigned short,
1345                                         vector unsigned short,
1346                                         const int)
1347         vector signed int vec_sldw (vector signed int,
1348                                     vector signed int,
1349                                     const int)
1350         vector unsigned int vec_sldw (vector unsigned int,
1351                                       vector unsigned int,
1352                                       const int)
1353         vector signed long long vec_sldw (vector signed long long,
1354                                           vector signed long long,
1355                                           const int)
1356         vector unsigned long long vec_sldw (vector unsigned long long,
1357                                             vector unsigned long long,
1358                                             const int)
1359         * config/rs6000/rs6000-c: Add support for built-in functions
1360         * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
1361         * config/rs6000/altivec.h: Add defintion for vec_sldw.
1362         * doc/extend.texi: Update the built-in documentation for the
1363         new built-in functions.
1364
1365 2017-05-16  Marek Polacek  <polacek@redhat.com>
1366
1367         PR sanitizer/80536
1368         PR sanitizer/80386
1369         * tree.c (save_expr): Don't fold the expression.
1370
1371 2017-05-16  Uros Bizjak  <ubizjak@gmail.com>
1372
1373         * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
1374         to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
1375         and (?*y,m).  Update insn attributes.
1376
1377 2017-05-16  Martin Liska  <mliska@suse.cz>
1378
1379         * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
1380         flags argument of print_gimple_stmt, print_gimple_expr,
1381         print_generic_stmt and print_generic_expr.
1382         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
1383         * coretypes.h: Likewise.
1384         * except.c (dump_eh_tree): Likewise.
1385         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
1386         * gimple-pretty-print.h: Likewise.
1387         * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
1388         (backprop::push_to_worklist): Likewise.
1389         (backprop::pop_from_worklist): Likewise.
1390         (backprop::process_use): Likewise.
1391         (backprop::intersect_uses): Likewise.
1392         (note_replacement): Likewise.
1393         * gimple-ssa-store-merging.c
1394         (pass_store_merging::terminate_all_aliasing_chains): Likewise.
1395         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
1396         (pass_store_merging::execute): Likewise.
1397         * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
1398         (ssa_base_cand_dump_callback): Likewise.
1399         (dump_incr_vec): Likewise.
1400         (replace_refs): Likewise.
1401         (replace_mult_candidate): Likewise.
1402         (create_add_on_incoming_edge): Likewise.
1403         (create_phi_basis): Likewise.
1404         (insert_initializers): Likewise.
1405         (all_phi_incrs_profitable): Likewise.
1406         (introduce_cast_before_cand): Likewise.
1407         (replace_one_candidate): Likewise.
1408         * gimplify.c (gimplify_expr): Likewise.
1409         * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
1410         (set_rename): Likewise.
1411         (rename_uses): Likewise.
1412         (copy_loop_phi_nodes): Likewise.
1413         (add_close_phis_to_merge_points): Likewise.
1414         (copy_loop_close_phi_args): Likewise.
1415         (copy_cond_phi_args): Likewise.
1416         (graphite_copy_stmts_from_block): Likewise.
1417         (translate_pending_phi_nodes): Likewise.
1418         * graphite-poly.c (print_pdr): Likewise.
1419         (dump_gbb_cases): Likewise.
1420         (dump_gbb_conditions): Likewise.
1421         (print_scop_params): Likewise.
1422         * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
1423         (build_cross_bb_scalars_use): Likewise.
1424         (gather_bbs::before_dom_children): Likewise.
1425         * hsa-dump.c (dump_hsa_immed): Likewise.
1426         * ipa-cp.c (print_ipcp_constant_value): Likewise.
1427         (get_replacement_map): Likewise.
1428         * ipa-inline-analysis.c (dump_condition): Likewise.
1429         (estimate_function_body_sizes): Likewise.
1430         * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
1431         (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
1432         * ipa-prop.c (ipa_dump_param): Likewise.
1433         (ipa_print_node_jump_functions_for_edge): Likewise.
1434         (ipa_modify_call_arguments): Likewise.
1435         (ipa_modify_expr): Likewise.
1436         (ipa_dump_param_adjustments): Likewise.
1437         (ipa_dump_agg_replacement_values): Likewise.
1438         (ipcp_modif_dom_walker::before_dom_children): Likewise.
1439         * ipa-pure-const.c (check_stmt): Likewise.
1440         (pass_nothrow::execute): Likewise.
1441         * ipa-split.c (execute_split_functions): Likewise.
1442         * omp-offload.c (dump_oacc_loop_part): Likewise.
1443         (dump_oacc_loop): Likewise.
1444         * trans-mem.c (tm_log_emit): Likewise.
1445         (tm_memopt_accumulate_memops): Likewise.
1446         (dump_tm_memopt_set): Likewise.
1447         (dump_tm_memopt_transform): Likewise.
1448         * tree-cfg.c (gimple_verify_flow_info): Likewise.
1449         (print_loop): Likewise.
1450         * tree-chkp-opt.c (chkp_print_addr): Likewise.
1451         (chkp_gather_checks_info): Likewise.
1452         (chkp_get_check_result): Likewise.
1453         (chkp_remove_check_if_pass): Likewise.
1454         (chkp_use_outer_bounds_if_possible): Likewise.
1455         (chkp_reduce_bounds_lifetime): Likewise.
1456         * tree-chkp.c (chkp_register_addr_bounds): Likewise.
1457         (chkp_mark_completed_bounds): Likewise.
1458         (chkp_register_incomplete_bounds): Likewise.
1459         (chkp_mark_invalid_bounds): Likewise.
1460         (chkp_maybe_copy_and_register_bounds): Likewise.
1461         (chkp_build_returned_bound): Likewise.
1462         (chkp_get_bound_for_parm): Likewise.
1463         (chkp_build_bndldx): Likewise.
1464         (chkp_get_bounds_by_definition): Likewise.
1465         (chkp_generate_extern_var_bounds): Likewise.
1466         (chkp_get_bounds_for_decl_addr): Likewise.
1467         * tree-chrec.c (chrec_apply): Likewise.
1468         * tree-data-ref.c (dump_data_reference): Likewise.
1469         (dump_subscript): Likewise.
1470         (dump_data_dependence_relation): Likewise.
1471         (analyze_overlapping_iterations): Likewise.
1472         * tree-inline.c (expand_call_inline): Likewise.
1473         (tree_function_versioning): Likewise.
1474         * tree-into-ssa.c (dump_defs_stack): Likewise.
1475         (dump_currdefs): Likewise.
1476         (dump_names_replaced_by): Likewise.
1477         (dump_update_ssa): Likewise.
1478         (update_ssa): Likewise.
1479         * tree-object-size.c (pass_object_sizes::execute): Likewise.
1480         * tree-parloops.c (build_new_reduction): Likewise.
1481         (try_create_reduction_list): Likewise.
1482         (ref_conflicts_with_region): Likewise.
1483         (oacc_entry_exit_ok_1): Likewise.
1484         (oacc_entry_exit_single_gang): Likewise.
1485         * tree-pretty-print.h: Likewise.
1486         * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
1487         (get_scalar_evolution): Likewise.
1488         (add_to_evolution): Likewise.
1489         (get_loop_exit_condition): Likewise.
1490         (analyze_evolution_in_loop): Likewise.
1491         (analyze_initial_condition): Likewise.
1492         (analyze_scalar_evolution): Likewise.
1493         (instantiate_scev): Likewise.
1494         (number_of_latch_executions): Likewise.
1495         (gather_chrec_stats): Likewise.
1496         (final_value_replacement_loop): Likewise.
1497         (scev_const_prop): Likewise.
1498         * tree-sra.c (dump_access): Likewise.
1499         (disqualify_candidate): Likewise.
1500         (create_access): Likewise.
1501         (reject): Likewise.
1502         (maybe_add_sra_candidate): Likewise.
1503         (create_access_replacement): Likewise.
1504         (analyze_access_subtree): Likewise.
1505         (analyze_all_variable_accesses): Likewise.
1506         (sra_modify_assign): Likewise.
1507         (initialize_constant_pool_replacements): Likewise.
1508         (find_param_candidates): Likewise.
1509         (decide_one_param_reduction): Likewise.
1510         (replace_removed_params_ssa_names): Likewise.
1511         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
1512         * tree-ssa-copy.c (dump_copy_of): Likewise.
1513         (copy_prop_visit_cond_stmt): Likewise.
1514         * tree-ssa-dce.c (mark_operand_necessary): Likewise.
1515         * tree-ssa-dom.c (pass_dominator::execute): Likewise.
1516         (record_equivalences_from_stmt): Likewise.
1517         * tree-ssa-dse.c (compute_trims): Likewise.
1518         (delete_dead_call): Likewise.
1519         (delete_dead_assignment): Likewise.
1520         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
1521         (forward_propagate_into_cond): Likewise.
1522         (pass_forwprop::execute): Likewise.
1523         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
1524         * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
1525         Likewise.
1526         (move_computations_worker): Likewise.
1527         (execute_sm): Likewise.
1528         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
1529         (remove_exits_and_undefined_stmts): Likewise.
1530         (remove_redundant_iv_tests): Likewise.
1531         * tree-ssa-loop-ivopts.c (dump_use): Likewise.
1532         (adjust_iv_update_pos): Likewise.
1533         * tree-ssa-math-opts.c (bswap_replace): Likewise.
1534         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
1535         (value_replacement): Likewise.
1536         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
1537         * tree-ssa-pre.c (print_pre_expr): Likewise.
1538         (get_representative_for): Likewise.
1539         (create_expression_by_pieces): Likewise.
1540         (insert_into_preds_of_block): Likewise.
1541         (eliminate_insert): Likewise.
1542         (eliminate_dom_walker::before_dom_children): Likewise.
1543         (eliminate): Likewise.
1544         (remove_dead_inserted_code): Likewise.
1545         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
1546         * tree-ssa-reassoc.c (get_rank): Likewise.
1547         (eliminate_duplicate_pair): Likewise.
1548         (eliminate_plus_minus_pair): Likewise.
1549         (eliminate_not_pairs): Likewise.
1550         (undistribute_ops_list): Likewise.
1551         (eliminate_redundant_comparison): Likewise.
1552         (update_range_test): Likewise.
1553         (optimize_range_tests_var_bound): Likewise.
1554         (optimize_vec_cond_expr): Likewise.
1555         (rewrite_expr_tree): Likewise.
1556         (rewrite_expr_tree_parallel): Likewise.
1557         (linearize_expr): Likewise.
1558         (break_up_subtract): Likewise.
1559         (linearize_expr_tree): Likewise.
1560         (attempt_builtin_powi): Likewise.
1561         (attempt_builtin_copysign): Likewise.
1562         (transform_stmt_to_copy): Likewise.
1563         (transform_stmt_to_multiply): Likewise.
1564         (dump_ops_vector): Likewise.
1565         * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
1566         (print_scc): Likewise.
1567         (set_ssa_val_to): Likewise.
1568         (visit_reference_op_store): Likewise.
1569         (visit_use): Likewise.
1570         (sccvn_dom_walker::before_dom_children): Likewise.
1571         (run_scc_vn): Likewise.
1572         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
1573         Likewise.
1574         (expr_hash_elt::print): Likewise.
1575         (const_and_copies::pop_to_marker): Likewise.
1576         (const_and_copies::record_const_or_copy_raw): Likewise.
1577         * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
1578         * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
1579         (dump_predicates): Likewise.
1580         (find_uninit_use): Likewise.
1581         (warn_uninitialized_phi): Likewise.
1582         (pass_late_warn_uninitialized::execute): Likewise.
1583         * tree-ssa.c (verify_vssa): Likewise.
1584         (verify_ssa): Likewise.
1585         (maybe_optimize_var): Likewise.
1586         * tree-vrp.c (dump_value_range): Likewise.
1587         (dump_all_value_ranges): Likewise.
1588         (dump_asserts_for): Likewise.
1589         (register_edge_assert_for_2): Likewise.
1590         (vrp_visit_cond_stmt): Likewise.
1591         (vrp_visit_switch_stmt): Likewise.
1592         (vrp_visit_stmt): Likewise.
1593         (vrp_visit_phi_node): Likewise.
1594         (simplify_cond_using_ranges_1): Likewise.
1595         (fold_predicate_in): Likewise.
1596         (evrp_dom_walker::before_dom_children): Likewise.
1597         (evrp_dom_walker::push_value_range): Likewise.
1598         (evrp_dom_walker::pop_value_range): Likewise.
1599         (execute_early_vrp): Likewise.
1600
1601 2017-05-16  Richard Biener  <rguenther@suse.de>
1602
1603         * dwarf2out.c (loc_list_from_tree_1): Do not create
1604         DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
1605
1606 2017-05-16  Richard Biener  <rguenther@suse.de>
1607
1608         * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
1609         just generated.
1610         (note_variable_value_in_expr): If we resolved the decl ref
1611         do not push to the stack.
1612
1613 2017-05-16  Matthew Wahab  <matthew.wahab@arm.com>
1614
1615         * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
1616         operations in fast-math mode.
1617         (vaddq_f16): Likewise.
1618         (vmul_f16): Likewise.
1619         (vmulq_f16): Likewise.
1620         (vsub_f16): Likewise.
1621         (vsubq_f16): Likewise.
1622         * config/arm/neon.md (add<mode>3): New.
1623         (sub<mode>3): New.
1624         (fma:<VH:mode>3): New.  Also remove outdated comment.
1625         (mul<mode>3): New.
1626
1627 2017-05-16  Martin Liska  <mliska@suse.cz>
1628
1629         PR ipa/79849.
1630         PR ipa/79850.
1631         * ipa-devirt.c (warn_types_mismatch): Fix typo.
1632         (odr_types_equivalent_p): Likewise.
1633
1634 2017-05-15  Sylvestre Ledru  <sylvestre@debian.org>
1635
1636         * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
1637
1638 2017-05-15  Uros Bizjak  <ubizjak@gmail.com>
1639
1640         PR target/80425
1641         * config/i386.i386.md (*zero_extendsidi2): Do not penalize
1642         non-interunit SSE move alternatives with '?'.
1643         (zero-extendsidi peephole2): New peephole to skip intermediate
1644         general register in SSE zero-extend sequence.
1645
1646 2017-05-15  Jeff Law  <law@redhat.com>
1647
1648         * reorg.c (relax_delay_slots): Create a new variable to hold
1649         the temporary target rather than clobbering TARGET_LABEL.
1650
1651         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
1652         missing argument to extract_bit_field call.
1653         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
1654
1655 2017-05-15  Martin Liska  <mliska@suse.cz>
1656
1657         PR driver/31468
1658         * gcc.c (process_command): Do not allow empty argument of -o option.
1659
1660 2017-05-15  Renlin Li  <renlin.li@arm.com>
1661
1662         * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
1663         * config/aarch64/aarch64.c (aarch64_expand_call): Define.
1664         * config/aarch64/constraints.md (Usf): Add long call check.
1665         * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
1666         (call_value): Likewise.
1667         (sibcall): Likewise.
1668         (sibcall_value): Likewise.
1669         (call_insn): New.
1670         (call_value_insn): New.
1671         (sibcall_insn): Update rtx pattern.
1672         (sibcall_value_insn): Likewise.
1673         (call_internal): Remove.
1674         (call_value_internal): Likewise.
1675         (sibcall_internal): Likewise.
1676         (sibcall_value_internal): Likewise.
1677         (call_reg): Likewise.
1678         (call_symbol): Likewise.
1679         (call_value_reg): Likewise.
1680         (call_value_symbol): Likewise.
1681
1682 2017-05-14  Krister Walfridsson  <krister.walfridsson@gmail.com>
1683
1684         PR target/80600
1685         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
1686
1687 2017-05-14  Uros Bizjak  <ubizjak@gmail.com>
1688
1689         * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
1690         compatible with CCGOCmode and with CCZmode.
1691
1692 2017-05-14  Martin Sebor  <msebor@redhat.com>
1693
1694         PR middle-end/77671
1695         * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
1696         (gimple_fold_builtin_snprintf): Same.
1697         * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
1698         (gimple_fold_builtin_snprintf): Same.
1699         * gimple-ssa-sprintf.c (get_format_string): Correct the detection
1700         of character types.
1701         (is_call_safe): New function.
1702         (try_substitute_return_value): Call it.
1703         (try_simplify_call): New function.
1704         (pass_sprintf_length::handle_gimple_call): Call it.
1705
1706 2017-05-14  Martin Sebor  <msebor@redhat.com>
1707
1708         PR middle-end/80669
1709         * builtins.c (expand_builtin_stpncpy): Simplify.
1710
1711 2017-05-14  Daniel Santos  <daniel.santos@pobox.com>
1712
1713         * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
1714         * config/i386/i386.h
1715         (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
1716         (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
1717         (struct machine_function): Add new members call_ms2sysv,
1718         call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
1719         (struct machine_frame_state): New fields sp_realigned and
1720         sp_realigned_offset.
1721         * config/i386/i386.c
1722         (enum xlogue_stub): New enum.
1723         (enum xlogue_stub_sets): New enum.
1724         (class xlogue_layout): New class.
1725         (struct ix86_frame): New fields stack_realign_allocate_offset,
1726         stack_realign_offset and outlined_save_offset.  Modify comments to
1727         detail stack layout when using out-of-line stubs.
1728         (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
1729         (ix86_option_override_internal): Add sorry() for TARGET_SEH and
1730         -mcall-ms2sysv-xlogues.
1731         (stub_managed_regs): New static variable.
1732         (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
1733         registers managed by out-of-line stub.
1734         (disable_call_ms2sysv_xlogues): New function.
1735         (ix86_compute_frame_layout): Modify re-alignment calculations, disable
1736         m->call_ms2sysv when appropriate and compute frame layout for
1737         out-of-line stubs.
1738         (sp_valid_at, fp_valid_at): New inline functions.
1739         (choose_basereg): New function.
1740         (choose_baseaddr): Add align parameter, use choose_basereg and modify
1741         all callers.
1742         (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
1743         Use align parameter of choose_baseaddr to generated aligned SSE movs
1744         when possible.
1745         (pro_epilogue_adjust_stack): Modify to track
1746         machine_frame_state::sp_realigned.
1747         (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
1748         (ix86_nsaved_sseregs): Likewise.
1749         (ix86_emit_save_regs): Likewise.
1750         (ix86_emit_save_regs_using_mov): Likewise.
1751         (ix86_emit_save_sse_regs_using_mov): Likewise.
1752         (get_scratch_register_on_entry): Likewise.
1753         (gen_frame_set): New function.
1754         (gen_frame_load): Likewise.
1755         (gen_frame_store): Likewise.
1756         (emit_outlined_ms2sysv_save): Likewise.
1757         (emit_outlined_ms2sysv_restore): Likewise.
1758         (ix86_expand_prologue): Modify stack re-alignment code and call
1759         emit_outlined_ms2sysv_save when appropriate.
1760         (ix86_emit_leave): Clear machine_frame_state::sp_realigned.  Add
1761         parameter rtx_insn *insn, which allows the function to be used to only
1762         generate the notes.
1763         (ix86_expand_epilogue): Modify validity checks of frame and stack
1764         pointers, and call emit_outlined_ms2sysv_restore when appropriate.
1765         (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
1766         * config/i386/predicates.md
1767         (save_multiple): New predicate.
1768         (restore_multiple): Likewise.
1769         * config/i386/sse.md
1770         (save_multiple<mode>): New pattern.
1771         (save_multiple_realign<mode>): Likewise.
1772         (restore_multiple<mode>): Likewise.
1773         (restore_multiple_and_return<mode>): Likewise.
1774         (restore_multiple_leave_return<mode>): Likewise.
1775         * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
1776
1777 2017-05-14  Julia Koval  <julia.koval@intel.com>
1778
1779         * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
1780         * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
1781         (__builtin_ia32_xsetbv): New builtins.
1782         * config/i386/i386.c (ix86_expand_special_args_builtin):
1783         Process new types.
1784         (ix86_expand_builtin): Special expand for new intrinsics.
1785         * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
1786         (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
1787         * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
1788
1789 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1790
1791         * cfganal.c (inverted_post_order_compute): Change argument type
1792         to vec *.
1793         * cfganal.h (inverted_post_order_compute): Adjust prototype.
1794         * df-core.c (rest_of_handle_df_initialize): Adjust.
1795         (rest_of_handle_df_finish): Likewise.
1796         (df_analyze_1): Likewise.
1797         (df_analyze): Likewise.
1798         (loop_inverted_post_order_compute): Change argument to be a vec *.
1799         (df_analyze_loop): Adjust.
1800         (df_get_n_blocks): Likewise.
1801         (df_get_postorder): Likewise.
1802         * df.h (struct df_d): Change field to be a vec.
1803         * lcm.c (compute_laterin): Adjust.
1804         (compute_available): Likewise.
1805         * lra-lives.c (lra_create_live_ranges_1): Likewise.
1806         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
1807         * tree-ssa-pre.c (compute_antic): Likewise.
1808
1809 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1810
1811         * cfganal.c (connect_infinite_loops_to_exit): Adjust.
1812         (depth_first_search::depth_first_search): Change structure init
1813         function to this constructor.
1814         (depth_first_search::add_bb): Rename function to this member.
1815         (depth_first_search::execute): Likewise.
1816         (flow_dfs_compute_reverse_finish): Adjust.
1817
1818 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1819
1820         * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
1821         (longest_simple_path): Likewise.
1822         * shrink-wrap.c (spread_components): Likewise.
1823         (disqualify_problematic_components): Likewise.
1824         (emit_common_heads_for_components): Likewise.
1825         (emit_common_tails_for_components): Likewise.
1826         (insert_prologue_epilogue_for_components): Likewise.
1827
1828 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1829
1830         * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
1831         auto_sbitmap.
1832
1833 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1834
1835         * df-core.c (df_set_blocks): Start using auto_bitmap.
1836         (df_compact_blocks): Likewise.
1837         * df-problems.c (df_rd_confluence_n): Likewise.
1838         * df-scan.c (df_insn_rescan_all): Likewise.
1839         (df_process_deferred_rescans): Likewise.
1840         (df_update_entry_block_defs): Likewise.
1841         (df_update_exit_block_uses): Likewise.
1842         (df_entry_block_bitmap_verify): Likewise.
1843         (df_exit_block_bitmap_verify): Likewise.
1844         (df_scan_verify): Likewise.
1845         * lra-constraints.c (lra_constraints): Likewise.
1846         (undo_optional_reloads): Likewise.
1847         (lra_undo_inheritance): Likewise.
1848         * lra-remat.c (calculate_gen_cands): Likewise.
1849         (do_remat): Likewise.
1850         * lra-spills.c (assign_spill_hard_regs): Likewise.
1851         (spill_pseudos): Likewise.
1852         * tree-ssa-pre.c (bitmap_set_and): Likewise.
1853         (bitmap_set_subtract_values): Likewise.
1854
1855 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1856
1857         * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
1858         management with auto_bitmap.
1859         (fix_inter_tick): Likewise.
1860         (fix_recovery_deps): Likewise.
1861         * ira.c (add_store_equivs): Likewise.
1862         (find_moveable_pseudos): Likewise.
1863         (split_live_ranges_for_shrink_wrap): Likewise.
1864         * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
1865         (rtx_reuse_manager::seen_def_p): Likewise.
1866         (rtx_reuse_manager::set_seen_def): Likewise.
1867         * print-rtl.h (class rtx_reuse_manager): Likewise.
1868
1869 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1870
1871         * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
1872         lifetime.
1873         (migrate_btr_def): Likewise.
1874         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
1875         * df-core.c (loop_post_order_compute): Likewise.
1876         (loop_inverted_post_order_compute): Likewise.
1877         * hsa-common.h: Likewise.
1878         * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
1879         * init-regs.c (initialize_uninitialized_regs): Likewise.
1880         * ipa-inline.c (resolve_noninline_speculation): Likewise.
1881         (inline_small_functions): Likewise.
1882         * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
1883         * ira.c (combine_and_move_insns): Likewise.
1884         (build_insn_chain): Likewise.
1885         * loop-invariant.c (find_invariants): Likewise.
1886         * lower-subreg.c (propagate_pseudo_copies): Likewise.
1887         * predict.c (tree_predict_by_opcode): Likewise.
1888         (predict_paths_leading_to): Likewise.
1889         (predict_paths_leading_to_edge): Likewise.
1890         (estimate_loops_at_level): Likewise.
1891         (estimate_loops): Likewise.
1892         * shrink-wrap.c (try_shrink_wrapping): Likewise.
1893         (spread_components): Likewise.
1894         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
1895         * tree-loop-distribution.c (rdg_build_partitions): Likewise.
1896         * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
1897         * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
1898         * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
1899         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
1900         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
1901         * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
1902         (mark_threaded_blocks): Likewise.
1903         (thread_through_all_blocks): Likewise.
1904         * tree-ssa.c (verify_ssa): Likewise.
1905         (execute_update_addresses_taken): Likewise.
1906         * tree-ssanames.c (verify_ssaname_freelists): Likewise.
1907
1908 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1909
1910         * cfganal.c (mark_dfs_back_edges): Replace manual stack with
1911         auto_vec.
1912         (post_order_compute): Likewise.
1913         (inverted_post_order_compute): Likewise.
1914         (pre_and_rev_post_order_compute_fn): Likewise.
1915
1916 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1917
1918         * genrecog.c (int_set::int_set): Explicitly construct our
1919         auto_vec base class.
1920         * vec.h (auto_vec::auto_vec): New constructor.
1921
1922 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1923
1924         * bitmap.h (class auto_bitmap): New constructor taking
1925         bitmap_obstack * argument.
1926
1927 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1928
1929         * bitmap.h (class auto_bitmap): Change type of m_bits to
1930         bitmap_head, and adjust ctor / dtor and member operators.
1931
1932 2017-05-13  Uros Bizjak  <ubizjak@gmail.com>
1933
1934         * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
1935         when returned register mode doesn't match original mode.
1936
1937 2017-05-12  Jeff Law  <law@redhat.com>
1938             Jakub Jelinek  <jakub@redhat.com>
1939
1940         * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
1941         we look for cc setter after the compare-elim changes.
1942         * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
1943         within the vector to match what compare-elim now expects.
1944         (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
1945         (xorsi3_flags, one_cmplsi2_flags): Likewise.
1946
1947         * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
1948         after the compare-elim changes.
1949         * config/rx/rx.md (abssi2_flags): Fix order of patterns within
1950         the vector to match what compare-elim now expects.
1951         (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
1952         (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
1953         (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
1954         (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
1955         (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
1956
1957         * config/visium/visium.c (single_set_and_flags): Fix where
1958         we look for cc setter after the compare-elim changes.
1959         * config/visium/visium.md (flags_subst_logic): Fix order of patterns
1960         with the vector to match what compare-elim now expects.
1961         (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
1962         (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
1963         (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
1964         (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
1965         (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
1966         (neg<mode>2_insn_set_overflow): Likewise.
1967
1968 2017-05-12  Jim Wilson  <jim.wilson@linaro.org>
1969
1970         PR middle-end/79794
1971         * expmed.c (extract_bit_field_1): Add alt_rtl argument.  Before
1972         maybe_expand_insn call, set ops[0].target.  If still set after call,
1973         set alt_rtl.  Add extra arg to recursive calls.
1974         (extract_bit_field): Add alt_rtl argument.  Pass to
1975         extract_bit_field.
1976         * expmed.h (extract_bit_field): Fix prototype.
1977         * expr.c (emit_group_load_1, copy_blkmode_from_reg)
1978         (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
1979         to extract_bit_field_calls.
1980         (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
1981         Pass alt_rtl to extract_bit_field calls.
1982         * calls.c (store_unaligned_arguments_into_psuedos)
1983         load_register_parameters): Pass extra NULL to extract_bit_field calls.
1984         * optabs.c (maybe_legitimize_operand): Clear op->target when call
1985         gen_reg_rtx.
1986         * optabs.h (struct expand_operand): Add target bitfield.
1987
1988 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
1989
1990         * compare-elim.c (try_eliminate_compare): Canonicalize
1991         operation with embedded compare to
1992         [(set (reg:CCM) (compare:CCM (operation) (immediate)))
1993          (set (reg) (operation)].
1994
1995         * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
1996
1997 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
1998
1999         PR target/80723
2000         * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
2001         cost of adding a carry flag for ADC instruction.
2002         [case MINUS]: Ignore the cost of subtracting a carry flag
2003         for SBB instruction.
2004
2005 2017-05-12  Steven Munroe  <munroesj@gcc.gnu.org>
2006
2007         * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
2008         and x86intrin.h
2009         * config/rs6000/bmiintrin.h: New file.
2010         * config/rs6000/bmi2intrin.h: New file.
2011         * config/rs6000/x86intrin.h: New file.
2012
2013 2017-05-12  Jeff Law  <law@redhat.com>
2014
2015         * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
2016         markers.
2017
2018 2017-05-12  Peter Bergner  <bergner@vnet.ibm.com>
2019
2020         PR middle-end/80707
2021         * tree-cfg.c: Remove cfg edges of unreachable case statements.
2022
2023 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
2024
2025         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
2026         early expansion of vector divide builtins.
2027         (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
2028         builtins identified as having unsigned arguments.
2029
2030 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
2031
2032         * config/rs6000/rs6000.c (gimple-fold.h): New #include.
2033         (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
2034         expansion of vector logical operations (and, andc, or, xor,
2035         nor, orc, nand).
2036
2037 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
2038
2039         * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
2040         * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
2041
2042 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
2043
2044         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
2045         early GIMPLE expansion of vector multiplies.
2046
2047 2017-05-12  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
2048
2049         * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
2050         TARGET_HAVE_MOVT conditional.
2051         (movt splitter): Likewise.
2052
2053 2017-05-12  Richard Biener  <rguenther@suse.de>
2054
2055         * tree-ssa-sccvn.h (has_VN_INFO): Declare.
2056         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
2057         Fold all stmts not inplace.
2058
2059 2017-05-12  Richard Biener  <rguenther@suse.de>
2060
2061         PR tree-optimization/80713
2062         * tree-ssa-pre.c (remove_dead_inserted_code): Clear
2063         inserted_exprs bit for not removed stmts.
2064
2065 2017-05-12  Thomas Schwinge  <thomas@codesourcery.com>
2066
2067         PR middle-end/69921
2068         * tree-parloops.c (create_parallel_loop): Set "oacc kernels
2069         parallelized" attribute for parallelized OpenACC kernels.
2070         * omp-offload.c (execute_oacc_device_lower): Use it.
2071
2072         * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
2073         Set "oacc kernels" attribute.
2074         * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
2075         parameter.  Adjust all users.
2076         (oacc_fn_attrib_kernels_p): Remove function.
2077         * omp-offload.c (execute_oacc_device_lower): Look for "oacc
2078         kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
2079         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
2080         * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
2081         assert "oacc kernels" attribute is set.
2082
2083 2017-05-11  Carl Love  <cel@us.ibm.com>
2084
2085         * config/rs6000/rs6000-c: Add support for built-in functions
2086         vector unsigned char vec_popcnt (vector signed char)
2087         vector unsigned char vec_popcnt (vector unsigned char)
2088         vector unsigned short vec_popcnt (vector signed short)
2089         vector unsigned short vec_popcnt (vector unsigned short)
2090         vector unsigned int vec_popcnt (vector signed int)
2091         vector unsigned int vec_popcnt (vector unsigned int)
2092         vector unsigned long long vec_popcnt (vector signed long long)
2093         vector unsigned long long vec_popcnt (vector unsigned long long)
2094         vector signed long long vec_slo (vector signed long long,
2095                                          vector signed char)
2096         vector signed long long vec_slo (vector signed long long,
2097                                          vector unsigned char)
2098         vector unsigned long long vec_slo (vector unsigned long long,
2099                                            vector signed char)
2100         vector unsigned long long vec_slo (vector unsigned long long,
2101                                            vector unsigned char)
2102         * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
2103         VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
2104         * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
2105         vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
2106         * doc/extend.texi: Update the built-in documentation file for the
2107         new built-in functions.
2108
2109 2017-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
2110
2111         * attribs.h (sorted_attr_string): Move machine independent
2112         functions for target clone support from the i386 port to common
2113         code.  Rename ix86_function_versions to common_function_versions.
2114         Rename make_name to make_unique_name.
2115         (common_function_versions): Likewise.
2116         (make_unique_name): Likewise.
2117         (make_dispatcher_decl): Likewise.
2118         (is_function_default_version): Likewise.
2119         * attribs.c (attr_strcmp): Likewise.
2120         (sorted_attr_string): Likewise.
2121         (common_function_versions): Likewise.
2122         (make_unique_name): Likewise.
2123         (make_dispatcher_decl): Likewise.
2124         (is_function_default_version): Likewise.
2125         * config/i386/i386.c (attr_strcmp): Likewise.
2126         (sorted_attr_string): Likewise.
2127         (ix86_function_versions): Likewise.
2128         (make_name): Likewise.
2129         (make_dispatcher_decl): Likewise.
2130         (is_function_default_version): Likewise.
2131         (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
2132
2133 2017-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2134
2135         PR target/80695
2136         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
2137         Account for direct move costs for vec_construct of integer
2138         vectors.
2139
2140 2017-05-11  Uros Bizjak  <ubizjak@gmail.com>
2141
2142         PR target/80706
2143         * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
2144         (UNSPEC_STX_ATOMIC): Ditto.
2145         (loaddi_via_sse): New insn.
2146         (storedi_via_sse): Ditto.
2147         (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
2148         Update corresponding peephole2 patterns.
2149         (atomic_storedi_fpu): Ditto.
2150
2151 2017-05-11  Julia Koval  <julia.koval@intel.com>
2152
2153         * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
2154         (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
2155         New intrinsics.
2156         * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
2157         (__builtin_ia32_rsqrt14ss_mask): New builtins.
2158         * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
2159
2160 2017-05-11  Nathan Sidwell  <nathan@acm.org>
2161
2162         * graphite-poly.c: Include dumpfile.h.
2163
2164         * dumpfle.h (dump_function): Declare here ...
2165         * tree-dump.h (dump_function): ... not here.
2166         * dumpfile.c: #include tree-cfg.h.
2167         (dump_function): Move here from ...
2168         * tree-dump.c (dump_function): ... here.
2169         * gimplify.c: #include splay-tree.h, not tree-dump.h.
2170         * graphite-poly.c: Don't include tree-dump.h.
2171         * cgraphclones.c: Include dumpfile.h not tree-dump.h.
2172         * print-tree.c: Likewise.
2173         * stor-layout.c: Likewise.
2174         * tree-nested.c: Likewise.
2175
2176         * dumpfile.c (dump_start): Use TDF_FLAGS.
2177         (dump_enable_all): Fix TDF_KIND check thinko.
2178
2179 2017-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2180
2181         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2182         array entries to represent two legal parameterizations of the
2183         overloaded __builtin_cmpb function, as represented by the
2184         P6_OV_BUILTIN_CMPB constant.
2185         (altivec_resolve_overloaded_builtin): Add special case handling
2186         for the __builtin_cmpb function, as represented by the
2187         P6_OV_BUILTIN_CMPB constant.
2188         * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
2189         (BU_P6_64BIT_2): New macro.
2190         (BU_P6_OVERLOAD_2): New macro
2191         (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
2192         (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
2193         (CMPB): Add overload support to represent both 32-bit and 64-bit
2194         compare-bytes function.
2195         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
2196         support for TARGET_CMPB.
2197         * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
2198         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
2199         documentation of the __builtin_cmpb overloaded built-in function.
2200
2201 2017-05-11  Richard Biener  <rguenther@suse.de>
2202
2203         PR tree-optimization/80705
2204         * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
2205         bases are not vectorizable.
2206
2207 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2208
2209         * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
2210         when counting register pressure.
2211
2212 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2213
2214         * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
2215         (iv_ca_more_deps): Renamed to ...
2216         (iv_ca_compare_deps): ... this.
2217         (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
2218
2219 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2220
2221         * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
2222         to ...
2223         (determine_group_iv_costs): ... here.
2224         (find_inv_vars_cb): Record inv var if it's not recorded before.
2225
2226 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2227
2228         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
2229         (get_shiftadd_cost): Ditto.
2230
2231 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2232
2233         * tree-ssa-address.c: Include header file.
2234         (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
2235         address.
2236         (add_to_parts): Refactor.
2237         (addr_to_parts): New parameter.  Update use of move_hint_to_base.
2238         (create_mem_ref): Update use of addr_to_parts.  Re-associate addr
2239         in new order.
2240
2241 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2242
2243         PR tree-optimization/53090
2244         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
2245         COMP_IV_EXPR_2.
2246         (extract_cond_operands): Detect condition with IV on both sides
2247         and return COMP_IV_EXPR_2.
2248         (find_interesting_uses_cond): Add iv_use for both IVs in condition.
2249         (rewrite_use_compare): Simplify by removing call to function
2250         extract_cond_operands.
2251
2252 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2253
2254         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
2255         (extract_cond_operands): Detect condition comparing against non-
2256         invariant bound and return appropriate enum value.
2257         (find_interesting_uses_cond): Update use of extract_cond_operands.
2258         Handle its return value accordingly.
2259         (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
2260
2261 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2262
2263         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
2264         nonlinear iv_use computation in loop invariant sensitive way.
2265
2266 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2267
2268         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
2269         (find_iv_candidates): Call relate_compare_use_with_all_cands.
2270
2271 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2272
2273         * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
2274         (dump_cand): Support iv_cand.inv_exprs.
2275         (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
2276         for candidates.
2277         (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
2278         iv_cand.inv_exprs.
2279
2280 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2281
2282         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
2283         from ...
2284         * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
2285         as local function.  Include necessary header files.
2286         * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
2287
2288 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2289
2290         * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
2291
2292 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2293
2294         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
2295         operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
2296         RSHIFT_EXPR and BIT_NOT_EXPR.
2297
2298 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2299
2300         * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
2301         (adjust_setup_cost): New parameter supporting round up adjustment.
2302         (struct address_cost_data): Delete.
2303         (force_expr_to_var_cost): Don't bound cost with spill_cost.
2304         (split_address_cost, ptr_difference_cost): Delete.
2305         (difference_cost, compare_aff_trees, record_inv_expr): Delete.
2306         (struct ainc_cost_data): New struct.
2307         (get_address_cost_ainc): New function.
2308         (get_address_cost, get_computation_cost): Reimplement.
2309         (determine_group_iv_cost_address): Record inv_expr for all uses of
2310         a group.
2311         (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
2312         (iv_ca_has_deps): Reimplemented to ...
2313         (iv_ca_more_deps): ... this.  Check if NEW_CP introduces more deps
2314         than OLD_CP.
2315         (iv_ca_extend): Call iv_ca_more_deps.
2316
2317 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2318
2319         * tree-ssa-address.c (struct mem_address): Move to header file.
2320         (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
2321         * tree-ssa-address.h (struct mem_address): Move from C file.
2322         (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
2323
2324 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2325
2326         * tree-affine.h (aff_combination_type): New interface.
2327         (aff_combination_zero_p): Remove static.
2328         (aff_combination_const_p): New interface.
2329         (aff_combination_singleton_var_p): New interfaces.
2330
2331 2017-05-11  Richard Biener  <rguenther@suse.de>
2332
2333         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
2334         Skip unreachable blocks and destinations.
2335         (eliminate): Move stmt removal and fixup ...
2336         (fini_eliminate): ... here.  Skip inserted exprs.
2337         (pass_pre::execute): Move fini_pre after fini_eliminate.
2338         * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
2339         (tail_merge_optimize): Run cleanup_tree_cfg if requested by
2340         PRE to get rid of dead code that has invalid SSA form and
2341         split critical edges again.
2342
2343 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
2344
2345         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
2346
2347 2017-05-11  Richard Biener  <rguenther@suse.de>
2348
2349         * passes.c (execute_function_todo): Verify loops if they are
2350         said to be up-to-date.
2351         * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
2352         * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
2353
2354 2017-05-10  John David Anglin  <danglin@gcc.gnu.org>
2355
2356         PR target/80090
2357         * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
2358         handle calling assemble_external ourself.
2359
2360         PR target/79027
2361         * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
2362         modes with zero size.  Enhance comment.
2363
2364 2017-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2365
2366         * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
2367         built-ins for vec_xl and vec_xst with short and char pointer
2368         arguments.
2369
2370 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
2371
2372         * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
2373         (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
2374         (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
2375         (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
2376         (_mm_maskz_min_round_ss): New intrinsics.
2377         * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
2378         (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
2379         * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
2380         (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
2381         (__builtin_ia32_minss_mask_round): New builtins.
2382         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
2383         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
2384         * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
2385         Rename to ...
2386         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
2387         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
2388         Change to ...
2389         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
2390         ... this.
2391
2392 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
2393
2394         * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
2395         (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
2396         (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
2397         (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
2398         (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
2399         (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
2400         (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
2401         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
2402         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
2403         * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
2404         (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
2405         (__builtin_ia32_mulss_mask_round): New builtins.
2406         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
2407         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
2408         * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
2409         Rename to ...
2410         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
2411         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
2412         Change to ...
2413         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
2414         ... this.
2415
2416 2017-05-10  Julia Koval  <julia.koval@intel.com>
2417
2418         * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
2419         (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
2420         (_mm256_setr_m128i): New intrinsics.
2421
2422 2017-05-10  Julia Koval  <julia.koval@intel.com>
2423
2424         * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
2425         (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
2426         (_mm_maskz_rcp14_ss): New intrinsics.
2427         * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
2428         (__builtin_ia32_rcp14ss_mask): New builtins.
2429         * config/i386/sse.md (srcp14<mode>_mask): New pattern.
2430
2431 2017-05-10  Peter Bergner  <bergner@vnet.ibm.com>
2432
2433         PR tree-optimization/51513
2434         * tree-cfg.c (gimple_seq_unreachable_p): New function.
2435         (assert_unreachable_fallthru_edge_p): Use it.
2436         (group_case_labels_stmt): Likewise.
2437         * tree-cfg.h: Prototype it.
2438         * stmt.c: Include cfghooks.h and tree-cfg.h.
2439         (emit_case_dispatch_table) <gap_label>: New local variable.
2440         Use it to fill dispatch table gaps.
2441         Test for default_label before updating probabilities.
2442         (expand_case) <default_label>: Remove unneeded initialization.
2443         Test for unreachable default case statement and remove its edge.
2444         Set default_label accordingly.
2445         * tree-ssa-ccp.c (optimize_unreachable): Update comment.
2446
2447 2017-05-10  Carl Love  <cel@us.ibm.com>
2448
2449         * config/rs6000/rs6000-c: Add support for built-in functions
2450         vector signed char        vec_neg (vector signed char)
2451         vector signed short int   vec_neg (vector short int)
2452         vector signed int         vec_neg (vector signed int)
2453         vector signed long long   vec_neg (vector signed long long)
2454         vector float              vec_neg (vector float)
2455         vector double             vec_neg (vector double)
2456         * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
2457         overload.
2458         * config/rs6000/altivec.h: Add define for vec_neg
2459         * doc/extend.texi: Update the built-in documentation for the
2460         new built-in functions.
2461
2462 2017-05-10  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2463
2464         PR tree-optimization/77644
2465         * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
2466
2467 2017-05-10  Nathan Sidwell  <nathan@acm.org>
2468
2469         * dumpfile.h (TDI_lang_all): New.
2470         (TDF_KIND): New. Renumber others
2471         (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
2472         than bits.
2473         * dumpfile.c (dump_files): Mark language dumps as TDF_LANG.  add
2474         lang-all.
2475         (get_dump_file_name): Adjust suffix generation.
2476         (dump_enable_all): Use TDF_KIND.
2477         * doc/invoke.texi (-fdump-lang-all): Document.
2478
2479         * dumpfile.h: Tabify.
2480
2481 2017-05-10  Wilco Dijkstra  <wdijkstr@arm.com>
2482
2483         PR target/80671
2484         * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
2485         Move member access before delete.
2486
2487 2017-05-10  Alexandre Oliva <aoliva@redhat.com>
2488
2489         * tree-inline.c (expand_call_inline): Split block at stmt
2490         before the call.
2491
2492 2017-05-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
2493
2494         PR target/68163
2495         * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
2496         are now unused after splitting mov{sf,sd}_hardfloat.
2497         (f32_lr2): Likewise.
2498         (f32_lm): Likewise.
2499         (f32_lm2): Likewise.
2500         (f32_li): Likewise.
2501         (f32_li2): Likewise.
2502         (f32_lv): Likewise.
2503         (f32_sr): Likewise.
2504         (f32_sr2): Likewise.
2505         (f32_sm): Likewise.
2506         (f32_sm2): Likewise.
2507         (f32_si): Likewise.
2508         (f32_si2): Likewise.
2509         (f32_sv): Likewise.
2510         (f32_dm): Likewise.
2511         (f32_vsx): Likewise.
2512         (f32_av): Likewise.
2513         (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
2514         For movsf, order stores so the VSX stores occur before the GPR
2515         store which encourages the register allocator to use a traditional
2516         FPR instead of a GPR.  For movsd, order the stores so that the GPR
2517         store comes before the VSX stores to allow the power6 to work.
2518         This is due to the power6 not having a 32-bit integer store
2519         instruction from a FPR.
2520         (movsf_hardfloat): Likewise.
2521         (movsd_hardfloat): Likewise.
2522
2523 2017-05-09  Martin Sebor  <msebor@redhat.com>
2524
2525         PR translation/80280
2526         * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
2527         added in r247778.
2528
2529         PR translation/80280
2530         * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
2531         data member added in r247778.
2532         (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
2533
2534 2017-05-09  Nathan Sidwell  <nathan@acm.org>
2535
2536         * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
2537
2538         * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
2539         typedefs.
2540
2541 2017-05-09  Marek Polacek  <polacek@redhat.com>
2542
2543         * doc/invoke.texi: Fix typo.
2544
2545 2017-05-09  Richard Biener  <rguenther@suse.de>
2546
2547         * tree-vrp.c (vrp_val_is_max): Adjust comment.
2548         (vrp_val_is_min): Likewise.
2549         (set_value_range_to_value): Likewise.
2550         (set_value_range_to_nonnegative): Likewise.
2551         (gimple_assign_nonzero_p): Likewise.
2552         (gimple_stmt_nonzero_p): Likewise.
2553         (vrp_int_const_binop): Likewise.  Remove unreachable case.
2554         (adjust_range_with_scev): Adjust comments.
2555         (compare_range_with_value): Likewise.
2556         (extract_range_from_phi_node): Likewise.
2557         (test_for_singularity): Likewise.
2558
2559 2017-05-09  Richard Biener  <rguenther@suse.de>
2560
2561         * tree-vrp.c (get_single_symbol): Add assert that we don't
2562         get overflowed constants as invariant part.
2563         (compare_values_warnv): Add comment before the TREE_NO_WARNING
2564         checks.  Use wi::cmp instead of recursing for integer constants.
2565         (compare_values): Just ignore whether we assumed undefined
2566         overflow instead of failing the compare.
2567         (extract_range_for_var_from_comparison_expr): Add comment before the
2568         TREE_NO_WARNING sets.
2569         (test_for_singularity): Likewise.
2570         (extract_range_from_comparison): Do not disable optimization
2571         when we assumed undefined overflow.
2572         (extract_range_basic): Remove init of unused var.
2573
2574 2017-05-09  Richard Biener  <rguenther@suse.de>
2575
2576         * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
2577         (extract_range_from_multiplicative_op_1): Adjust.
2578         (extract_range_from_binary_expr_1): Use int_const_binop.
2579
2580 2017-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2581
2582         PR target/80101
2583         * config/rs6000/power6.md: Replace store_data_bypass_p calls with
2584         rs6000_store_data_bypass_p in seven define_bypass directives and
2585         in several comments.
2586         * config/rs6000/rs6000-protos.h: Add prototype for
2587         rs6000_store_data_bypass_p function.
2588         * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
2589         function implements slightly different (rs6000-specific) semantics
2590         than store_data_bypass_p, returning false rather than aborting
2591         with assertion error when arguments do not satisfy the
2592         requirements of store data bypass.
2593         (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
2594         rs6000_store_data_bypass_p.
2595
2596 2017-05-08  Max Filippov  <jcmvbkbc@gmail.com>
2597
2598         * config/xtensa/xtensa-protos.h
2599         (xtensa_initial_elimination_offset): New declaration.
2600         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
2601         New function. Move its body from the INITIAL_ELIMINATION_OFFSET
2602         macro definition, add case for FRAME_POINTER_REGNUM when
2603         FRAME_GROWS_DOWNWARD.
2604         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
2605         (INITIAL_ELIMINATION_OFFSET): Replace body with call to
2606         xtensa_initial_elimination_offset.
2607
2608 2017-05-08  Nathan Sidwell  <nathan@acm.org>
2609
2610         * doc/invoke.texi: Alphabetize -fdump options.
2611
2612 2017-05-08  Martin Sebor  <msebor@redhat.com>
2613
2614         PR translation/80280
2615         * config/sol2-c.c (solaris_pragma_align): Correct quoting.
2616
2617 2017-05-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2618
2619         * target.def (compute_frame_layout): New optional target hook.
2620         * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
2621         * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
2622         * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
2623         target hook.
2624         * reload1.c (verify_initial_elim_offsets): Likewise.
2625         * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
2626         (use_simple_return_p): Call arm_compute_frame_layout if needed.
2627         (arm_get_frame_offsets): Split up into this ...
2628         (arm_compute_frame_layout): ... and this function.
2629
2630 2017-05-08  Richard Sandiford  <richard.sandiford@arm.com>
2631
2632         * config/aarch64/constraints.md (Usa): New constraint.
2633         * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
2634
2635 2017-05-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2636
2637         * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
2638         with_multilib_list after it has been checked.
2639
2640 2017-05-08  Richard Biener  <rguenther@suse.de>
2641
2642         * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
2643         (bitmap_set_subtract_values): Likewise.
2644
2645 2017-05-08  Richard Biener  <rguenther@suse.de>
2646
2647         * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
2648         (gimple_assign_nonzero): ... this and remove strict_overflow_p
2649         argument.
2650         (gimple_stmt_nonzero_warnv_p): Rename to ...
2651         (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
2652         argument.
2653         (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
2654         (extract_range_basic): Adjust, do not disable propagation on
2655         strict overflow sensitive simplification.
2656         (vrp_visit_cond_stmt): Likewise.
2657
2658 2017-05-05  Jan Hubicka  <hubicka@ucw.cz>
2659
2660         * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
2661         body size unconditionally.
2662
2663 2017-05-07  Jeff Law  <law@redhat.com>
2664
2665         Revert:
2666         2017-05-06  Jeff Law  <law@redhat.com>
2667         PR tree-optimization/78496
2668         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
2669         code.
2670
2671         PR tree-optimization/78496
2672         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
2673         (simplify_stmt_using_ranges): Call it.
2674         (vrp_dom_walker::before_dom_children): Extract equivalences
2675         from an ASSERT_EXPR with an equality comparison against a
2676         constant.
2677
2678 2017-05-06  Jeff Law  <law@redhat.com>
2679
2680         PR tree-optimization/78496
2681         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
2682         code.
2683
2684         PR tree-optimization/78496
2685         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
2686         (simplify_stmt_using_ranges): Call it.
2687         (vrp_dom_walker::before_dom_children): Extract equivalences
2688         from an ASSERT_EXPR with an equality comparison against a
2689         constant.
2690
2691 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
2692
2693         * lra-constraints.c (lra_copy_reg_equiv): New function.
2694         (split_reg): Use it to copy equivalence information from the
2695         original register to the spill register.
2696
2697 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
2698
2699         PR rtl-optimization/75964
2700         * simplify-rtx.c (simplify_const_relational_operation): Remove
2701         invalid handling of comparisons of integer ABS.
2702
2703 2017-05-06  Uros Bizjak  <ubizjak@gmail.com>
2704
2705         * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
2706         initialize to zero.
2707         (init_regs): Remove declaration.
2708         (function_arg_advance_32): Initialize error_p as boolean variable.
2709
2710 2017-05-05  Nathan Sidwell  <nathan@acm.org>
2711
2712         * store-motion.c (remove_reachable_equiv_notes): Reformat long
2713         lines.  Use for (;;).
2714
2715 2017-05-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2716
2717         * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
2718         (rs6000_init_cost): Initialize rs6000_vect_nonmem.
2719         (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
2720         (rs6000_finish_cost): Avoid vectorizing simple copy loops with
2721         VF=2 that require versioning.
2722
2723 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
2724
2725         * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
2726         int.
2727
2728 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
2729
2730         * diagnostic.h (diagnostic_override_option_index): Convert from
2731         macro to inline function.
2732
2733 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
2734
2735         * diagnostic.c (last_module_changed_p): New function.
2736         (set_last_module): New function.
2737         (diagnostic_report_current_module): Convert macro usage to
2738         the above functions.
2739         * diagnostic.h (diagnostic_context::last_module): Strengthen
2740         from const line_map * to const line_map_ordinary *.
2741         (diagnostic_last_module_changed): Delete macro.
2742         (diagnostic_set_last_module): Delete macro.
2743
2744 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
2745
2746         * diagnostic.c (diagnostic_impl): Replace report_diagnostic
2747         with diagnostic_report_diagnostic.
2748         (diagnostic_n_impl_richloc): Likewise.
2749         * diagnostic.h (report_diagnostic): Delete macro.
2750         * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
2751         with diagnostic_report_diagnostic.
2752         * substring-locations.c (format_warning_va): Likewise.
2753
2754 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
2755
2756         * diagnostic.c (diagnostic_report_diagnostic): Eliminate
2757         save/restor of format_spec.  Move option-printing code to...
2758         (print_option_information): ...this new function, and
2759         reimplement by simply printing to the pretty_printer,
2760         rather than appending to the format string.
2761
2762 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
2763
2764         * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
2765         handling logic into...
2766         (update_effective_level_from_pragmas): ...this new function.
2767
2768 2017-05-04  Andrew Waterman  <andrew@sifive.com>
2769
2770         * config/riscv/riscv.opt (mstrict-align): New option.
2771         * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it.  Update comment.
2772         (SLOW_UNALIGNED_ACCESS): Define.
2773         (riscv_slow_unaligned_access): Declare.
2774         * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
2775         field.
2776         (riscv_slow_unaligned_access): New variable.
2777         (rocket_tune_info): Set slow_unaligned_access to true.
2778         (optimize_size_tune_info): Set slow_unaligned_access to false.
2779         (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
2780         (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
2781         (riscv_option_override): Set riscv_slow_unaligned_access.
2782         * doc/invoke.texi: Add -mstrict-align to RISC-V.
2783
2784 2017-05-04  Kito Cheng  <kito.cheng@gmail.com>
2785
2786         * config/riscv/riscv.md: Unify indentation.
2787
2788 2017-05-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
2789
2790         PR target/79038
2791         PR target/79202
2792         PR target/79203
2793         * config/rs6000/rs6000.md (u code attribute): Add FIX and
2794         UNSIGNED_FIX.
2795         (extendsi<mode>2): Add support for doing sign extension via
2796         VUPKHSW and XXPERMDI if the value is in Altivec registers and we
2797         don't have ISA 3.0 instructions.
2798         (extendsi<mode>2 splitter): Likewise.
2799         (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
2800         generate the normal insns since SImode can now go in vector
2801         registers.  Disallow the special UNSPECs needed for previous
2802         machines to hide SImode being used.  Add new insns
2803         fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
2804         (fix_trunc<mode>si2_stfiwx): Likewise.
2805         (fix_trunc<mode>si2_internal): Likewise.
2806         (fixuns_trunc<mode>si2): Likewise.
2807         (fixuns_trunc<mode>si2_stfiwx): Likewise.
2808         (fctiw<u>z_<mode>_smallint): Likewise.
2809         (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
2810         of floating point to 32-bit integer from doing a direct move to
2811         the GPR registers to do a store.
2812         (fctiwz_<mode>): Break long line.
2813
2814 2017-05-05  Bin Cheng  <bin.cheng@arm.com>
2815
2816         * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
2817         * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
2818         (addr_list, addr_offset_valid_p): New.
2819         (split_address_groups): Check offset validity with above function.
2820         (gt-tree-ssa-loop-ivopts.h): Include header file.
2821
2822 2017-05-05  Nathan Sidwell  <nathan@acm.org>
2823
2824         * config.gcc (arm*-*-*): Add missing 'fi'.
2825
2826 2017-05-05  Steve Ellcey  <sellcey@cavium.com>
2827
2828         * doc/invoke.texi (-fopt-info): Explicitly say order of options
2829         included in -fopt-info does not matter.
2830         * doc/optinfo.texi (-fopt-info): Fix description of default
2831         behavour. Explicitly say order of options included in -fopt-info
2832         does not matter.
2833
2834 2017-05-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2835
2836         * config.gcc: Allow combinations of aprofile and rmprofile values for
2837         --with-multilib-list.
2838         * config/arm/t-multilib: New file.
2839         * config/arm/t-aprofile: Remove initialization of MULTILIB_*
2840         variables.  Remove setting of ISA and floating-point ABI in
2841         MULTILIB_OPTIONS and MULTILIB_DIRNAMES.  Set architecture and FPU in
2842         MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
2843         and MULTILIB_DIRNAMES respectively.  Add comment to introduce all
2844         matches.  Add architecture matches for marvel-pj4 and generic-armv7-a
2845         CPU options.
2846         * config/arm/t-rmprofile: Likewise except for the matches changes.
2847         * doc/install.texi (--with-multilib-list): Document the combination of
2848         aprofile and rmprofile values and warn about pitfalls in doing that.
2849
2850 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
2851
2852         * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
2853         (movdi_aarch64): Likewise.
2854
2855 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
2856
2857         PR tree-optimization/80632
2858         * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
2859         field.
2860         (build_arrays): Initialize it for virtual phis.
2861         (fix_phi_nodes): Use it for virtual phis.
2862
2863         PR tree-optimization/80558
2864         * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
2865         [x, y] op z into [x op, y op z] for op & or | if conditions
2866         are met.
2867
2868 2017-05-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2869             Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
2870
2871         PR target/71607
2872         * config/arm/arm.md (use_literal_pool): Remove.
2873         (64-bit immediate split): No longer takes cost into consideration
2874         if arm_disable_literal_pool is enabled.
2875         * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
2876         used when arm_disable_literal_pool is enabled.
2877         (arm_max_const_double_inline_cost): Remove use of
2878         arm_disable_literal_pool.
2879         (push_minipool_fix): Add assert.
2880         (arm_reorg): Add return if arm_disable_literal_pool is enabled.
2881         * config/arm/vfp.md (no_literal_pool_df_immediate): New.
2882         (no_literal_pool_sf_immediate): New.
2883
2884 2017-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2885
2886         PR tree-optimization/80613
2887         * tree-ssa-dce.c (propagate_necessity): Remove cases for
2888         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
2889
2890 2017-05-05  Richard Biener  <rguenther@suse.de>
2891
2892         * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
2893
2894 2017-05-05  Georg-Johann Lay  <avr@gjlay.de>
2895
2896         * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
2897         of this flag from insn conditions due to removal from r247495.
2898
2899 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
2900
2901         * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
2902         New function.
2903         (arm_early_store_addr_dep_ptr): Likewise.
2904         * config/arm/aarch-common-protos.h
2905         (arm_early_load_addr_dep_ptr): Add prototype.
2906         (arm_early_store_addr_dep_ptr): Likewise.
2907         * config/arm/cortex-a53.md: Add new bypasses.
2908
2909 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
2910
2911         * tree.c (next_type_uid): Change type to unsigned.
2912         (type_hash_canon): Decrement back next_type_uid if
2913         freeing a type node with the highest TYPE_UID.  For INTEGER_TYPEs
2914         also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
2915         if possible.
2916
2917 2017-05-04  Martin Sebor  <msebor@redhat.com>
2918
2919         * builtins.c: Fix a trivial typo in a comment.
2920
2921         PR middle-end/79234
2922         * builtins.c (check_sizes): Adjust to handle reading past the end.
2923         Avoid printing excessive upper bound of ranges.  Use %E to print
2924         tree nodes instead of converting them to %wu.
2925         (expand_builtin_memchr): New function.
2926         (compute_dest_size): Rename...
2927         (compute_objsize): ...to this.
2928         (expand_builtin_memcpy): Adjust.
2929         (expand_builtin_mempcpy): Adjust.
2930         (expand_builtin_strcat): Adjust.
2931         (expand_builtin_strcpy): Adjust.
2932         (check_strncat_sizes): Adjust.
2933         (expand_builtin_strncat): Adjust.
2934         (expand_builtin_strncpy): Adjust and simplify.
2935         (expand_builtin_memset): Adjust.
2936         (expand_builtin_bzero): Adjust.
2937         (expand_builtin_memcmp): Adjust.
2938         (expand_builtin): Handle memcmp.
2939         (maybe_emit_chk_warning): Check strncat just once.
2940
2941 2017-05-04  Martin Sebor  <msebor@redhat.com>
2942
2943         PR preprocessor/79214
2944         PR middle-end/79222
2945         PR middle-end/79223
2946         * builtins.c (check_sizes): Add inlining context and issue
2947         warnings even when -Wno-system-headers is set.
2948         (check_strncat_sizes): Same.
2949         (expand_builtin_strncat): Same.
2950         (expand_builtin_memmove): New function.
2951         (expand_builtin_stpncpy): Same.
2952         (expand_builtin): Handle memmove and stpncpy.
2953
2954 2017-05-04  Bin Cheng  <bin.cheng@arm.com>
2955
2956         * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
2957         which is not used any more.
2958
2959 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
2960
2961         * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
2962
2963 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
2964
2965         * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
2966         (cortexa53_tunings): Likewise.
2967         (cortexa57_tunings): Likewise.
2968         (cortexa72_tunings): Likewise.
2969         (cortexa73_tunings): Likewise.
2970
2971 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
2972
2973         * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
2974         Set loop alignment to 8.
2975
2976 2017-05-04  Martin Sebor  <msebor@redhat.com>
2977
2978         PR translation/80280
2979         * builtins.c (expand_builtin_object_size): Add missing quoting to
2980         %D and like directives.
2981         * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
2982         (hsa_type_for_tree_type): Same.
2983         (verify_function_arguments): Same.
2984         * symtab.c (symbol_table::change_decl_assembler_name): Same.
2985         * varasm.c (get_section): Same.
2986         (mark_weak): Same.
2987
2988 2017-05-04  Martin Sebor  <msebor@redhat.com>
2989
2990         PR translation/80280
2991         * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
2992
2993 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
2994
2995         * config/aarch64/aarch64.c (generic_addrcost_table):
2996         Change HI/TI mode setting.
2997
2998 2017-05-04  Martin Jambor  <mjambor@suse.cz>
2999
3000         PR tree-optimization/80622
3001         * tree-sra.c (comes_initialized_p): New function.
3002         (build_accesses_from_assign): Only set write lazily when
3003         comes_initialized_p is false.
3004         (analyze_access_subtree): Use comes_initialized_p.
3005         (propagate_subaccesses_across_link): Assert !comes_initialized_p
3006         instead of testing for PARM_DECL.
3007
3008 2017-05-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3009
3010         * config/aarch64/aarch64.md (prefetch); Adjust predicate and
3011         constraint on operand 0 to allow more general addressing modes.
3012         Adjust output template.
3013         * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
3014         New function.
3015         * config/aarch64/aarch64-protos.h
3016         (aarch64_address_valid_for_prefetch_p): Declare prototype.
3017         * config/aarch64/constraints.md (Dp): New address constraint.
3018         * config/aarch64/predicates.md (aarch64_prefetch_operand): New
3019         predicate.
3020
3021 2017-05-04  Jan Hubicka  <hubicka@ucw.cz>
3022
3023         * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
3024         update use of estimate_ipcp_clone_size_and_time.
3025         (estimate_local_effects): Update use of
3026         estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
3027         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
3028         * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
3029         Return nonspecialized time.
3030
3031 2017-05-04  Richard Biener  <rguenther@suse.de>
3032
3033         * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
3034         for the last VUSE which def dominates the PHI.  Directly call
3035         maybe_skip_until.
3036         (get_continuation_for_phi_1): Remove.
3037
3038 2017-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
3039
3040         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
3041         to explain the use of truncating division.  Cap the number of
3042         iterations to the maximum given by nb_iterations_upper_bound,
3043         if defined.
3044
3045 2017-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3046
3047         * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
3048         * configure: Regenerate.
3049         * config.in: Regenerate.
3050         * config/i386/driver-mingw32.c: new file.
3051         * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
3052         * config.host: Link driver-mingw32.o on MinGW host.
3053         * doc/install.texi: Document new --enable-mingw-wildcard configure
3054         option.
3055
3056 2017-05-04  Marek Polacek  <polacek@redhat.com>
3057
3058         PR tree-optimization/80612
3059         * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
3060
3061 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
3062             Andre Simoes Dias Vieira  <andre.simoesdiasvieira@arm.com>
3063
3064         * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
3065         (movt splitter): Likewise.
3066         * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
3067         to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
3068         (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
3069         block for Thumb-1 with MOVT.
3070         (thumb2_legitimate_address_p): Move code block ...
3071         (can_avoid_literal_pool_for_label_p): ... into this new function.
3072         (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
3073         literal pool.
3074         (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
3075         * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
3076         "M-profile targets with the MOVT instruction".
3077
3078 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
3079
3080         * gcc/config/arm/arm-builtins.c (arm_init_builtins): Rename
3081         __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
3082         __builtin_arm_stfscr to __builtin_arm_set_fpscr.
3083
3084 2017-05-04  Martin Liska  <mliska@suse.cz>
3085
3086         * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
3087         variable cond_code.
3088
3089 2017-05-04  Richard Biener  <rguenther@suse.de>
3090
3091         * tree.c (array_at_struct_end_p): Handle arrays at struct
3092         end with flexarrays more conservatively.  Refactor and treat
3093         arrays of arrays or aggregates more strict.  Fix
3094         VIEW_CONVERT_EXPR handling.  Remove allow_compref argument.
3095         * tree.c (array_at_struct_end_p): Adjust prototype.
3096         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
3097         * gimple-fold.c (get_range_strlen): Likewise.
3098         * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
3099
3100 2017-05-04  Richard Biener  <rguenther@suse.de>
3101
3102         PR tree-optimization/31130
3103         * tree-vrp.c (needs_overflow_infinity): Remove as always returning
3104         false.
3105         (supports_overflow_infinity): Likewise.
3106         (is_negative_overflow_infinity): Likewise.
3107         (is_positive_overflow_infinity): Likewise.
3108         (is_overflow_infinity): Likewise.
3109         (stmt_overflow_infinity): Likewise.
3110         (overflow_infinity_range_p): Likewise.
3111         (usable_range_p): Remove as always returning true.
3112         (make_overflow_infinity): Remove.
3113         (negative_overflow_infinity): Likewise.
3114         (positive_overflow_infinity): Likewise.
3115         (avoid_overflow_infinity): Likewise.
3116         (set_value_range): Adjust accordingly.
3117         (set_value_range_to_nonnegative): Likewise, remove now unused
3118         overflow_infinity arg.
3119         (vrp_operand_equal_p): Adjust.
3120         (update_value_range): Likewise.
3121         (range_int_cst_singleton_p): Likewise.
3122         (operand_less_p): Likewise.
3123         (compare_values_warnv): Likewise.
3124         (extract_range_for_var_from_comparison_expr): Likewise.
3125         (vrp_int_const_binop): Likewise.
3126         (zero_nonzero_bits_from_vr): Likewise.
3127         (extract_range_from_multiplicative_op_1): Likewise.
3128         (extract_range_from_binary_expr_1): Likewise.
3129         (extract_range_from_unary_expr): Likewise.
3130         (extract_range_from_comparison): Likewise.
3131         (extract_range_basic): Likewise.
3132         (adjust_range_with_scev): Likewise.
3133         (compare_ranges): Likewise.
3134         (compare_range_with_value): Likewise.
3135         (dump_value_range): Likewise.
3136         (test_for_singularity): Likewise, remove strict_overflow_p parameter
3137         never used.
3138         (simplify_cond_using_ranges): Adjust.
3139
3140 2017-05-04  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
3141
3142         * brig-builtins.def: Added a builtin for class_f64.
3143         * builtin-types.def: Added a builtin type needed by class_f64.
3144
3145 2017-05-03  Jason Merrill  <jason@redhat.com>
3146
3147         * timevar.def: Add TV_CONSTEXPR.
3148
3149 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
3150
3151         * common.opt (fdiagnostics-parseable-fixits): Fix typo.
3152
3153 2017-05-03  Martin Jambor  <mjambor@suse.cz>
3154
3155         * ipa-prop.c (ipa_update_after_lto_read): Removed.
3156         * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
3157         * ipa-cp.c (ipcp_propagate_stage): Do not call
3158         ipa_update_after_lto_read.
3159         * ipa-inline.c (ipa_inline): Likewise.
3160
3161 2017-05-03  Martin Jambor  <mjambor@suse.cz>
3162
3163         * ipa-prop.h (ipa_edge_args): Make a class.  Mark with for_user GTY
3164         tag.  Added a default constructor and a destructor.
3165         (ipa_edge_args_sum_t): New class;
3166         (ipa_edge_args_sum): Declare.
3167         (ipa_edge_args_vector): Remove declaration.
3168         (IPA_EDGE_REF): Use ipa_edge_args_sum.
3169         (ipa_free_edge_args_substructures): Remove declaration.
3170         (ipa_check_create_edge_args): Use ipa_edge_args_sum.
3171         (ipa_edge_args_info_available_for_edge_p): Likewise.
3172         * ipa-prop.c (ipa_edge_args_vector): Removed.
3173         (edge_removal_hook_holder): Likewise.
3174         (edge_duplication_hook_holder): Likewise.
3175         (ipa_edge_args_sum): New variable.
3176         (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
3177         ipa_edge_args_vector.
3178         (ipa_free_edge_args_substructures): Likewise.
3179         (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
3180         ipa_edge_args_vector.
3181         (ipa_edge_removal_hook): Turned into method
3182         ipa_edge_args_sum_t::remove.
3183         (ipa_edge_duplication_hook): Turned into method
3184         ipa_edge_args_sum_t::duplicate.
3185         (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
3186         registering edge hooks.
3187         (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
3188         * ipa-inline-analysis.c (estimate_function_body_sizes): Test
3189         ipa_edge_args_sum instead of ipa_edge_args_vector.
3190         * ipa-profile.c (ipa_profile): Likewise.
3191
3192 2017-05-03  Martin Jambor  <mjambor@suse.cz>
3193
3194         * symbol-summary.h (function_summary): New method exists.
3195         (function_summary::symtab_removal): Deallocate through release.
3196         (call_summary): New class.
3197         (gt_ggc_mx): New overload.
3198         (gt_pch_nx): Likewise.
3199         (gt_pch_nx): Likewise.
3200
3201 2017-05-03  Jeff Law  <law@redhat.com>
3202
3203         PR tree-optimization/78496
3204         * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
3205         from simplify_cond_using_ranges.  Split off code to walk
3206         backwards through casts into ...
3207         (simplify_cond_using_ranges_2): New function.
3208         (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
3209         (execute_vrp): After identifying jump threads, call
3210         simplify_cond_using_ranges_2.
3211
3212 2017-05-03  Jan Hubicka  <hubicka@ucw.cz>
3213
3214         PR bootstrap/80609
3215         * ipa-inline.h (inline_summary): Add ctor.
3216         (create_ggc): Do not use ggc_cleared_alloc.
3217
3218 2017-05-03  Jeff Downs  <heydowns@somuchpressure.net>
3219             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3220
3221         * gcc.c (handle_braces): Support escaping in switch matching
3222         text.
3223         * doc/invoke.texi (Spec Files): Document it.
3224         Remove superfluous @code markup in items.
3225
3226 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
3227
3228         * diagnostic-show-locus.c (struct column_range): New struct.
3229         (get_affected_columns): New function.
3230         (get_printed_columns): New function.
3231         (struct correction): New struct.
3232         (correction::ensure_capacity): New function.
3233         (correction::ensure_terminated): New function.
3234         (struct line_corrections): New struct.
3235         (line_corrections::~line_corrections): New dtor.
3236         (line_corrections::add_hint): New function.
3237         (layout::print_trailing_fixits): Reimplement in terms of the new
3238         classes.
3239         (selftest::test_overlapped_fixit_printing): New function.
3240         (selftest::diagnostic_show_locus_c_tests): Call it.
3241
3242 2017-05-03  Nathan Sidwell  <nathan@acm.org>
3243
3244         Canonicalize canonical type hashing
3245         * tree.h (type_hash_canon_hash): Declare.
3246         * tree.c (type_hash_list, attribute_hash_list): Move into
3247         type_hash_canon_hash.
3248         (build_type_attribute_qual_variant): Break out hash code calc into
3249         type_hash_canon_hash.
3250         (type_hash_canon_hash): New.  Generic type hash computation.
3251         (build_range_type_1, build_array_type_1, build_function_type,
3252         build_method_type_directly, build_offset_type, build_complex_type,
3253         make_vector_type): Call it.
3254
3255 2017-05-03  Richard Biener  <rguenther@suse.de>
3256
3257         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
3258         When all DRs have unknown misaligned do not always peel
3259         when there is a store but apply the same costing model as if
3260         there were only loads.
3261
3262 2017-05-03  Richard Biener  <rguenther@suse.de>
3263
3264         Revert
3265         PR tree-optimization/80492
3266         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
3267         compare_base_decls returning dont-know properly.
3268
3269 2017-05-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3270
3271         * config/arm/iterators.md (CCSI): New mode iterator.
3272         (arch): New mode attribute.
3273         * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
3274         (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
3275         (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This.  Use CCSI
3276         code iterator for success result mode.
3277         * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
3278         the corresponding new insn generators.
3279
3280 2017-05-03  Bin Cheng  <bin.cheng@arm.com>
3281
3282         Revert r247509
3283         2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3284         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
3285
3286 2017-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
3287
3288         * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
3289         (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
3290         (DDR_A): Wrap DDR argument in brackets.
3291         (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
3292         (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
3293         (DDR_REVERSED_P): Likewise.
3294
3295 2017-05-03  Jakub Jelinek  <jakub@redhat.com>
3296
3297         PR tree-optimization/79472
3298         * tree-switch-conversion.c (struct switch_conv_info): Add
3299         contiguous_range and default_case_nonstandard fields.
3300         (collect_switch_conv_info): Compute contiguous_range and
3301         default_case_nonstandard fields, don't clear final_bb if
3302         contiguous_range and only the default case doesn't have the required
3303         structure.
3304         (check_all_empty_except_final): Set default_case_nonstandard instead
3305         of failing if contiguous_range and the default case doesn't have empty
3306         block.
3307         (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
3308         and only the default case doesn't have the required constants.  Skip
3309         virtual phis.
3310         (gather_default_values): Skip virtual phis.  Allow non-NULL CASE_LOW
3311         if default_case_nonstandard.
3312         (build_constructors): Build constant 1 just once.  Assert that default
3313         values aren't inserted in between cases if contiguous_range.  Skip
3314         virtual phis.
3315         (build_arrays): Skip virtual phis.
3316         (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
3317         (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
3318         Handle virtual phis.
3319         (gen_inbound_check): Handle default_case_nonstandard case.
3320         (process_switch): Adjust check_final_bb caller.  Call
3321         gather_default_values with the first non-default case instead of
3322         default case if default_case_nonstandard.
3323
3324 2017-05-02  Nathan Sidwell  <nathan@acm.org>
3325
3326         * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
3327         check.  Fix formatting.
3328
3329 2017-05-02  Jan Hubicka  <hubicka@ucw.cz>
3330
3331         * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
3332         errors when comparing specialized and unspecialized times.
3333
3334 2017-05-02  David Malcolm  <dmalcolm@redhat.com>
3335
3336         * diagnostic-show-locus.c
3337         (layout::should_print_annotation_line_p): Make private.
3338         (layout::print_annotation_line): Make private.
3339         (layout::annotation_line_showed_range_p): Make private.
3340         (layout::show_ruler): Make private.
3341         (layout::print_source_line): Make private.  Pass in line and
3342         line_width, rather than calling location_get_source_line.  Drop
3343         returned value.
3344         (layout::print_leading_fixits): New method.
3345         (layout::print_any_fixits): Rename to...
3346         (layout::print_trailing_fixits): ...this, and make private.
3347         Don't print newline fixits.
3348         (diagnostic_show_locus): Move logic for printing one row into...
3349         (layout::print_line): ...this new function.  Move the
3350         location_get_source_line call and error-handling from
3351         print_source_line to here.  Call print_leading_fixits, and rename
3352         print_any_fixits to print_trailing_fixits.
3353         (selftest::test_fixit_insert_containing_newline): Update now that
3354         newlines are partially supported.
3355         (selftest::test_fixit_insert_containing_newline_2): New test.
3356         (selftest::test_fixit_replace_containing_newline): Update comments.
3357         (selftest::diagnostic_show_locus_c_tests): Call the new test.
3358         * edit-context.c (class added_line): New class.
3359         (class edited_line): Describe newline handling in comment.
3360         (edited_line::actually_edited_p): New method.
3361         (edited_line::print_content): Delete redundant decl.
3362         (edited_line::m_predecessors): New field.
3363         (edited_file::print_content): Call edited_line::print_content.
3364         (edited_file::print_diff): Update to support newlines.
3365         (edited_file::print_diff_hunk): Likewise.
3366         (edited_file::print_run_of_changed_lines): New function.
3367         (edited_file::print_diff_line): Convert to...
3368         (print_diff_line): ...this.
3369         (edited_file::get_effective_line_count): New function.
3370         (edited_line::edited_line): Initialize new field m_predecessors.
3371         (edited_line::~edited_line): Clean up m_predecessors.
3372         (edited_line::apply_fixit): Handle newlines.
3373         (edited_line::get_effective_line_count): New function.
3374         (edited_line::print_content): New function.
3375         (edited_line::print_diff_lines): New function.
3376         (selftest::test_applying_fixits_insert_containing_newline): New
3377         test.
3378         (selftest::test_applying_fixits_replace_containing_newline): New
3379         test.
3380         (selftest::insert_line): New function.
3381         (selftest::test_applying_fixits_multiple_lines): Add example of
3382         inserting a line.
3383         (selftest::edit_context_c_tests): Call the new tests.
3384
3385 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3386
3387         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
3388         parameter cand.  Update dump information.
3389         (get_computation_cost): Update uses.
3390
3391 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3392
3393         * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
3394         (get_computation_aff): Reorder parameters.  Use get_computation_aff_1.
3395         (get_computation_at, rewrite_use_address): Update use of
3396         get_computation_aff.
3397
3398 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3399
3400         * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
3401         (get_computation): Delete.
3402         (get_computation_cost): Implement like get_computation_cost_at.
3403         Use get_computation_at.
3404         (get_computation_cost_at): Delete.
3405         (rewrite_use_nonlinear_expr): Use get_computation_at.
3406         (rewrite_use_compare, remove_unused_ivs): Ditto.
3407
3408 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3409
3410         * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
3411
3412 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3413
3414         * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
3415         (ivopts_global_cost_for_size): Rename parameter and update uses.
3416         (iv_ca_recount_cost): Update uses.
3417         (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
3418         candidates seperately in n_invs and n_cands.
3419         (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
3420
3421 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3422
3423         * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
3424         (find_inv_vars_cb): New.
3425         (find_depends): Renamed to ...
3426         (find_inv_vars): ... this.
3427         (add_candidate_1, force_var_cost): Call find_inv_vars.
3428         (split_address_cost, determine_group_iv_cost_cond): Ditto.
3429
3430 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3431
3432         * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
3433         inv_vars.  Add inv_exprs.
3434         (struct iv_cand): Rename depends_on to inv_vars.
3435         (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
3436         max_inv_var_id/n_inv_var_uses.  Move max_inv_expr_id around.
3437         Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
3438         (dump_cand): Dump inv_vars.
3439         (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
3440         (record_invariant, find_depends, add_candidate_1): Ditto.
3441         (set_group_iv_cost, force_var_cost): Ditto.
3442         (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
3443         (get_computation_cost_at, get_computation_cost): Ditto.
3444         (determine_group_iv_cost_generic): Ditto.
3445         (determine_group_iv_cost_address): Ditto.
3446         (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
3447         (determine_group_iv_costs): Ditto.
3448         (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
3449         (iv_ca_set_remove_invariants): Renamed to ...
3450         (iv_ca_set_remove_invs): ... this.  Support inv_vars and inv_exprs.
3451         (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
3452         (iv_ca_set_add_invariants):  Renamed to ...
3453         (iv_ca_set_add_invs): ... this.  Support inv_vars and inv_exprs.
3454         (iv_ca_set_cp): Use iv_ca_set_add_invs.
3455         (iv_ca_has_deps): Support inv_vars and inv_exprs.
3456         (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
3457         (create_new_ivs): Remove useless dump.
3458
3459 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3460
3461         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
3462         iv_cand code.
3463         (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
3464         (iv_ca_set_no_cp, create_new_iv): Ditto.
3465
3466 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
3467
3468         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
3469
3470 2017-05-02  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
3471
3472         * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
3473         function tree_check2.
3474
3475 2017-05-02  Martin Liska  <mliska@suse.cz>
3476
3477         * doc/gcov.texi: Add missing preposition.
3478         * gcov.c (function_info::function_info): Properly fill up
3479         all member variables.
3480
3481 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
3482
3483         * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
3484
3485 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
3486
3487         * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
3488
3489 2017-05-02  Martin Liska  <mliska@suse.cz>
3490
3491         PR lto/77954.
3492         * lto-streamer-in.c (lto_read_tree_1): Remove
3493         LTO_STREAMER_DEBUG.
3494         * lto-streamer.c (struct tree_hash_entry): Likewise.
3495         (struct tree_entry_hasher): Likewise.
3496         (tree_entry_hasher::hash): Likewise.
3497         (tree_entry_hasher::equal): Likewise.
3498         (lto_streamer_init): Likewise.
3499         (lto_orig_address_map): Likewise.
3500         (lto_orig_address_get): Likewise.
3501         (lto_orig_address_remove): Likewise.
3502         * lto-streamer.h: Likewise.
3503         * tree-streamer-in.c (streamer_alloc_tree): Likewise.
3504         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
3505
3506 2017-05-02  Sebastian Peryt  <sebastian.peryt@intel.com>
3507
3508         * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
3509         (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
3510         (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
3511         (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
3512         (mm_maskz_sub_round_ss, _mm_mask_add_sd)
3513         (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
3514         (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
3515         (mm_maskz_sub_ss): New intrinsics.
3516         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
3517         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
3518         * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
3519         (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
3520         (__builtin_ia32_subss_mask_round): New builtins.
3521         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
3522         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
3523         * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
3524         Renamed to ...
3525         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
3526         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
3527         Changed to ...
3528         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
3529         ... this.
3530
3531 2017-05-02  Martin Jambor  <mjambor@suse.cz>
3532
3533         PR tree-optimization/78687
3534         * tree-sra.c (access): New field parent.
3535         (process_subtree_disqualification): New function.
3536         (disqualify_candidate): Call it.
3537         (build_accesses_from_assign): Reset write flag if creating an
3538         assighnment link.
3539         (build_access_subtree): Fill in parent field and also prpagate
3540         down grp_write flag.
3541         (create_artificial_child_access): New parameter set_grp_write, set
3542         grp_write to its value.
3543         (propagate_subaccesses_across_link): Also propagate grp_write flag
3544         values.
3545         (propagate_all_subaccesses): Push the closest parent back to work
3546         queue if add_access_to_work_queue returned true.
3547
3548 2017-05-02  Richard Biener  <rguenther@suse.de>
3549
3550         * common.opt (fstrict-overflow): Alias negative to fwrapv.
3551         * doc/invoke.texi (fstrict-overflow): Remove all traces of
3552         -fstrict-overflow documentation.
3553         * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
3554         (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
3555         flag_strict_overflow.
3556         * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
3557         * lto-opts.c (lto_write_options): Do not stream it.
3558         * lto-wrapper.c (merge_and_complain): Do not handle it.
3559         * opts.c (default_options_table): Do not set -fstrict-overflow.
3560         (finish_options): Likewise do not clear it when sanitizing.
3561         * simplify-rtx.c (simplify_const_relational_operation): Do not
3562         test flag_strict_overflow.
3563
3564 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
3565
3566         * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
3567         using enabled attribute.
3568         (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
3569         (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
3570         (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
3571         (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
3572         (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
3573         (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
3574         (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
3575         (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
3576         (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
3577         (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
3578
3579 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
3580
3581         * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
3582
3583 2017-05-02  Richard Biener  <rguenther@suse.de>
3584
3585         PR tree-optimization/80591
3586         Revert
3587         2017-04-10  Richard Biener  <rguenther@suse.de>
3588
3589         * tree-ssa-structalias.c (find_func_aliases): Properly handle
3590         asm inputs.
3591
3592 2017-05-02  Richard Biener  <rguenther@suse.de>
3593
3594         PR tree-optimization/80549
3595         * tree-cfgcleanup.c (mfb_keep_latches): New helper.
3596         (cleanup_tree_cfg_noloop): Create forwarders to known loop
3597         headers if they do not have a preheader.
3598
3599 2017-05-02  Martin Liska  <mliska@suse.cz>
3600
3601         PR other/80589
3602         * common.opt: Fix typo.
3603         * doc/invoke.texi: Likewise.
3604
3605 2017-05-01  Jan Beulich  <jbeulich@suse.com>
3606
3607         * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
3608         swapping, add (x,x,m,x,n) alternative.
3609
3610 2017-05-01  Nathan Sidwell  <nathan@acm.org>
3611
3612         * calls.c (combine_pending_stack_adjustment_and_call): Remove
3613         unnecessary unadjusted_alignment check.
3614
3615 2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
3616
3617         PR c++/80038
3618         * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
3619         operations here.
3620         * gimplify.c (gimplify_cilk_detach): New function.
3621         (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
3622         * tree-core.h: Document EXPR_CILK_SPAWN.
3623         * tree.h (EXPR_CILK_SPAWN): Define.
3624
3625 2017-05-01  David Malcolm  <dmalcolm@redhat.com>
3626
3627         * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
3628         to use new fixit_hint representation, using the "replace" logic.
3629         (get_line_span_for_fixit_hint): Likewise.
3630         (layout::print_any_fixits): Likewise.
3631         (selftest::test_one_liner_many_fixits): Rename to...
3632         (selftest::test_one_liner_many_fixits_1): ...this, and update
3633         comment and expected output to reflect that the multiple fix-it
3634         hints are now consolidated into one insertion.
3635         (selftest::test_one_liner_many_fixits_2): New test.
3636         (selftest::test_diagnostic_show_locus_one_liner): Update for
3637         above.
3638         (selftest::test_fixit_consolidation): Update for fix-it API
3639         change.
3640         * diagnostic.c (print_parseable_fixits): Likewise.
3641         * edit-context.c (edited_line::m_line_events): Convert from
3642         auto_vec <line_event *> to auto_vec <line_event>.
3643         (class line_event): Convert from abstract base class to a concrete
3644         class, taking over the role of replace_event.
3645         (class insert_event): Delete.
3646         (class replace_event): Rename to class line_event.  Convert to
3647         half-open range.
3648         (edit_context::add_fixits): Reimplement.
3649         (edit_context::apply_insert): Delete.
3650         (edit_context::apply_replace): Rename to...
3651         (edit_context::apply_fixit): ...this.  Convert to half-open range.
3652         (edited_file::apply_insert): Delete.
3653         (edited_file::apply_replace): Rename to...
3654         (edited_file::apply_fixit): ...this.
3655         (edited_line::~edited_line): Drop deletion of events.
3656         (edited_line::apply_insert): Delete.
3657         (edited_line::apply_replace): Rename to...
3658         (edited_line::apply_fixit): ...this.  Convert to half-open range.
3659         Update for change to type of m_line_events.
3660         * edit-context.h (edit_context::apply_insert): Delete.
3661         (edit_context::apply_replace): Rename to...
3662         (edit_context::apply_fixit): ...this.
3663
3664 2017-05-01  Martin Sebor  <msebor@redhat.com>
3665
3666         * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
3667         known.
3668
3669 2017-05-01  Uros Bizjak  <ubizjak@gmail.com>
3670
3671         PR target/68491
3672         * config/i386/cpuid.h (__get_cpuid): Always return 0 when
3673         __get_cpuid_max returns 0.
3674         (__get_cpuid_count): Ditto.
3675
3676 2017-05-01  Eric Botcazou  <ebotcazou@adacore.com>
3677
3678         * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
3679         replacement expression is another instance of one of its arguments.
3680
3681 2017-05-01  Jakub Jelinek  <jakub@redhat.com>
3682
3683         PR target/79430
3684         * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
3685         check for stack push/pop autoinc.
3686         * config/i386/i386.c (ix86_agi_dependent): Return false
3687         if the only reason why modified_in_p returned true is that
3688         addr is SP based and set_insn is a push or pop.
3689
3690 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
3691
3692         * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
3693         overflow check.
3694
3695 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
3696
3697         PR ipa/79224
3698         * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
3699         (account_size_time): Use two predicates - exec_pred and
3700         nonconst_pred_ptr.
3701         (evaluate_conditions_for_known_args): Compute both clause and
3702         nonspec_clause.
3703         (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
3704         (inline_summary_t::duplicate): Update.
3705         (estimate_function_body_sizes): Caluculate exec and nonconst predicates
3706         separately.
3707         (compute_inline_parameters): Likewise.
3708         (estimate_edge_size_and_time): Update caluclation of time.
3709         (estimate_node_size_and_time): Compute both time and nonspecialized
3710         time.
3711         (estimate_ipcp_clone_size_and_time): Update.
3712         (inline_merge_summary): Update.
3713         (do_estimate_edge_time): Update.
3714         (do_estimate_edge_size): Update.
3715         (do_estimate_edge_hints): Update.
3716         (inline_read_section, inline_write_summary): Stream both new predicates.
3717         * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
3718         as argument.
3719         (compute_inlined_call_time): Cleanup.
3720         (big_speedup_p): Update.
3721         (edge_badness): Update.
3722         * ipa-inline.h (INLINE_TIME_SCALE): Remove.
3723         (size_time_entry): Replace predicate by exec_predicate and
3724         nonconst_predicate.
3725         (edge_growth_cache_entry): Cache both time nad nonspecialized time.
3726         (estimate_edge_time): Return also nonspec_time.
3727         (reset_edge_growth_cache): Update.
3728
3729 2017-04-29  Jakub Jelinek  <jakub@redhat.com>
3730
3731         PR rtl-optimization/80491
3732         * ifcvt.c (noce_process_if_block): When looking for x setter
3733         with missing else_bb, don't check only the insn right before
3734         cond_earliest, but look for the last insn that x is modified in
3735         within the same bb.
3736
3737         PR rtl-optimization/80491
3738         * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
3739
3740 2017-04-29  Marc Glisse  <marc.glisse@inria.fr>
3741
3742         PR tree-optimization/80487
3743         * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
3744
3745 2017-04-29  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3746
3747         PR tree-optimization/79697
3748         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
3749         is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
3750         (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
3751         BUILT_IN_STRNDUP.
3752         * gimple-fold.c (gimple_fold_builtin_realloc): New function.
3753         (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
3754
3755 2017-04-28  Martin Sebor  <msebor@redhat.com>
3756
3757         PR tree-optimization/80523
3758         * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
3759         (init_target_to_host_charmap, target_to_host, target_strtol10): New
3760         functions.
3761         (maybe_warn, format_directive, parse_directive): Use new functions.
3762         (pass_sprintf_length::execute): Call init_target_to_host_charmap.
3763
3764 2017-04-28  Marc Glisse  <marc.glisse@inria.fr>
3765
3766         * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
3767
3768 2017-04-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3769
3770         * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
3771         target_header_dir): Set correctly.
3772         * configure: Regenerated.
3773         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
3774         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
3775         instead of SYSTEM_HEADER_DIR.
3776
3777 2017-04-28  Jan Hubicka  <hubicka@ucw.cz>
3778
3779         * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
3780         (estimate_local_effects): Likewise.
3781         * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
3782         edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
3783         * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
3784         estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
3785         do_estimate_edge_time, estimate_edge_time): Likewise.
3786         * ipa-inline-analysis.c (estimate_node_size_and_time,
3787         estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
3788         (estimate_time_after_inlining): Remove.
3789
3790 2017-04-28  Martin Liska  <mliska@suse.cz>
3791
3792         * doc/gcov.texi: Enhance documentation of gcov.
3793
3794 2017-04-28  Martin Liska  <mliska@suse.cz>
3795
3796         * doc/gcov.texi: Sort options in alphabetic order.
3797         * doc/gcov-dump.texi: Likewise.
3798         * doc/gcov-tool.texi: Likewise.
3799         * gcov.c (print_usage): Likewise.
3800         * gcov-dump.c (print_usage): Likewise.
3801         * gcov-tool.c (print_merge_usage_message): Likewise.
3802         (print_rewrite_usage_message): Likewise.
3803         (print_overlap_usage_message): Likewise.
3804
3805 2017-04-28  Martin Liska  <mliska@suse.cz>
3806
3807         PR gcov-profile/53915
3808         * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
3809
3810 2017-04-28  Martin Liska  <mliska@suse.cz>
3811
3812         PR gcov-profile/79891
3813         * gcov.c (add_line_counts): Assign BBs to lines just if the BB
3814         is marked by compiler as living on a line.
3815         (get_cycles_count): Remove usage of the union.
3816         (output_intermediate_file): Likewise.
3817         (find_source): Fix GNU coding style.
3818         (accumulate_line_counts): Remove old non-all block mode.
3819         (output_lines): Remove usage of the union.
3820         * profile.c (output_location): Include all BBs, even if
3821         belonging to a same line (and file) as a previous BB.
3822
3823 2017-04-28  Martin Liska  <mliska@suse.cz>
3824
3825         * gcov.c (process_args): Handle new argument 'w'.
3826         (read_graph_file): Assign ID to BBs.
3827         (output_branch_count): Display BB # if verbose flag is set.
3828         (output_lines): Likewise for arcs.
3829         (print_usage): Add '--verbose' option help.
3830         * doc/gcov.texi: Document --verbose (-w) option.
3831
3832 2017-04-28  Martin Liska  <mliska@suse.cz>
3833
3834         * gcov.c (struct block_location_info): New struct.
3835         (process_file): Fill up the new structure.
3836         (read_graph_file): Replace usage of encoding by the newly added
3837         struct.
3838         (add_line_counts): Likewise.
3839         (accumulate_line_counts): Remove usage of the union.
3840         (function_info::function_info): New function.
3841         (function_info::~function_info): Likewise.
3842         (process_file): Call delete instead of release_function.
3843         (release_function): Release the function.
3844         (release_structures): Call delete instead of release_function.
3845         (solve_flow_graph): Replace usage of num_blocks.
3846         (find_exception_blocks): Likewise.
3847         (output_lines): Fix GNU coding style.
3848
3849 2017-04-28  Martin Liska  <mliska@suse.cz>
3850
3851         PR driver/56469
3852         * coverage.c (coverage_remove_note_file): New function.
3853         * coverage.h: Declare the function.
3854         * toplev.c (finalize): Clean if an error has been seen.
3855
3856 2017-04-28  Martin Liska  <mliska@suse.cz>
3857
3858         PR gcov-profile/80031
3859         * gcov-dump.c (tag_blocks): Just print number of basic blocks.
3860         * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
3861         * gcov.c (read_graph_file): Read just number of blocks.
3862         * profile.c (branch_prob): Do not stream 0 flags per a basic
3863         block.
3864
3865 2017-04-28  Martin Liska  <mliska@suse.cz>
3866
3867         * gcov-dump.c (tag_*): Add new argument to declarations.
3868         (dump_gcov_file): Likewise.
3869         (tag_blocks): Add and use new argument depth.
3870         (tag_arcs): Likewise.
3871         (tag_lines): Likewise.
3872         (tag_counters): Likewise.
3873         (tag_summary): Likewise.
3874         (dump_working_sets): Use depth to do a proper indentation.
3875
3876 2017-04-28  Jakub Jelinek  <jakub@redhat.com>
3877
3878         PR bootstrap/80531
3879         * cgraph.h (symtab_node::debug_symtab): No longer inline.
3880         * symtab.c (symtab_node::debug_symtab): Move definition here.
3881
3882 2017-04-28  Richard Biener  <rguenther@suse.de>
3883
3884         * lto-streamer.h (LTO_major_version): Bump to 7.
3885
3886 2017-04-28  Richard Biener  <rguenther@suse.de>
3887
3888         * tree-vrp.c (assert_info): New struct.
3889         (add_assert_info): New helper.
3890         (register_edge_assert_for_2): Refactor to add asserts to a vector
3891         of assert_info.
3892         (register_edge_assert_for_1): Likewise.
3893         (register_edge_assert_for): Likewise.
3894         (finish_register_edge_assert_for): New helper actually registering
3895         asserts where live on edge.
3896         (find_conditional_asserts): Adjust.
3897         (find_switch_asserts): Likewise.
3898         (evrp_dom_walker::try_find_new_range): Generalize.
3899         (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
3900
3901 2017-04-27  Marek Polacek  <polacek@redhat.com>
3902
3903         PR sanitizer/80349
3904         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
3905         arg10 and arg11 to itype.
3906
3907 2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
3908
3909         * doc/extend.texi (Object Size Checking): Improve grammar.
3910
3911 2017-04-27  Richard Earnshaw  <rearnsha@arm.com>
3912
3913         PR target/80530
3914         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
3915         that the logic for permitting reciprocal estimates matches that
3916         in use_rsqrt_p.
3917
3918 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
3919
3920         PR c++/80534
3921         * tree.c (type_cache_hasher::equal): Only compare
3922         TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
3923         (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
3924         non-aggregate element types.
3925         * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
3926         about the flag on ARRAY_TYPEs in the comment, formatting fix.
3927
3928 2017-04-27  Richard Biener  <rguenther@suse.de>
3929
3930         PR middle-end/80533
3931         * emit-rtl.c (set_mem_attributes_minus_bitpos): When
3932         stripping ARRAY_REFs from MEM_EXPR make sure we're not
3933         keeping a reference to a trailing array.
3934
3935 2017-04-27  Richard Biener  <rguenther@suse.de>
3936
3937         PR middle-end/80539
3938         * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
3939         being in loop-closed SSA form conservatively.
3940         (chrec_fold_multiply_poly_poly): Likewise.
3941
3942 2017-04-27  Tamar Christina  <tamar.christina@arm.com>
3943
3944         PR middle-end/79665
3945         * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
3946         CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
3947
3948 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
3949
3950         PR target/77728
3951         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
3952         (aarch64_function_arg_alignment): Return unsigned int again, but still
3953         ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
3954         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
3955         Don't emit -Wpsabi note.
3956         (aarch64_function_arg_boundary): Likewise.
3957         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
3958         caller.
3959
3960 2017-04-26  Nathan Sidwell  <nathan@acm.org>
3961
3962         * tree.h (crc32_unsigned_n): Declare.
3963         (crc32_unsigned, crc32_unsigned): Make inline.
3964         * tree.c (crc32_unsigned_bits): Replace with ...
3965         (crc32_unsigned_n): ... this.
3966         (crc32_unsigned, crc32_byte): Remove.
3967         (crc32_string): Remove unnecessary braces.
3968
3969 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
3970
3971         * ipa-cp.c (estimate_local_effects): Convert sreal to int.
3972         * ipa-inline-analysis.c (MAX_TIME): Remove.
3973         (account_size_time): Use sreal for time.
3974         (dump_inline_summary): Update.
3975         (estimate_function_body_sizes): Update.
3976         (estimate_edge_size_and_time): Update.
3977         (estimate_calls_size_and_time): Update.
3978         (estimate_node_size_and_time): Update.
3979         (inline_merge_summary): Update.
3980         (inline_update_overall_summary): Update.
3981         (estimate_time_after_inlining): Update.
3982         (inline_read_section): Update.
3983         (inline_write_summary): Update.
3984         * ipa-inline.c (compute_uninlined_call_time): Update.
3985         (compute_inlined_call_time): Update.
3986         (recursive_inlining): Update.
3987         (inline_small_functions): Update.
3988         (dump_overall_stats): Update.
3989         * ipa-inline.h: Include sreal.h.
3990         (size_time_entry): Turn time to sreal.
3991         (inline_summary): Turn self_time nad time to sreal.
3992
3993 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
3994
3995         * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
3996         data-streamer.h
3997         (sreal::stream_out, sreal::stream_in): New.
3998         * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
3999
4000 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
4001
4002         * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
4003         environment.
4004
4005 2017-04-25  Uros Bizjak  <ubizjak@gmail.com>
4006
4007         PR target/70799
4008         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
4009         Handle ASHIFTRT.
4010         (dimode_scalar_chain::compute_convert_gain): Ditto.
4011         (dimode_scalar_chain::make_vector_copies): Ditto.
4012         (dimode_scalar_chain::convert_reg): Ditto.
4013         (dimode_scalar_chain::convert_insn): Ditto.
4014         * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
4015         (VI248_AVX512BW_1): New mode iterator.
4016         (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
4017         <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
4018         mode iterator.
4019
4020 2017-04-25  Martin Sebor  <msebor@redhat.com>
4021
4022         PR tree-optimization/80497
4023         * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
4024         constants are representable in HOST_WIDE_INT.
4025         (parse_directive): Ditto.
4026
4027 2017-04-25  Martin Sebor  <msebor@redhat.com>
4028
4029         PR bootstrap/80486
4030         * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
4031         (new_zero_array): Adjust signature.
4032         (dom_info::dom_init): Used unsigned rather that size_t.
4033         (dom_info::dom_info): Same.
4034
4035 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4036             Jakub Jelinek  <jakub@redhat.com>
4037
4038         PR target/77728
4039         * config/arm/arm.c: Include gimple.h.
4040         (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
4041         returns negative, increment ncrn only if it returned positive.
4042         (arm_needs_doubleword_align): Return int instead of bool,
4043         ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
4044         members, but if there is any such non-FIELD_DECL
4045         > PARM_BOUNDARY aligned decl, return -1 instead of false.
4046         (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
4047         returns negative, increment nregs only if it returned positive.
4048         (arm_setup_incoming_varargs): Likewise.
4049         (arm_function_arg_boundary): Emit -Wpsabi note if
4050         arm_needs_doubleword_align returns negative, return
4051         DOUBLEWORD_ALIGNMENT only if it returned positive.
4052
4053 2017-04-25  Marek Polacek  <polacek@redhat.com>
4054
4055         PR sanitizer/80349
4056         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
4057         first argument to type.
4058
4059 2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
4060
4061         PR target/80482
4062         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
4063         type checks to test for compatibility instead of equality.
4064
4065 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4066             Jakub Jelinek  <jakub@redhat.com>
4067
4068         PR target/77728
4069         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
4070         type.
4071         (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
4072         struct.  Ignore DECL_ALIGN of decls other than FIELD_DECL for
4073         the alignment computation, but return their maximum in warn_alignment.
4074         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
4075         Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
4076         is smaller.
4077         (aarch64_function_arg_boundary): Likewise.  Simplify using MIN/MAX.
4078         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
4079         caller.
4080
4081 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
4082
4083         * config/arc/simdext.md (dmpyh): Fix typo.
4084
4085 2017-04-25  Richard Biener  <rguenther@suse.de>
4086
4087         PR tree-optimization/80492
4088         * alias.c (compare_base_decls): Handle registers with asm
4089         specification conservatively.
4090         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
4091         compare_base_decls returning dont-know properly.
4092
4093 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
4094
4095         * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
4096         (legitimate_offset_address_p): New function.
4097         (arc_legitimate_address_p): Use above function.
4098
4099 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
4100
4101         * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
4102
4103 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
4104
4105         * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
4106         ACCH registers whenever they are available.
4107
4108 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
4109
4110         * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
4111         double regs fix when not used.
4112
4113 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
4114
4115         * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
4116         core registers.
4117         (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
4118         (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
4119
4120 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
4121
4122         * config/arc/arc.c (arc_output_addsi): Check for h-register class
4123         when emitting short ADD instructions.
4124
4125 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
4126
4127         * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
4128         constraint.
4129         (cmpsi_cc_c_insn): Likewise.
4130         (cbranchsi4_scratch): Compute proper instruction length using
4131         compact_hreg_operand.
4132         * config/arc/predicates.md (compact_hreg_operand): New predicate.
4133
4134 2017-04-25  Richard Biener  <rguenther@suse.de>
4135
4136         PR middle-end/80509
4137         * passes.c (pass_manager::pass_manager): Initialize
4138         m_name_to_pass_map.
4139
4140 2017-04-25  Richard Biener  <rguenther@suse.de>
4141
4142         PR tree-optimization/79201
4143         * tree-ssa-sink.c (statement_sink_location): Handle calls.
4144
4145 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4146
4147         PR target/80464
4148         * config/s390/vector.md: Split MEM->GPR vector moves for
4149         non-s_operand addresses.
4150
4151 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4152
4153         PR target/79895
4154         * config/s390/predicates.md (reload_const_wide_int_operand): New
4155         predicate.
4156         * config/s390/s390.md ("movti"): Remove d/P alternative.
4157         ("movti_bigconst"): New pattern definition.
4158
4159 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4160
4161         PR target/80080
4162         * s390-protos.h (s390_expand_cs_hqi): Removed.
4163         (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
4164         * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
4165         modes as well as CCZ1mode and CCZmode.
4166         (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
4167         signature of s390_emit_compare_and_swap.
4168         (s390_expand_cs_hqi): Likewise, make static.
4169         (s390_expand_cs_tdsi): Generate an explicit compare before trying
4170         compare-and-swap, in some cases.
4171         (s390_expand_cs): Wrapper function.
4172         (s390_expand_atomic_exchange_tdsi): New backend specific expander for
4173         atomic_exchange.
4174         (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
4175         * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
4176         patterns for small and large integers.  Forbid symref memory operands.
4177         Move expander to s390.c.  Require cc register.
4178         ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
4179         ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
4180         ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
4181         ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
4182         symref memory operands.  Remove CC mode and call s390_match_ccmode
4183         instead.
4184         ("atomic_exchange<mode>"): Allow and implement all integer modes.
4185
4186 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4187
4188         * config/s390/s390.md (define_peephole2): New peephole to help
4189         combining the load-and-test pattern with volatile memory.
4190
4191 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4192
4193         * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
4194         with CCZmode for TARGET_Z196.
4195
4196 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
4197
4198         PR rtl-optimization/80501
4199         * combine.c (make_compound_operation_int): Set subreg_code to SET
4200         even for AND with mask of the sign bit of mode.
4201
4202         PR rtl-optimization/80500
4203         * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
4204         sum's initial value.
4205
4206 2017-04-25  Julian Brown  <julian@codesourcery.com>
4207             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
4208
4209         * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
4210
4211 2017-04-25  Marc Glisse  <marc.glisse@inria.fr>
4212
4213         * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
4214
4215 2017-04-25  Julian Brown  <julian@codesourcery.com>
4216             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
4217
4218         * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
4219         (thunderx2t99_sha): New Reservation.
4220
4221 2017-04-25  Julian Brown  <julian@codesourcery.com>
4222             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
4223
4224         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
4225         type for 1-element load.
4226
4227 2017-04-24  Marc Glisse  <marc.glisse@inria.fr>
4228
4229         * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
4230
4231 2017-04-24  Martin Jambor  <mjambor@suse.cz>
4232
4233         PR tree-optimization/80293
4234         * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
4235         char arrays not totally scalarizable if it is false.
4236         (analyze_all_variable_accesses): Pass correct value in the new
4237         parameter.  Add a statistics counter.
4238
4239 2017-04-24  Jan Hubicka  <hubicka@ucw.cz>
4240
4241         PR middle-end/79931
4242         * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
4243
4244 2017-04-24  Richard Biener  <rguenther@suse.de>
4245
4246         PR tree-optimization/80494
4247         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
4248         out for complex types.
4249
4250 2017-04-24  Richard Biener  <rguenther@suse.de>
4251
4252         * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
4253         * tree-ssa-sccvn.c (print_scc): Print SCC size.
4254         (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
4255         (DFS): Adjust and never fail.
4256         (sccvn_dom_walker::fail): Remove.
4257         (sccvn_dom_walker::before_dom_children): Adjust.
4258         (run_scc_vn): Likewise and never fail.
4259         * tree-ssa-pre.c (pass_pre::execute): Adjust.
4260         (pass_fre::execute): Likewise.
4261
4262 2017-04-24  Richard Biener  <rguenther@suse.de>
4263
4264         PR tree-optimization/79725
4265         * tree-ssa-sink.c (statement_sink_location): Return whether
4266         failure reason was zero uses.  Move that check later.
4267         (sink_code_in_bb): Deal with zero uses by removing the stmt
4268         if possible.
4269
4270 2017-04-24  Richard Biener  <rguenther@suse.de>
4271
4272         PR c++/2972
4273         * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
4274         pointer-based references.
4275
4276 2017-04-24  Richard Biener  <rguenther@suse.de>
4277
4278         PR bootstrap/79814
4279         * pass_manager.h (pass_manager::operator new): Remove.
4280         (pass_manager::operator delete): Likewise.
4281         * passes.c (pass_manager::operator new): Remove.
4282         (pass_manager::operator delete): Likewise.
4283         (pass_manager::pass_manager): Zero individual pass members.
4284
4285 2017-04-23  Uros Bizjak  <ubizjak@gmail.com>
4286
4287         PR target/70799
4288         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
4289         <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
4290         Check "XEXP (src, 1)" operand here.
4291         <case PLUS, case MINUS, case IOR, case XOR, case AND>:
4292         Check "XEXP (src, 1)" operand here.
4293         (dimode_scalar_chain::make_vector_copies): Detect count register
4294         of a shift instruction.  Zero extend count register from QImode
4295         to DImode to satisfy vector shift pattern count operand predicate.
4296         Substitute vector shift count operand with a DImode copy.
4297         (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
4298         vector register.
4299
4300 2017-04-21  Uros Bizjak  <ubizjak@gmail.com>
4301
4302         * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
4303         Remove UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
4304         (*insvqi_1_mem_rex64): Move above insv<mode>_1.  Remove
4305         UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
4306         (UNSPEC_NOREX_MEM): Remove definition.
4307
4308 2017-04-21  Richard Biener  <rguenther@suse.de>
4309
4310         PR tree-optimization/79547
4311         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
4312         Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
4313         bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
4314         without any constraints.
4315
4316 2017-04-21  Richard Biener  <rguenther@suse.de>
4317
4318         PR tree-optimization/78847
4319         * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
4320
4321 2017-04-21  Richard Biener  <rguenther@suse.de>
4322
4323         * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
4324         (build_distinct_type_copy): Likewise.
4325         (build_variant_type_copy): Likewise.
4326         * tree.c (build_qualified_type): Pass down mem-stat info.
4327         (build_distinct_type_copy): Likewise.
4328         (build_variant_type_copy): Likewise.
4329
4330 2017-04-21  Richard Biener  <rguenther@suse.de>
4331
4332         PR tree-optimization/80237
4333         * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
4334         defaulted to NULL.
4335         (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
4336         for a simplified result.
4337
4338 2016-04-21  Richard Biener  <rguenther@suse.de>
4339
4340         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
4341         sth as strict as a simple_iv but a chrec without symbols and an
4342         operand defined in the loop we are peeling (and not some subloop).
4343         (propagate_constants_for_unrolling): Propagate all constants.
4344
4345 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
4346
4347         PR target/79804
4348         * config/i386/i386.c (print_reg): Remove assert for disalowed
4349         regno values, call output_operand_lossage instead.
4350
4351 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
4352
4353         PR target/78090
4354         * config/i386/constraints.md (Yc): New register constraint.
4355         * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
4356         Use Yc constraint for alternative 2 of operand 0.  Remove
4357         preferred_for_speed attribute.
4358
4359 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
4360
4361         * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
4362         lastprivate clauses in SIMT case.
4363
4364 2017-04-20  Volker Reichelt  <v.reichelt@netcologne.de>
4365
4366         * doc/invoke.texi (-Wextra-semi): Document new warning option.
4367
4368 2017-04-20  Richard Biener  <rguenther@suse.de>
4369
4370         PR tree-optimization/57796
4371         * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
4372         as N scalar stores.
4373         (vect_model_load_cost): Cost gathers as N scalar loads.
4374
4375 2017-04-20  Richard Biener  <rguenther@suse.de>
4376
4377         * ggc-page.c (ggc_allocated_p): Rename to ...
4378         (safe_lookup_page_table_entry): ... this and return the lookup
4379         result.
4380         (gt_ggc_m_S): Use safe_lookup_page_table_entry.
4381
4382 2017-04-20  Richard Biener  <rguenther@suse.de>
4383
4384         PR tree-optimization/80453
4385         * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
4386         * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
4387         from the conditions.
4388         (vn_phi_eq): Pass them down.
4389         (vn_phi_lookup): Record them.
4390         (vn_phi_insert): Likewise.
4391
4392 2017-04-20  Matthew Fortune  <matthew.fortune@imgtec.com>
4393
4394         * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
4395         uninitialized variable warning to avoid buffer overrun.
4396
4397 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
4398
4399         PR other/71250
4400         * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
4401         is suppressed for '{ 0 }' in C.
4402
4403 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
4404
4405         * BASE-VER: Set to 8.0.0.
4406
4407 2017-04-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4408
4409         * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
4410         priority .init_array and .fini_array section with SECTION_NOTYPE
4411         flag.
4412
4413 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
4414
4415         PR middle-end/80423
4416         * tree.h (build_array_type): Add typeless_storage default argument.
4417         * tree.c (type_cache_hasher::equal): Also compare
4418         TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
4419         (build_array_type): Add typeless_storage argument, set
4420         TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
4421         recursive call.
4422         (build_nonshared_array_type): Adjust build_array_type_1 caller.
4423         (build_array_type): Likewise.  Add typeless_storage argument.
4424
4425 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4426             Jakub Jelinek  <jakub@redhat.com>
4427
4428         PR tree-optimization/80426
4429         * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
4430         operation on symbolic operands, also compute the overflow for the
4431         invariant part when the operation degenerates into a negation.
4432
4433 2017-04-19  Jakub Jelinek  <jakub@redhat.com>
4434
4435         PR debug/80461
4436         * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
4437         Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
4438
4439         PR debug/80436
4440         * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
4441
4442 2017-04-19  Georg-Johann Lay  <avr@gjlay.de>
4443
4444         PR target/80462
4445         * config/avr/avr.c (tree.h): Include it.
4446         (cgraph.h): Include it.
4447         (avr_encode_section_info): Don't warn for uninitialized progmem
4448         variable if it's just an alias.
4449
4450 2017-04-19  Richard Biener  <rguenther@suse.de>
4451
4452         PR ipa/65972
4453         * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
4454         when needed by AutoPGO.
4455
4456 2017-04-19  Paulo J. Matos  <paulo@matos-sorge.com>
4457
4458         PR lto/50345
4459         * doc/lto.texi: Remove an extra 'that'.
4460
4461 2017-04-19  Segher Boessenkool  <segher@kernel.crashing.org>
4462
4463         PR rtl-optimization/80429
4464         * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
4465         are only used in debug insns.
4466
4467 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4468             Vladimir Makarov  <vmakarov@redhat.com>
4469
4470         * config/sparc/predicates.md (input_operand): Add comment.  Return
4471         true for any memory operand when LRA is in progress.
4472         * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
4473
4474 2017-04-18  Jeff Law  <law@redhat.com>
4475
4476         PR target/74563
4477         * mips.md ({return,simple_return}_internal): Do not overwrite
4478         operands[0].
4479
4480 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
4481
4482         PR tree-optimization/80443
4483         * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
4484         instead of adding 1, subtract -1 and similarly instead of subtracting
4485         1 add -1.
4486
4487 2017-04-18  Richard Sandiford  <richard.sandiford@arm.com>
4488
4489         PR rtl-optimization/80357
4490         * haifa-sched.c (tmp_bitmap): New variable.
4491         (model_recompute): Handle duplicate use records.
4492         (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
4493         (free_global_sched_pressure_data): Free it.
4494
4495 2017-04-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4496
4497         Revert:
4498         2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4499         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
4500         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
4501         instead of SYSTEM_HEADER_DIR.
4502
4503 2017-04-18  Jeff Law  <law@redhat.com>
4504
4505         PR middle-end/80422
4506         * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
4507         predecessors after walking up the insn chain.
4508
4509 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
4510
4511         PR debug/80263
4512         * dwarf2out.c (modified_type_die): Try harder not to emit internal
4513         sizetype type into debug info.
4514
4515 2017-04-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
4516
4517         PR target/80099
4518         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
4519         unneeded test for TARGET_UPPER_REGS_SF.
4520         * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
4521
4522 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
4523
4524         PR sanitizer/80444
4525         * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
4526         instead of gsi_after_labels.
4527
4528 2017-04-18  Jeff Law  <law@redhat.com>
4529
4530         * regcprop.c (maybe_mode_change): Avoid creating copies of the
4531         stack pointer.
4532
4533         Revert:
4534         2017-04-13  Jeff Law  <law@redhat.com>
4535         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
4536         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
4537
4538 2017-04-18  Georg-Johann Lay  <avr@gjlay.de>
4539
4540         PR target/79453
4541         * config/avr/avr.c (intl.h): Include it.
4542         (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
4543
4544 2017-04-18  Martin Liska  <mliska@suse.cz>
4545
4546         PR gcov-profile/78783
4547         * gcov-tool.c (gcov_output_files): Validate that destination
4548         file is either removed by the tool or by a user.
4549
4550 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
4551             Guy Benyei  <guybe@mellanox.com>
4552
4553         * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
4554         block, and do not negate it, the stored id is already negative.
4555
4556 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
4557
4558         * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
4559
4560 2017-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
4561
4562         PR target/80098
4563         * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
4564         masks of options that should be turned off if the VSX vector
4565         options are turned off.
4566         (OTHER_P8_VECTOR_MASKS): Likewise.
4567         (OTHER_VSX_VECTOR_MASKS): Likewise.
4568         * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
4569         rs6000_disable_incompatible_switches to validate no type switches
4570         like -mvsx.
4571         (rs6000_incompatible_switch): New function to disallow turning on
4572         other vector options if -mno-vsx, -mno-power8-vector, or
4573         -mno-power9-vector are specified.
4574
4575 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
4576
4577         * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
4578
4579 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
4580
4581         * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
4582         * config/arc/arc.c (arc_decl_pretend_args): Likewise.
4583         * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
4584         (ARG_POINTER_CFA_OFFSET): Likewise.
4585
4586 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
4587
4588         * config/arc/arc.c (arc_mode_dependent_address_p): Relax
4589         conditions to take advantage of various optimizations.
4590
4591 2017-04-13  Jeff Law  <law@redhat.com>
4592
4593         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
4594         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
4595         (zero_extendsidi2_dext): Likewise.
4596
4597 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
4598
4599         PR sanitizer/80403
4600         * fold-const.c (fold_ternary_loc): Revert
4601         use op0 instead of fold_convert_loc (loc, type, arg0) part of
4602         2017-04-12 change.
4603
4604 2017-04-13  Vladimir Makarov  <vmakarov@redhat.com>
4605
4606         PR rtl-optimization/80343
4607         * lra-remat.c (update_scratch_ops): Assign original hard reg to
4608         new scratch pseudo.
4609
4610 2017-04-13  Denis Khalikov <d.khalikov@partner.samsung.com>
4611
4612         PR sanitizer/80414
4613         * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
4614         to ubsan_encode_value.
4615
4616 2017-04-13  Jeff Law  <law@redhat.com>
4617
4618         * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
4619         appearing in DEBUG_INSNs.
4620
4621 2017-04-13  Martin Liska  <mliska@suse.cz>
4622
4623         PR gcov-profile/80413
4624         * gcov-io.c (gcov_write_string): Copy to buffer just when
4625         allocated size is greater than zero.
4626
4627 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
4628
4629         PR debug/80321
4630         * dwarf2out.c (decls_for_scope): Ignore declarations of
4631         current_function_decl in BLOCK_NONLOCALIZED_VARS.
4632
4633 2017-04-12  Jan Hubicka  <hubicka@ucw.cz>
4634
4635         PR lto/69953
4636         * ipa-visibility.c (non_local_p): Fix typos.
4637         (localize_node): When localizing symbol in same comdat group,
4638         dissolve the group only when we know external symbols are going
4639         to be privatized.
4640         (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
4641
4642 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
4643
4644         PR tree-optimization/79390
4645         * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
4646         order does not result in usable sequence, retry with reversed operand
4647         order.
4648
4649         PR sanitizer/80403
4650         PR sanitizer/80404
4651         PR sanitizer/80405
4652         * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
4653         to fold_build2_loc.  Convert TREE_OPERAND (tem, 0) to type.  Use
4654         op0 instead of fold_convert_loc (loc, type, arg0).
4655
4656 2017-04-12  Jeff Law  <law@redhat.com>
4657
4658         * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
4659         has a delay slot in the generated code.
4660
4661         * config/cris/cris.md (cris_preferred_reload_class): Return
4662         GENNONACR_REGS rather than GENERAL_REGS.
4663
4664 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
4665
4666         PR c/80163
4667         * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
4668         vs. ZERO_EXTEND based on signedness of treeop0's type rather than
4669         signedness of the result type.
4670
4671 2017-04-12  Richard Biener  <rguenther@suse.de>
4672             Jeff Law  <law@redhat.com>
4673
4674         PR tree-optimization/80359
4675         * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
4676         trim stores to TARGET_MEM_REFs.
4677
4678 2017-04-12  Richard Biener  <rguenther@suse.de>
4679
4680         PR tree-optimization/79390
4681         * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
4682         threading case even more.
4683
4684 2017-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
4685
4686         PR target/80382
4687         * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
4688         for quad_address_p for TImode, instead of just not indexed_address.
4689
4690 2017-04-12  Richard Biener  <rguenther@suse.de>
4691             Bernd Edlinger  <bernd.edlinger@hotmail.de>
4692
4693         PR middle-end/79671
4694         * alias.c (component_uses_parent_alias_set_from): Handle
4695         TYPE_TYPELESS_STORAGE.
4696         (get_alias_set): Likewise.
4697         * tree-core.h (tree_type_common): Add typeless_storage flag.
4698         * tree.h (TYPE_TYPELESS_STORAGE): New macro.
4699         * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
4700         for types containing members with TYPE_TYPELESS_STORAGE.
4701         (place_field): Likewise.
4702         (layout_type): Likewise for ARRAY_TYPE.
4703         * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
4704         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
4705         TYPE_TYPELESS_STORAGE.
4706         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
4707
4708 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
4709
4710         PR sanitizer/80349
4711         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
4712         first argument to type.
4713
4714 2017-04-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4715
4716         PR target/80376
4717         PR target/80315
4718         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
4719         CONST0_RTX (mode) rather than const0_rtx where appropriate.
4720         (rs6000_expand_binop_builtin): Likewise.
4721         (rs6000_expand_ternop_builtin): Likewise; also add missing
4722         vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
4723         vshasigma built-ins.
4724         * doc/extend.texi: Document that vec_xxpermdi's third argument
4725         must be a constant.
4726
4727 2017-04-11  Uros Bizjak  <ubizjak@gmail.com>
4728
4729         * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
4730         Use shift_const cost parameter when calculating gain of STV shifts.
4731
4732 2017-04-11  Vladimir Makarov  <vmakarov@redhat.com>
4733
4734         PR rtl-optimization/70478
4735         * lra-constraints.c (process_alt_operands): Check memory for
4736         disfavoring memory insn operand.
4737
4738 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
4739
4740         PR middle-end/80100
4741         * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
4742         left shift in unsigned HOST_WIDE_INT type.
4743
4744         PR rtl-optimization/80385
4745         * simplify-rtx.c (simplify_unary_operation_1): Don't transform
4746         (not (neg X)) into (plus X -1) for complex or non-integral modes.
4747
4748         PR libgomp/80394
4749         * omp-low.c (scan_omp_task): Don't optimize away empty tasks
4750         if they have any depend clauses.
4751
4752 2017-04-11  Martin Liska  <mliska@suse.cz>
4753
4754         PR ipa/80212
4755         * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
4756         * ipa-split.c (split_function): Create a local comdat symbol
4757         if caller is in a comdat group.
4758
4759 2017-04-11  Martin Liska  <mliska@suse.cz>
4760
4761         PR ipa/80212
4762         * ipa-cp.c (determine_versionability): Handle calls_comdat_local
4763         flags.
4764
4765 2017-04-11  Martin Sebor  <msebor@redhat.com>
4766
4767         PR middle-end/80364
4768         * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
4769         always use the int type.  Use INTEGRAL_TYPE_P() rather than testing
4770         for INTEGER_TYPE.
4771         (directive::set_width, directive::set_precision, format_character):
4772         Adjust.
4773         (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
4774         INTEGER_TYPE.
4775
4776 2017-04-11  Richard Earnshaw  <rearnsha@arm.com>
4777
4778         PR target/80389
4779         * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
4780         conflict, set target->arch_name instead of target->cpu_name.
4781
4782 2017-04-11  Richard Biener  <rguenther@suse.de>
4783
4784         PR tree-optimization/80374
4785         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
4786         build_zero_cst, remove fold_convertible_p check again.
4787
4788 2017-04-11  Martin Liska  <mliska@suse.cz>
4789
4790         PR sanitizer/70878
4791         * ubsan.c (instrument_object_size): Do not instrument register
4792         variables.
4793
4794 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
4795
4796         PR target/80381
4797         * config/i386/i386-builtin-types.def
4798         (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
4799         V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
4800         V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
4801         V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
4802         V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
4803         V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
4804         V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
4805         V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
4806         V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
4807         V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
4808         V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
4809         V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
4810         V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
4811         V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
4812         V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
4813         V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
4814         V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
4815         V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
4816         * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
4817         __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
4818         __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
4819         __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
4820         __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
4821         __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
4822         __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
4823         __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
4824         __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
4825         __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
4826         __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
4827         __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
4828         __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
4829         __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
4830         __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
4831         __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
4832         __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
4833         __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
4834         __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
4835         __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
4836         __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
4837         __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
4838         __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
4839         __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
4840         __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
4841         __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
4842         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
4843         __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
4844         aliases.
4845         * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
4846         flag to second_arg_count, handle 4 argument function type _COUNT
4847         aliases, handle second_arg_count on second argument rather than last.
4848
4849 2017-04-10  Jeff Law  <law@redhat.com>
4850
4851         PR tree-optimization/80374
4852         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
4853         record anything if we can not convert integer_zero_node to the
4854         desired type.
4855
4856 2017-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
4857
4858         PR target/80108
4859         * config/rs6000/rs6000.c (rs6000_option_override_internal):
4860         Enhance special handling given to the TARGET_P9_MINMAX option in
4861         relation to certain other options.
4862
4863 2017-04-10  Bin Cheng  <bin.cheng@arm.com>
4864
4865         PR tree-optimization/80153
4866         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
4867         remove POINTER_PLUS_EXPR's base part directly, rather than through
4868         aff_tree.
4869
4870 2017-04-10  Richard Biener  <rguenther@suse.de>
4871             Bin Cheng  <bin.cheng@arm.com>
4872
4873         PR tree-optimization/80153
4874         * tree-affine.c (aff_combination_to_tree): Get base pointer from
4875         the first element of pointer type aff_tree.  Build result expr in
4876         aff_tree's type.
4877         (add_elt_to_tree): Convert to type unconditionally.  Remove other
4878         fold_convert calls.
4879         * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
4880         (rewrite_use_nonlinear_expr): Check invariant using iv information.
4881
4882 2017-04-10  Richard Biener  <rguenther@suse.de>
4883
4884         * tree-ssa-structalias.c (find_func_aliases): Properly handle
4885         asm inputs.
4886
4887 2017-04-10  Vladimir Makarov  <vmakarov@redhat.com>
4888
4889         PR rtl-optimization/70478
4890         * lra-constraints.c (curr_small_class_check): New.
4891         (update_and_check_small_class_inputs): New.
4892         (process_alt_operands): Update curr_small_class_check.  Disfavor
4893         alternative insn memory operands.  Check available regs for small
4894         class operands.
4895
4896 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
4897
4898         PR target/80057
4899         * config/mips/mips.opt (-mvirt): Update description.
4900         * doc/invoke.texi (-mvirt): Likewise.
4901
4902 2017-04-10  Richard Biener  <rguenther@suse.de>
4903
4904         PR middle-end/80362
4905         * fold-const.c (fold_binary_loc): Look at unstripped ops when
4906         looking for NEGATE_EXPR in -A / -B to A / B folding.
4907
4908 2017-04-10  Martin Liska  <mliska@suse.cz>
4909
4910         PR gcov-profile/80224
4911         * gcov.c (print_usage): Fix usage string.
4912         (get_gcov_intermediate_filename): Remove.
4913         (output_gcov_file): Use both for normal and intermediate format.
4914         (generate_results): Do not initialize special file for
4915         intermediate format.
4916
4917 2017-04-10  Richard Biener  <rguenther@suse.de>
4918
4919         PR tree-optimization/80304
4920         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
4921         for safelen.
4922
4923 2017-04-10  Nathan Sidwell  <nathan@acm.org>
4924
4925         PR target/79905
4926         * config/rs6000/rs6000.c (rs6000_vector_type): New.
4927         (rs6000_init_builtins): Use it.
4928
4929 2016-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4930
4931         * config/arm/arm.md (<mrc>): Add mode to SET source.
4932         (<mrrc>): Likewise.
4933
4934 2017-04-10  Richard Biener  <rguenther@suse.de>
4935
4936         PR middle-end/80344
4937         * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
4938
4939 2017-04-10  Jakub Jelinek  <jakub@redhat.com>
4940
4941         PR target/80324
4942         * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
4943         _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
4944         _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
4945         _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
4946         _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
4947         _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
4948         _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
4949         _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
4950         _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
4951         _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
4952         _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
4953         _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
4954         _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
4955         _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
4956         _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
4957         _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
4958         _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
4959         _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
4960         _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
4961         _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
4962         _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
4963         _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
4964         _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
4965
4966 2017-04-08  Vladimir Makarov  <vmakarov@redhat.com>
4967
4968         PR rtl-optimization/70478
4969         * lra-constraints.c: Reverse the last patch.
4970
4971 2017-04-08  Andreas Tobler  <andreast@gcc.gnu.org>
4972
4973         * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
4974         Add comment for WCHAR_T.
4975
4976 2017-04-08  Martin Liska  <mliska@suse.cz>
4977
4978         Revert:
4979         2017-04-07  Martin Liska  <mliska@suse.cz>
4980
4981         PR ipa/80212
4982         * ipa-split.c (split_function): Add function part to a same comdat
4983         group.
4984
4985 2017-04-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
4986
4987         PR target/80358
4988         * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
4989
4990 2017-04-07  Pat Haugen  <pthaugen@us.ibm.com>
4991
4992         * rs6000/rs6000.c (vec_load_pendulum): Rename...
4993         (vec_pairing): ...to this.
4994         (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
4995         (rs6000_sched_init): Adjust for name change.
4996         (struct rs6000_sched_context): Likewise.
4997         (rs6000_init_sched_context): Likewise.
4998         (rs6000_set_sched_context): Likewise.
4999
5000 2017-04-07  Jakub Jelinek  <jakub@redhat.com>
5001
5002         PR target/80322
5003         PR target/80323
5004         PR target/80325
5005         PR target/80326
5006         * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
5007         intrinsics.
5008         * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
5009         _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
5010         _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
5011
5012 2017-04-07  Andreas Tobler  <andreast@gcc.gnu.org>
5013
5014         * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
5015
5016 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
5017
5018         PR rtl-optimization/70703
5019         * ira-color.c (update_conflict_hard_regno_costs): Use
5020         int64_t instead of HOST_WIDE_INT.
5021
5022 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
5023
5024         PR rtl-optimization/70478
5025         * lra-constraints.c (process_alt_operands): Disfavor alternative
5026         insn memory operands.
5027
5028 2017-04-07  Jeff Law  <law@redhat.com>
5029
5030         * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
5031         CALL and NOTE_INSN_CALL_ARG_LOCATION.
5032
5033 2017-04-07  Martin Liska  <mliska@suse.cz>
5034
5035         PR target/79889
5036         * config/aarch64/aarch64.c (aarch64_process_target_attr):
5037         Show error message instead of an ICE.
5038
5039 2017-04-07  Martin Liska  <mliska@suse.cz>
5040
5041         PR ipa/80212
5042         * ipa-split.c (split_function): Add function part to a same comdat
5043         group.
5044
5045 2017-04-07  Richard Biener  <rguenther@suse.de>
5046
5047         PR middle-end/80341
5048         * tree.c (get_unwidened): Also handle ! for_type case for
5049         INTEGER_CSTs.
5050         * convert.c (do_narrow): Split out from ...
5051         (convert_to_integer_1): ... here.  Do not pass final truncation
5052         type to get_unwidened for TRUNC_DIV_EXPR.
5053
5054 2017-04-07  Richard Biener  <rguenther@suse.de>
5055
5056         * tree-affine.c (wide_int_ext_for_comb): Take type rather
5057         than aff_tree.
5058         (aff_combination_const): Adjust.
5059         (aff_combination_scale): Likewise.
5060         (aff_combination_add_elt): Likewise.
5061         (aff_combination_add_cst): Likewise.
5062         (aff_combination_convert): Likewise.
5063         (add_elt_to_tree): Likewise.  Remove unused argument.
5064         (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
5065
5066 2017-04-07  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5067
5068         * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
5069         definition.
5070         * config/arm/arm.c (arm_default_short_enums): Use
5071         ARM_DEFAULT_SHORT_ENUMS.
5072         * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
5073
5074 2017-04-06  Jakub Jelinek  <jakub@redhat.com>
5075
5076         PR debug/80234
5077         * dwarf2out.c (gen_member_die): Handle C++17 inline static data
5078         members with redundant out-of-class redeclaration.
5079
5080 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
5081
5082         PR target/80286
5083         * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
5084         * config/i386/i386.md (*zero_extendsidi2):
5085         Add (?*x,*x) and (?*v,*v) alternatives.
5086
5087 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
5088
5089         PR target/79733
5090         * config/i386/i386.c (ix86_expand_builtin)
5091         <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
5092         mode from insn data. Convert operands to insn operand mode.
5093         Copy operands that don't satisfy insn predicate to a register.
5094
5095 2017-04-06  Sam Thursfield  <sam.thursfield@codethink.co.uk>
5096
5097         * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
5098         Update comments.
5099
5100 2017-04-06  Richard Biener  <rguenther@suse.de>
5101
5102         PR tree-optimization/80334
5103         * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
5104         preserve alignment of accesses.
5105
5106 2017-04-06  Richard Biener  <rguenther@suse.de>
5107
5108         PR tree-optimization/80262
5109         * tree-sra.c (build_ref_for_offset): Preserve address-space
5110         information.
5111         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
5112         Drop useless address-space information on MEM_REF offsets.
5113
5114 2017-04-05  Andreas Schwab  <schwab@linux-m68k.org>
5115
5116         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
5117
5118 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
5119
5120         PR rtl-optimization/70703
5121         * ira-color.c (update_conflict_hard_regno_costs): Use
5122         HOST_WIDE_INT instead of long.
5123
5124 2017-04-05  Uros Bizjak  <ubizjak@gmail.com>
5125
5126         PR target/80298
5127         * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
5128         not defined for x86_64 target.  Add -mmmx target option when __SSE2__
5129         is not defined.
5130         * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
5131         for x86_64 target.  Handle -m3dnowa option.
5132
5133 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
5134
5135         PR rtl-optimization/70703
5136         * ira-color.c (update_costs_from_allocno): Use the smallest mode.
5137         (update_conflict_hard_regno_costs): Use long instead of unsigned
5138         arithmetic for cost calculation.
5139
5140 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
5141             Bernd Edlinger  <bernd.edlinger@hotmail.de>
5142
5143         PR sanitizer/80308
5144         * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
5145         for big endian.
5146
5147 2017-04-05  Eric Botcazou  <ebotcazou@adacore.com>
5148
5149         PR target/78002
5150         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
5151         ptr_mode with Pmode throughout.
5152         * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
5153         into probe_stack_range and use DImode.
5154
5155 2017-04-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
5156
5157         PR target/79890
5158         * config/s390/s390.c (s390_register_info_gprtofpr): Return if
5159         call_eh_return is true.
5160
5161 2017-04-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5162
5163         * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
5164         Initialize last_match_fntype_index.
5165
5166 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
5167
5168         PR target/80310
5169         * tree-nvr.c: Include internal-fn.h.
5170         (pass_return_slot::execute): Ignore internal calls without
5171         direct optab.
5172
5173 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
5174             Richard Biener  <rguenther@suse.de>
5175
5176         PR c++/80297
5177         * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
5178         captures used multiple times, except for the last use.
5179         * generic-match-head.c: Include gimplify.h.
5180
5181 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
5182
5183         PR tree-optimization/79390
5184         * target.h (struct noce_if_info): Declare.
5185         * targhooks.h (default_noce_conversion_profitable_p): Declare.
5186         * target.def (noce_conversion_profitable_p): New target hook.
5187         * ifcvt.h (struct noce_if_info): New type, moved from ...
5188         * ifcvt.c (struct noce_if_info): ... here.
5189         (noce_conversion_profitable_p): Renamed to ...
5190         (default_noce_conversion_profitable_p): ... this.  No longer
5191         static nor inline.
5192         (noce_try_store_flag_constants, noce_try_addcc,
5193         noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
5194         noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
5195         instead of noce_conversion_profitable_p.
5196         * config/i386/i386.c: Include ifcvt.h.
5197         (ix86_option_override_internal): Don't override
5198         PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
5199         (ix86_noce_conversion_profitable_p): New function.
5200         (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
5201         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
5202         * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
5203         * doc/tm.texi: Regenerated.
5204
5205 2017-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5206
5207         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
5208         correction.
5209
5210 2017-04-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5211
5212         PR target/80307
5213         * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
5214         instructions for small multiply cores.
5215
5216 2017-04-04  Jeff Law  <law@redhat.com>
5217
5218         * config/mips/mips.c (mips_multi_add): Zero initialize the newly
5219         added member.
5220         (mips_expand_vec_perm_const): Initialize elements in orig_perm
5221         that are not set by the loop over the elements.
5222
5223 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
5224
5225         PR target/80286
5226         * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
5227         int mode, convert_modes it to mode as unsigned, otherwise use
5228         lowpart_subreg to mode rather than SImode.
5229         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
5230         ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
5231         Use DImode instead of SImode for the shift count operand.
5232         * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
5233         Likewise.
5234
5235 2017-04-04  Richard Biener  <rguenther@suse.de>
5236
5237         PR middle-end/80281
5238         * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
5239         arithmetic done for the negate or the plus.  Simplify.
5240         (A - (-B) -> A + B): Likewise.
5241         * fold-const.c (split_tree): Make sure to not negate pointers.
5242
5243 2017-04-04  Segher Boessenkool  <segher@kernel.crashing.org>
5244
5245         PR rtl-optimization/60818
5246         * simplify-rtx.c (simplify_binary_operation_1): Do not replace
5247         a compare of comparisons with the thing compared if this results
5248         in a different machine mode.
5249
5250 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
5251
5252         * alias.c (base_alias_check): Fix typo in comment.
5253         * cgraph.h (class ipa_polymorphic_call_context): Likewise.
5254         * cgraphunit.c (symbol_table::compile): Likewise.
5255         * collect2.c (maybe_run_lto_and_relink): Likewise.
5256         * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
5257         * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
5258         * config/avr/avr.c (avr_map_op_t): Likewise.
5259         * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
5260         * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
5261         * config/epiphany/epiphany.md (movcc): Likewise.
5262         * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
5263         * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
5264         Likewise.
5265         * config/mips/mips.c (mips_save_restore_reg): Likewise.
5266         * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
5267         * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
5268         * config/sh/sh.c (sh_rtx_costs): Likewise.
5269         * fold-const.c (fold_truth_andor): Likewise.
5270         * genautomata.c (collapse_flag): Likewise.
5271         * gengtype.h (struct type::u::s): Likewise.
5272         * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
5273         * input.c (FORMAT_AMOUNT): Likewise.
5274         * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
5275         (known_aggs_to_agg_replacement_list): Likewise.
5276         * ipa-inline-analysis.c: Likewise.
5277         * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
5278         * ipa-polymorphic-call.c
5279         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
5280         * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
5281         * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
5282         Likewise.
5283         * modulo-sched.c (apply_reg_moves): Likewise.
5284         * omp-expand.c (build_omp_regions_1): Likewise.
5285         * trans-mem.c (struct tm_wrapper_hasher): Likewise.
5286         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
5287         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
5288         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
5289         * value-prof.c: Likewise.
5290         * var-tracking.c (val_reset): Likewise.
5291
5292 2017-04-03  Richard Biener  <rguenther@suse.de>
5293
5294         PR tree-optimization/80275
5295         * fold-const.c (split_address_to_core_and_offset): Handle
5296         POINTER_PLUS_EXPR.
5297
5298 2017-04-03  Eric Botcazou  <ebotcazou@adacore.com>
5299
5300         * tree-nested.c (get_descriptor_type): Make sure that the alignment of
5301         descriptors is at least equal to that of functions.
5302
5303 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
5304
5305         * config/i386/sse.md (movdi_to_sse): Add missing DONE.
5306
5307 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
5308
5309         PR target/80250
5310         * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
5311         (mov<IMOD4:mode>): New expander.
5312         (*mov<IMOD4:mode>_internal): New insn and split pattern.
5313
5314 2017-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
5315
5316         PR rtl-optimization/79405
5317         * fwprop.c (propagations_left): New variable.
5318         (forward_propagate_into): Decrement it.
5319         (fwprop_init): Initialize it.
5320         (fw_prop): If the variable has reached zero, stop propagating.
5321         (fwprop_addr): Ditto.
5322
5323 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
5324
5325         PR debug/79255
5326         * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
5327         a FUNCTION_DECL, pass it as decl instead of origin to
5328         process_scope_var.
5329
5330 2017-03-31  Alexander Monakov  <amonakov@ispras.ru>
5331
5332         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
5333         string.
5334
5335 2017-03-31  Pat Haugen  <pthaugen@us.ibm.com>
5336
5337         PR target/80107
5338         * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
5339         TARGET_VSX_SMALL_INTEGER.
5340
5341 2017-03-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5342
5343         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
5344         reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
5345
5346 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
5347
5348         * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
5349         extraction from odd-numbered MSA register.
5350
5351 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
5352
5353         PR middle-end/80173
5354         * expmed.c (store_bit_field_1): Don't attempt to create
5355         a word subreg out of hard registers wider than word if they
5356         have HARD_REGNO_NREGS of 1 for their mode.
5357
5358         PR middle-end/80163
5359         * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
5360         conversions to integer types wider than word and pointer.
5361
5362         PR debug/80025
5363         * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
5364         (rtx_equal_for_cselib_p): Pass 0 to it.
5365         * cselib.c (cselib_hasher::equal): Likewise.
5366         (rtx_equal_for_cselib_1): Add depth argument.  If depth
5367         is 128, don't look up VALUE locs and punt.  Increment
5368         depth in recursive calls when walking VALUE locs.
5369
5370 2017-03-31  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5371
5372         * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
5373         (make_gcov_file_name): Use the canonical path name for generating
5374         the MD5 value.
5375         (read_line): Fix handling of files with ascii null bytes.
5376
5377 2017-03-30  Matthew Fortune  <matthew.fortune@imgtec.com>
5378
5379         * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
5380         to initialise a vector register instead
5381         of using a const_int.
5382
5383 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
5384
5385         PR translation/80189
5386         * gimplify.c (omp_default_clause): Use %qs instead of %s in
5387         diagnostic messages.
5388
5389 2017-03-30  Peter Bergner  <bergner@vnet.ibm.com>
5390
5391         PR target/80246
5392         * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
5393         (dfp_diex_<mode>): Update mode of operand 1.
5394         * doc/extend.texi (dxex, dxexq): Document change to return type.
5395         (diex, diexq): Document change to argument type.
5396
5397 2017-03-30  Martin Jambor  <mjambor@suse.cz>
5398
5399         PR ipa/77333
5400         * cgraph.h (cgraph_build_function_type_skip_args): Declare.
5401         * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
5402         it reflects the signature changes performed at the callee side.
5403         * cgraphclones.c (build_function_type_skip_args): Make public, renamed
5404         to cgraph_build_function_type_skip_args.
5405         (build_function_decl_skip_args): Adjust call to the above function.
5406
5407 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
5408
5409         PR target/80206
5410         * config/i386/sse.md
5411         (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
5412         register as dest whenever it is a MEM not rtx_equal_p to the
5413         corresponding dup operand, and when forcing into reg move the
5414         reg into the memory afterwards.
5415         (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
5416         Likewise.  Use <ssehalfvecmode> instead of <ssequartermode>
5417         for the force_reg mode.
5418         (avx512vl_vextractf128<mode>): Use register as dest either
5419         always when a MEM, or when it is a MEM not rtx_equal_p to the
5420         corresponding dup operand, or even not when it is a CONST_VECTOR
5421         depending on the mode and lo vs. hi.
5422         (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
5423         parens.
5424         (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
5425         (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
5426         Likewise.  Require that operands[2] is even.
5427         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
5428         Remove extraneous parens.  Require that operands[2] is a multiple
5429         of 4.
5430         (vec_extract_lo_<mode><mask_name>): Don't bother testing if
5431         operands[0] is a MEM if <mask_applied>, the predicates/constraints
5432         disallow memory then.
5433
5434 2017-03-30  Richard Biener  <rguenther@suse.de>
5435
5436         PR tree-optimization/77498
5437         * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
5438         to non-constants over backedges.
5439
5440 2017-03-29  Segher Boessenkool  <segher@kernel.crashing.org>
5441
5442         PR rtl-optimization/80233
5443         * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
5444         as last_combined_insn.  Do not test for BARRIER_P separately.
5445
5446 2017-03-29  Andreas Schwab  <schwab@suse.de>
5447
5448         PR ada/80146
5449         * calls.c (prepare_call_address): Convert funexp to Pmode before
5450         copying to temp reg.
5451
5452 2017-03-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5453
5454         PR tree-optimization/80158
5455         * gimple-ssa-strength-reduction.c (replace_mult_candidate):
5456         Handle possible future case of more than one alternate
5457         interpretation.
5458         (replace_rhs_if_not_dup): Likewise.
5459         (replace_one_candidate): Likewise.
5460
5461 2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>
5462
5463         PR rtl-optimization/80193
5464         * ira.c (ira): Do not check allocation for LRA.
5465
5466 2017-03-28  Alexander Monakov  <amonakov@ispras.ru>
5467
5468         * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
5469         (nvptx_output_simt_exit): Declare.
5470         * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
5471         cfun->machine->unisimt_location.  Handle NULL unisimt_predicate.
5472         (init_softstack_frame): Move initialization of crtl->is_leaf to...
5473         (nvptx_declare_function_name): ...here.  Emit declaration of local
5474         memory space buffer for omp_simt_enter insn.
5475         (nvptx_output_unisimt_switch): New.
5476         (nvptx_output_softstack_switch): New.
5477         (nvptx_output_simt_enter): New.
5478         (nvptx_output_simt_exit): New.
5479         * config/nvptx/nvptx.h (struct machine_function): New fields
5480         has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
5481         * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
5482         (UNSPECV_SIMT_EXIT): Ditto.
5483         (omp_simt_enter_insn): New insn.
5484         (omp_simt_enter): New expansion.
5485         (omp_simt_exit): New insn.
5486         * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
5487
5488         * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
5489         (expand_GOMP_SIMT_ENTER_ALLOC): New.
5490         (expand_GOMP_SIMT_EXIT): New.
5491         * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
5492         (GOMP_SIMT_ENTER_ALLOC): Ditto.
5493         (GOMP_SIMT_EXIT): Ditto.
5494         * target-insns.def (omp_simt_enter): New insn.
5495         (omp_simt_exit): Ditto.
5496         * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
5497         simt_dlist.
5498         (lower_rec_simd_input_clauses): Implement SIMT privatization.
5499         (lower_rec_input_clauses): Likewise.
5500         (lower_lastprivate_clauses): Handle SIMT privatization.
5501
5502         * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
5503         (ompdevlow_adjust_simt_enter): New.
5504         (find_simtpriv_var_op): New.
5505         (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
5506         IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
5507
5508         * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
5509         * tree-inline.c (expand_call_inline): Handle SIMT privatization.
5510         (copy_decl_for_dup_finish): Ditto.
5511
5512         * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
5513
5514 2017-03-28  Uros Bizjak  <ubizjak@gmail.com>
5515
5516         PR target/53383
5517         * config/i386/i386.c (ix86_option_override_internal): Always
5518         allow -mpreferred-stack-boundary=3 for 64-bit targets.
5519
5520 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
5521
5522         * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
5523
5524 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
5525
5526         * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
5527         mark new edge's irreducible flag accordign to it.
5528         (vect_do_peeling): Check loop preheader edge's irreducible flag
5529         and pass it to function slpeel_add_loop_guard.
5530
5531 2017-03-28  Richard Sandiford  <richard.sandiford@arm.com>
5532
5533         PR tree-optimization/80218
5534         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
5535         Update block frequencies and counts.
5536
5537 2017-03-28  Richard Biener  <rguenther@suse.de>
5538
5539         PR tree-optimization/78644
5540         * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
5541         of a simplification result we may not use it at all.
5542
5543 2017-03-28  Richard Biener  <rguenther@suse.de>
5544
5545         PR ipa/80205
5546         * tree-inline.c (copy_phis_for_bb): Do not create PHI node
5547         without arguments, generate default definition of a SSA name.
5548
5549 2017-03-28  Richard Biener  <rguenther@suse.de>
5550
5551         PR middle-end/80222
5552         * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
5553         TYPE_REF_CAN_ALIAS_ALL references.
5554         * fold-const.c (fold_indirect_ref_1): Likewise.
5555
5556 2017-03-28  Martin Liska  <mliska@suse.cz>
5557
5558         PR ipa/80104
5559         * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
5560         thunk call as DECL_GIMPLE_REG_P when vector or complex type.
5561
5562 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
5563             Thomas Petazzoni  <thomas.petazzoni@free-electrons.com>
5564
5565         * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
5566         (EXTRA_SPECS): Define.
5567         (SUBTARGET_EXTRA_SPECS): Likewise.
5568         (SUBTARGET_CPP_SPEC): Likewise.
5569         * config/arc/elf.h (EXTRA_SPECS): Renamed to
5570         SUBTARGET_EXTRA_SPECS.
5571         * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
5572
5573 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
5574
5575         * config/arc/simdext.md (vst64_insn): Update pattern.
5576         (vld32wh_insn): Likewise.
5577         (vld32wl_insn): Likewise.
5578         (vld64_insn): Likewise.
5579         (vld32_insn): Likewise.
5580
5581 2017-03-28  Marek Polacek  <polacek@redhat.com>
5582
5583         PR sanitizer/80067
5584         * fold-const.c (fold_comparison): Use protected_set_expr_location
5585         instead of SET_EXPR_LOCATION.
5586
5587 2017-03-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
5588
5589         * tree.c (add_expr): Avoid name lookup warning.
5590
5591 2017-03-27  Jeff Law  <law@redhat.com>
5592
5593         PR tree-optimization/80216
5594         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
5595         function name.  Limit recursion depth.
5596         (record_temporary_equivalences): Corresponding changes.
5597
5598 2017-03-27  Jonathan Wakely  <jwakely@redhat.com>
5599
5600         * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
5601         covered first.
5602
5603 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
5604
5605         PR target/80102
5606         * reg-notes.def (REG_CFA_NOTE): Define.  Use it for CFA related
5607         notes.
5608         * cfgcleanup.c (reg_note_cfa_p): New array.
5609         (insns_have_identical_cfa_notes): New function.
5610         (old_insns_match_p): Don't cross-jump in between /f
5611         and non-/f instructions.  If both i1 and i2 are frame related,
5612         verify all CFA notes, their order and content.
5613
5614 2017-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
5615
5616         PR target/78543
5617         * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
5618         HImode and SImode with zero extend to DImode to one insn.
5619         (bswap<mode>2_extenddi): Likewise.
5620         (bswapsi2_extenddi): Likewise.
5621         (bswaphi2_extendsi): Likewise.
5622         (bswaphi2): Combine bswap HImode and SImode into one insn.
5623         Separate memory insns from swapping register.
5624         (bswapsi2): Likewise.
5625         (bswap<mode>2): Likewise.
5626         (bswaphi2_internal): Delete, no longer used.
5627         (bswapsi2_internal): Likewise.
5628         (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
5629         store, and gpr<-gpr swap insns.
5630         (bswap<mode>2_store): Likewise.
5631         (bswaphi2_reg): Register only splitter, combine with the splitter.
5632         (bswaphi2 splitter): Likewise.
5633         (bswapsi2_reg): Likewise.
5634         (bswapsi2 splitter): Likewise.
5635         (bswapdi2): If we have the LDBRX and STDBRX instructions, split
5636         the insns into load, store, and register/register insns.
5637         (bswapdi2_ldbrx): Likewise.
5638         (bswapdi2_load): Likewise.
5639         (bswapdi2_store): Likewise.
5640         (bswapdi2_reg): Likewise.
5641
5642 2017-03-27  Gunther Nikl  <gnikl@users.sourceforge.net>
5643
5644         * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
5645         (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
5646
5647 2017-03-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5648
5649         PR target/80103
5650         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
5651         add comments.
5652         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
5653         special handling for target option conflicts between dform
5654         options (-mpower9-dform, -mpower9-dform-vector,
5655         -mpower9-dform-scalar) and -mno-direct-move.
5656
5657 2017-03-27  Richard Biener  <rguenther@suse.de>
5658
5659         PR tree-optimization/80181
5660         * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
5661
5662 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
5663
5664         * config/arc/predicates.md (move_double_src_operand): Replace the
5665         call to move_double_src_operand with a call to address_operand.
5666
5667 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
5668
5669         * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
5670         * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
5671         * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
5672
5673 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
5674
5675         * config/arc/predicates.md (long_immediate_loadstore_operand):
5676         Consider scaled addresses cases.
5677
5678 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
5679
5680         * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
5681         restored when in interrupt.
5682         * config/arc/arc.md (simple_return): ARCv2 rtie instruction
5683         doesn't have delay slot.
5684
5685 2017-03-27  Richard Biener  <rguenther@suse.de>
5686
5687         PR ipa/79776
5688         * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
5689         inlined thunk clones.
5690
5691 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
5692
5693         PR sanitizer/80168
5694         * asan.c (instrument_derefs): Copy over last operand from
5695         original COMPONENT_REF to the new COMPONENT_REF with
5696         DECL_BIT_FIELD_REPRESENTATIVE.
5697         * ubsan.c (instrument_object_size): Likewise.
5698
5699 2017-03-27  Richard Biener  <rguenther@suse.de>
5700
5701         PR tree-optimization/80170
5702         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
5703         sure DR/SCEV didnt fold in constants we do not see when looking
5704         at the reference base alignment.
5705
5706 2017-03-27  Richard Biener  <rguenther@suse.de>
5707
5708         PR middle-end/80171
5709         * gimple-fold.c (fold_ctor_reference): Properly guard against
5710         NULL return value from canonicalize_constructor_val.
5711
5712 2017-03-25  Uros Bizjak  <ubizjak@gmail.com>
5713
5714         PR target/80180
5715         * config/i386/i386.c (ix86_expand_builtin)
5716         <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
5717         flags reg setting and flags reg using instructions.
5718         <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
5719         clobbering instructions to zero extend op2.
5720
5721 2017-03-25  Gerald Pfeifer  <gerald@pfeifer.com>
5722
5723         * doc/install.texi (Configuration) <--with-aix-soname>:
5724         Update link to AIX ld.
5725
5726 2017-03-25  Bernd Schmidt  <bschmidt@redhat.com>
5727
5728         PR rtl-optimization/80160
5729         PR rtl-optimization/80159
5730         * lra-assigns.c (must_not_spill_p): Tighten new test to also take
5731         reg_alternate_class into account.
5732
5733 2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>
5734
5735         PR target/80148
5736         * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
5737         to consider in curr_insn_transform.
5738
5739 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
5740
5741         * genrecog.c (validate_pattern): Add VEC_SELECT validation.
5742         * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
5743         and emit_mode_inner.
5744
5745 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5746
5747         * config/s390/s390-builtins.def: Add VXE builtins.  Add a flags
5748         argument to the overloaded builtin variants.  Use the new flag to
5749         deprecate certain builtin variants.
5750         * config/s390/s390-builtin-types.def: Add new builtin types.
5751         * config/s390/s390-builtins.h: Support new flags field for
5752         overloaded builtins.
5753         * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
5754         (s390_macro_to_expand): Enable vector float data type.
5755         (s390_cpu_cpp_builtins_internal): Indicate support of the new
5756         builtins by incrementing the __VEC__ version number.
5757         (s390_expand_overloaded_builtin): Support expansion of vec_xl and
5758         vec_xst.
5759         (s390_resolve_overloaded_builtin): Emit error messages depending
5760         on the builtin flags.
5761         * config/s390/s390.c (s390_expand_builtin): Support additional
5762         flags argument.  Change error message to match the messages
5763         emitted in s390-c.c.
5764         * config/s390/s390.md: New UNSPEC_* constants.
5765         (op_type): Add new instruction types.
5766         * config/s390/vecintrin.h: Add new builtins and test data class
5767         constants.
5768         * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
5769         (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
5770         (VEC_INEXACT, VEC_NOINEXACT): New constants.
5771         ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
5772         ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
5773         ("vec_mergel<mode>"): V_HW -> VEC_HW.
5774
5775         ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
5776         ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
5777         ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
5778         ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
5779
5780         ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
5781         ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
5782         ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
5783         ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
5784
5785         ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
5786         ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
5787         ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
5788         ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
5789         ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
5790         ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
5791         ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
5792
5793         ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
5794         ("vec_scatter_element<V_HW_4:mode>_DI")
5795         ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
5796         ("vec_fpint<mode>", "vflls")
5797         ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
5798         ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
5799         ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
5800         ("*vec_cmphe<mode>_cc"): ... these.
5801
5802         ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
5803         mode constant instead of magic value.
5804
5805 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5806
5807         * config/s390/s390.c (s390_expand_vec_compare): Support other
5808         vector floating point modes than just V2DF.
5809         (s390_expand_vcond): Likewise.
5810         (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
5811         (s390_cannot_change_mode_class): Prevent mode changes between TF
5812         and V1TF in vector registers.
5813         * config/s390/s390.md (DF, SF): New mode attributes.
5814         ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
5815         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
5816         SFmode support for VRs.
5817         * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
5818         vector fp modes.
5819         (VFT, VF_HW): New mode iterators.
5820         (vw, sdx): New mode attributes.
5821         ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
5822         ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
5823         ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
5824         ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
5825         ("vec_unorderedv2df"): Adjust the v2df only patterns to support
5826         also the new vector floating point modes.  Renaming to ...
5827
5828         ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
5829         ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
5830         ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
5831         ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
5832         ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
5833         ("vec_unordered<mode>"): ... these.
5834
5835         ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
5836         ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
5837         ("*vec_extendv2df"): New insn definitions.
5838
5839 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5840
5841         * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
5842         ("mulditi3_2", "*muldi3_sign"): New patterns.
5843         ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
5844         rename the pattern definition.
5845
5846 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5847
5848         * config/s390/s390.md ("indirect_jump"): Turn insn definition into
5849         expander.
5850         ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
5851
5852 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5853
5854         * config/s390/s390.c (s390_expand_vec_init): Use vllezl
5855         instruction if possible.
5856         * config/s390/vector.md (vec_halfnumelts): New mode
5857         attribute.
5858         ("*vec_vllezlf<mode>"): New pattern.
5859
5860 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5861
5862         * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
5863         ("popcountv4si2", "popcountv2di2"): Rename to ...
5864         ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
5865         ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
5866         condition.
5867         ("popcount<mode>2_vxe"): New pattern.
5868
5869 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5870
5871         * common/config/s390/s390-common.c (processor_flags_table): Add
5872         arch12.
5873         * config.gcc: Add arch12.
5874         * config/s390/driver-native.c (s390_host_detect_local_cpu):
5875         Default to arch12 for unknown CPU model numbers.
5876         * config/s390/s390-builtins.def: Add B_VXE builtin flag.
5877         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
5878         PROCESSOR_max sanity check.
5879         * config/s390/s390-opts.h (enum processor_type): Add
5880         PROCESSOR_ARCH12.
5881         * config/s390/s390.c (processor_table): Add arch12.
5882         (s390_expand_builtin): Add check for B_VXE flag.
5883         (s390_issue_rate): Add PROCESSOR_ARCH12.
5884         (s390_get_sched_attrmask): Likewise.
5885         (s390_get_unit_mask): Likewise.
5886         (s390_sched_score): Enable z13 scheduling for arch12.
5887         (s390_sched_reorder): Likewise.
5888         (s390_sched_variable_issue): Likewise.
5889         * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
5890         PF_VXE.
5891         (s390_tune_attr): Use z13 scheduling also for arch12.
5892         (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
5893         (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
5894         (TARGET_VXE_P): New macros.
5895         * config/s390/s390.md: Add arch12 to cpu attribute.  Add arch12
5896         and vxe to cpu_facility.  Add arch12 and vxe to enabled attribute.
5897         * config/s390/s390.opt: Add arch12 as processor_type.
5898
5899 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5900
5901         * config/s390/s390.md
5902         ("fixuns_truncdddi2", "fixuns_trunctddi2")
5903         ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
5904         ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
5905
5906         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
5907         Rename expanders to ...
5908
5909         ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
5910         ("fixuns_truncdddi2_emu"): ... these.
5911
5912         ("fixuns_trunc<mode>si2_emu"): New expander.
5913
5914         ("*fixuns_truncdfdi2_z13"): Rename to ...
5915         ("*fixuns_truncdfdi2_vx"): ... this.
5916
5917 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5918
5919         * config/s390/2964.md: Remove the single element vector compare
5920         instructions which are no longer used.
5921         * config/s390/s390.c (s390_select_ccmode): Remove handling of
5922         vector CCmodes.
5923         (s390_canonicalize_comparison): Remove handling of DFmode
5924         compares.
5925         (s390_expand_vec_compare_scalar): Remove function.
5926         (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
5927         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
5928         pattern.
5929         ("*cmp<mode>_ccs"): Add wfcdb instruction.
5930
5931 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5932
5933         * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
5934         FP zero.
5935         ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
5936         will anyway by matched by mov<mode>_64dfp.
5937
5938 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5939
5940         * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
5941         vlef/vstef.  Add missing operand to vleif.
5942
5943 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5944
5945         * config/s390/s390.c (s390_expand_vec_init): Enable vector load
5946         pair for all vector types with 64 bit elements.
5947         * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
5948         * config/s390/vector.md (V_HW_64): ... here.
5949         (V_128_NOSINGLE): New mode iterator.
5950         ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
5951         ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
5952         ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
5953         ("*vec_load_pairv2di"): Change to ...
5954         ("*vec_load_pair<mode>"): ... this one.
5955
5956 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5957
5958         * config/s390/constraints.md: Add comments.
5959         (jKK): Reject element sizes > 8 bytes.
5960         * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
5961         s_operands.
5962         * config/s390/s390.md: Add the s_operand checks formerly in
5963         s390_split_ok_p to various splitters where they are still
5964         required.
5965         * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
5966         for 128 bit vectors.  Plus two splitters.
5967
5968 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5969
5970         * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
5971         the file.
5972
5973 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5974
5975         PR target/79893
5976         * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
5977         error if the boundary argument is not constant.
5978
5979 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
5980
5981         PR rtl-optimization/80112
5982         * loop-doloop.c (doloop_condition_get): Don't check condition
5983         if cmp isn't SET with IF_THEN_ELSE src.
5984
5985 2017-03-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5986
5987         PR tree-optimization/80158
5988         * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
5989         replacing a candidate statement, also replace it for the
5990         candidate's alternate interpretation.
5991         (replace_rhs_if_not_dup): Likewise.
5992         (replace_one_candidate): Likewise.
5993
5994 2017-03-24  Richard Biener  <rguenther@suse.de>
5995
5996         PR tree-optimization/80167
5997         * graphite-isl-ast-to-gimple.c
5998         (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
5999         properly.
6000         (translate_isl_ast_to_gimple::get_rename): Likewise.
6001
6002 2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
6003
6004         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
6005         handling of certain combinations of target options, including the
6006         combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
6007         -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
6008
6009 2017-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6010
6011         PR target/71436
6012         * config/arm/arm.md (*load_multiple): Add reload_completed to
6013         matching condition.
6014
6015 2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6016             Richard Biener  <rguenth@suse.de>
6017
6018         PR tree-optimization/79908
6019         PR tree-optimization/80136
6020         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
6021         been cast away, gimplify_and_add suffices.
6022
6023 2017-03-23  Markus Trippelsdorf  <markus@trippelsdorf.de>
6024
6025         * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
6026
6027 2017-03-23  Richard Biener  <rguenther@suse.de>
6028
6029         PR tree-optimization/80032
6030         * gimplify.c (gimple_push_cleanup): Forced unconditional
6031         cleanups still have to go to the conditional_cleanups
6032         sequence.
6033
6034 2017-03-22  Jakub Jelinek  <jakub@redhat.com>
6035
6036         PR tree-optimization/80072
6037         * tree-ssa-reassoc.c (struct operand_entry): Change id field type
6038         to unsigned int.
6039         (next_operand_entry_id): Change type to unsigned int.
6040         (sort_by_operand_rank): Make sure to return the right return value
6041         even if unsigned fields are bigger than INT_MAX.
6042         (struct oecount): Change cnt and id type to unsigned int.
6043         (oecount_hasher::equal): Formatting fix.
6044         (oecount_cmp): Make sure to return the right return value
6045         even if unsigned fields are bigger than INT_MAX.
6046         (undistribute_ops_list): Change next_oecount_id type to unsigned int.
6047
6048         PR c++/80129
6049         * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
6050         TREE_READONLY on result if writing it more than once.
6051
6052         PR sanitizer/80110
6053         * doc/invoke.texi (-fsanitize=thread): Document that with
6054         -fnon-call-exceptions atomics are not able to throw
6055         exceptions.
6056
6057         PR sanitizer/80110
6058         * tsan.c: Include tree-eh.h.
6059         (instrument_builtin_call): Call maybe_clean_eh_stmt or
6060         maybe_clean_or_replace_eh_stmt where needed.
6061         (instrument_memory_accesses): Add cfg_changed argument.
6062         Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
6063         if it returned true.
6064         (tsan_pass): Adjust caller.  Return TODO_cleanup_cfg if cfg_changed.
6065
6066         PR rtl-optimization/63191
6067         * config/i386/i386.c (ix86_delegitimize_address): Turn into small
6068         wrapper function, moved the whole old content into ...
6069         (ix86_delegitimize_address_1): ... this.  New inline function.
6070         (ix86_find_base_term): Use ix86_delegitimize_address_1 with
6071         true as last argument instead of ix86_delegitimize_address.
6072
6073 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
6074
6075         * config/aarch64/aarch64.c (generic_branch_cost): Copy
6076         cortexa57_branch_cost.
6077
6078 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
6079
6080         * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
6081
6082 2017-03-21  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
6083
6084         PR target/80123
6085         * doc/md.texi (Constraints): Document wA constraint.
6086         * config/rs6000/constraints.md (wA): New.
6087         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
6088         (rs6000_init_hard_regno_mode_ok): Init wA constraint.
6089         * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
6090         * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
6091
6092 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
6093
6094         PR c++/80029
6095         * gimplify.c (is_oacc_declared): New function.
6096         (oacc_default_clause): Use it to set default flags for acc declared
6097         variables inside parallel regions.
6098         (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
6099         declared variables.
6100         (gimplify_oacc_declare): Gimplify the declare clauses.  Add the
6101         declare attribute to any decl as necessary.
6102
6103 2017-03-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6104
6105         PR target/80082
6106         * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
6107         (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
6108         * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
6109         (arm_arch_lpae): This.
6110         * config/arm/arm.c (arm_arch7ve): Rename into ...
6111         (arm_arch_lpae): This.  Define it in term of isa_bit_lpae.
6112         * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
6113         arm_arch_lpae.
6114
6115 2017-03-22  Martin Liska  <mliska@suse.cz>
6116
6117         PR target/79906
6118         * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
6119         error message instead of an ICE.
6120
6121 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6122
6123         * doc/extend.texi (6.11 Additional Floating Types): Revise.
6124
6125 2017-03-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
6126
6127         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
6128         comments.
6129         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
6130         comments.
6131
6132 2017-03-21  Martin Sebor  <msebor@redhat.com>
6133
6134         * doc/extend.texi: Use "cannot" instead of "can't."
6135         * doc/hostconfig.texi: Same.
6136         * doc/install.texi: Same.
6137         * doc/invoke.texi: Same.
6138         * doc/loop.texi: Same.
6139         * doc/md.texi: Same.
6140         * doc/objc.texi: Same.
6141         * doc/rtl.texi: Same.
6142         * doc/tm.texi: Same.
6143         * doc/tm.texi.in: Same.
6144         * doc/trouble.texi: Same.
6145
6146 2017-03-21  Alexandre Oliva <aoliva@redhat.com>
6147
6148         PR debug/63238
6149         * dwarf2out.c (struct checksum_attributes): Add at_alignment.
6150         (collect_checksum_attributes): Set it.
6151         (die_checksum_ordered): Use it.
6152
6153 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6154
6155         PR tree-optimization/79908
6156         * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
6157         change: For a VA_ARG whose LHS has been cast away, use
6158         force_gimple_operand to construct the side effects.
6159
6160 2017-03-21  David Malcolm  <dmalcolm@redhat.com>
6161
6162         PR translation/80001
6163         * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
6164         more amenable to translation.
6165         (oacc_loop_auto_partitions): Likewise.
6166
6167 2017-03-21  Marek Polacek  <polacek@redhat.com>
6168             Martin Sebor  <msebor@redhat.com>
6169
6170         PR tree-optimization/80109
6171         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
6172         on INTEGRAL_TYPE_P.
6173
6174 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
6175             Segher Boessenkool  <segher@kernel.crashing.org>
6176
6177         PR target/80125
6178         * combine.c (can_combine_p): Revert the 2017-03-20 change, only
6179         check reg_used_between_p between insn and one of succ or succ2
6180         depending on if succ is artificial insn not inserted into insn
6181         stream.
6182
6183 2017-03-21  Martin Liska  <mliska@suse.cz>
6184
6185         PR gcov-profile/80081
6186         * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
6187         * doc/gcc.texi: Include gcov-dump stuff.
6188         * doc/gcov-dump.texi: New file.
6189
6190 2017-03-21  Toma Tabacu  <toma.tabacu@imgtec.com>
6191
6192         PR rtl-optimization/79150
6193         * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
6194         conditional jump, if the jump is the last insn of the loop.
6195
6196 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6197             Richard Biener  <rguenth@suse.de>
6198
6199         PR tree-optimization/79908
6200         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
6201         been cast away, use force_gimple_operand to construct the side
6202         effects.
6203
6204 2017-03-21  Martin Liska  <mliska@suse.cz>
6205
6206         PR libfortran/79956
6207         * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
6208         to NULL.
6209
6210 2017-03-21  Brad Spengler <spender@grsecurity.net>
6211
6212         PR plugins/80094
6213         * plugin.c (htab_hash_plugin): New function.
6214         (add_new_plugin): Use it and adjust.
6215         (parse_plugin_arg_opt): Adjust.
6216         (init_one_plugin): Likewise.
6217
6218 2017-03-21  Richard Biener  <rguenther@suse.de>
6219
6220         PR tree-optimization/80032
6221         * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
6222         if set force the cleanup to happen unconditionally.
6223         (gimplify_target_expr): Push inserted clobbers with force_uncond
6224         to avoid them being removed by control-dependent DCE.
6225
6226 2017-03-21  Richard Biener  <rguenther@suse.de>
6227
6228         PR tree-optimization/80122
6229         * tree-inline.c (copy_bb): Do not expans va-arg packs or
6230         va_arg_pack_len when the inlined call stmt requires pack
6231         expansion itself.
6232         * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
6233
6234 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
6235
6236         PR sanitizer/78158
6237         * tsan.c (instrument_builtin_call): If the memory model argument
6238         is not a constant, assume it is valid.
6239
6240         PR c/67338
6241         * fold-const.c (round_up_loc): Negate divisor in unsigned type to
6242         avoid UB.
6243
6244 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
6245
6246         PR rtl-optimization/79910
6247         * combine.c (can_combine_p): Do not allow combining an I0 or I1
6248         if its dest is used by an insn before I2 (other than the combined
6249         insns themselves, which are properly handled already).
6250
6251 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
6252
6253         Revert:
6254         2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
6255
6256         * combine.c (record_used_regs): New static function.
6257         (try_combine): Handle situations where there is an additional
6258         instruction between I2 and I3 which needs to have a LOG_LINK
6259         updated.
6260
6261         Revert:
6262         2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
6263
6264         * combine.c (try_combine): Delete redundant i1 test.  Call
6265         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
6266
6267 2017-03-20  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
6268
6269         PR target/80083
6270         * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
6271         alternatives 13/14.
6272
6273 2017-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6274
6275         PR tree-optimization/80054
6276         * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
6277         the optimization if a PHI or any of its arguments is not dominated
6278         by the candidate's basis.  Use gphi* rather than gimple* as
6279         appropriate.
6280         (replace_profitable_candidates): Clean up a gimple* variable that
6281         should be a gphi* variable.
6282
6283 2017-03-20  Martin Sebor  <msebor@redhat.com>
6284
6285         PR c++/52477
6286         * doc/extend.texi (attribute constructor): Document present limitation.
6287
6288 2017-03-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
6289
6290         PR target/79963
6291         * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
6292         __POWER9_VECTOR__ #ifdef control, change template definition to
6293         use Power9-specific built-in function.
6294         (vec_any_eq): Likewise.
6295         * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
6296         to control outcomes from this test.
6297         (vector_ae_<mode>p): For VEC_F modes, likewise.
6298
6299 2017-03-20  Ian Lance Taylor  <iant@google.com>
6300
6301         * config/i386/i386.c (ix86_function_regparm): Save an extra
6302         register for -fsplit-stack with DECL_STATIC_CHAIN.
6303
6304 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
6305
6306         PR target/79912
6307         * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
6308         (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
6309
6310 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
6311
6312         * config/riscv/riscv.c (riscv_print_operand): Use "fence
6313         iorw,ow".
6314         * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
6315         iorw,iorw".
6316
6317 2017-03-20  Marek Polacek  <polacek@redhat.com>
6318
6319         PR sanitizer/80063
6320         * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
6321
6322 2017-03-20  Richard Biener  <rguenther@suse.de>
6323
6324         PR tree-optimization/80113
6325         * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
6326         allocate extra SSA name for PHI def.
6327         (add_close_phis_to_outer_loops): Likewise.
6328         (add_close_phis_to_merge_points): Likewise.
6329         (copy_loop_close_phi_args): Likewise.
6330         (copy_cond_phi_nodes): Likewise.
6331
6332 2017-03-20  Martin Liska  <mliska@suse.cz>
6333
6334         PR middle-end/79753
6335         * tree-chkp.c (chkp_build_returned_bound): Do not build
6336         returned bounds for a LHS that's not a BOUNDED_P type.
6337
6338 2017-03-20  Martin Liska  <mliska@suse.cz>
6339
6340         PR target/79769
6341         PR target/79770
6342         * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
6343         COMPLEX_CST and VECTOR_CST.
6344
6345 2017-03-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6346
6347         PR target/78857
6348         * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
6349         target operand.  A new splitter adds the clobber statement in case
6350         the target operand is dead anyway.
6351
6352 2017-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
6353
6354         * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
6355         to age-old versions of binutils and glibc.
6356
6357 2017-03-18  Segher Boessenkool  <segher@kernel.crashing.org>
6358
6359         * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
6360
6361 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
6362
6363         * doc/contrib.texi (Contributors): Add Segher Boessenkool.
6364
6365 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
6366
6367         * doc/install.texi (Specific) <arm-*-eabi>: Remove old
6368         requirement for binutils 2.13.
6369
6370 2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
6371
6372         * combine.c (try_combine): Delete redundant i1 test.  Call
6373         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
6374
6375 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com
6376
6377         * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
6378         riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
6379         contents.
6380         <riscv64-*-elf>: Re-arrange section
6381         <riscv32-*-elf>: Add a note about requiring binutils 2.28.
6382         <riscv32-*-linux>: Likewise.
6383         <riscv64-*-elf>: Likewise
6384         <riscv64-*-linux>: Likewise.
6385
6386 2017-03-17  Richard Earnshaw  <rearnsha@arm.com>
6387
6388         PR target/80052
6389         * aarch64.opt(verbose-cost-dump): Fix typo.
6390
6391 2017-03-17  Pat Haugen  <pthaugen@us.ibm.com>
6392
6393         PR target/79951
6394         * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
6395         for VECTOR_UNIT_VSX_P (<MODE>mode) too.
6396
6397 2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
6398
6399         * reload.c (find_reloads): When reloading a nonoffsettable address,
6400         use RELOAD_OTHER for it and its address reloads.
6401
6402         PR rtl-optimization/79910
6403         * combine.c (record_used_regs): New static function.
6404         (try_combine): Handle situations where there is an additional
6405         instruction between I2 and I3 which needs to have a LOG_LINK
6406         updated.
6407
6408 2017-03-17  Jeff Law  <law@redhat.com>
6409
6410         PR tree-optimization/71437
6411         * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
6412         conditional in the hash table first.
6413         (vrp_dom_walker::before_dom_children): Extract condition from
6414         ASSERT_EXPR.  Record condition, its inverion and any implied
6415         conditions as well.
6416
6417 2017-03-17  Marek Polacek  <polacek@redhat.com>
6418             Markus Trippelsdorf  <markus@trippelsdorf.de>
6419
6420         PR tree-optimization/80079
6421         * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
6422         m_stores_head.
6423
6424 2017-03-17  Richard Biener  <rguenther@suse.de>
6425
6426         PR middle-end/80075
6427         * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
6428         Properly verify the LHS before the RHS possibly claims to be
6429         handled.
6430         (stmt_could_throw_p): Hande gimple conds fully here.  Clobbers
6431         do not throw.
6432
6433 2017-03-17  Martin Jambor  <mjambor@suse.cz>
6434
6435         * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
6436         (List of -O2 options): Likewise.
6437         (-fipa-bit-cp): Replace "ipa" with "interprocedural."
6438         (-fipa-vrp) New.
6439
6440 2017-03-17  Tom de Vries  <tom@codesourcery.com>
6441
6442         * gcov-dump.c (print_usage): Print bug_report_url.
6443
6444 2017-03-17  Richard Biener  <rguenther@suse.de>
6445
6446         PR middle-end/80050
6447         * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
6448         (parser::peek): Likewise.
6449
6450 2017-03-17  Richard Biener  <rguenther@suse.de>
6451
6452         PR tree-optimization/80048
6453         * sese.c (free_sese_info): Properly release rename_map and
6454         copied_bb_map elements.
6455
6456 2017-03-16  Alexandre Oliva <aoliva@redhat.com>
6457
6458         * gimple-ssa-store-merging.c (struct imm_store_chain_info):
6459         Add linked-list forward and backlinks.  Insert on
6460         construction, remove on destruction.
6461         (class pass_store_merging): Add m_stores_head field.
6462         (pass_store_merging::terminate_and_process_all_chains):
6463         Iterate over m_stores_head list.
6464         (pass_store_merging::terminate_all_aliasing_chains):
6465         Likewise.
6466         (pass_store_merging::execute): Check for debug stmts first.
6467         Push new chains onto the m_stores_head stack.
6468
6469 2017-03-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
6470
6471         PR target/71294
6472         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
6473         SPLAT operation on ISA 2.07 64-bit systems that have direct move,
6474         but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
6475
6476 2017-03-16  Jeff Law  <law@redhat.com>
6477
6478         PR tree-optimization/71437
6479         * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
6480         member function.  Implementation moved into after_dom_children
6481         member function and into the threader's thread_outgoing_edges
6482         function.
6483         (dom_opt_dom_walker::after_dom_children): Simplify by moving
6484         some code into new thread_outgoing_edges.
6485         * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
6486         definition.  Simplify marker handling (do it here).   Assume we always
6487         have the available expression and the const/copies tables.
6488         (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
6489         and tree-vrp.c
6490         * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
6491         * tree-vrp.c (equiv_stack): No longer file scoped.
6492         (vrp_dom_walker): New class.
6493         (vrp_dom_walker::before_dom_children): New member function.
6494         (vrp_dom_walker::after_dom_children): Likewise.
6495         (identify_jump_threads):  Setup domwalker.  Use it rather than
6496         walking edges in a random order by hand.  Simplify setup/finalization.
6497         (finalize_jump_threads): Remove.
6498         (vrp_finalize): Do not call identify_jump_threads here.
6499         (execute_vrp): Do it here instead and call thread_through_all_blocks
6500         here too.
6501
6502         PR tree-optimization/71437
6503         * tree-ssa-dom.c (pfn_simplify): Add basic_block argument.  All
6504         callers changed.
6505         (simplify_stmt_for_jump_threading): Add basic_block argument.  All
6506         callers changed.
6507         (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
6508         (dom_opt_dom_walker::thread_across_edge): Remove
6509         handle_dominating_asserts argument.  All callers changed.
6510         (record_temporary_equivalences_from_stmts_at_dest): Corresponding
6511         changes.  Remove calls to lhs_of_dominating_assert.  Other
6512         uses of handle_dominating_asserts turn into unconditional code
6513         (simplify_control_stmt_condition_1): Likewise.
6514         (simplify_control_stmt_condition): Likewise.
6515         (thread_through_normal_block, thread_across_edge): Likewise.
6516         * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
6517         * tree-vrp.c (lhs_of_dominating_assert): Move here.  Return original
6518         object if it is not an SSA_NAME.
6519         (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
6520         before calling into the VRP specific simplifiers.
6521         (identify_jump_threads): Remove handle_dominating_asserts
6522         argument.
6523
6524 2017-03-16  Jakub Jelinek  <jakub@redhat.com>
6525
6526         PR fortran/79886
6527         * tree-diagnostic.c (default_tree_printer): No longer static.
6528         * tree-diagnostic.h (default_tree_printer): New prototype.
6529
6530 2017-03-16  Tamar Christina  <tamar.christina@arm.com>
6531
6532         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
6533         Change ins into fmov.
6534
6535 2017-03-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6536
6537         * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
6538         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
6539         Use h_con constraint for operand 1.
6540         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
6541         (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
6542
6543 2017-03-15  Jeff Law  <law@redhat.com>
6544
6545         PR tree-optimization/71437
6546         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
6547         (record_temporary_equivalences): Use it.
6548
6549         PR tree-optimization/71437
6550         * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
6551         tree-ssa-scopedtables.
6552         (lookup_avail_expr, build_and_record_new_cond): Likewise.
6553         (record_conditions, record_cond, vuse_eq): Likewise.
6554         (record_edge_info): Adjust to API tweak of record_conditions.
6555         (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
6556         (record_temporary_equivalences, optimize_stmt): Likewise.
6557         (eliminate_redundant_computations): Likewise.
6558         (record_equivalences_from_stmt): Likewise.
6559         * tree-ssa-scopedtables.c: Include options.h and params.h.
6560         (vuse_eq): New function, moved from tree-ssa-dom.c
6561         (build_and_record_new_cond): Likewise.
6562         (record_conditions): Likewise.  Accept vector of conditions rather
6563         than edge_equivalence structure for first argument.
6564         for the first argument.
6565         (avail_exprs_stack::lookup_avail_expr): New member function, moved
6566         from tree-ssa-dom.c.
6567         (avail_exprs_stack::record_cond): Likewise.
6568         * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
6569         from tree-ssa-dom.c.
6570         (avail_exprs_stack): Add new member functions lookup_avail_expr
6571         and record_cond.
6572         (record_conditions): Declare.
6573
6574 2017-03-15  Vladimir Makarov  <vmakarov@redhat.com>
6575
6576         PR target/80017
6577         * lra-constraints.c (process_alt_operands): Increase reject for
6578         reloading an input/output operand.
6579
6580 2017-03-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
6581
6582         PR target/79038
6583         * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
6584         insns to convert from signed/unsigned char/short to IEEE 128-bit
6585         floating point.
6586         (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
6587
6588 2017-03-15  Uros Bizjak  <ubizjak@gmail.com>
6589
6590         PR target/80019
6591         * config/i386/i386.c (ix86_vector_duplicate_value): Create
6592         subreg of inner mode for values already in registers.
6593
6594 2017-03-15  Bernd Schmidt  <bschmidt@redhat.com>
6595
6596         * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
6597         iteration reg is used after the loop.
6598
6599 2017-03-14  Martin Sebor  <msebor@redhat.com>
6600
6601         PR tree-optimization/79800
6602         * gimple-ssa-sprintf.c (format_floating: Add argument.  Handle
6603         precision in negative-positive range.
6604         (format_floating): Call non-const overload with adjusted precision.
6605
6606 2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6607
6608         PR target/79947
6609         * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
6610         -mpowerpc-gfxopt.
6611
6612 2017-03-14  Martin Sebor  <msebor@redhat.com>
6613
6614         PR middle-end/80020
6615         * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
6616         * builtins.def (aligned_alloc): Use it.
6617
6618         PR c/79936
6619         * Makefile.in (GTFILES): Add calls.c.
6620         * calls.c: Include "gt-calls.h".
6621
6622 2017-03-14  Bernd Schmidt  <bschmidt@redhat.com>
6623
6624         PR rtl-optimization/79728
6625         * regs.h (struct target_regs): New field
6626         x_contains_allocatable_regs_of_mode.
6627         (contains_allocatable_regs_of_mode): New macro.
6628         * reginfo.c (init_reg_sets_1): Initialize it, and change
6629         contains_reg_of_mode so it includes global regs as well.
6630         * reload.c (push_reload): Use contains_allocatable_regs_of_mode
6631         rather than contains_regs_of_mode.
6632
6633 2017-03-14  Martin Liska  <mliska@suse.cz>
6634
6635         * doc/invoke.texi: Document options that can't be combined with
6636         -fcheck-pointer-bounds.
6637
6638 2017-03-14  Martin Liska  <mliska@suse.cz>
6639
6640         PR middle-end/79831
6641         * doc/invoke.texi (-Wchkp): Document the option.
6642
6643 2017-03-14  Martin Liska  <mliska@suse.cz>
6644
6645         * Makefile.in: Install gcov-dump.
6646
6647 2017-03-14  Martin Liska  <mliska@suse.cz>
6648
6649         * multiple_target.c (expand_target_clones): Bail out for
6650         an invalid attribute.
6651
6652 2017-03-14  Richard Biener  <rguenther@suse.de>
6653
6654         * alias.c (struct alias_set_entry): Pack properly.
6655         * cfgloop.h (struct loop): Likewise.
6656         * cse.c (struct set): Likewise.
6657         * ipa-utils.c (struct searchc_env): Likewise.
6658         * loop-invariant.c (struct invariant): Likewise.
6659         * lra-remat.c (struct cand): Likewise.
6660         * recog.c (struct change_t): Likewise.
6661         * rtl.h (struct address_info): Likewise.
6662         * symbol-summary.h (function_summary): Likewise.
6663         * tree-loop-distribution.c (struct partition): Likewise.
6664         * tree-object-size.c (struct object_size_info): Likewise.
6665         * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
6666         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
6667         * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
6668         * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
6669         * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
6670         * tree-vectorizer.h (struct _loop_vec_info): Likewise.
6671         (struct _stmt_vec_info): Likewise.
6672
6673 2017-03-14  Martin Liska  <mliska@suse.cz>
6674
6675         PR target/79892
6676         * multiple_target.c (create_dispatcher_calls): Check that
6677         a target can create a function dispatcher.
6678
6679 2017-03-14  Martin Liska  <mliska@suse.cz>
6680
6681         PR lto/66295
6682         * multiple_target.c (expand_target_clones): Drop local.local
6683         flag for default implementation.
6684
6685 2017-03-14  Richard Biener  <rguenther@suse.de>
6686
6687         PR tree-optimization/80030
6688         * tree-vect-stmts.c (vectorizable_store): Plug memleak.
6689
6690 2017-03-13  Kito Cheng  <kito.cheng@gmail.com>
6691
6692         * config/riscv/riscv.c (riscv_emit_float_compare>: Use
6693         gcc_fallthrough() instead of __attribute__((fallthrough));
6694
6695 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
6696
6697         * doc/gcc.texi: Remove "up" link to (DIR).
6698         * doc/gccint.texi: Ditto.
6699
6700 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
6701
6702         * doc/install.texi (Specific) <avr>: Remove reference to
6703         binutils 2.13.
6704
6705 2017-03-13  Jeff Law  <law@redhat.com>
6706
6707         * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
6708         attribute rather than comments.
6709
6710         * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
6711         match_scratch operand is highest.
6712
6713 2017-03-13  Martin Liska  <mliska@suse.cz>
6714
6715         PR middle-end/78339
6716         * ipa-pure-const.c (warn_function_noreturn): If the declarations
6717         is a CHKP clone, use original declaration.
6718
6719 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
6720
6721         * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
6722         (arc_conditional_register_usage): Use a different allocation order
6723         when optimizing for size.
6724         * common/config/arc/arc-common.c (arc_option_optimization_table):
6725         Section anchors default on when optimizing for size.
6726
6727 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
6728
6729         * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
6730
6731 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
6732
6733         * config/arc/arc.c (arc_output_addsi): Emit code density adds.
6734         * config/arc/arc.md (cpu_facility): Add cd variant.
6735         (*movqi_insn): Add code density variant.
6736         (*movhi_insn): Likewise.
6737         (*movqi_insn): Likewise.
6738         (*addsi3_mixed): Likewise.
6739         (subsi3_insn): Likewise.
6740
6741 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
6742
6743         * config/arc/arc.md (movsi_cond_exec): Update constraint.
6744
6745 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
6746
6747         * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
6748         expressions with MINUS and UNARY ops.
6749
6750 2017-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6751
6752         PR target/79911
6753         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
6754         Rename to...
6755         (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
6756         between vec_select and vector argument.
6757         (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
6758         (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
6759         (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
6760         (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
6761         (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
6762         (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
6763
6764 2017-03-13  Richard Biener  <rguenther@suse.de>
6765
6766         PR other/79991
6767         * params.def (vect-max-peeling-for-alignment): Fix typo.
6768
6769 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
6770
6771         * doc/install.texi (Specific) <mips-*-*>: Remove description of
6772         issue that only occurred with binutils below 2.18.
6773
6774 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
6775
6776         * doc/install.texi (Specific) <cris-axis-elf>: No longer
6777         refer to binutils 2.11/2.12 minimum.
6778
6779 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
6780
6781         * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
6782         ftp.kernel.org and simplify binutils requirement.
6783
6784 2017-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
6785
6786         * doc/invoke.texi (Warning Options): Fix spelling of link-time
6787         optimization.
6788         (Optimize Options): Ditto.  Also remove redundancy.
6789
6790 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
6791
6792         PR translation/79848
6793         * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
6794         "%qs".
6795         * ipa-pure-const.c (suggest_attribute): Likewise.  Convert _
6796         to G_ to avoid double translation.
6797
6798 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
6799
6800         PR translation/79923
6801         * auto-profile.c (get_combined_location): Convert leading
6802         character of diagnostics to lower case and remove trailing period.
6803         (read_profile): Likewise for various diagnostics.
6804         * config/arm/arm.c (arm_option_override): Remove trailing period
6805         from various diagnostics.
6806         * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
6807         (msp430_expand_delay_cycles): Likewise.
6808
6809 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
6810
6811         PR target/79925
6812         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
6813         full command-line argument, rather than just "str".
6814         (aarch64_validate_march): Likewise.
6815         (aarch64_validate_mtune): Likewise.
6816
6817 2017-03-10  Bernd Schmidt  <bschmidt@redhat.com>
6818
6819         PR rtl-optimization/78911
6820         * lra-assigns.c (must_not_spill_p): New function.
6821         (spill_for): Use it.
6822
6823 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
6824
6825         PR tree-optimization/79981
6826         * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
6827         ATOMIC_COMPARE_EXCHANGE ifn result.
6828         (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
6829         IFN_ATOMIC_COMPARE_EXCHANGE.
6830
6831 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
6832
6833         PR driver/79875
6834         * opts.c (parse_sanitizer_options): Add missing question mark to
6835         "did you mean" message.
6836
6837 2017-03-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6838
6839         * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
6840         built-in.
6841         (VMULEUH_UNS): Likewise.
6842         (VMULOUB_UNS): Likewise.
6843         (VMULOUH_UNS): Likewise.
6844         * config/rs6000/rs6000.c (builtin_function_type): Remove
6845         references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
6846
6847 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
6848
6849         PR bootstrap/79952
6850         * read-rtl-function.c (function_reader::read_rtx_operand): Update
6851         x with result of extra_parsing_for_operand_code_0.
6852         (function_reader::extra_parsing_for_operand_code_0): Convert
6853         return type from void to rtx, returning x.  When reading
6854         SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
6855         larger size containing struct block_symbol.
6856
6857 2017-03-10  Segher Boessenkool  <segher@kernel.crashing.org>
6858
6859         * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
6860         -mfloat128-hardware without -m64.
6861
6862 2017-03-10  Will Schmidt <will_schmidt@vnet.ibm.com>
6863
6864         PR target/79941
6865         * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
6866         entries to the case statement that marks unsigned arguments to
6867         overloaded functions.
6868
6869 2017-03-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
6870
6871         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
6872         two typographic errors in the handling of TARGET_UPPER_REGS_DI.
6873
6874 2017-03-10  Pat Haugen  <pthaugen@us.ibm.com>
6875
6876         PR target/79907
6877         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
6878         TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
6879
6880 2017-03-10  Martin Liska  <mliska@suse.cz>
6881
6882         PR target/65705
6883         PR target/69804
6884         * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
6885         * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
6886         FIELD != NULL.
6887
6888 2017-03-10  Olivier Hainque  <hainque@adacore.com>
6889
6890         * tree-switch-conversion (array_value_type): Start by resetting
6891         candidate type to it's main variant.
6892
6893 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
6894
6895         PR rtl-optimization/79909
6896         * combine.c (try_combine): Use simplify_replace_rtx on individual
6897         CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
6898         of the whole CALL_INSN_FUNCTION_USAGE.
6899
6900         PR tree-optimization/79972
6901         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
6902         get_range_info on SSA_NAMEs.  Formatting fixes.
6903
6904 2017-03-10  Richard Biener  <rguenther@suse.de>
6905             Jakub Jelinek  <jakub@redhat.com>
6906
6907         PR tree-optimization/77975
6908         * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
6909         edge to be constant.
6910         (get_val_for): For constant x return it.  Formatting fix.
6911         (loop_niter_by_eval): Avoid pointless looping if the next iteration
6912         would use the same bases as the current one.
6913
6914 2017-03-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6915
6916         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
6917         instead of vec_select for V1TImode.
6918         * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
6919         longer needed.
6920         (VSX_LE_128): Add V1TI to this mode iterator.
6921         (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
6922         (*vsx_le_perm_store_<mode>): Likewise.
6923         (pre-reload splitter for VSX stores): Likewise.
6924         (post-reload splitter for VSX stores): Likewise.
6925         (*vsx_xxpermdi2_le_<mode>): Likewise.
6926         (*vsx_lxvd2x2_le_<mode>): Likewise.
6927         (*vsx_stxvd2x2_le_<mode>): Likewise.
6928
6929 2017-03-09  Michael Eager  <eager@eagercon.com>
6930
6931         Correct failures with --enable-checking=yes,rtl.
6932
6933         * config/microblaze/microblaze.c (microblaze_expand_shift):
6934         Replace GET_CODE test with CONST_INT_P and INTVAL test with
6935         test for const0_rtx.
6936         * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
6937         lshrsi3_byone): Replace INTVAL with test for const1_rtx.
6938
6939 2017-03-09  Richard Biener  <rguenther@suse.de>
6940
6941         PR tree-optimization/79977
6942         * graphite-scop-detection.c (scop_detection::merge_sese):
6943         Handle the case of extra exits to blocks dominating the entry.
6944
6945 2017-03-09  Toma Tabacu  <toma.tabacu@imgtec.com>
6946
6947         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
6948         Document rdynamic.
6949
6950 2017-03-09  Vladimir Makarov  <vmakarov@redhat.com>
6951
6952         PR rtl-optimization/79949
6953         * lra-constraints.c (process_alt_operands): Check memory when
6954         trying to predict a cycle.  Print about the overall increase.
6955
6956 2017-03-09  Richard Biener  <rguenther@suse.de>
6957
6958         PR middle-end/79971
6959         * gimple-expr.c (useless_type_conversion_p): Preserve
6960         TYPE_SATURATING for fixed-point types.
6961
6962 2017-03-09  Richard Biener  <rguenther@suse.de>
6963
6964         PR ipa/79970
6965         * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
6966         alignment of BLKmode params.
6967
6968 2017-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6969
6970         PR target/79913
6971         * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
6972         (VALL_NO_V2Q): Likewise.
6973         (VDQF_DF): Delete.
6974         * config/aarch64/aarch64-simd.md
6975         (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
6976         iterator.
6977         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
6978         VALL_NO_V2Q mode iterator.
6979         (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
6980
6981 2017-03-09  Martin Liska  <mliska@suse.cz>
6982
6983         PR tree-optimization/79631
6984         * tree-chkp-opt.c (chkp_is_constant_addr): Call
6985         tree_int_cst_sign_bit just for INTEGER constants.
6986
6987 2017-03-09  Martin Liska  <mliska@suse.cz>
6988
6989         PR target/65705
6990         PR target/69804
6991         * toplev.c (process_options): Disable -fcheck-pointer-bounds with
6992         sanitizers.
6993
6994 2017-03-09  Marek Polacek  <polacek@redhat.com>
6995
6996         PR c++/79672
6997         * tree.c (inchash::add_expr): Handle TREE_VEC.
6998
6999 2017-03-09  Martin Liska  <mliska@suse.cz>
7000
7001         PR ipa/79764
7002         (chkp_narrow_size_and_offset): New function.
7003         (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
7004         (void chkp_parse_bit_field_ref): New function.
7005         (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
7006         (chkp_process_stmt): Use chkp_parse_bit_field_ref.
7007
7008 2017-03-09  Martin Liska  <mliska@suse.cz>
7009
7010         PR ipa/79761
7011         * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
7012         (chkp_find_bounds_1): Remove gcc_unreachable.
7013
7014 2017-03-09  Jakub Jelinek  <jakub@redhat.com>
7015
7016         PR sanitizer/79944
7017         * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
7018         BUILT_IN_SYNC*, determine the access type from the size suffix and
7019         always build a MEM_REF with that type.  Handle forgotten
7020         BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
7021
7022         PR target/79932
7023         * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
7024         _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
7025         _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
7026         _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
7027         _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
7028         _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
7029         _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
7030         _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
7031         _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
7032         _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
7033         _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
7034         _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
7035         _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
7036         _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
7037         _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
7038         _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
7039         _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
7040         _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
7041         _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
7042         _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
7043         _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
7044         _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
7045         _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
7046         _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
7047         _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
7048         _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
7049         _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
7050         _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
7051         _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
7052         _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
7053         definitions outside of __OPTIMIZE__ guarded section.
7054
7055         PR target/79932
7056         * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
7057         _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
7058         _mm512_packus_epi32, _mm512_maskz_packus_epi32,
7059         _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
7060         guarded section.
7061
7062 2017-03-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7063
7064         * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
7065         ("vfenez<mode>"): Add missing constraints.
7066
7067 2017-03-08  Martin Sebor  <msebor@redhat.com>
7068
7069         PR target/79928
7070         * config/nds32/nds32.c (nds32_option_override):
7071         Fix misspelled diagnostic.
7072
7073 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
7074
7075         PR c/79940
7076         * gimplify.c (gimplify_omp_for): Replace index var in outer
7077         taskloop statement with an artificial variable and add
7078         OMP_CLAUSE_PRIVATE clause for it.
7079
7080 2017-03-08  Richard Biener  <rguenther@suse.de>
7081
7082         PR tree-optimization/79955
7083         * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
7084         for accesses that are completely outside of the variable.
7085
7086 2017-03-08  Andrew Haley  <aph@redhat.com>
7087
7088         PR tree-optimization/79943
7089         * tree-ssa-loop-split.c (compute_new_first_bound): When
7090         calculating the new upper bound, (END-BEG) should be added, not
7091         subtracted.
7092
7093 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
7094
7095         * config/avr/avr.md (setmemhi): Make sure match_dup
7096         operand number comes before match_scratch.
7097
7098 2017-03-08  Richard Biener  <rguenther@suse.de>
7099
7100         PR tree-optimization/79920
7101         * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
7102         with ncopies == 1 to ...
7103         (vect_transform_slp_perm_load): ... here.  Properly compute
7104         all element loads by iterating VF times over the group.  Do
7105         not handle ncopies (computed in a broken way) in
7106         vect_create_mask_and_perm.
7107
7108 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
7109
7110         PR sanitizer/79904
7111         * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
7112         is a uniform vector, use uniform_vector_p return value instead of
7113         building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
7114
7115 2017-03-07  Marek Polacek  <polacek@redhat.com>
7116
7117         PR middle-end/79809
7118         * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
7119         (alloca_call_type): Likewise.
7120
7121 2017-03-07  Martin Liska  <mliska@suse.cz>
7122
7123         * gcov.c (process_args): Put comment to correct location.
7124
7125 2017-03-07  Martin Liska  <mliska@suse.cz>
7126
7127         PR middle-end/68270
7128         * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
7129         Use array_at_struct_end_p instead of DECL_CHAIN (field).
7130         (chkp_narrow_bounds_for_field): Likewise.
7131         (chkp_parse_array_and_component_ref): Pass one more argument to
7132         call.
7133
7134 2017-03-07  Richard Biener  <rguenther@suse.de>
7135
7136         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
7137         preheaders.
7138
7139 2017-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
7140
7141         * config/i386/i386.c (ix86_local_alignment): Align most aggregates
7142         of 16 bytes and more to 16 bytes, not those of 16 bits and more.
7143
7144 2017-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7145
7146         PR c/79855
7147         * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
7148         to end of description.
7149         (PARAM_MAX_STORES_TO_MERGE): Likewise.
7150
7151 2017-03-07  Jakub Jelinek  <jakub@redhat.com>
7152
7153         PR rtl-optimization/79901
7154         * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
7155         ...
7156         (*avx512f_<code><mode>3<mask_name>): ... this.
7157         (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
7158         iterator instead of VI8_AVX2_AVX512BW.
7159
7160         PR rtl-optimization/79901
7161         * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
7162         min/max expander, expand it using expand_vec_cond_expr.
7163
7164         PR sanitizer/79897
7165         * ubsan.c (ubsan_encode_value): Call mark_addressable on the
7166         temporary.
7167
7168 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
7169
7170         PR c++/79821
7171         * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
7172         to void * for PCH reasons.
7173         * dwarf2out.c (output_loc_operands, output_die): Cast
7174         v.val_vec.array to unsigned char *.
7175
7176 2017-03-06  John David Anglin  <danglin@gcc.gnu.org>
7177
7178         PR target/77850
7179         * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
7180         vector types.
7181
7182 2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>
7183
7184         PR rtl-optimization/79571
7185         * lra-constraints.c (process_alt_operands): Calculate static
7186         reject and subtract it from overall when only addresses will be
7187         reloaded.
7188
7189 2017-03-06  Julia Koval  <julia.koval@intel.com>
7190
7191         PR target/79793
7192         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
7193         incoming stack boundary to 128 for 64-bit targets.
7194
7195 2017-03-06  Richard Biener  <rguenther@suse.de>
7196
7197         PR tree-optimization/79894
7198         * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
7199         to NULL after folding it.
7200
7201 2017-03-06  Richard Biener  <rguenther@suse.de>
7202
7203         PR tree-optimization/79824
7204         * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
7205         check disabling peeling for gaps.
7206
7207 2017-03-06  Toma Tabacu  <toma.tabacu@imgtec.com>
7208
7209         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
7210         attributes): Document gettimeofday.
7211
7212 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
7213
7214         * config/s390/s390.c (s390_option_override_internal): Set
7215         PARAM_MIN_VECT_LOOP_BOUND
7216
7217 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
7218
7219         * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
7220         * config/s390/s390.md: Likewise.
7221
7222 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
7223
7224         PR target/79812
7225         * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
7226         (<avx2_avx512>_perm<mode>): Rename to ...
7227         (avx2_perm<mode>): ... this.  Use VI8F_256 iterator instead
7228         of VI8F_256_512.
7229         (<avx512>_perm<mode>_mask): Rename to ...
7230         (avx512vl_perm<mode>_mask): ... this.  Use VI8F_256 iterator instead
7231         of VI8F_256_512.
7232         (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
7233         (avx2_perm<mode>_1<mask_name): ... this.  Use VI8F_256 iterator
7234         instead of VI8F_256_512.
7235         (avx512f_perm<mode>): New define_expand.
7236         (avx512f_perm<mode>_mask): Likewise.
7237         (avx512f_perm<mode>_1<mask_name>): New define_insn.
7238         (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
7239
7240 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
7241
7242         * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
7243         msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
7244         if_then_else.
7245         (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
7246
7247 2017-03-06  Martin Liska  <mliska@suse.cz>
7248
7249         PR sanitize/79783
7250         * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
7251         when having a SSA NAME w/o VAR_DECL assigned to it.
7252
7253 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
7254
7255         * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
7256         msa_dpsub_<su>_d): Fix MODE for vec_select.
7257
7258 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
7259
7260         * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
7261         argument.
7262         * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
7263
7264 2017-03-06  Richard Biener  <rguenther@suse.de>
7265
7266         * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
7267         * plugin.c (register_plugin_info): Likewise.
7268         * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
7269
7270 2017-03-05  Jakub Jelinek  <jakub@redhat.com>
7271
7272         * config/i386/sse.md (sse_storehps, sse_storelps,
7273         avx_<castmode><avxsizesuffix>_<castmode>,
7274         avx512f_<castmode><avxsizesuffix>_<castmode>,
7275         avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
7276         in condition that at least one operand is not a MEM.
7277
7278 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
7279
7280         PR middle-end/79805
7281         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
7282         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
7283         ECF_NOTHROW.
7284         * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
7285         gimple_call_nothrow_p flag based on whether original builtin can throw.
7286         If it can, emit following stmts on the fallthrough edge.
7287         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
7288         don't create new bb if inserting just debug stmts on the edge, try to
7289         insert them on the fallthru bb or just reset debug stmts.
7290
7291 2017-03-03  Segher Boesssenkool  <segher@kernel.crashing.org>
7292
7293         PR target/43763
7294         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
7295         restore recog_data (including the operand rtxes inside it) around
7296         the call to get_insn_template.
7297
7298 2017-03-03  Martin Sebor  <msebor@redhat.com>
7299
7300         PR tree-optimization/79699
7301         * context.c (context::~context): Free MPFR caches to avoid
7302         a memory leak on program exit.
7303
7304 2017-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7305
7306         * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
7307         Use wide_int::ulow () instead of .elt (0).
7308
7309 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
7310
7311         * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
7312         (*pushxf): Limit oF constraint to 32bit targets and add oC
7313         constraint for 64bit targets.
7314         (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
7315         (*pushdf): Change rmF constraint to rmC.
7316
7317 2017-03-03  Martin Liska  <mliska@suse.cz>
7318
7319         * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
7320         Remove unused variable.
7321
7322 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
7323
7324         PR target/79807
7325         * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
7326         is a memory operand, increase num_memory.
7327         (ix86_expand_args_builtin): Likewise.
7328
7329 2017-03-03  Jan Hubicka  <jh@suse.cz>
7330
7331         PR lto/79760
7332         * ipa-devirt.c (maybe_record_node): Properly handle
7333         __cxa_pure_virtual visibility.
7334
7335 2017-03-03  Martin Liska  <mliska@suse.cz>
7336
7337         PR tree-optimization/79803
7338         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
7339         assert.
7340         (pass_loop_prefetch::execute): Disabled optimization if an
7341         assumption about L1 cache size is not met.
7342
7343 2017-03-03  Martin Liska  <mliska@suse.cz>
7344
7345         PR rtl-optimization/79574
7346         * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
7347         (hash_scan_set): Likewise.
7348         (dump_hash_table): Likewise.
7349         (hoist_code): Likewise.
7350
7351 2017-03-03  Richard Biener  <rguenther@suse.de>
7352
7353         * fixed-value.c (fixed_from_string): Restore use of elt (1)
7354         in place of uhigh ().
7355         (fixed_convert_from_real): Likewise.
7356
7357 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
7358
7359         PR target/79514
7360         * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
7361
7362 2017-03-03  Richard Biener  <rguenther@suse.de>
7363
7364         PR middle-end/79818
7365         * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
7366         TYPE_OVERFLOW_UNDEFINED check.
7367
7368 2017-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7369
7370         * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
7371         numbers.
7372         (vector_ae_<mode>_p): Likewise.
7373         (vector_nez_<mode>_p): Likewise.
7374         (vector_ne_v2di_p): Likewise.
7375         (vector_ae_v2di_p): Likewise.
7376         (vector_ne_<mode>_p): Likewise.
7377         * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
7378         numbers.
7379         (vsx_tsqrt<mode>2_fe): Likewise.
7380
7381 2017-03-02  Uros Bizjak  <ubizjak@gmail.com>
7382
7383         PR target/79514
7384         * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
7385
7386 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
7387
7388         PR rtl-optimization/79780
7389         * cprop.c (one_cprop_pass): When second and further conditional trap
7390         in a single basic block is turned into an unconditional trap, turn it
7391         into a deleted note to avoid RTL verification failures.
7392
7393 2017-03-02  Richard Biener  <rguenther@suse.de>
7394
7395         * fold-const.c (const_binop): Use ulow () instead of elt (0).
7396
7397 2017-03-02  Richard Biener  <rguenther@suse.de>
7398
7399         PR tree-optimization/79345
7400         PR c++/42000
7401         * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
7402         param and abort the walk, returning -1 if it is hit.
7403         (walk_aliased_vdefs): Take a limit param and pass it on.
7404         * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
7405         defaulting to 0 and return a signed int.
7406         * tree-ssa-uninit.c (struct check_defs_data): New struct.
7407         (check_defs): New helper.
7408         (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
7409         about uninitialized memory.
7410         * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
7411         bogus uninitialized warning.
7412         (fixed_convert_from_real): Likewise.
7413
7414 2017-03-02  Bin Cheng  <bin.cheng@arm.com>
7415
7416         PR tree-optimization/66768
7417         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
7418         iv_use if base object can't be determined.
7419
7420 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
7421
7422         PR tree-optimization/79345
7423         * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
7424         * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
7425         (get_pattern_stats): Initialize it.
7426         * genemit.c (gen_expand): Verify match_scratch numbers come after
7427         match_operand/match_dup numbers.
7428         * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
7429         match_scratch numbers.
7430         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
7431         Likewise.
7432         * config/s390/s390.md (trunctdsd2): Likewise.
7433
7434 2017-03-02  Richard Biener  <rguenther@suse.de>
7435
7436         * wide-int.h (wide_int_storage::operator=): Implement in terms
7437         of wi::copy.
7438
7439 2017-03-02  Richard Biener  <rguenther@suse.de>
7440
7441         PR tree-optimization/79777
7442         * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
7443         the to insert expression to sth existing.
7444
7445 2017-03-01  Martin Sebor  <msebor@redhat.com>
7446
7447         PR middle-end/79692
7448         * gimple-ssa-sprintf.c
7449         (directive::known_width_and_precision): New function.
7450         (format_integer): Use it.
7451         (get_mpfr_format_length): Consider the full range of precision
7452         when computing %g output with the # flag.  Set the likely byte
7453         count to 3 rather than 1 when precision is indeterminate.
7454         (format_floating): Correct the lower bound of precision.
7455
7456 2017-03-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7457
7458         * doc/invoke.texi: Document default code model for 64-bit Linux.
7459
7460 2017-03-01  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
7461
7462         PR target/79752
7463         * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
7464         udiv rather than div since input pattern is unsigned.
7465
7466 2017-03-01  Uros Bizjak  <ubizjak@gmail.com>
7467
7468         * config/i386/i386.c (print_reg): Warn for values of
7469         unsupported size in integer register.
7470
7471 2017-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
7472
7473         PR target/79439
7474         * config/rs6000/predicates.md (current_file_function_operand): Do
7475         not allow self calls to be local if the function is replaceable.
7476
7477 2017-03-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
7478
7479         PR target/79395
7480         * config/rs6000/altivec.h (vec_ctz and others): Change the
7481         preprocessor macro that controls conditional compilation from
7482         _ARCH_PWR9 to __POWER9_VECTOR__.
7483         (vec_all_ne): Change parameterization of __altivec_scalar_pred
7484         macro expansion under preprocessor #ifdef __POWER9_VECTOR__
7485         control (instead of _ARCH_PWR9 control) so that template
7486         definition uses power9-specific function.
7487         (vec_any_eq): Likewise.
7488         (vec_all_ne): Change macro definition to use a power9-specific
7489         expansion under #ifdef __POWER9_VECTOR__ control (instead of
7490         _ARCH_PWR9 control).
7491         (vec_any_eq) Likewise.
7492         * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
7493         expansion for CMPNEF to remove support for xvcmpnesp instruction.
7494         (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
7495         support for xvcmpnedp instruction.
7496         (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
7497         macro expansion so that Power9 implementation of vec_all_ne does
7498         not use the AltiVec predicate framework.
7499         (VCMPNEH_P): Likewise.
7500         (VCMPNEW_P): Likewise.
7501         (VCMPNED_P): Likewise.
7502         (VCMPNEFP_P): Likewise.
7503         (VCMPNEDP_P): Likewise.
7504         (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
7505         implementation of vec_any_eq to not use AltiVec predicate
7506         framework.
7507         (VCMPAEH_P): Likewise.
7508         (VCMPAEW_P): Likewise.
7509         (VCMPAED_P): Likewise.
7510         (VCMPAEFP_P): Likewise.
7511         (VCMPAEDP_P): Likewise.
7512         (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
7513         BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
7514         not use the AltiVec predicate framework.
7515         (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
7516         of vec_any_eq to not use AltiVec predicate framework.
7517         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
7518         support for predefined __POWER9_VECTOR__ macro to indicate that
7519         Power9 instruction selection is enabled.
7520         (altivec_overloaded_builtins): Remove extraneous
7521         ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
7522         function argument types RS6000_BTI_bool_V16QI and
7523         RS6000_BTI_bool_V16QI.  Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
7524         entry for overloaded function argument types RS6000_BTI_bool_V4SI
7525         andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB.  Remove
7526         two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
7527         P9V_BUILTIN_CMPNEF to force use of instructions not specific to
7528         Power9 for implementations of vec_cmpne.  Change the signature for
7529         all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
7530         (representing vec_all_ne) to remove the previously described first
7531         argument of type RS6000_BTI_INTSI, as this was an artifact of
7532         reliance on the AltiVec predicate framework, which is no longer
7533         used in the implementation of these functions.  Add
7534         P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
7535         function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
7536         since, unlike the AltiVec predicate framework implementation, we
7537         do not share function descriptors between vec_alle and vec_anyeq.
7538         (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
7539         set of modes that receive special treatment even when
7540         TARGET_P9_VECTOR is true.  The special treatment emits code that
7541         does not depend on Power9 instructions.
7542         * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
7543         define_expand to not rely on AltiVec predicate framework.
7544         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
7545         function.
7546         (vector_ne_v2di_p): Change this define_expand to not rely on
7547         AltiVec predicate framework.
7548         (vector_ae_v2di_p): New define_expand to represent vec_any_eq
7549         function.
7550         (vector_ne_<mode>_p): Change this define_expand to not rely on
7551         AltiVec predicate framework.
7552         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
7553         function.
7554         * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
7555         (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
7556         define_insn pattern.
7557         (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
7558         define_insn pattern because the xvcmpne<VSs>. instruction is not
7559         supported.
7560         (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
7561         instruction is not supported.
7562
7563 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
7564
7565         * config/nvptx/nvptx.c: Include intl.h.
7566
7567 2017-03-01  Martin Jambor  <mjambor@suse.cz>
7568
7569         PR lto/78140
7570         * ipa-prop.h (ipa_bits): Removed field known.
7571         (ipa_jump_func): Removed field vr_known.  Changed fields bits and m_vr
7572         to pointers.  Adjusted their comments to warn about their sharing.
7573         (ipcp_transformation_summary): Change bits to a vector of pointers.
7574         (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
7575         (ipa_get_ipa_bits_for_value): Declare.
7576         * tree-vrp.h (value_range): Mark as GTY((for_user)).
7577         * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
7578         (ipa_bits_hash_table): Likewise.
7579         (ipa_vr_ggc_hash_traits): Likewise.
7580         (ipa_vr_hash_table): Likewise.
7581         (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
7582         being pointers and vr_known being removed.
7583         (ipa_set_jf_unknown): Likewise.
7584         (ipa_get_ipa_bits_for_value): New function.
7585         (ipa_set_jfunc_bits): Likewise.
7586         (ipa_get_value_range): New overloaded functions.
7587         (ipa_set_jfunc_vr): Likewise.
7588         (ipa_compute_jump_functions_for_edge): Use the above functions to
7589         construct bits and vr parts of jump functions.
7590         (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
7591         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
7592         exist.
7593         (ipcp_grow_transformations_if_necessary): Also allocate
7594         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
7595         exist.
7596         (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
7597         them.  Fix too long lines.
7598         (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
7599         vr_known being removed.
7600         (ipa_read_jump_function): Use new setter functions to construct bits
7601         and vr parts of jump functions or set them to NULL.
7602         (write_ipcp_transformation_info): Adjust for bits being pointers.
7603         (read_ipcp_transformation_info): Likewise.
7604         (ipcp_update_bits): Likewise.  Fix excessively long lines a trailing
7605         space.
7606         Include gt-ipa-prop.h.
7607         * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
7608         being pointers.
7609         (ipcp_store_bits_results): Likewise.
7610         (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
7611         Do not write to existing jump functions but use a temporary instead.
7612
7613 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
7614
7615         PR c++/79681
7616         * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
7617         attempt to use its first operand as BIT_FIELD_REF base.
7618
7619 2017-03-01  Richard Biener  <rguenther@suse.de>
7620
7621         PR middle-end/79721
7622         * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
7623         interpolating formula in wrapping arithmetic.
7624         (chrec_apply): Convert chrec_evaluate return value to wanted type.
7625
7626 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
7627
7628         PR tree-optimization/79734
7629         * tree-vect-generic.c (expand_vector_condition): Optimize
7630         AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
7631         Handle VEC_COND_EXPR where comparison has different inner width from
7632         type's inner width.
7633
7634 2017-02-28  Sandra Loosemore  <sandra@codesourcery.com>
7635
7636         * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
7637         markup, and similar issues.  Remove @opindex entries for things
7638         that aren't options.  Add missing -mmpy-option entries.
7639
7640 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
7641
7642         PR tree-optimization/79737
7643         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
7644         a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
7645         tmpbuf[byte_size - 1].  Call natice_encode_expr with byte_size - 1
7646         instead of byte_size.  Formatting fix.
7647         (shift_bytes_in_array_right): Formatting fix.
7648
7649 2017-02-28  Eric Botcazou  <ebotcazou@adacore.com>
7650
7651         PR target/79749
7652         * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
7653         condition on optimize for the leaf function test.
7654
7655 2017-02-28  Martin Liska  <mliska@suse.cz>
7656
7657         PR lto/79625
7658         * read-rtl-function.c (function_reader::handle_unknown_directive):
7659         Bail out when one uses -flto.
7660
7661 2017-02-28  Martin Liska  <mliska@suse.cz>
7662
7663         * common.opt: Replace space with tabular for options of <number>
7664         type.
7665         * config/i386/i386.opt: Show <number> value for
7666         -mlarge-data-threshold.
7667         * opts.c (print_filtered_help): Do not display number in hexadecimal
7668         format.
7669
7670 2017-02-28  Martin Liska  <mliska@suse.cz>
7671
7672         * common.opt: Fix --help=option -Q for options which are of
7673         an enum type.
7674
7675 2017-02-28  Uros Bizjak  <ubizjak@gmail.com>
7676
7677         * config/i386/i386.c (print_reg): Error out for values
7678         of 8-bit size in invalid integer register.
7679
7680 2017-02-28  Martin Sebor  <msebor@redhat.com>
7681
7682         PR tree-optimization/79691
7683         * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
7684
7685 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
7686
7687         PR target/79729
7688         * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
7689         gcc_unreachable with output_operand_lossage.
7690
7691 2017-02-28  Richard Biener  <rguenther@suse.de>
7692
7693         PR tree-optimization/79740
7694         * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
7695         inserts.
7696         (visit_nary_op): Insert the nary into the hashtable if we
7697         pattern-matched sth.
7698         * tree-ssa-pre.c (eliminate_insert): Robustify.
7699
7700 2017-02-28  Richard Biener  <rguenther@suse.de>
7701
7702         PR middle-end/79731
7703         * fold-const.c (decode_field_reference): Reject out-of-bound
7704         accesses.
7705
7706 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
7707
7708         * config/i386/i386.c: Include intl.h.
7709         (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
7710         instead of just cond ? "..." : "...".
7711         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
7712         * coverage.c (read_counts_file): Likewise.
7713         * omp-offload.c: Include intl.h.
7714         (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
7715         of just cond ? "..." : "...".
7716         * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
7717         of just cond ? "..." : "...".
7718
7719 2017-02-28  Richard Earnshaw  <rearnsha@arm.com>
7720
7721         PR target/79742
7722         * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
7723         entry, if present.
7724         * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
7725         'tune for' CPU name.
7726         * config/arm/arm-cpu-data.h: Regenerated.
7727
7728 2017-02-28  Richard Biener  <rguenther@suse.de>
7729
7730         PR tree-optimization/79732
7731         * tree-inline.c (expand_call_inline): Do not shadow var.
7732
7733 2017-02-28  Richard Biener  <rguenther@suse.de>
7734
7735         PR tree-optimization/79723
7736         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
7737         address-space properly.
7738
7739 2017-02-28  Thomas Schwinge  <thomas@codesourcery.com>
7740
7741         * doc/optinfo.texi (Optimization groups): Fix option used for
7742         OPTGROUP_ALL.
7743         * doc/invoke.texi (-fopt-info): Document "omp".
7744         * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
7745         (OPTGROUP_ALL): Add OPTGROUP_OMP.
7746         * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
7747         * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
7748         * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
7749
7750         * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP.  Adjust
7751         all users.
7752         * dumpfile.c (optgroup_options): Instead of "openmp", associate
7753         OPTGROUP_OMP with "omp".
7754
7755 2017-02-27  Pat Haugen  <pthaugen@us.ibm.com>
7756
7757         PR target/79544
7758         * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
7759         for arithmetic shift of unsigned V2DI.
7760
7761 2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>
7762
7763         * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
7764         arc/linux.h headers.
7765         * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
7766         (LINK_SPEC): Likewise.
7767         (ARC_TLS_EXTRA_START_SPEC): Likewise.
7768         (EXTRA_SPECS): Likewise.
7769         (STARTFILE_SPEC): Likewise.
7770         (ENDFILE_SPEC): Likewise.
7771         (LIB_SPEC): Likewise.
7772         (TARGET_SDATA_DEFAULT): Likewise.
7773         (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
7774         (MULTILIB_DEFAULTS): Likewise.
7775         (DWARF2_UNWIND_INFO): Likewise.
7776         * config/arc/big.h: New file.
7777         * config/arc/elf.h: Likewise.
7778         * config/arc/linux.h: Likewise.
7779         * config/arc/t-uClibc: Remove.
7780
7781 2017-02-27  Bin Cheng  <bin.cheng@arm.com>
7782
7783         PR tree-optimization/77536
7784         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
7785         (tree_transform_and_unroll_loop): Use above function to compute the
7786         estimated niter of unrolled loop and use it when scaling profile.
7787         Also use count info rather than frequency if it's non-zero.
7788         * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
7789         * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
7790         (vect_transform_loop): Call above function.
7791
7792 2017-02-27  Richard Biener  <rguenther@suse.de>
7793
7794         PR tree-optimization/45397
7795         * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
7796         * tree-ssa-sccvn.c (valueized_wider_op): New helper.
7797         (visit_nary_op): Add pattern matching for CSEing sign-changed
7798         or truncated operations with wider ones.
7799
7800 2017-02-27  Richard Biener  <rguenther@suse.de>
7801
7802         PR tree-optimization/79690
7803         * tree-vect-stmts.c (vectorizable_store): Use vector type
7804         built from the DR with address-space.
7805
7806 2017-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
7807
7808         * doc/invoke.texi (Optimize Options): Refine the description
7809         of asan-use-after-return.
7810
7811 2017-02-25  Alan Modra  <amodra@gmail.com>
7812
7813         PR rtl-optimization/79584
7814         * lra-constraints.c (base_to_reg): Reload ad->base, the entire
7815         base, not ad->base_term, the reg within base.  Remove assertion
7816         that ad->base == ad->base_term.  Replace gen_int_mode using
7817         bogus mode with const0_rtx.
7818
7819 2017-02-25  Jakub Jelinek  <jakub@redhat.com>
7820
7821         PR middle-end/79396
7822         * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
7823         FMA_EXPR like tcc_binary or tcc_unary.
7824
7825         * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
7826
7827         PR debug/77589
7828         * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
7829         bitfield.
7830         (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
7831         (output_loc_operands): Handle DW_OP_call_ref and
7832         DW_OP_GNU_variable_value.
7833         (struct variable_value_struct): New type.
7834         (struct variable_value_hasher): Likewise.
7835         (variable_value_hash): New variable.
7836         (string_types): Remove.
7837         (copy_loc_descr): New function.
7838         (add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
7839         (prepend_loc_descr_to_each): New function.
7840         (add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
7841         instead of add_loc_descr_to_each if the first argument is single
7842         location list and the second has multiple.
7843         (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
7844         (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
7845         when looking for variable value which doesn't have other location info.
7846         (loc_list_from_tree): Formatting fix.
7847         (gen_array_type_die): Simplify DW_AT_string_length handling.
7848         (adjust_string_types): Remove.
7849         (gen_subprogram_die): Don't call adjust_string_types nor test/set
7850         string_types.  Call resolve_variable_values.
7851         (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
7852         (resolve_addr_in_expr): Likewise.  Add A argument.
7853         (copy_deref_exprloc): Remove deref argument.  Adjust for the
7854         original expression being DW_OP_GNU_variable_value with optionally
7855         DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
7856         optionally after it.
7857         (optimize_string_length): Rework for DW_OP_GNU_variable_value.
7858         (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
7859         callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
7860         (variable_value_hasher::hash, variable_value_hasher::equal): New
7861         methods.
7862         (resolve_variable_value_in_expr, resolve_variable_value,
7863         resolve_variable_values, note_variable_value_in_expr,
7864         note_variable_value): New functions.
7865         (dwarf2out_early_finish): Call note_variable_value on all toplevel
7866         DIEs.
7867
7868 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
7869
7870         PR c/79677
7871         * opts.h (handle_generated_option): Add GENERATED_P argument.
7872         * opts-common.c (handle_option): Adjust function comment.
7873         (handle_generated_option): Add GENERATED_P argument, pass it to
7874         handle_option.
7875         (control_warning_option): Pass false to handle_generated_option
7876         GENERATED_P.
7877         * opts.c (maybe_default_option): Pass true to handle_generated_option
7878         GENERATED_P.
7879         * optc-gen.awk: Likewise.
7880
7881 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
7882
7883         * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
7884         a REG, look at the REG it is a SUBREG of.
7885         (splitter for cmpeqsi_t): Ditto.
7886
7887 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
7888
7889         * config/pa/pa.c (pa_combine_instructions): Do not share RTL.  Make
7890         the special USEs with the pattern of the insn, not the insn itself.
7891
7892 2017-02-24  Matthew Fortune  <matthew.fortune@imgtec.com>
7893
7894         PR target/79473
7895         * doc/invoke.texi: Document -mload-store-pairs.
7896
7897 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
7898             Sandra Loosemore  <sandra@codesourcery.com>
7899
7900         * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
7901         argument isn't a CONST_INT.
7902         (nios2_alternate_compare_const): Assert op is a CONST_INT.
7903         (nios2_valid_compare_const_p): Assert op is a CONST_INT.
7904         (nios2_validate_compare): Bypass alternate compare logic if *op2
7905         is not a CONST_INT.
7906         (ldstwm_operation_p): Return false if first_base is not a REG or
7907         if first_offset is not a CONST_INT.
7908
7909 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
7910
7911         * config/cris/cris.md: Use correct operand in a define_peephole2.
7912
7913 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
7914
7915         * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
7916
7917 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
7918
7919         * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
7920         this_insn if it is an INSN or JUMP_INSN.
7921         (force_offsettable): Look at base, not at addr.
7922         * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
7923         on things that aren't necessarily CONST_INTs.
7924
7925 2017-02-24  Uros Bizjak  <ubizjak@gmail.com>
7926
7927         * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
7928         -mfpmath=sse is the default also for x86-32 targets with SSE2
7929         instruction set when @option{-ffast-math} is enabled
7930
7931 2017-02-24  Jeff Law  <law@redhat.com>
7932
7933         PR rtl-optimizatoin/79286
7934         * ira.c (update_equiv_regs): Drop may_trap_p exception to
7935         dominance test.
7936
7937 2017-02-24  Richard Biener  <rguenther@suse.de>
7938
7939         PR tree-optimization/79389
7940         * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
7941         debug insns.
7942
7943 2017-02-24  Aldy Hernandez  <aldyh@redhat.com>
7944
7945         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
7946         function comment to reflect reality.
7947         (loop_exits_before_overflow): Fix typo in function description.
7948
7949 2017-02-24  Richard Biener  <rguenther@suse.de>
7950
7951         PR tree-optimization/79389
7952         * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
7953         properly that a threading opportunity exists.  Detect conditional
7954         copy/constant propagation opportunities.
7955
7956 2017-02-23  Eric Botcazou  <ebotcazou@adacore.com>
7957
7958         * config/visium/visium.md (type): Add trap.
7959         (b): New mode attribute.
7960         (*btst): Rename into...
7961         (*btst<mode>): ...this and adjust.
7962         (*cbranchsi4_btst_insn): Rename into...
7963         (*cbranch<mode>4_btst_insn): ...this and adjust.
7964         (trap): New define_insn.
7965
7966 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
7967
7968         PR tree-optimization/79389
7969         * ifcvt.c (struct noce_if_info): Add rev_cond field.
7970         (noce_reversed_cond_code): New function.
7971         (noce_emit_store_flag): Use rev_cond if non-NULL instead of
7972         reversed_comparison_code.  Formatting fix.
7973         (noce_try_store_flag): Test rev_cond != NULL in addition to
7974         reversed_comparison_code.
7975         (noce_try_store_flag_constants): Likewise.
7976         (noce_try_store_flag_mask): Likewise.
7977         (noce_try_addcc): Use rev_cond if non-NULL instead of
7978         reversed_comparison_code.
7979         (noce_try_cmove_arith): Likewise.  Formatting fixes.
7980         (noce_try_minmax, noce_try_abs): Clear rev_cond.
7981         (noce_find_if_block): Initialize rev_cond.
7982         (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
7983         instead of false as last argument never attempt to reverse it
7984         afterwards.
7985
7986 2017-02-23  Bin Cheng  <bin.cheng@arm.com>
7987
7988         PR tree-optimization/79663
7989         * tree-predcom.c (combine_chains): Process refs in reverse order
7990         only for ZERO length chains, and add explaining comment.
7991
7992 2017-02-23  Jeff Law  <law@redhat.com>
7993
7994         PR tree-optimization/79578
7995         * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
7996         in call to operand_equal_p.
7997
7998 2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>
7999
8000         PR target/71017
8001         * config/i386/cpuid.h: Fix another undefined behavior.
8002
8003 2017-02-23  Richard Biener  <rguenther@suse.de>
8004
8005         PR tree-optimization/79683
8006         * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
8007         vector types for data-refs.
8008
8009 2017-02-23  Martin Liska  <mliska@suse.cz>
8010
8011         * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
8012
8013 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
8014
8015         PR middle-end/79665
8016         * internal-fn.c (get_range_pos_neg): Moved to ...
8017         * tree.c (get_range_pos_neg): ... here.  No longer static.
8018         * tree.h (get_range_pos_neg): New prototype.
8019         * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
8020         are known to be in between 0 and signed maximum inclusive, try to
8021         expand both unsigned and signed divmod and use the cheaper one from
8022         those.
8023
8024 2017-02-22  Jeff Law  <law@redhat.com>
8025
8026         PR tree-optimization/79578
8027         * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
8028         to compare base operands.
8029
8030 2017-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
8031
8032         PR target/79211
8033         * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
8034         gpc_reg_operand instead of fpr_reg_operand.
8035
8036 2017-02-22  Sameera Deshpande  <sameera.deshpande@imgtec.com>
8037
8038         * config/mips/mips.c (mips_return_in_memory): Force FP
8039         vector types to be returned in memory for o32 ABI.
8040
8041 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
8042
8043         * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
8044         instead of DW_TAG_member for static data member declarations and don't
8045         set no_linkage_name for static inline data members.
8046         (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
8047         to DW_TAG_member.
8048
8049 2017-02-22  Martin Liska  <mliska@suse.cz>
8050
8051         * doc/invoke.texi: Replace inequality signs with square brackets
8052         for -Wnormalized.
8053
8054 2017-02-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8055
8056         PR tree-optimization/68644
8057         * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
8058
8059 2017-02-22  Matthew Fortune  <matthew.fortune@imgtec.com>
8060
8061         PR target/78660
8062         * lra-constraints.c (simplify_operand_subreg): Handle
8063         WORD_REGISTER_OPERATIONS targets.
8064
8065 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
8066
8067         PR target/70465
8068         * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
8069         and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
8070         elimination by swapping fld*.
8071
8072 2017-02-22  Richard Biener  <rguenther@suse.de>
8073
8074         PR tree-optimization/79673
8075         * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
8076         convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
8077         irrelevant address-space qualifiers and avoiding a
8078         ADDR_SPACE_CONVERT_EXPR from fold_convert.
8079
8080 2017-02-22  Richard Biener  <rguenther@suse.de>
8081
8082         PR tree-optimization/79666
8083         * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
8084         to not symbolically negate if that may introduce undefined
8085         overflow.
8086
8087 2017-02-22  Martin Liska  <mliska@suse.cz>
8088
8089         PR lto/79587
8090         * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
8091         * data-streamer-out.c (streamer_write_gcov_count_stream):
8092         Likewise.
8093         * value-prof.c (stream_out_histogram_value): Make assert more
8094         precise based on type of counter.
8095
8096 2017-02-21  Uros Bizjak  <ubizjak@gmail.com>
8097
8098         PR target/79593
8099         * config/i386/i386.md (standard_x87sse_constant_load splitter):
8100         Use nonimmediate_operand instead of memory_operand for operand 1.
8101         (float-extend standard_x87sse_constant_load splitter): Ditto.
8102
8103 2017-02-21  Jeff Law  <law@redhat.com>
8104
8105         PR tree-optimization/79621
8106         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
8107         blocks with edges to themselves.
8108
8109 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
8110
8111         PR target/79633
8112         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
8113         is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
8114         Use gimple_call_builtin_p.
8115
8116         PR target/79570
8117         * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
8118         on temporarily removed DEBUG_INSNs.
8119
8120         PR tree-optimization/79649
8121         * tree-loop-distribution.c (classify_partition): Give up on
8122         non-generic address space loads/stores.
8123
8124 2017-02-21  Aldy Hernandez  <aldyh@redhat.com>
8125
8126         * doc/loop.texi (Loop manipulation): Remove nonexistent
8127         tree_ssa_loop_version from the documentation.
8128         * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
8129
8130 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
8131
8132         PR target/79494
8133         * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
8134         make_reg_eh_region_note_nothrow_nononlocal on call_insn.
8135         * config/rs6000/rs6000.c: Include except.h.
8136         (rs6000_expand_split_stack_prologue): Call
8137         make_reg_eh_region_note_nothrow_nononlocal on the call insn.
8138
8139 2017-02-21  Martin Jambor  <mjambor@suse.cz>
8140
8141         PR lto/79579
8142         * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
8143         have been analyzed.
8144
8145 2017-02-21  Martin Jambor  <mjambor@suse.cz>
8146
8147         * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
8148         for backward compatibility only.
8149         * doc/invoke.texi (Option Summary): Remove all references to
8150         -fipa-cp-alignment.
8151
8152 2017-02-21  Matthew Fortune  <matthew.fortune@imgtec.com>
8153
8154         PR target/78660
8155         Revert:
8156         2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
8157
8158         * lra-constraints.c (curr_insn_transform): Handle
8159         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
8160
8161 2017-02-21  Martin Liska  <mliska@suse.cz>
8162
8163         * config/i386/i386.opt: Replace -masm-dialect with -masm.
8164
8165 2017-02-21  Thomas Schwinge  <thomas@codesourcery.com>
8166
8167         PR translation/79638
8168         * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
8169
8170 2017-02-21  Eric Botcazou  <ebotcazou@adacore.com>
8171
8172         PR ada/67205
8173         * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
8174         (arm_function_ok_for_sibcall): Return false for an indirect call by
8175         descriptor if all the argument registers are used.
8176         (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
8177         alignment of the function.
8178
8179 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
8180
8181         PR tree-optimization/61441
8182         * simplify-rtx.c (simplify_const_unary_operation): For
8183         -fsignaling-nans and sNaN operand, return NULL_RTX rather than
8184         the sNaN unmodified.
8185
8186 2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8187
8188         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
8189         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
8190         instead of SYSTEM_HEADER_DIR.
8191
8192 2017-02-20  Gerald Pfeifer  <gerald@pfeifer.com>
8193             Martin LiÅ¡ka  <mliska@suse.cz>
8194
8195         * doc/invoke.texi (use-after-scope-direct-emission-threshold):
8196         Fix typos and grammar, use active voice, and clarify.
8197
8198 2017-02-20  Marek Polacek  <polacek@redhat.com>
8199
8200         PR middle-end/79537
8201         * gimplify.c (gimplify_expr): Handle unused *&&L;.
8202
8203         PR sanitizer/79558
8204         * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
8205
8206 2017-02-20  Jakub Jelinek  <jakub@redhat.com>
8207
8208         PR target/79568
8209         * config/i386/i386.c (ix86_expand_builtin): Handle
8210         OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
8211         ix86_builtins_isa[fcode].isa as a requirement of those
8212         flags and any other flag in the bitmask.
8213         (ix86_init_mmx_sse_builtins): Use 0 instead of
8214         ~OPTION_MASK_ISA_64BIT as mask.
8215         * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
8216         __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
8217         __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
8218         __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
8219
8220 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
8221
8222         PR target/78012
8223         * lra-constraints.c (split_reg): Check requested split mode
8224         is supported by the register.
8225
8226 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
8227
8228         * lra-constraints.c (simplify_operand_subreg): Remove early
8229         return false.
8230
8231 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
8232
8233         PR target/78660
8234         * lra-constraints.c (curr_insn_transform): Tighten condition
8235         for converting SUBREG reloads from OP_OUT to OP_INOUT.
8236
8237 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
8238
8239         PR target/78660
8240         * lra-constraints.c (curr_insn_transform): Handle
8241         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
8242
8243 2017-02-19  Uros Bizjak  <ubizjak@gmail.com>
8244
8245         Revert:
8246         2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
8247
8248         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
8249
8250 2017-02-19  Jonathan Wakely  <jwakely@redhat.com>
8251
8252         PR c++/69523
8253         * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
8254         description.
8255
8256 2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8257
8258         * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
8259         for FMA_EXPR.
8260
8261 2017-02-18  Jakub Jelinek  <jakub@redhat.com>
8262
8263         * final.c (last_columnnum, override_columnnum): New variables.
8264         (final_start_function): Set last_columnnum, pass it to begin_prologue
8265         hook and pass 0 to dwarf2out_begin_prologue.
8266         (final_scan_insn): Update override_columnnum.  Pass last_columnnum
8267         to source_line debug hook.
8268         (notice_source_line): Compute last_columnnum and for debug_column_info
8269         return true on column changes.
8270         * debug.h (struct gcc_debug_hooks): Add column argument to
8271         source_line and begin_prologue hooks.
8272         (debug_nothing_int_charstar_int_bool): Remove prototype.
8273         (debug_nothing_int_int_charstar,
8274         debug_nothing_int_int_charstar_int_bool): New prototypes.
8275         (dwarf2out_begin_prologue): Add column argument.
8276         * debug.c (do_nothing_debug_hooks): Adjust source_line and
8277         begin_prologue hooks.
8278         (debug_nothing_int_charstar_int_bool): Remove.
8279         (debug_nothing_int_int_charstar,
8280         debug_nothing_int_int_charstar_int_bool): New functions.
8281         * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
8282         through to dwarf2out_source_line.
8283         (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
8284         (dwarf2out_source_line): Add column argument, emit it if requested.
8285         * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
8286         arguments.
8287         * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
8288         * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
8289         * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
8290         through to dwarf2out_begin_prologue.
8291         (vmsdbgout_source_line): Add column argument, pass it through to
8292         dwarf2out_source_line.
8293         * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
8294         dbxout_source_line caller.
8295         (dbxout_source_line): Add column argument.
8296
8297         * common.opt (gno-column-info, gcolumn-info): New options.
8298         * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
8299         (check_die): Also test for multiple DW_AT_decl_column attributes.
8300         (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
8301         DW_AT_decl_column if requested.
8302         (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
8303         if requested.
8304         (gen_variable_die): Likewise.
8305         (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
8306         * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
8307
8308         PR target/79569
8309         * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
8310         * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
8311         (ix86_handle_option): Handle OPT_m3dnowa.
8312         * doc/invoke.texi (-m3dnowa): Document.
8313         * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
8314         -m3dnowa instead of -m3dnow -march=athlon.
8315
8316         PR target/79559
8317         * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
8318         instead of gcc_assert for K, r and R code checks.  Formatting fixes.
8319
8320 2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8321
8322         PR target/79261
8323         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
8324         support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
8325         * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
8326         generator for vsx_xxpermdi_<mode>_be.
8327         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
8328         force big-endian semantics.
8329         (vsx_xxpermdi_<mode>_be): New define_expand with same
8330         implementation as previous version of vsx_xxpermdi_<mode>.
8331
8332 2017-02-17  Jakub Jelinek  <jakub@redhat.com>
8333
8334         PR tree-optimization/79327
8335         * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
8336         variable, its initialization and use.
8337
8338 2017-02-17  Julia Koval  <julia.koval@intel.com>
8339
8340         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
8341         (OPTION_MASK_ISA_PKU_UNSET): New.
8342         (ix86_handle_option): Handle -mrdpid.
8343         * config/i386/cpuid.h (bit_RDPID): New.
8344         * config/i386/driver-i386.c (host_detect_local_cpu):
8345         Detect RDPID feature.
8346         * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
8347         * config/i386/i386-c.c (ix86_target_macros_internal):
8348         Handle RDPID flag.
8349         * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
8350         (ix86_valid_target_attribute_inner_p): Add "rdpid".
8351         (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
8352         * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
8353         * config/i386/i386.md (define_insn "rdpid"): New.
8354         * config/i386/i386.opt Add -mrdpid.
8355         * config/i386/immintrin.h (_rdpid_u32): New.
8356
8357 2017-02-17  Vladimir Makarov  <vmakarov@redhat.com>
8358
8359         PR rtl-optimization/79541
8360         * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
8361         instead of transforming it into USE.
8362
8363 2017-02-17  Segher Boessenkool  <segher@kernel.crashing.org>
8364
8365         * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
8366         If HONOR_SNANS (SFmode) force the input to a register.
8367         (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
8368         (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
8369         an frsp or similar insn.
8370
8371 2017-02-17  Martin Liska  <mliska@suse.cz>
8372
8373         PR rtl-optimization/79577
8374         * params.def (selsched-max-sched-times): Increase minimum to 1.
8375
8376 2017-02-17  Martin Liska  <mliska@suse.cz>
8377
8378         PR rtl-optimization/79574
8379         * gcse.c (want_to_gcse_p): Prevent integer overflow.
8380
8381 2017-02-17  Martin Liska  <mliska@suse.cz>
8382
8383         PR tree-optimization/79529
8384         * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
8385         ssa_defined_default_def_p to handle cases which are implicitly
8386         defined.
8387         * tree-ssa.c (ssa_defined_default_def_p): New function.
8388         (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
8389         which are implicitly defined.
8390         * tree-ssa.h (ssa_defined_default_def_p): Declare.
8391
8392 2017-02-17  Richard Biener  <rguenther@suse.de>
8393
8394         PR middle-end/79576
8395         * params.def (max-ssa-name-query-depth): Limit to 10.
8396
8397 2017-02-17  Richard Biener  <rguenther@suse.de>
8398
8399         PR tree-optimization/79552
8400         * tree-ssa-structalias.c (visit_loadstore): Properly verify
8401         default defs.
8402
8403 2017-02-17  Richard Biener  <rguenther@suse.de>
8404
8405         PR bootstrap/79567
8406         * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
8407
8408 2017-02-17  Marek Polacek  <polacek@redhat.com>
8409
8410         PR middle-end/79536
8411         * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
8412         (fold_negate_expr): New wrapper.
8413
8414 2017-02-16  Sandra Loosemore  <sandra@codesourcery.com>
8415
8416         * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: 
8417         Correct terminology and de-emphasize pre-standard behavior.
8418
8419 2017-02-16  Alan Modra  <amodra@gmail.com>
8420
8421         PR rtl-optimization/79286
8422         * ira.c (def_dominates_uses): New function.
8423         (update_equiv_regs): Don't create an equivalence for insns that
8424         may trap where the register def does not dominate the use.
8425
8426 2017-02-16  Vladimir Makarov  <vmakarov@redhat.com>
8427
8428         PR rtl-optimization/78127
8429         * lra.c (lra): Call lra_eliminate before finish the loop after
8430         lra_constraint.
8431
8432 2017-02-16  Richard Biener  <rguenther@suse.de>
8433
8434         * graphite.h: Do not include isl/isl_val_gmp.h, instead include
8435         isl/isl_val.h.
8436         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
8437         (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
8438         * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
8439         (isl_val_int_from_wi): New function.
8440         (extract_affine_gmp): Rename to ...
8441         (extract_affine_wi): ... this, take a widest_int.
8442         (extract_affine_int): Just wrap extract_affine_wi.
8443         (add_param_constraints): Use isl_val_int_from_wi.
8444         (add_loop_constraints): Likewise, and extract_affine_wi.
8445
8446 2017-02-15  Jeff Law  <law@redhat.com>
8447
8448         PR middle-end/79521
8449         * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
8450         ira_init_register_move_cost_if_necessary.
8451
8452 2017-02-15  Martin Sebor  <msebor@redhat.com>
8453
8454         PR middle-end/32003
8455         * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
8456         removed in a prior commit.
8457
8458 2017-02-15  Bin Cheng  <bin.cheng@arm.com>
8459
8460         PR tree-optimization/79347
8461         * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
8462         counters during peeling.
8463
8464 2017-02-15  Thomas Schwinge  <thomas@codesourcery.com>
8465
8466         * Makefile.in (site.exp): Remove "set ISLVER".
8467
8468 2017-02-15  Jakub Jelinek  <jakub@redhat.com>
8469
8470         PR target/79487
8471         * real.c (real_from_integer): Call real_convert even for decimal.
8472
8473 2017-02-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8474
8475         PR target/79421
8476         * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
8477
8478 2017-02-14  Andrew Pinski  <apinski@cavium.com>
8479
8480         * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
8481         cores and change the partno/implementer to be correct.
8482         (thunderx2t99p1): New core which replaces thunderx2t99 and still has
8483         the 'B" as the implementer.
8484         * config/aarch64/aarch64-tune.md: Regenerate.
8485
8486 2017-02-14  Carl Love  <cel@us.ibm.com>
8487
8488         * config/rs6000/rs6000.c: Add case statement entry to make the
8489         xvcvuxdsp built-in argument unsigned.
8490         * config/rs6000/vsx.md: Fix the source and return operand types so they
8491         match the instruction definitions from the ISA document.  Fix typo
8492         in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
8493         statement.
8494
8495 2017-02-14  Vladimir Makarov  <vmakarov@redhat.com>
8496
8497         PR target/79282
8498         * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
8499         member early_clobber_alts.
8500         * lra-lives.c (reg_early_clobber_p): New.
8501         (process_bb_lives): Use it.
8502         * lra.c (new_insn_reg): New arg early_clobber_alts.  Use it.
8503         (debug_operand_data): Initialize early_clobber_alts.
8504         (setup_operand_alternative): Set up early_clobber_alts.
8505         (collect_non_operand_hard_regs): Ditto.  Pass early clobber
8506         alternatives to new_insn_reg.
8507         (add_regs_to_insn_regno_info): Add arg early_clobber_alts.  Use
8508         it.
8509         (lra_update_insn_regno_info): Pass the new arg.
8510
8511 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
8512
8513         PR middle-end/79505
8514         * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
8515         (new_oacc_loop_raw): Don't clear already cleared fields.
8516
8517         PR target/79481
8518         * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
8519         _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
8520         _mm512_prefetch_i64gather_ps): New inline functions and macros.
8521
8522 2017-02-14  Uros Bizjak  <ubizjak@gmail.com>
8523
8524         PR target/79495
8525         * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
8526
8527 2017-02-14  H.J. Lu  <hongjiu.lu@intel.com>
8528
8529         PR target/79498
8530         * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
8531         the extra instruction to the right place to store 128-bit constant
8532         when needed.
8533
8534 2017-02-14  Martin Sebor  <msebor@redhat.com>
8535
8536         PR middle-end/79448
8537         * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
8538           warning for strings of unknown length.
8539
8540 2017-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
8541
8542         * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
8543
8544 2017-02-14  Jeff Law  <law@redhat.com>
8545
8546         PR target/79404
8547         * ira-costs.c (scan_one_insn): Initialize register move costs
8548         for pseudos seen in USE/CLOBBER insns.
8549
8550         PR tree-optimization/79095
8551         * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
8552         if the numerator has the range ~[0,0] make the resultant range ~[0,0].
8553         (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
8554         if the operands are known to be not equal, then the resulting range
8555         is ~[0,0].
8556         (intersect_ranges): If the new range is ~[0,0] and the old range is
8557         wide, then prefer ~[0,0].
8558         * tree-vrp.c (overflow_comparison_p_1): New function.
8559         (overflow_comparison_p): New function.
8560         * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
8561         if NAME is used in an overflow test.
8562         (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
8563         overflow check that can be expressed as an equality test, then adjust
8564         ops to be that equality test.
8565
8566 2017-02-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8567
8568         * config/s390/s390-builtin-types.def: Remove flags argument.
8569         * config/s390/s390.c (s390_init_builtins): Likewise.
8570
8571 2017-02-14  Martin Liska  <mliska@suse.cz>
8572
8573         * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
8574         vector.  Fix trailing white spaces.
8575
8576 2017-02-14  James Greenhalgh  <james.greenhalgh@arm.com>
8577
8578         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
8579         HFmode.
8580
8581 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8582
8583         PR rtl-optimization/68664
8584         * config/arm/arm.c (arm_sched_can_speculate_insn):
8585         New function.  Declare prototype.
8586         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
8587
8588 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8589
8590         PR rtl-optimization/68664
8591         * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
8592         New function.
8593         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
8594
8595 2017-02-14  Amit Pawar  <amit.pawar@amd.com>
8596
8597         * config/i386/i386.c (znver1_cost): Fix the alignment for function and
8598         max skip bytes for function, loop and jump.
8599
8600 2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8601
8602         * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
8603         ABS_EXPR for gimple dump.
8604
8605 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
8606
8607         PR target/79462
8608         * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
8609
8610         PR tree-optimization/79408
8611         * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
8612         case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
8613         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
8614         also if rhs1 is INTEGER_CST.
8615
8616 2017-02-14  Richard Biener  <rguenther@suse.de>
8617
8618         PR middle-end/79432
8619         * tree-into-ssa.c (insert_phi_nodes): When the function can
8620         have abnormal edges rewrite SSA names with broken use-def
8621         dominance out of SSA and register them for PHI insertion.
8622
8623 2017-02-13  Martin Sebor  <msebor@redhat.com>
8624
8625         PR middle-end/79496
8626         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
8627         clearing info.nowrite flag when snprintf size argument is a range.
8628
8629 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
8630
8631         * cprop.c (cprop_jump): Add missing space in string literal.
8632         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
8633         (get_constraint_for_component_ref): Likewise.
8634         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
8635         * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
8636         * lra-constraints.c (process_alt_operands): Likewise.
8637         * ipa-inline.c (inline_small_functions): Likewise.
8638         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
8639         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
8640         * trans-mem.c (diagnose_tm_1_op): Likewise.
8641         * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
8642         (grid_parallel_clauses_gridifiable): Likewise.
8643
8644         * config/nvptx/mkoffload.c (process): Add space in between
8645         , and %d.
8646
8647         * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
8648         "MOD4_SSE_REGS" and "ALL_REGS".
8649
8650         * spellcheck.c (test_data): Add , in between "foo" and "food".
8651
8652 2017-02-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
8653
8654         PR target/79449
8655         * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
8656         boundary crossing check and subsequent code generation agree.
8657
8658 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8659
8660         * config/aarch64/aarch64.c (has_memory_op): Delete.
8661         (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
8662         has_memory_op.
8663
8664 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
8665
8666         PR rtl-optimization/79388
8667         PR rtl-optimization/79450
8668         * combine.c (distribute_notes): When removing TEM_INSN for which
8669         corresponding dest has last value recorded, invalidate that last
8670         value.
8671
8672 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8673
8674         * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
8675         of explicit '@'.  Add missing assembly comment marker on branch costs
8676         printout.
8677
8678 2017-02-13  Nathan Sidwell  <nathan@acm.org>
8679
8680         * gengtype-lex.l (<in_struct>): Add '/'.
8681
8682 2017-02-13  Martin Liska  <mliska@suse.cz>
8683
8684         PR c/79471
8685         * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
8686
8687 2017-02-13  Richard Biener  <rguenther@suse.de>
8688
8689         * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
8690         Remove.
8691         * configure: Re-generate.
8692         * config.in: Likewise.
8693         * graphite-dependences.c: Simplify as if
8694         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
8695         * graphite-isl-ast-to-gimple.c: Likewise.
8696         * graphite-optimize-isl.c: Likewise.
8697         * graphite-poly.c: Likewise.
8698         * graphite-sese-to-poly.c: Likewise.
8699         * graphite.h: Likewise.
8700         * toplev.c: Include isl/version.h and use isl_version () for
8701         printing the ISL version.
8702         * doc/install.texi: Update ISL requirement.
8703
8704 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
8705
8706         * doc/standards.texi (Standards): Update reference to
8707         Objective-C 2.0.
8708
8709 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
8710
8711         * doc/extend.texi (Named Address Spaces): sourceware.org now
8712         defaults to https.
8713         * doc/install.texi (Binaries): Ditto.
8714         (Specific): Ditto.
8715
8716 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
8717
8718         * doc/cpp.texi: Replace "stringify"/"stringification" with C
8719         standard terminology "stringize"/"stringizing" throughout.
8720         * doc/cppinternals.texi: Likewise.
8721
8722 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
8723
8724         * doc/extend.texi: Fix some spelling mistakes and typos.
8725         * doc/invoke.texi: Likewise.
8726
8727 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
8728
8729         PR ipa/79224
8730         * params.def (inline-min-speedup) Change from 10 to 8.
8731
8732 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
8733
8734         * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
8735         4.5.
8736
8737 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
8738
8739         PR ipa/79224
8740         * ipa-inline-analysis.c (get_minimal_bb): New function.
8741         (record_modified): Use it.
8742         (remap_edge_change_prob): Handle also ancestor functions.
8743
8744 2017-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
8745
8746         * doc/contrib.texi (Contributors): Remove broken link into
8747         the Mauve CVS repository.
8748
8749 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
8750
8751         PR middle-end/79454
8752         * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
8753         result computation whenever lhs doesn't have vector mode, not
8754         just when it has BLKmode.
8755
8756 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
8757
8758         * doc/makefile.texi (profiledbootstrap): Refer to the
8759         installation instructions only in textual form.
8760
8761 2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
8762
8763         PR target/79295
8764         * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
8765
8766 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
8767
8768         * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
8769         (Specific): Update mingw-w64 reference.
8770         (Binaries): Ditto.
8771         (Specific): Remove broken link to Renesas RX processor.
8772
8773 2017-02-10  Richard Biener  <rguenther@suse.de>
8774
8775         * toplev.c (process_options): Do not mention obsolete graphite
8776         options when printing sorry message about missing graphite support.
8777         Mention -floop-nest-optimize.
8778
8779 2017-02-10  Christophe Lyon  <christophe.lyon@linaro.org>
8780
8781         * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
8782         (vtst_p16): Likewise.
8783         (vtstq_p8): Likewise.
8784         (vtstq_p16): Likewise.
8785         (vtst_p64): New.
8786         (vtstq_p64): Likewise.
8787         * config/arm/arm_neon.h (vgetq_lane_p64): New.
8788         (vset_lane_p64): New.
8789         (vsetq_lane_p64): New.
8790
8791 2017-02-10  Jakub Jelinek  <jakub@redhat.com>
8792
8793         PR tree-optimization/79411
8794         * tree-ssa-reassoc.c (is_reassociable_op): Return false if
8795         stmt operands are SSA_NAMEs used in abnormal phis.
8796         (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
8797         phis.
8798
8799 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
8800
8801         PR ipa/70795
8802         * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
8803         flag if needed.
8804
8805 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
8806
8807         * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
8808
8809 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
8810
8811         * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
8812         to avoid warning.
8813
8814         PR c/79413
8815         * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
8816         not arbitrary TREE_CONSTANT.
8817
8818         PR c/79431
8819         * gimplify.c (gimplify_adjust_omp_clauses): Ignore
8820         "omp declare target link" attribute unless is_global_var.
8821         * omp-offload.c (find_link_var_op): Likewise.
8822
8823 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
8824             Chung-Lin Tang  <cltang@codesourcery.com>
8825
8826         * gimplify.c (gimplify_scan_omp_clauses): No special handling for
8827         OMP_CLAUSE_TILE.
8828         (gimplify_adjust_omp_clauses): Don't delete TILE.
8829         (gimplify_omp_for): Deal with TILE.
8830         * internal-fn.c (expand_GOACC_TILE): New function.
8831         * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
8832         (GOACC_TILE): New.
8833         * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
8834         (expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
8835         element fields.
8836         (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
8837         avoid DIV for outermost collapse var.
8838         (expand_oacc_for): Insert tile element loop as needed.  Adjust.
8839         Remove out of date comments, fix whitespace.
8840         * omp-general.c (omp_extract_for_data): Deal with tiling.
8841         * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
8842         adjust OLF_DIM_BASE value.
8843         (struct omp_for_data): Add tiling field.
8844         * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
8845         (lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
8846         for auto loops.  Remove default auto determining, moved to
8847         oacc_loop_fixed_partitions.
8848         * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
8849         stmts, add e_mask field.
8850         (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
8851         (oacc_thread_numbers): Use oacc_dim_call.
8852         (oacc_xform_tile): New.
8853         (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
8854         (finish_oacc_loop): Adjust for ifns vector.
8855         (oacc_loop_discover_walk): Append loop abstraction sites to list,
8856         add case for GOACC_TILE fns.
8857         (oacc_loop_xform_loop): Delete.
8858         (oacc_loop_process): Iterate over call list directly, and add
8859         handling for GOACC_TILE fns.
8860         (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
8861         dump partitioning.
8862         (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
8863         vector partitioning to outer loops.  Assign 2 partitions to loops
8864         when available. Add TILE handling.
8865         (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
8866         (execite_oacc_device_lower): Process GOACC_TILE fns,
8867         ignore unknown specs.
8868         * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
8869         * tree.c (omp_clause_num_ops): Adjust TILE ops.
8870         * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
8871
8872 2017-02-09  Gerald Pfeifer  <gerald@pfeifer.com>
8873
8874         * configure.ac (ACX_BUGURL): Update.
8875         * configure: Regenerate.
8876
8877 2017-02-09  Richard Biener  <rguenther@suse.de>
8878
8879         PR tree-optimization/69823
8880         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
8881         Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.
8882
8883 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
8884
8885         * config/arc/arc-c.def: Add __NPS400__ definition.
8886         * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
8887         (TARGET_NPS400): Define.
8888
8889 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
8890
8891         * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
8892         file.
8893         (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
8894         pointer, arch_info.
8895         (arc_cpu_types): Fill the arch_info field with a pointer into the
8896         arc_arch_types table.
8897         (arc_selected_cpu): Declare.
8898         * config/arc/arc.c (arc_selected_cpu): Make global.
8899         (arc_selected_arch): Delete.
8900         (arc_base_cpu): Delete.
8901         (arc_override_options): Remove references to deleted variables,
8902         update access to arch information.
8903         (ARC_OPT): Update access to arch information.
8904         (ARC_OPTX): Likewise.
8905         * config/arc/arc.h (arc_base_cpu): Remove declaration.
8906         (TARGET_ARC600): Update access to arch information.
8907         (TARGET_ARC601): Likewise.
8908         (TARGET_ARC700): Likewise.
8909         (TARGET_EM): Likewise.
8910         (TARGET_HS): Likewise.
8911         * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
8912         information.
8913
8914 2017-02-08  Pat Haugen  <pthaugen@us.ibm.com>
8915
8916         PR target/78604
8917         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
8918         condition/operands for integer GE/LE/GEU/LEU operations.
8919
8920 2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>
8921
8922         PR translation/79397
8923         * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
8924         of AltiVec.
8925
8926 2017-02-08  Martin Jambor  <mjambor@suse.cz>
8927
8928         PR ipa/79375
8929         * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
8930         whether allocation happened.
8931         (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
8932         nothing was allocated.
8933
8934 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
8935
8936         PR tree-optimization/79408
8937         * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
8938         constant, but SSA_NAME with a known integer range, use the minimum
8939         of that range instead of op1 to determine if modulo can be replaced
8940         with its first operand.
8941
8942 2016-02-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8943
8944         * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
8945
8946 2017-02-08  Richard Biener  <rguenther@suse.de>
8947
8948         PR tree-optimization/71824
8949         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
8950         Check all loops contained in the merged region.
8951
8952 2017-02-07  Andrew Pinski  <apinski@cavium.com>
8953
8954         * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
8955
8956 2017-02-07  Andrew Pinski  <apinski@cavium.com>
8957
8958         * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
8959         (thunderxt88): Likewise.
8960         (thunderxt81): Disable LSE and change v8.1 to v8.
8961         (thunderxt83): Likewise.
8962
8963 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
8964             Richard Biener  <rguenther@suse.de>
8965
8966         PR middle-end/79399
8967         * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
8968         type from int to size_t.
8969         * ira-costs.c (struct_costs_size): Change type from int to size_t.
8970
8971 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
8972
8973         PR rtl-optimization/79386
8974         * cprop.c (bypass_conditional_jumps): Initialize
8975         bypass_last_basic_block already before splitting bbs after
8976         unconditional traps...
8977         (bypass_conditional_jumps): ... rather than here.
8978
8979         PR target/79299
8980         * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
8981         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
8982         *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
8983         fix -masm=intel patterns.
8984
8985 2017-02-07  Richard Biener  <rguenther@suse.de>
8986
8987         PR tree-optimization/79256
8988         PR middle-end/79278
8989         * builtins.c (get_object_alignment_2): Use min_align_of_type
8990         to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
8991         and ADJUST_FIELD_ALIGN.
8992
8993         * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
8994         type parameter.
8995         * doc/tm.texi: Regenerate.
8996         * stor-layout.c (layout_decl): Adjust.
8997         (update_alignment_for_field): Likewise.
8998         (place_field): Likewise.
8999         (min_align_of_type): Likewise.
9000         * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
9001         * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
9002         * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
9003         * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
9004         * config/frv/frv.c (frv_adjust_field_align): Likewise.
9005         * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
9006         * config/i386/i386.c (x86_field_alignment): Likewise.
9007         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
9008         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
9009         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
9010         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
9011         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
9012         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
9013          Likewise.
9014
9015         Revert
9016         2017-01-30  Richard Biener  <rguenther@suse.de>
9017
9018         PR tree-optimization/79256
9019         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
9020         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
9021         alignment on TYPE.
9022
9023 2017-02-07  Toma Tabacu  <toma.tabacu@imgtec.com>
9024
9025         * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
9026         argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
9027         builtins to SImode and emit a zero-extend, if necessary.
9028
9029 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
9030
9031         * docs/invoke.texi (RISC-V Options): Alphabetize.
9032
9033 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
9034
9035         * doc/invoke.texi (RISC-V Options): Use two spaces to separate
9036         options.
9037
9038 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
9039
9040         * config/riscv/riscv.c: New file.
9041         * gcc/common/config/riscv/riscv-common.c: Likewise.
9042         * config.gcc: Likewise.
9043         * config/riscv/constraints.md: Likewise.
9044         * config/riscv/elf.h: Likewise.
9045         * config/riscv/generic.md: Likewise.
9046         * config/riscv/linux.h: Likewise.
9047         * config/riscv/multilib-generator: Likewise.
9048         * config/riscv/peephole.md: Likewise.
9049         * config/riscv/pic.md: Likewise.
9050         * config/riscv/predicates.md: Likewise.
9051         * config/riscv/riscv-builtins.c: Likewise.
9052         * config/riscv/riscv-c.c: Likewise.
9053         * config/riscv/riscv-ftypes.def: Likewise.
9054         * config/riscv/riscv-modes.def: Likewise.
9055         * config/riscv/riscv-opts.h: Likewise.
9056         * config/riscv/riscv-protos.h: Likewise.
9057         * config/riscv/riscv.h: Likewise.
9058         * config/riscv/riscv.md: Likewise.
9059         * config/riscv/riscv.opt: Likewise.
9060         * config/riscv/sync.md: Likewise.
9061         * config/riscv/t-elf-multilib: Likewise.
9062         * config/riscv/t-linux: Likewise.
9063         * config/riscv/t-linux-multilib: Likewise.
9064         * config/riscv/t-riscv: Likewise.
9065         * configure.ac: Likewise.
9066         * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
9067         Waterman as RISC-V maintainers.
9068         * doc/install.texi: Add RISC-V entries.
9069         * doc/invoke.texi: Add RISC-V options section.
9070         * doc/md.texi: Add RISC-V constraints section.
9071         * configure: Regenerated.
9072
9073 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
9074
9075         PR target/66144
9076         * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
9077         false values to be constant vectors with all 0 or all 1 bits set.
9078         (vcondu<mode><mode>): Likewise.
9079         * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
9080         predicate.
9081         (fpmask_comparison_operator): Update comment.
9082         (vecint_comparison_operator): New predicate.
9083         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
9084         vector conditionals when the true and false values are constant
9085         vectors with all 0 bits or all 1 bits set.
9086
9087 2017-02-06  Martin Sebor  <msebor@redhat.com>
9088
9089         PR  tree-optimization/79376
9090         * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
9091
9092 2017-02-06  Uros Bizjak  <ubizjak@gmail.com>
9093
9094         * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
9095         explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
9096         to simplify split condition.
9097
9098 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
9099
9100         * omp-expand.c (oxpand_omp_atomic_fetch_op,
9101         expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
9102         false.
9103
9104 2017-02-06  Segher Boessenkool  <segher@kernel.crashing.org>
9105
9106         PR rtl-optimization/68664
9107         * target.def (can_speculate_insn): New hook.
9108         * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
9109         * doc/tm.texi: Regenerate.
9110         * sched-rgn.c (can_schedule_ready_p): Use the new hook.
9111         * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
9112         (rs6000_sched_can_speculate_insn): New function.
9113
9114 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
9115
9116         PR tree-optimization/79284
9117         * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
9118         * tree-vect-stmts.c (vect_get_vec_def_for_operand,
9119         vectorizable_mask_load_store, vectorizable_operation,
9120         vect_is_simple_cond, get_same_sized_vectype): Use it instead
9121         of comparing TREE_CODE of a type against BOOLEAN_TYPE.
9122         * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
9123         vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
9124         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
9125         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
9126         Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
9127         is_gimple_assign (stmt).  Replace another such test with
9128         is_gimple_assign (stmt).
9129
9130 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
9131
9132         PR target/78883
9133         * config/avr/avr.c (rtl-iter.h): Include it.
9134         (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
9135         (avr_legitimate_combined_insn): ...and implementation.
9136
9137 2017-02-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9138
9139         * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
9140         * config/s390/s390.c (s390_const_operand_ok)
9141         (s390_canonicalize_comparison, s390_extract_part)
9142         (s390_single_part, s390_contiguous_bitmask_nowrap_p)
9143         (s390_contiguous_bitmask_p, s390_rtx_costs)
9144         (legitimize_pic_address): Likewise.
9145         * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
9146         * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
9147         ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
9148         ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
9149         * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
9150
9151 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
9152
9153         * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
9154         REGNO($0) == REGNO($1).
9155
9156 2017-02-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9157
9158         * config/s390/linux.h(SIZE_TYPE): Add comment.
9159
9160 2017-02-06  Julian Brown  <julian@codesourcery.com>
9161             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
9162             Virendra Pathak  <virendra.pathak@broadcom.com>
9163
9164         * config/aarch64/aarch64-cores.def: Change the scheduler
9165         to Thunderx2t99.
9166         * config/aarch64/aarch64.md: Include thunderx2t99.md.
9167         * config/aarch64/thunderx2t99.md: New file.
9168
9169 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
9170
9171         * doc/standards.texi (Go Language): Update link to language
9172         standard.
9173
9174 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
9175
9176         * tree-eh.c (lower_resx): Sanitize profile.
9177         (cleanup_empty_eh_move_lp): Likewise.
9178
9179 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
9180
9181         PR tree-ssa/79347
9182         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
9183         ELSE_PROB.
9184         * cfgloopmanip.h (loop_version): Update prototype.
9185         * modulo-sched.c (sms_schedule): Update call of loop_version.
9186         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
9187         * tree-parloops.c (gen_parallel_loop): Likewise.
9188         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
9189         * tree-ssa-loop-split.c (split_loop): Likewise.
9190         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
9191         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
9192
9193 2017-02-05  Martin Liska  <mliska@suse.cz>
9194
9195         PR bootstrap/78985
9196         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
9197         variable to NULL.
9198         (print_operand_address): Initialize a struct to zero.
9199
9200 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
9201
9202         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
9203         garbage collector only in textual form.
9204
9205 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
9206
9207         * doc/extend.texi (x86 specific memory model extensions for
9208         transactional memory): Simplify a phrase.
9209
9210 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
9211
9212         PR target/79353
9213         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
9214         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
9215         (atomic_storedi_1): Likewise.
9216
9217 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
9218
9219         PR tree-optimization/79338
9220         * tree-parloops.c (gather_scalar_reductions): Don't call
9221         vect_analyze_loop_form for loop->inner before destroying loop's
9222         loop_vinfo.
9223
9224 2017-02-03  Martin Sebor  <msebor@redhat.com>
9225
9226         PR tree-optimization/79327
9227         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
9228         when precision has resulted in leading zeros.
9229         (format_integer): Adjust the likely counter to assume an unknown
9230         argument that may be zero is non-zero.
9231
9232 2017-02-03  Jason Merrill  <jason@redhat.com>
9233
9234         PR c++/78689
9235         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
9236         avoid copying non-taken branch.
9237
9238 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
9239
9240         PR tree-optimization/79340
9241         * tree-vect-loop.c (vectorizable_reduction): Release
9242         vec_defs elements after safe_splicing them into other vectors.
9243         Formatting fixes.
9244
9245         PR tree-optimization/79327
9246         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
9247         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
9248         dirtype.
9249         (format_integer): Use wide_int_to_tree instead of build_int_cst
9250         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
9251         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
9252         of shortest and longest sequence.
9253
9254 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
9255
9256         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
9257         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
9258
9259 2017-02-03  Walter Lee  <walt@tilera.com>
9260
9261         PR target/78862
9262         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
9263         after initial stackframe link reg save.
9264         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
9265
9266 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
9267
9268         PR target/79354
9269         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
9270         wu for stxssp alternative.
9271
9272 2017-02-03  Martin Sebor  <msebor@redhat.com>
9273
9274         PR tree-optimization/79352
9275         * gimple-fold.c (get_range_strlen): Add argument.
9276         (get_range_strlen): Change return type to bool.
9277         (get_maxval_strlen): Pass in a dummy argument.
9278         * gimple-fold.h (get_range_strlen): Change return type to bool.
9279         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
9280         * tree.h (array_at_struct_end_p): Add argument.
9281         * tree.c (array_at_struct_end_p): Handle it.
9282
9283 2017-02-03  Martin Liska  <mliska@suse.cz>
9284
9285         PR lto/66295
9286         * multiple_target.c (create_dispatcher_calls): Redirect edge
9287         from a caller of a dispatcher.
9288         (expand_target_clones): Make the clones local.
9289         (ipa_target_clone): Do both target clones and resolvers.
9290         (ipa_dispatcher_calls): Remove the pass.
9291         (pass_dispatcher_calls::gate): Likewise.
9292         (make_pass_dispatcher_calls): Likewise.
9293         * passes.def (pass_target_clone): Put as very first IPA early
9294         pass.
9295
9296 2017-02-03  Martin Liska  <mliska@suse.cz>
9297
9298         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
9299         in case of a function with ifunc attribute.
9300
9301 2017-02-03  Martin Liska  <mliska@suse.cz>
9302
9303         * cgraph.c (cgraph_node::dump): Dump function version info.
9304         * symtab.c (symtab_node::dump_base): Add missing new line.
9305
9306 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
9307
9308         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
9309         (ifcombine_ifandif): Use it.
9310
9311 2017-02-03  Martin Liska  <mliska@suse.cz>
9312
9313         * doc/invoke.texi: Document default value for
9314         use-after-scope-direct-emission-threshold.
9315
9316 2017-02-03  Martin Liska  <mliska@suse.cz>
9317
9318         PR tree-optimization/79339
9319         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
9320         (format_floating): Likewise.
9321
9322 2017-02-03  Martin Liska  <mliska@suse.cz>
9323
9324         PR ipa/79337
9325         * ipa-prop.c (ipa_node_params_t::insert): Remove current
9326         implementation.
9327         (ipa_node_params_t::remove): Likewise.
9328         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
9329         initialization from removed ipa_node_params_t::insert.
9330         (ipa_node_params::~ipa_node_params): Move from removed
9331         ipa_node_params_t::release.
9332         * symbol-summary.h (symbol_summary::m_released): New member.
9333         Do not release a summary twice.  Do not allow to call finalizer
9334         for types of a summary that live in GGC memory.
9335
9336 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
9337
9338         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
9339         cmp_branch fusion.
9340
9341 2017-02-02  Martin Sebor  <msebor@redhat.com>
9342
9343         PR middle-end/79275
9344         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
9345         (format_string): Tighten up the range of output for non-constant
9346         strings and correct the expected range for wide non-constant strings.
9347
9348 2017-02-02  Martin Sebor  <msebor@redhat.com>
9349
9350         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
9351
9352         PR middle-end/32003
9353         * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
9354         index.
9355         (-fdump-tree-@var): Add to index and document how to come up
9356         with pass-specific option and dump file names.
9357         (-fdump-passes): Clarify where to look for output.
9358
9359 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
9360
9361         PR middle-end/77445
9362         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
9363         statistics of the analyzed path; allow threading for speed when
9364         any of BBs along the path are optimized for speed.
9365
9366 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
9367
9368         PR middle-end/78468
9369         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
9370         settings of the virtual registers.
9371
9372         Revert again
9373         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9374
9375         * explow.c (get_dynamic_stack_size): Take known alignment of stack
9376         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
9377         needed.
9378
9379 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9380
9381         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
9382         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
9383
9384 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9385
9386         * config/s390/s390.md: Add missing comments with the expanded
9387         mnemonics.
9388         * config/s390/vector.md: Likewise.
9389         * config/s390/vx-builtins.md: Likewise.
9390
9391 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
9392
9393         PR target/79197
9394         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
9395         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
9396         conditions on a single line.
9397
9398 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9399
9400         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
9401         __S390_VX__ to __VX__.
9402
9403 2017-02-01  Andrew Pinski  <apinski@cavium.com>
9404
9405         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
9406         stmt_info to record_stmt_cost.
9407         (vect_get_known_peeling_cost): Pass stmt_info if known to
9408         record_stmt_cost.
9409         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
9410         cpu_vector_cost field into
9411         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
9412         field into vec_int_stmt_cost and vec_fp_stmt_cost.
9413         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
9414         splitting of scalar_stmt_cost and vec_stmt_cost.
9415         (thunderx_vector_cost): Likewise.
9416         (cortexa57_vector_cost): LIkewise.
9417         (exynosm1_vector_cost): Likewise.
9418         (xgene1_vector_cost): Likewise.
9419         (thunderx2t99_vector_cost): Improve after the splitting of the two
9420         fields.
9421         (aarch64_builtin_vectorization_cost): Update for the splitting of
9422         scalar_stmt_cost and vec_stmt_cost.
9423
9424 2017-02-01  Torvald Riegel  <triegel@redhat.com>
9425             Richard Henderson  <rth@redhat.com>
9426
9427         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
9428         conditional on existance of a fast atomic load.
9429         * optabs-query.c (can_atomic_load_p): New function.
9430         * optabs-query.h (can_atomic_load_p): Declare it.
9431         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
9432         no fast atomic load is available for the particular size of access.
9433         (expand_atomic_compare_and_swap): Likewise.
9434         (expand_atomic_load): Likewise.
9435         (expand_atomic_store): Likewise.
9436         (expand_atomic_fetch_op): Likewise.
9437         * testsuite/lib/target-supports.exp
9438         (check_effective_target_sync_int_128): Remove x86 because it provides
9439         no fast atomic load.
9440         (check_effective_target_sync_int_128_runtime): Likewise.
9441
9442 2017-02-01  Richard Biener  <rguenther@suse.de>
9443
9444         * graphite.c: Include tree-vectorizer.h for find_loop_location.
9445         (graphite_transform_loops): Provide opt-info for optimized nests.
9446         * tree-parloop.c (parallelize_loops): Provide opt-info for
9447         parallelized loops.
9448
9449 2017-02-01  Richard Biener  <rguenther@suse.de>
9450
9451         PR middle-end/79315
9452         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
9453         was not set before.
9454
9455 2017-02-01  Richard Biener  <rguenther@suse.de>
9456
9457         PR tree-optimization/71824
9458         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
9459         Verify the loops are valid in the merged SESE region.
9460         (scop_detection::can_represent_loop_1): Check analyzing the
9461         evolution of the number of iterations in the region succeeds.
9462
9463 2017-01-31  Ian Lance Taylor  <iant@golang.org>
9464
9465         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
9466         REG_ARGS_SIZE note to 32-bit push insns and call insn.
9467
9468 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
9469
9470         PR preprocessor/79210
9471         * input.c (get_substring_ranges_for_loc): Replace line_width
9472         assertion with error-handling.
9473
9474 2017-01-31  Richard Biener  <rguenther@suse.de>
9475
9476         PR tree-optimization/77318
9477         * graphite-sese-to-poly.c (extract_affine): Fix assert.
9478         (create_pw_aff_from_tree): Take loop parameter.
9479         (add_condition_to_pbb): Pass loop of the condition to
9480         create_pw_aff_from_tree.
9481
9482 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
9483
9484         * config/s390/s390.c (s390_asan_shadow_offset): New function.
9485         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
9486
9487 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
9488
9489         PR target/78597
9490         PR target/79038
9491         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
9492         no longer used.
9493         (convert_int_to_float128): Likewise.
9494         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
9495         (convert_int_to_float128): Likewise.
9496         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
9497         (UNSPEC_IEEE128_CONVERT): Likewise.
9498         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
9499         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
9500         Use local variables for IBM extended format.
9501         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
9502         (fix_trunc<mode>si2_fprs): Likewise.
9503         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
9504         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
9505         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
9506         to know that we can now have integers of all sizes in vector
9507         registers.
9508         (fix<uns>_<mode>di2_hw): Likewise.
9509         (float<uns>_<mode>si2_hw): Likewise.
9510         (fix_<mode>si2_hw): Likewise.
9511         (fixuns_<mode>si2_hw): Likewise.
9512         (float<uns>_<mode>di2_hw): Likewise.
9513         (float_<mode>di2_hw): Likewise.
9514         (float_<mode>si2_hw): Likewise.
9515         (floatuns_<mode>di2_hw): Likewise.
9516         (floatuns_<mode>si2_hw): Likewise.
9517         (xscvqp<su>wz_<mode>): Delete, no longer used.
9518         (xscvqp<su>dz_<mode>): Likewise.
9519         (xscv<su>dqp_<mode>): Likewise.
9520         (ieee128_mfvsrd_64bit): Likewise.
9521         (ieee128_mfvsrd_32bit): Likewise.
9522         (ieee128_mfvsrwz): Likewise.
9523         (ieee128_mtvsrw): Likewise.
9524         (ieee128_mtvsrd_64bit): Likewise.
9525         (ieee128_mtvsrd_32bit): Likewise.
9526
9527 2017-01-31  Martin Liska  <mliska@suse.cz>
9528
9529         PR ipa/79285
9530         * ipa-prop.c (ipa_free_all_node_params): Call release method
9531         instead of ~sumbol_summary to not to trigger double times
9532         dtor of hash_map.
9533
9534 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
9535
9536         PR tree-optimization/71691
9537         * bitmap.h (class auto_bitmap): New.
9538         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
9539         is_maybe_undefined instead of ssa_undefined_value_p.
9540
9541 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9542
9543         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
9544         __S390_ARCH_LEVEL__ to __ARCH__.
9545
9546 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
9547
9548         PR tree-optimization/79267
9549         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
9550         if should_remove_lhs_p is true.
9551
9552 2017-01-30  Alexandre Oliva <aoliva@redhat.com>
9553
9554         PR debug/63238
9555         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
9556         (add_alignment_attribute): New.
9557         (base_type_die): Add alignment attribute.
9558         (subrange_type_die): Likewise.
9559         (modified_type_die): Likewise.
9560         (gen_array_type_die): Likewise.
9561         (gen_descr_array_type_die: Likewise.
9562         (gen_enumeration_type_die): Likewise.
9563         (gen_subprogram_die): Likewise.
9564         (gen_variable_die): Likewise.
9565         (gen_field_die): Likewise.
9566         (gen_ptr_to_mbr_type_die): Likewise.
9567         (gen_struct_or_union_type_die): Likewise.
9568         (gen_subroutine_type_die): Likewise.
9569         (gen_typedef_die): Likewise.
9570         (base_type_cmp): Compare alignment attribute.
9571
9572 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
9573
9574         PR target/79170
9575         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
9576         (setb_unsigned) New pattern for setb with CCUNS.
9577         * config/rs6000/rs6000.c (expand_block_compare): Use a different
9578         subfc./subfe sequence to avoid overflow problems.  Generate a
9579         shorter sequence with cmpld/setb for power9.
9580         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
9581         for generating subfc. instruction.
9582         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
9583         now uses this instruction.
9584
9585 2017-01-30  Ian Lance Taylor  <iant@google.com>
9586
9587         PR debug/79289
9588         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
9589         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
9590
9591 2017-01-30  Martin Sebor  <msebor@redhat.com>
9592
9593         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
9594         Move constant to the right of a relational operator.
9595         (get_mpfr_format_length, format_character, format_string): Ditto.
9596         (should_warn_p, maybe_warn): Same.
9597
9598         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
9599
9600 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
9601
9602         PR lto/79061
9603         * asan.c (get_translation_unit_decl): Remove function.
9604         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
9605
9606 2017-01-30  Martin Liska  <mliska@suse.cz>
9607
9608         PR gcov-profile/79259
9609         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
9610         -fprofile-generate.
9611
9612 2017-01-30  Martin Liska  <mliska@suse.cz>
9613
9614         PR bootstrap/78985
9615         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
9616         Initialize variables with NULL value.
9617
9618 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
9619
9620         PR target/79260
9621         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
9622         tm_p_file.
9623         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
9624
9625 2017-01-30  Richard Biener  <rguenther@suse.de>
9626
9627         PR tree-optimization/79276
9628         * tree-vrp.c (process_assert_insertions): Properly adjust common
9629         when removing a duplicate.
9630
9631         * gcc.dg/torture/pr79276.c: New testcase.
9632
9633 2017-01-30  Richard Biener  <rguenther@suse.de>
9634
9635         PR tree-optimization/79256
9636         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
9637         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
9638         alignment on TYPE.
9639         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
9640
9641 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9642
9643         PR target/79240
9644         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
9645         ("*r<noxa>sbg_<mode>_sll_bitmask")
9646         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
9647         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
9648         Use contiguous_bitmask_nowrap_operand.
9649
9650 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9651
9652         PR target/79268
9653         * config/rs6000/altivec.h (vec_xl): Revise #define.
9654         (vec_xst): Likewise.
9655
9656 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
9657
9658         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
9659
9660 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
9661
9662         PR rtl-optimization/79194
9663         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
9664         traps before call to bypass_conditional_jumps.
9665
9666 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
9667
9668         PR tree-optimization/71374
9669         * lra-constraints.c (check_conflict_input_operands): New.
9670         (match_reload): Use it.
9671
9672 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
9673
9674         PR target/79131
9675         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
9676         account to calculate conflict_set.
9677
9678 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
9679
9680         PR rtl-optimization/78559
9681         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
9682         other_insn in combine.
9683
9684 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
9685
9686         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
9687         uint16_type_node for BT_UINT16.
9688
9689 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
9690
9691         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
9692         "RTL Tests" to menu.
9693         (GIMPLE Tests): New node.
9694         (RTL Tests): New node.
9695
9696 2017-01-27  Richard Biener  <rguenther@suse.de>
9697
9698         PR tree-optimization/79245
9699         * tree-loop-distribution.c (distribute_loop): Apply cost
9700         modeling also to detected patterns.
9701
9702 2017-01-27  Richard Biener  <rguenther@suse.de>
9703
9704         PR tree-optimization/71433
9705         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
9706         (compare_assert_loc): New function.
9707         (process_assert_insertions): Sort and optimize assert locations
9708         to remove duplicates and push down identical assertions on
9709         edges to their destination block.
9710
9711 2017-01-27  Richard Biener  <rguenther@suse.de>
9712
9713         PR tree-optimization/79244
9714         * tree-vrp.c (remove_range_assertions): Forcefully propagate
9715         out SSA names even if abnormal.
9716
9717 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
9718
9719         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
9720         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
9721         instead of MPFR_RNDN.
9722
9723 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
9724
9725         PR target/79239
9726         * arm.c (arm_option_override): Don't call build_target_option_node
9727         until after doing all option overrides.
9728         (arm_valid_target_attribute_tree): Likewise.
9729
9730 2017-01-27  Martin Liska  <mliska@suse.cz>
9731
9732         * doc/invoke.texi (-fprofile-arcs): Document profiling support
9733         for {cd}tors and C++ {cd}tors.
9734
9735 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9736
9737         * config/s390/s390.md ("*setmem_long_and")
9738         ("*setmem_long_and_31z"): Use zero_extend instead of and.
9739
9740 2017-01-26  Martin Sebor  <msebor@redhat.com>
9741
9742         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
9743         of precision.
9744
9745 2017-01-26  Martin Sebor  <msebor@redhat.com>
9746
9747         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
9748         HAVE_DFmode before using XFmode or DFmode.
9749         (parse_directive): Avoid using the z length modifier to avoid
9750         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
9751
9752         PR middle-end/78703
9753         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
9754         to accept adjustment as an array.
9755         (get_int_range): New function.
9756         (struct directive): Make width and prec arrays.
9757         (directive::set_width, directive::set_precision): Call get_int_range.
9758         (format_integer, format_floating): Handle width and precision ranges.
9759         (format_string, parse_directive): Same.
9760
9761 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
9762
9763         PR debug/79129
9764         * dwarf2out.c (generate_skeleton_bottom_up): For children with
9765         comdat_type_p set, just clone them, but keep the children in the
9766         original DIE.
9767
9768         PR debug/78835
9769         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
9770         which have direct callers with -fvar-tracking-assignments enabled
9771         in the current TU.
9772         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
9773         inside of type units.
9774
9775 2017-01-26  Martin Sebor  <msebor@redhat.com>
9776
9777         PR middle-end/78703
9778         * gimple-ssa-sprintf.c (struct result_range): Add likely and
9779         unlikely counters.
9780         (struct format_result): Replace number_chars, number_chars_min,
9781         and number_chars_max with a single member of struct result_range.
9782         Remove bounded.
9783         (format_result::operator+=): Adjust.
9784         (struct fmtresult): Remove bounded.  Handle likely and unlikely
9785         counters.
9786         (fmtresult::adjust_for_width_or_precision): New function.
9787         (fmtresult:type_max_digits): New function.
9788         (bytes_remaining): Handle likely and unlikely counters.
9789         (min_bytes_remaining): Remove.
9790         (format_percent): Simplify.
9791         (format_integer, format_floating): Set likely and unlikely counters.
9792         (get_string_length, format_character, format_string): Same.
9793         (format_plain, should_warn_p): New function.
9794         (maybe_warn): Call should_warn_p.  Update diagnostic messages
9795         and handle those for all directives, including plain strings.
9796         (format_directive): Handle likely and unlikely counters.
9797         Remove unnecessary quoting from diagnostics.  Add an informational
9798         note.
9799         (add_bytes): Remove.
9800         (pass_sprintf_length::compute_format_length): Simplify.
9801         (try_substitute_return_value): Handle likely and unlikely counters.
9802
9803 2017-01-26  Carl Love  <cel@us.ibm.com>
9804
9805         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
9806         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
9807
9808 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
9809
9810         PR target/79131
9811         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
9812         endianess for subregs into account.
9813         * lra-constraints.c (lra_constraints): Do risky transformations
9814         always on the first iteration.
9815         * lra-lives.c (check_pseudos_live_through_calls): Add arg
9816         last_call_used_reg_set.
9817         (process_bb_lives): Define and use last_call_used_reg_set.
9818         * lra.c (lra): Always continue after lra_constraints on the first
9819         iteration.
9820
9821 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
9822
9823         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
9824         constant.
9825         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
9826
9827 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
9828
9829         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
9830         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
9831         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
9832         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
9833         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
9834         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
9835         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
9836         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
9837         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
9838
9839 2017-01-26  Marek Polacek  <polacek@redhat.com>
9840
9841         PR c/79199
9842         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
9843         for the third operand.
9844
9845 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
9846
9847         PR middle-end/79236
9848         * omp-low.c (struct omp_context): Add simt_stmt field.
9849         (scan_omp_for): Return omp_context *.
9850         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
9851         context to the _simt_ SIMD stmt.
9852         (lower_omp_for): For combined SIMD with sibling _simt_
9853         SIMD, make sure to use the same decls in _looptemp_
9854         clauses as in the sibling.
9855
9856 2017-01-26  David Sherwood  <david.sherwood@arm.com>
9857
9858         PR middle-end/79212
9859         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
9860         all contexts.
9861
9862 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
9863
9864         PR target/70465
9865         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
9866         emit fld b; fld a; if possible.
9867
9868         * brig-builtins.def: Update copyright years.
9869         * config/arm/arm_acle_builtins.def: Update copyright years.
9870
9871 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
9872
9873         PR target/79179
9874         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
9875         constraint instead of o for the stxsd instruction.
9876
9877 2017-01-25  Carl Love  <cel@us.ibm.com>
9878
9879         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
9880         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
9881
9882 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
9883
9884         * doc/invoke.texi (C++ Dialect Options): Fix typo.
9885
9886 2017-01-25  Richard Biener  <rguenther@suse.de>
9887
9888         PR tree-optimization/69264
9889         * target.def (vector_alignment_reachable): Improve documentation.
9890         * doc/tm.texi: Regenerate.
9891         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
9892         and add a comment.
9893         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
9894         earlier changes with respect to TYPE_USER_ALIGN.
9895         (vector_alignment_reachable_p): Likewise.  Improve dumping.
9896
9897 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9898
9899         PR target/79145
9900         * config/arm/arm.md (xordi3): Force constant operand into a register
9901         for TARGET_IWMMXT.
9902
9903 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9904
9905         * doc/invoke.texi (-fstore-merging): Correct default optimization
9906         levels at which it is enabled.
9907         (-O): Move -fstore-merging from list to...
9908         (-O2): ... Here.
9909
9910 2017-01-25  Richard Biener  <rguenther@suse.de>
9911
9912         PR debug/78363
9913         * omp-expand.c: Include debug.h.
9914         (expand_omp_taskreg): Make sure to generate early debug before
9915         outlining anything from a function.
9916         (expand_omp_target): Likewise.
9917         (grid_expand_target_grid_body): Likewise.
9918
9919 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
9920
9921         PR lto/79061
9922         * asan.c (get_translation_unit_decl): New function.
9923         (asan_add_global): Extract modules file name from globals
9924         TRANSLATION_UNIT_DECL name.
9925
9926 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
9927
9928         PR target/77439
9929         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
9930         for long calls with APCS frame and VFP.
9931
9932 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
9933
9934         * cfg.c (original_copy_tables_initialized_p): New function.
9935         * cfg.h (original_copy_tables_initialized_p): New decl.
9936         * cfgrtl.c (relink_block_chain): Guard the call to
9937         free_original_copy_tables with a call to
9938         original_copy_tables_initialized_p.
9939         * cgraph.h (symtab_node::native_rtl_p): New decl.
9940         * cgraphunit.c (symtab_node::native_rtl_p): New function.
9941         (symtab_node::needed_p): Don't assert for early assembly output
9942         for __RTL functions.
9943         (cgraph_node::finalize_function): Set "force_output" for __RTL
9944         functions.
9945         (cgraph_node::analyze): Bail out early for __RTL functions.
9946         (analyze_functions): Update assertion to support __RTL functions.
9947         (cgraph_node::expand): Bail out early for __RTL functions.
9948         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
9949         __RTL functions.
9950         * function.h (struct function): Update comment for field
9951         "pass_startwith".
9952         * gimple-expr.c: Include "tree-pass.h".
9953         (gimple_has_body_p): Return false for __RTL functions.
9954         * Makefile.in (OBJS): Add run-rtl-passes.o.
9955         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
9956         accessor.
9957         (gcc::pass_manager::get_clean_slate): New accessor.
9958         * passes.c: Include "insn-addr.h".
9959         (should_skip_pass_p): Add logging.  Update logic for running
9960         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
9961         property-provider override so it is only done for gimple passes.
9962         Don't skip dfinit.
9963         (skip_pass): New function.
9964         (execute_one_pass): Call skip_pass when skipping passes.
9965         * read-md.c (md_reader::read_char): Support filtering
9966         the input to a subset of line numbers.
9967         (md_reader::md_reader): Initialize fields
9968         m_first_line and m_last_line.
9969         (md_reader::read_file_fragment): New function.
9970         * read-md.h (md_reader::read_file_fragment): New decl.
9971         (md_reader::m_first_line): New field.
9972         (md_reader::m_last_line): New field.
9973         * read-rtl-function.c (function_reader::create_function): Only
9974         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
9975         curr_properties.  Set DECL_INITIAL to a dummy block.
9976         (read_rtl_function_body_from_file_range): New function.
9977         * read-rtl-function.h (read_rtl_function_body_from_file_range):
9978         New decl.
9979         * run-rtl-passes.c: New file.
9980         * run-rtl-passes.h: New file.
9981
9982 2017-01-24  Jeff Law  <law@redhat.com>
9983
9984         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
9985         buffer size.
9986
9987 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
9988
9989         PR tree-optimization/79159
9990         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
9991         (record_nonwrapping_iv): Improve boundary using above function if no
9992         value range information.
9993
9994 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
9995             Martin Jambor  <mjambor@suse.cz>
9996
9997         * brig-builtins.def: New file.
9998         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
9999         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
10000         (DEF_HSAIL_SAT_BUILTIN): Likewise.
10001         (DEF_HSAIL_INTR_BUILTIN): Likewise.
10002         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
10003         * builtin-types.def (BT_INT8): New.
10004         (BT_INT16): Likewise.
10005         (BT_UINT8): Likewise.
10006         (BT_UINT16): Likewise.
10007         (BT_FN_ULONG): Likewise.
10008         (BT_FN_UINT_INT): Likewise.
10009         (BT_FN_UINT_ULONG): Likewise.
10010         (BT_FN_UINT_LONG): Likewise.
10011         (BT_FN_UINT_PTR): Likewise.
10012         (BT_FN_ULONG_PTR): Likewise.
10013         (BT_FN_INT8_FLOAT): Likewise.
10014         (BT_FN_INT16_FLOAT): Likewise.
10015         (BT_FN_UINT32_FLOAT): Likewise.
10016         (BT_FN_UINT16_FLOAT): Likewise.
10017         (BT_FN_UINT8_FLOAT): Likewise.
10018         (BT_FN_UINT64_FLOAT): Likewise.
10019         (BT_FN_UINT16_UINT32): Likewise.
10020         (BT_FN_UINT32_UINT16): Likewise.
10021         (BT_FN_UINT16_UINT16_UINT16): Likewise.
10022         (BT_FN_INT_PTR_INT): Likewise.
10023         (BT_FN_UINT_PTR_UINT): Likewise.
10024         (BT_FN_LONG_PTR_LONG): Likewise.
10025         (BT_FN_ULONG_PTR_ULONG): Likewise.
10026         (BT_FN_VOID_UINT64_UINT64): Likewise.
10027         (BT_FN_UINT8_UINT8_UINT8): Likewise.
10028         (BT_FN_INT8_INT8_INT8): Likewise.
10029         (BT_FN_INT16_INT16_INT16): Likewise.
10030         (BT_FN_INT_INT_INT): Likewise.
10031         (BT_FN_UINT_FLOAT_UINT): Likewise.
10032         (BT_FN_FLOAT_UINT_UINT): Likewise.
10033         (BT_FN_ULONG_UINT_UINT): Likewise.
10034         (BT_FN_ULONG_UINT_PTR): Likewise.
10035         (BT_FN_ULONG_ULONG_ULONG): Likewise.
10036         (BT_FN_UINT_UINT_UINT): Likewise.
10037         (BT_FN_VOID_UINT_PTR): Likewise.
10038         (BT_FN_UINT_UINT_PTR: Likewise.
10039         (BT_FN_UINT32_UINT64_PTR): Likewise.
10040         (BT_FN_INT_INT_UINT_UINT): Likewise.
10041         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
10042         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
10043         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
10044         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
10045         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
10046         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
10047         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
10048         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
10049         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
10050         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
10051         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
10052         * doc/frontends.texi: List BRIG FE.
10053         * doc/install.texi (Testing): Add BRIG tesring requirements.
10054         * doc/invoke.texi (Overall Options): Mention BRIG.
10055         * doc/standards.texi (Standards): Doucment BRIG HSA version.
10056
10057 2017-01-24  Richard Biener  <rguenther@suse.de>
10058
10059         PR translation/79208
10060         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
10061
10062 2017-01-24  Martin Jambor  <mjambor@suse.cz>
10063
10064         PR bootstrap/79198
10065         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
10066         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
10067         and known_contexts.
10068
10069 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
10070
10071         PR middle-end/79123
10072         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
10073         casts from signed to unsigned really don't have a range.
10074
10075 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
10076
10077         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
10078         GMP_RNDx for compatiblity.
10079
10080 2017-01-24  Martin Liska  <mliska@suse.cz>
10081
10082         PR bootstrap/79132
10083         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
10084         that would prevent us to call alloca with -1 as argument.
10085
10086 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
10087
10088         * dwarf2out.c (output_compilation_unit_header, output_file_names):
10089         Avoid -Wformat-security warning.
10090
10091 2017-01-23  Andrew Pinski  <apinski@cavium.com>
10092
10093         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
10094         cost table.
10095
10096 2017-01-23  Martin Sebor  <msebor@redhat.com>
10097
10098         PR middle-end/78703
10099         * gimple-ssa-sprintf.c (warn_level): New global.
10100         (format_integer): Use it here and throughout the rest of the file.
10101         Use the same switch to compute sign as base.
10102         (maybe_warn): New function.
10103         (format_directive): Factor out warnings into maybe_warn.
10104         Add debugging output.  Use warn_level.
10105         (add_bytes): Use warn_level.
10106         (pass_sprintf_length::compute_format_length): Add debugging output.
10107         (try_substitute_return_value): Same.
10108         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
10109
10110         PR middle-end/78703
10111         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
10112         (struct fmtresult, format_integer, format_floating): Adjust.
10113         (fmtresult::fmtresult): Set max correctly in two argument ctor.
10114         (get_string_length, format_string,format_directive): Same.
10115         (pass_sprintf_length::compute_format_length): Same.
10116         (try_substitute_return_value): Simplify slightly.
10117
10118         PR middle-end/78703
10119         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
10120         (fmtresult::operator+=): Outlined.
10121         (struct fmtresult): Add ctors.
10122         (struct conversion_spec): Rename...
10123         (struct directive): ...to this.  Add and remove data members.
10124         (directive::set_width, directive::set_precision): New functions.
10125         (format_percent): Use fmtresult ctor.
10126         (get_width_and_precision): Remove.
10127         (format_integer): Make naming changes.  Avoid computing width and
10128         precision.
10129         (format_floating): Same.  Adjust indentation.
10130         (format_character, format_none): New functions.
10131         (format_string): Moved character handling to format_character.
10132         (format_directive): Remove arguments, change return type.
10133         (parse_directive): New function.
10134         (pass_sprintf_length::compute_format_length): Move directive
10135         parsing to parse_directive.
10136
10137 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
10138
10139         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
10140         (assign_assembler_name_if_needed): ... this.
10141         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
10142         (assign_assembler_name_if_needed): ... this.
10143         (free_lang_data_in_cgraph): Adjust callers.
10144         * cgraphunit.c (cgraph_node::analyze): Likewise.
10145         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
10146         Likewise.
10147
10148 2017-01-23  Richard Biener  <rguenther@suse.de>
10149
10150         PR tree-optimization/79088
10151         PR tree-optimization/79188
10152         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
10153         resetting loop bounds after last path deletion.  Reset loop
10154         bounds of the target loop, make code match the comments.
10155         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
10156         Make sure loops need no fixups.
10157
10158 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
10159
10160         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
10161         exponent support with double type for first argument.
10162         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
10163         type returned by __builtin_vec_extract_sig,
10164         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
10165         functions from "vector int" to "vector unsigned int" or from
10166         "vector long long int" to "vector unsigned long long int".
10167         Changed type returned by __builtin_vec_extract_exp,
10168         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
10169         functions from "vector int" to "vector unsigned int" or from
10170         "vector long long int" to "vector unsigned long long int".
10171         Changed return type of __builtin_vec_test_data_class,
10172         __builtin_vec_test_data_class_sp, and
10173         __builtin_vec_test_data_class_dp from "vector int" to
10174         "vector bool int" or from "vector long long int" to "vector bool
10175         long long int" and changed second argument type from "unsigned
10176         int" to "int".  Added new overloaded function forms "vector float
10177         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
10178         "vector float __builtin_vec_insert_exp_sp (vector float, vector
10179         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
10180         double, vector unsigned long long int)" and "vector double
10181         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
10182         long int)".  Changed return type of
10183         __builtin_scalar_test_data_class and
10184         __builtin_scalar_test_data_class_sp and
10185         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
10186         int" and changed second argument from "unsigned int" to "int".
10187         Changed type returned by __builtin_scalar_test_neg,
10188         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
10189         from "int" to "bool int".  Added new overloaded function form
10190         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
10191         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
10192         exponent double-precision with floating point first argument.
10193         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
10194         documentation of scalar_test_data_class, scalar_test_neg,
10195         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
10196         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
10197         vec_test_data_class built-in functions to reflect refinements in
10198         their type signatures.
10199
10200 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
10201
10202         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
10203         size of buf.
10204         (aarch64_elf_asm_destructor): Likewise.
10205
10206 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
10207
10208         PR rtl-optimization/78634
10209         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
10210         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
10211         * ifcvt.c (noce_try_cmove): Add missing cost check.
10212
10213         PR rtl-optimization/71724
10214         * combine.c (if_then_else_cond): Look for situations where it is
10215         beneficial to undo the work of one of the recursive calls.
10216
10217 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
10218
10219         PR tree-optimization/70754
10220         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
10221         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
10222         combined stmt before it if not NULL.
10223         (combine_chains): Process refs reversely and compute dominance point
10224         for root ref.
10225
10226 2017-01-23  Martin Liska  <mliska@suse.cz>
10227
10228         PR tree-optimization/79196
10229         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
10230         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
10231         instead of memcmp.
10232         (strlen_optimize_stmt): Call the renamed function.
10233
10234 2017-01-23  Michael Matz  <matz@suse.de>
10235
10236         PR tree-optimization/78384
10237         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
10238
10239 2017-01-23  Richard Biener  <rguenther@suse.de>
10240
10241         PR tree-optimization/79186
10242         * tree-vrp.c (register_new_assert_for): Make sure we've seen
10243         both incoming edges before moving an assert.
10244
10245 2017-01-23  Martin Jambor  <mjambor@suse.cz>
10246
10247         * ipa-prop.c (load_from_param_1): Removed.
10248         (load_from_unmodified_param): Bits from load_from_param_1 put back
10249         here.
10250         (load_from_param): Removed.
10251         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
10252         with stmt.  Reverted back to use of load_from_unmodified_param.
10253
10254 2017-01-23  Martin Jambor  <mjambor@suse.cz>
10255
10256         PR ipa/79108
10257         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
10258         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
10259         field a pointer to garbage collected vector, mark lattices and
10260         ipcp_orig_node with GTY((skip)).
10261         (ipa_get_param_count): Adjust to descriptors being a pointer.
10262         (ipa_get_param): Likewise.
10263         (ipa_get_type): Likewise.
10264         (ipa_get_param_move_cost): Likewise.
10265         (ipa_set_param_used): Likewise.
10266         (ipa_get_controlled_uses): Likewise.
10267         (ipa_set_controlled_uses): Likewise.
10268         (ipa_is_param_used): Likewise.
10269         (ipa_node_params_t): Move into garbage collector.  New methods insert
10270         and remove.
10271         (ipa_node_params_sum): Annotate wth GTY(()).
10272         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
10273         garbage collected.
10274         (ipa_load_from_parm_agg): Adjust declaration.
10275         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
10276         * ipa-profile.c (ipa_profile): Likewise.
10277         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
10278         (ipa_populate_param_decls): Make descriptors parameter garbage
10279         collected.
10280         (ipa_dump_param): Adjust to descriptors being a pointer.
10281         (ipa_alloc_node_params): Likewise.
10282         (ipa_initialize_node_params): Likewise.
10283         (load_from_param_1): Make descriptors parameter garbage collected.
10284         (load_from_unmodified_param): Likewise.
10285         (load_from_param): Likewise.
10286         (ipa_load_from_parm_agg): Likewise.
10287         (ipa_node_params::~ipa_node_params): Removed.
10288         (ipa_free_all_node_params): Remove call to delete operator.
10289         (ipa_node_params_t::insert): New.
10290         (ipa_node_params_t::remove): Likewise.
10291         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
10292         copy known_csts and known_contexts vectors.
10293         (ipa_read_node_info): Adjust to descriptors being a pointer.
10294         (ipcp_modif_dom_walker): Make m_descriptors field garbage
10295         collected.
10296         (ipcp_transform_function): Make descriptors variable garbage
10297         collected.
10298
10299 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
10300
10301         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
10302         * config/i386/avx512dqintrin.h: Ditto.
10303         * config/i386/avx512fintrin.h: Ditto.
10304         * gcc/config/i386/i386.c: Handle new builtins.
10305         * config/i386/i386-builtin.def: Add new builtins.
10306         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
10307         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
10308
10309 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
10310             Martin Liska  <mliska@suse.cz>
10311
10312         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
10313         * asan.c (asan_expand_poison_ifn): Support stores and use
10314         appropriate ASAN report function.
10315         * internal-fn.c (expand_ASAN_POISON_USE): New function.
10316         * internal-fn.def (ASAN_POISON_USE): Declare.
10317         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
10318         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
10319         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
10320         ASAN_POISON calls w/o LHS.
10321         * tree-ssa.c (execute_update_addresses_taken): Create clobber
10322         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
10323         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
10324         * gimplify.c (asan_poison_variables): Add attribute
10325         use_after_scope_memory to variables that really needs to live
10326         in memory.
10327         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
10328         having the attribute.
10329
10330 2017-01-23  Martin Liska  <mliska@suse.cz>
10331
10332         * asan.c (create_asan_shadow_var): New function.
10333         (asan_expand_poison_ifn): Likewise.
10334         * asan.h (asan_expand_poison_ifn): New declaration.
10335         * internal-fn.c (expand_ASAN_POISON): Likewise.
10336         * internal-fn.def (ASAN_POISON): New builtin.
10337         * sanopt.c (pass_sanopt::execute): Expand
10338         asan_expand_poison_ifn.
10339         * tree-inline.c (copy_decl_for_dup_finish): Make function
10340         external.
10341         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
10342         * tree-ssa.c (is_asan_mark_p): New function.
10343         (execute_update_addresses_taken): Rewrite local variables
10344         (identified just by use-after-scope as addressable) into SSA.
10345
10346 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
10347
10348         * doc/install.texi (Specific): opensource.apple.com uses https
10349         now. Remove trailing slash.
10350
10351 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
10352
10353         * README.Portability: Remove note on an Irix compatibility issue.
10354
10355 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
10356
10357         * gcov.c (INCLUDE_ALGORITHM): Define.
10358         (INCLUDE_VECTOR): Define.
10359         No longer include <vector> and <algorithm> directly.
10360
10361 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
10362
10363         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
10364         to https.
10365         * doc/invoke.texi (Code Gen Options): Ditto.
10366
10367 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
10368
10369         PR lto/78407
10370         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
10371
10372 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
10373
10374         rtl-optimization/79125
10375         * cprop.c (local_cprop_pass): Handle cases where we make an
10376         unconditional trap.
10377
10378 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
10379
10380         PR target/61729
10381         PR target/77850
10382         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
10383         read from, for big endian.
10384
10385 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
10386
10387         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
10388         register pauth builtins for LP64 only.
10389
10390 2017-01-20  Marek Polacek  <polacek@redhat.com>
10391
10392         PR c/79152
10393         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
10394         non-case labels.
10395
10396 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
10397
10398         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
10399         of safelen status.
10400         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
10401         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
10402         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
10403
10404 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10405
10406         PR target/71270
10407         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
10408         in big-endian mode when they are not a single duplicated value.
10409
10410 2017-01-20  Richard Biener  <rguenther@suse.de>
10411
10412         * BASE-VER: Bump to 7.0.1.
10413
10414 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
10415
10416         * omp-low.c (omplow_simd_context): New struct.  Use it...
10417         (lower_rec_simd_input_clauses): ...here and...
10418         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
10419         references to idx, lane, max_vf, is_simt.
10420
10421 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
10422
10423         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
10424         mcpu=nps400.
10425
10426 2017-01-20  Martin Jambor  <mjambor@suse.cz>
10427
10428         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
10429         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
10430         gt-hsa-common.h.
10431         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
10432         (GTFILES): Rename hsa.c to hsa-common.c.
10433         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
10434         * hsa-dump.c: Likewise.
10435         * hsa-gen.c: Likewise.
10436         * hsa-regalloc.c: Likewise.
10437         * ipa-hsa.c: Likewise.
10438         * omp-expand.c: Likewise.
10439         * omp-low.c: Likewise.
10440         * toplev.c: Likewise.
10441
10442 2017-01-20  Marek Polacek  <polacek@redhat.com>
10443
10444         PR c/64279
10445         * doc/invoke.texi: Document -Wduplicated-branches.
10446         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
10447         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
10448         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
10449         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
10450         return 0 only when not OEP_LEXICOGRAPHIC.
10451         (fold_build_cleanup_point_expr): Use the expression
10452         location when building CLEANUP_POINT_EXPR.
10453         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
10454         * tree.c (add_expr): Handle error_mark_node.
10455
10456 2017-01-20  Martin Liska  <mliska@suse.cz>
10457
10458         PR lto/69188
10459         * tree-profile.c (init_ic_make_global_vars): Do not call
10460         finalize_decl.
10461         (gimple_init_gcov_profiler): Likewise.
10462
10463 2017-01-20  Martin Liska  <mliska@suse.cz>
10464
10465         PR ipa/71190
10466         * cgraph.h (maybe_create_reference): Remove argument and
10467         update comment.
10468         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
10469         argument.
10470         * ipa-cp.c (create_specialized_node): Likewise.
10471         * symtab.c (symtab_node::maybe_create_reference): Handle
10472         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
10473
10474 2017-01-20  Martin Liska  <mliska@suse.cz>
10475
10476         * read-rtl-function.c (function_reader::create_function): Use
10477         build_decl instread of build_decl_stat.
10478
10479 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
10480
10481         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
10482         * config/i386/avx512dqintrin.h: Ditto.
10483         * config/i386/avx512fintrin.h: Ditto.
10484         * config/i386/i386-builtin-types.def: Add new types.
10485         * gcc/config/i386/i386.c: Handle new types.
10486         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
10487         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
10488         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
10489         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
10490         (__builtin_ia32_kshiftridi): New.
10491         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
10492
10493 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
10494
10495         PR target/78875
10496         PR target/79140
10497         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
10498         define to rs6000_init_stack_protect_guard.
10499         (rs6000_init_stack_protect_guard): New function.
10500
10501 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
10502             Yunqiang Su  <yunqiang.su@imgtec.com>
10503
10504         * config.gcc (supported_defaults): Add madd4.
10505         (with_madd4): Add validation.
10506         (all_defaults): Add madd4.
10507         * config/mips/mips.opt (mmadd4): New option.
10508         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
10509         mmadd4.
10510         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
10511         __mips_no_madd4.
10512         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
10513         (ISA_HAS_FUSED_MADD4): Likewise.
10514         * gcc/doc/invoke.texi (-mmadd4): Document the new option.
10515         * gcc/doc/install.texi (--with-madd4): Document the new option.
10516
10517 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
10518
10519         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
10520         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
10521         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
10522         (aarch64_init_pauth_hint_builtins): New.
10523         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
10524         (aarch64_expand_builtin): Expand new builtins.
10525
10526 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
10527
10528         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
10529         * combine-stack-adj.c (no_unhandled_cfa): Handle
10530         REG_CFA_TOGGLE_RA_MANGLE.
10531         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
10532         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
10533         info for return address signing.
10534         (aarch64_expand_epilogue): Likewise.
10535
10536 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
10537
10538         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
10539         * config/aarch64/aarch64-protos.h
10540         (aarch64_return_address_signing_enabled): New declaration.
10541         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
10542         New function.
10543         (aarch64_expand_prologue): Sign return address before it's pushed onto
10544         stack.
10545         (aarch64_expand_epilogue): Authenticate return address fetched from
10546         stack.
10547         (aarch64_override_options): Sanity check for ILP32 and ISA level.
10548         (aarch64_attributes): New function attributes for "sign-return-address".
10549         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
10550         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
10551         ("*do_return"): Generate combined instructions according to key index.
10552         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
10553         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
10554         iterators.
10555         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
10556         * config/aarch64/aarch64.opt (msign-return-address=): New.
10557         * doc/extend.texi (AArch64 Function Attributes): Documents
10558         "sign-return-address=".
10559         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
10560
10561 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
10562
10563         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
10564         overall option summary.
10565
10566 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
10567
10568         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
10569         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
10570         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
10571         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
10572
10573 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
10574
10575         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
10576         -mpower9-minmax by default for -mcpu=power9.
10577         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
10578         128-bit floating point.
10579
10580 2017-01-20  Alan Modra  <amodra@gmail.com>
10581
10582         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
10583         optimizing for size.
10584
10585 2017-01-20  Alan Modra  <amodra@gmail.com>
10586
10587         PR target/79144
10588         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
10589         for strcmp and strncmp from corresponding builtin decl.
10590
10591 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
10592
10593         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
10594         instead of i386/rtems-64.h.
10595         * config/i386/rtems-64.h: Remove.
10596
10597 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
10598
10599         PR target/78478
10600         Revert:
10601         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
10602
10603         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
10604
10605 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
10606
10607         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
10608         Change int to HOST_WIDE_INT.
10609         * config/aarch64/aarch64-protos.h
10610         (aarch64_simd_gen_const_vector_dup): Likewise.
10611         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
10612
10613 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
10614
10615         * langhooks-def.h (lhd_type_for_size): New decl.
10616         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
10617         * langhooks.c (lhd_type_for_size): New function, taken from
10618         lto_type_for_size.
10619
10620 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
10621
10622         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
10623         define_bypass for CR latency.
10624         (power9-cracked-alu): Update bypass latency and remove power9-branch.
10625         (power9-alu2): Add define_bypass for CR latency.
10626         (power9-cmp): New.
10627         (power9-mul): Update insn latency.
10628         (power9-mul-compare): Update insn latency, bypass latency and remove
10629         power9-branch.
10630
10631 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10632
10633         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
10634         Delete.
10635         * config/aarch64/aarch64.md
10636         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
10637         aarch64_nopcrelative_literal_loads.
10638         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
10639
10640 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
10641
10642         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
10643         TARGET_LOONGSON_3A.
10644         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
10645
10646 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
10647
10648         PR target/78176
10649         * config.gcc (supported_defaults): Add lxc1-sxc1.
10650         (with_lxc1_sxc1): Add validation.
10651         (all_defaults): Add lxc1-sxc1.
10652         * config/mips/mips.opt (mlxc1-sxc1): New option.
10653         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
10654         mlxc1-sxc1.
10655         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
10656         __mips_no_lxc1_sxc1.
10657         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
10658         * gcc/doc/invoke.texi (-mlxc1-sxc1): Document the new option.
10659         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
10660
10661 2017-01-19  Richard Biener  <rguenther@suse.de>
10662
10663         PR tree-optimization/72488
10664         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
10665         sure to restore SSA info.
10666         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
10667
10668 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
10669
10670         PR rtl-optimization/79121
10671         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
10672         of the inner type when shifting an extended value.
10673
10674 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
10675
10676         PR lto/78407
10677         * symtab.c (symtab_node::equal_address_to): Fix comparing of
10678         interposable aliases.
10679
10680 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
10681
10682         PR target/78516
10683         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
10684         Use the evmergelohi instruction.
10685         (mov_si<mode>_e500_subreg4_2_le): Likewise.
10686         (mov_sitf_e500_subreg8_2_be): Likewise.
10687         (mov_sitf_e500_subreg12_2_le): Likewise.
10688         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
10689         (mov_si<mode>_e500_subreg4_2_be): Likewise.
10690         (mov_sitf_e500_subreg8_2_le): Likewise.
10691         (mov_sitf_e500_subreg12_2_be): Likewise.
10692
10693 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10694
10695         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
10696         attribute from vecsimple to vecperm.
10697         (altivec_vbpermq2): Likewise.
10698
10699 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10700
10701         PR target/79040
10702         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
10703
10704 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
10705         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
10706         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
10707         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
10708         case where N arg is SIZE_MAX.
10709         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
10710         (cmpstrsi): Add pattern.
10711
10712 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
10713
10714         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10715         __builtin_vec_revb builtins.
10716         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
10717         built-in functions to support generation of the ISA 3.0 XXBR<x>
10718         vector byte reverse instructions.
10719         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
10720         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
10721         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
10722         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
10723         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
10724         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
10725         (P9V_BUILTIN_VEC_REVB): Likewise.
10726         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
10727         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
10728         (p9_xxbrq_v16qi): Likewise.
10729         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
10730         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
10731         (p9_xxbrh_v8hi): Likewise.
10732         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
10733         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
10734         vec_revb built-in functions.
10735
10736 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
10737
10738         PR rtl-optimization/78952
10739         * config/i386/i386.md (any_extract): New code iterator.
10740         (*insvqi_2): Use any_extract for source operand.
10741         (*insvqi_3): Use any_shiftrt for source operand.
10742
10743 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
10744
10745         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
10746         New function.
10747         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
10748
10749 2017-01-18  Matthias Klose  <doko@ubuntu.com>
10750
10751         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
10752
10753 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10754
10755         * config/rs6000/altivec.h (vec_bperm): Change #define.
10756         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
10757         (altivec_vbpermq2): New define_insn.
10758         (altivec_vbpermd): Likewise.
10759         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
10760         function interface.
10761         (VBPERMD): Likewise.
10762         (VBPERM): New polymorphic function interface.
10763         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
10764         Add entries for P9V_BUILTIN_VEC_VBPERM.
10765         * doc/extend.texi: Add interfaces for vec_bperm.
10766
10767 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10768
10769         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
10770         first letter of error messages.
10771         (s390_resolve_overloaded_builtin): Likewise.
10772         * config/s390/s390.c (s390_expand_builtin): Likewise.
10773         (s390_invalid_arg_for_unprototyped_fn): Likewise.
10774         (s390_valid_target_attribute_inner_p): Likewise.
10775         * config/s390/s390.md ("tabort"): Likewise.
10776
10777 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
10778
10779         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
10780         (ISA_AVOID_DIV_HILO): New macro.
10781         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
10782         (ISA_HAS_DDIV): Likewise.
10783
10784 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
10785
10786         * doc/invoke.texi (fabi-version): Correct number of occurrences.
10787
10788 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
10789
10790         * doc/invoke.texi (fabi-version): Spelling fix.
10791
10792 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
10793
10794         PR c++/70182
10795         * doc/invoke.texi (fabi-version): Mention mangling fix for
10796         operator names.
10797
10798 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
10799
10800         PR c++/77489
10801         * doc/invoke.texi (fabi-version): Document discriminator mangling.
10802
10803 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
10804
10805         PR target/78875
10806         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
10807         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
10808         the new options.
10809         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
10810         flexible settings.
10811         (stack_protect_test): Ditto.
10812         * config/rs6000/rs6000.opt (mstack-protector-guard=,
10813         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
10814         options.
10815         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
10816         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
10817         -mstack-protector-guard-offset=.
10818         (RS/6000 and PowerPC Options): Ditto.
10819
10820 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
10821
10822         * config/i386/i386.h (MASK_CLASS_P): New define.
10823         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
10824         there are no registers from different register sets also when
10825         mask registers are used.  Update function comment.
10826         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
10827         to (*k/*r) and (*k/*km) alternatives.
10828
10829 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
10830
10831         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
10832         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
10833         (EH_RETURN_HANDLER_RTX): New define.
10834         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
10835         Force frame pointer in EH return functions.
10836         (aarch64_expand_epilogue): Add barrier for eh_return.
10837         (aarch64_final_eh_return_addr): Remove.
10838         (aarch64_eh_return_handler_rtx): New function.
10839         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
10840         Remove.
10841         (aarch64_eh_return_handler_rtx): New prototype.
10842
10843 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10844
10845         * config/rs6000/altivec.h (vec_rlmi): New #define.
10846         (vec_vrlnm): Likewise.
10847         (vec_rlnm): Likewise.
10848         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
10849         (UNSPEC_VRLNM): Likewise.
10850         (VIlong): New mode iterator.
10851         (altivec_vrl<VI_char>mi): New define_insn.
10852         (altivec_vrl<VI_char>nm): Likewise.
10853         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
10854         function entry.
10855         (VRLDNM): Likewise.
10856         (RLNM): New polymorphic function entry.
10857         (VRLWMI): New monomorphic function entry.
10858         (VRLDMI): Likewise.
10859         (RLMI): New polymorphic function entry.
10860         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
10861         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
10862         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
10863         vec_vrlnm.
10864
10865 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
10866
10867         PR debug/78839
10868         * dwarf2out.c (field_byte_offset): Restore the
10869         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
10870         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
10871         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
10872         of build2 + fold.
10873
10874 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
10875
10876         PR ada/67205
10877         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
10878
10879 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
10880
10881         PR debug/71669
10882         * dwarf2out.c (add_data_member_location_attribute): For constant
10883         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
10884         instead of DW_AT_data_member_location, DW_AT_bit_offset and
10885         DW_AT_byte_size attributes.
10886
10887 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
10888
10889         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
10890         after forcing to constant memory when the code model is medium.
10891
10892 2017-01-17  Julia Koval  <julia.koval@intel.com>
10893
10894         PR target/76731
10895         * config/i386/avx512fintrin.h
10896         (_mm512_i32gather_ps): Change __addr type to void const*.
10897         (_mm512_mask_i32gather_ps): Ditto.
10898         (_mm512_i32gather_pd): Ditto.
10899         (_mm512_mask_i32gather_pd): Ditto.
10900         (_mm512_i64gather_ps): Ditto.
10901         (_mm512_mask_i64gather_ps): Ditto.
10902         (_mm512_i64gather_pd): Ditto.
10903         (_mm512_mask_i64gather_pd): Ditto.
10904         (_mm512_i32gather_epi32): Ditto.
10905         (_mm512_mask_i32gather_epi32): Ditto.
10906         (_mm512_i32gather_epi64): Ditto.
10907         (_mm512_mask_i32gather_epi64): Ditto.
10908         (_mm512_i64gather_epi32): Ditto.
10909         (_mm512_mask_i64gather_epi32): Ditto.
10910         (_mm512_i64gather_epi64): Ditto.
10911         (_mm512_mask_i64gather_epi64): Ditto.
10912         (_mm512_i32scatter_ps): Change __addr type to void*.
10913         (_mm512_mask_i32scatter_ps): Ditto.
10914         (_mm512_i32scatter_pd): Ditto.
10915         (_mm512_mask_i32scatter_pd): Ditto.
10916         (_mm512_i64scatter_ps): Ditto.
10917         (_mm512_mask_i64scatter_ps): Ditto.
10918         (_mm512_i64scatter_pd): Ditto.
10919         (_mm512_mask_i64scatter_pd): Ditto.
10920         (_mm512_i32scatter_epi32): Ditto.
10921         (_mm512_mask_i32scatter_epi32): Ditto.
10922         (_mm512_i32scatter_epi64): Ditto.
10923         (_mm512_mask_i32scatter_epi64): Ditto.
10924         (_mm512_i64scatter_epi32): Ditto.
10925         (_mm512_mask_i64scatter_epi32): Ditto.
10926         (_mm512_i64scatter_epi64): Ditto.
10927         (_mm512_mask_i64scatter_epi64): Ditto.
10928         * config/i386/avx512pfintrin.h
10929         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
10930         (_mm512_mask_prefetch_i32gather_ps): Ditto.
10931         (_mm512_mask_prefetch_i64gather_pd): Ditto.
10932         (_mm512_mask_prefetch_i64gather_ps): Ditto.
10933         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
10934         (_mm512_prefetch_i32scatter_ps): Ditto.
10935         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
10936         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
10937         (_mm512_prefetch_i64scatter_pd): Ditto.
10938         (_mm512_prefetch_i64scatter_ps): Ditto.
10939         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
10940         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
10941         * config/i386/avx512vlintrin.h
10942         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
10943         (_mm_mmask_i32gather_ps): Ditto.
10944         (_mm256_mmask_i32gather_pd): Ditto.
10945         (_mm_mmask_i32gather_pd): Ditto.
10946         (_mm256_mmask_i64gather_ps): Ditto.
10947         (_mm_mmask_i64gather_ps): Ditto.
10948         (_mm256_mmask_i64gather_pd): Ditto.
10949         (_mm_mmask_i64gather_pd): Ditto.
10950         (_mm256_mmask_i32gather_epi32): Ditto.
10951         (_mm_mmask_i32gather_epi32): Ditto.
10952         (_mm256_mmask_i32gather_epi64): Ditto.
10953         (_mm_mmask_i32gather_epi64): Ditto.
10954         (_mm256_mmask_i64gather_epi32): Ditto.
10955         (_mm_mmask_i64gather_epi32): Ditto.
10956         (_mm256_mmask_i64gather_epi64): Ditto.
10957         (_mm_mmask_i64gather_epi64): Ditto.
10958         (_mm256_i32scatter_ps): Change __addr type to void*.
10959         (_mm256_mask_i32scatter_ps): Ditto.
10960         (_mm_i32scatter_ps): Ditto.
10961         (_mm_mask_i32scatter_ps): Ditto.
10962         (_mm256_i32scatter_pd): Ditto.
10963         (_mm256_mask_i32scatter_pd): Ditto.
10964         (_mm_i32scatter_pd): Ditto.
10965         (_mm_mask_i32scatter_pd): Ditto.
10966         (_mm256_i64scatter_ps): Ditto.
10967         (_mm256_mask_i64scatter_ps): Ditto.
10968         (_mm_i64scatter_ps): Ditto.
10969         (_mm_mask_i64scatter_ps): Ditto.
10970         (_mm256_i64scatter_pd): Ditto.
10971         (_mm256_mask_i64scatter_pd): Ditto.
10972         (_mm_i64scatter_pd): Ditto.
10973         (_mm_mask_i64scatter_pd): Ditto.
10974         (_mm256_i32scatter_epi32): Ditto.
10975         (_mm256_mask_i32scatter_epi32): Ditto.
10976         (_mm_i32scatter_epi32): Ditto.
10977         (_mm_mask_i32scatter_epi32): Ditto.
10978         (_mm256_i32scatter_epi64): Ditto.
10979         (_mm256_mask_i32scatter_epi64): Ditto.
10980         (_mm_i32scatter_epi64): Ditto.
10981         (_mm_mask_i32scatter_epi64): Ditto.
10982         (_mm256_i64scatter_epi32): Ditto.
10983         (_mm256_mask_i64scatter_epi32): Ditto.
10984         (_mm_i64scatter_epi32): Ditto.
10985         (_mm_mask_i64scatter_epi32): Ditto.
10986         (_mm256_i64scatter_epi64): Ditto.
10987         (_mm256_mask_i64scatter_epi64): Ditto.
10988         (_mm_i64scatter_epi64): Ditto.
10989         (_mm_mask_i64scatter_epi64): Ditto.
10990         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
10991         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
10992         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
10993         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
10994         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
10995         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
10996         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
10997         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
10998         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
10999         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
11000         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
11001         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
11002         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
11003         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
11004         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
11005         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
11006         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
11007         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
11008         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
11009         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
11010         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
11011         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
11012         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
11013         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
11014         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
11015         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
11016         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
11017         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
11018         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
11019         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
11020         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
11021         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
11022         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
11023         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
11024         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
11025         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
11026         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
11027         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
11028         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
11029         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
11030         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
11031         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
11032         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
11033         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
11034         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
11035         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
11036         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
11037         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
11038         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
11039         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
11040         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
11041         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
11042         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
11043         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
11044         definitions accordingly.
11045
11046 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
11047             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
11048
11049         PR target/79079
11050         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
11051         gen_lowpart.
11052
11053 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
11054
11055         PR target/79058
11056         * ira-conflicts.c (ira_build_conflicts): Update total conflict
11057         hard regs for inner regno.
11058
11059 2017-01-17  Martin Liska  <mliska@suse.cz>
11060
11061         PR ipa/71207
11062         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
11063         assumption and add comment.
11064
11065 2017-01-17  Nathan Sidwell  <nathan@acm.org>
11066
11067         * ipa-visibility.c (localize_node): New function, broken out of ...
11068         (function_and_variable_visibility): ... here. Call it.
11069
11070 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
11071
11072         PR middle-end/77445
11073         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
11074         correctly set frequency of oudgoing edge.
11075         (duplicate_thread_path): Fix profile updating.
11076
11077 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
11078
11079         PR other/79046
11080         * configure.ac: Add GCC_BASE_VER.
11081         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
11082         version from BASE-VER file.
11083         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
11084         (gcc.o): Depend on $(BASEVER).
11085         * common.opt (dumpfullversion): New option.
11086         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
11087         * doc/invoke.texi: Document -dumpfullversion.
11088         * doc/install.texi: Document --with-gcc-major-version-only.
11089         * configure: Regenerated.
11090
11091 2017-01-17  Richard Biener  <rguenther@suse.de>
11092
11093         PR tree-optimization/71433
11094         * tree-vrp.c (register_new_assert_for): Merge same asserts
11095         on all incoming edges.
11096         (process_assert_insertions_for): Handle insertions at the
11097         beginning of BBs.
11098
11099 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
11100
11101         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
11102         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
11103
11104 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
11105
11106         PR target/78633
11107         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
11108         RTL sharing.
11109
11110 2017-01-17  Alan Modra  <amodra@gmail.com>
11111
11112         PR target/79066
11113         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
11114         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
11115         symbolic stack limit when pic.
11116
11117 2017-01-16  Martin Sebor  <msebor@redhat.com>
11118
11119         PR tree-optimization/78608
11120         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
11121
11122 2017-01-16  Jeff Law  <law@redhat.com>
11123
11124         Revert:
11125         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
11126         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
11127         for several include directories that may be relative to sysroot.
11128         * config/i386/x-mingw32 (gplus_includedir): Define.
11129         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
11130         (native_system_includedir): Likewise.
11131         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
11132         override if TARGET_SYSTEM_ROOT is defined.
11133         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
11134
11135         PR tree-optimization/79090
11136         PR tree-optimization/33562
11137         PR tree-optimization/61912
11138         PR tree-optimization/77485
11139         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
11140         and computed trims into the dump file.
11141
11142 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
11143
11144         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
11145
11146 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
11147
11148         PR c/79089
11149         * gimplify.c (gimplify_init_constructor): If want_value and
11150         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
11151         fix.
11152
11153         PR target/79080
11154         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
11155         sequence.  Formatting fixes.
11156         (doloop_optimize): Formatting fixes.
11157
11158         PR driver/49726
11159         * gcc.c (debug_level_greater_than_spec_func): New function.
11160         (static_spec_functions): Add debug-level-gt spec function.
11161         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
11162         !g0.
11163         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
11164         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
11165         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
11166         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
11167         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
11168         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
11169
11170 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
11171
11172         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
11173         QImode fixups to general and mask registers only.
11174
11175 2017-01-16  Carl Love  <cel@us.ibm.com>
11176
11177         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
11178         for built-in functions
11179         vector signed char vec_nabs (vector signed char)
11180         vector signed short vec_nabs (vector signed short)
11181         vector signed int vec_nabs (vector signed int)
11182         vector signed long long vec_nabs (vector signed long long)
11183         vector float vec_nabs (vector float)
11184         vector double vec_nabs (vector double)
11185         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
11186         and NABS overload.
11187         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
11188         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
11189         * doc/extend.texi: Update the documentation file for the new built-in
11190         functions.
11191
11192 2017-01-16  Martin Sebor  <msebor@redhat.com>
11193
11194         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
11195         message.
11196
11197 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11198
11199         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
11200         UNSPEC_VSX__XXSPLTD to require special splat handling.
11201
11202 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
11203
11204         PR bootstrap/78616
11205         * system.h: Poison strndup.
11206
11207 2017-01-16  Alan Modra  <amodra@gmail.com>
11208
11209         PR target/79098
11210         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
11211         use a switch.
11212
11213 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
11214
11215         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
11216
11217 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
11218
11219         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
11220         call recog here.  Assert that INSN_CODE (insn) is non-negative.
11221
11222 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
11223
11224         PR target/72749
11225         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
11226         fallthrough.
11227         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
11228         in the currently scheduled RTL fragment.
11229
11230 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
11231
11232         PR rtl-optimization/78751
11233         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
11234         give up.
11235
11236 2017-01-14  Jeff Law  <law@redhat.com>
11237
11238         PR tree-optimization/79090
11239         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
11240         variable length stores.
11241         (compute_trims): Delete dead assignment to *trim_tail.
11242         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
11243         zero length.
11244
11245 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
11246
11247         PR rtl-optimization/78626
11248         PR rtl-optimization/78727
11249         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
11250         of a block, and split such blocks after everything else is finished.
11251
11252 2017-01-14  Alan Modra  <amodra@gmail.com>
11253
11254         PR target/72749
11255         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
11256         target legitimate_combined_insn.
11257         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
11258         (rs6000_legitimate_combined_insn): New function.
11259         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
11260         all uses.
11261         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
11262         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
11263         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
11264
11265 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
11266
11267         * doc/frontends.texi (G++ and GCC): Remove references to Java.
11268
11269 2017-01-13  Jeff Law  <law@redhat.com>
11270
11271         PR tree-optimization/33562
11272         PR tree-optimization/61912
11273         PR tree-optimization/77485
11274         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
11275         a statement.
11276         (delete_dead_assignment): Likewise.
11277         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
11278         statement to delete_dead_call and delete_dead_assignment.
11279
11280 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
11281
11282         PR c/78304
11283         * substring-locations.c (format_warning_va): Strengthen case 1 so
11284         that both endpoints of the substring must be within the format
11285         range for just the substring to be printed.
11286
11287 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
11288
11289         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
11290         * config/i386/i386.c (ix86_target_string): Add missing options
11291         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
11292         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
11293         flags_other and ix86_target_other to flags2_other.  Display unknown
11294         isa2 options.
11295         (ix86_valid_target_attribute_inner_p): Add missing options and
11296         reorder options by implied ISAs, as in ix86_target_string.
11297
11298 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
11299
11300         * hash-table.h (hash_table::too_empty_p): New function.
11301         (hash_table::expand): Use it.
11302         (hash_table::traverse): Likewise.
11303         (hash_table::empty_slot): Use sizeof (value_type) instead of
11304         sizeof (PTR) to convert bytes to elements.  Shrink the table
11305         if the current size is excessive for the current number of
11306         elements.
11307
11308 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
11309
11310         * ira-costs.c (record_reg_classes): Break from the inner loop
11311         early once alt_fail is known to be true.  Update outer loop
11312         handling accordingly.
11313
11314 2017-01-13  Jeff Law  <law@redhat.com>
11315
11316         * tree-ssa-dse.c (decrement_count): New function.
11317         (increment_start_addr, maybe_trim_memstar_call): Likewise.
11318         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
11319         when we know the partially dead statement is a mem* function.
11320
11321         PR tree-optimization/61912
11322         PR tree-optimization/77485
11323         * tree-ssa-dse.c: Include expr.h.
11324         (maybe_trim_constructor_store): New function.
11325         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
11326
11327         PR tree-optimization/33562
11328         PR tree-optimization/61912
11329         PR tree-optimization/77485
11330         * doc/invoke.texi: Document new dse-max-object-size param.
11331         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
11332         * tree-ssa-dse.c: Include params.h.
11333         (dse_store_status): New enum.
11334         (initialize_ao_ref_for_dse): New, partially extracted from
11335         dse_optimize_stmt.
11336         (valid_ao_ref_for_dse, normalize_ref): New.
11337         (setup_live_bytes_from_ref, compute_trims): Likewise.
11338         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
11339         (maybe_trim_partially_dead_store): Likewise.
11340         (maybe_trim_complex_store): Likewise.
11341         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
11342         Track what bytes live from the original store.  Return tri-state
11343         for dead, partially dead or live.
11344         (dse_dom_walker): Add constructor, destructor and new private members.
11345         (delete_dead_call, delete_dead_assignment): New extracted from
11346         dse_optimize_stmt.
11347         (dse_optimize_stmt): Make a member of dse_dom_walker.
11348         Use initialize_ao_ref_for_dse.
11349
11350         PR tree-optimization/33562
11351         PR tree-optimization/61912
11352         PR tree-optimization/77485
11353         * sbitmap.h (bitmap_count_bits): Prototype.
11354         (bitmap_clear_range, bitmap_set_range): Likewise.
11355         * sbitmap.c (bitmap_clear_range): New function.
11356         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
11357
11358 2017-01-13  Martin Liska  <mliska@suse.cz>
11359
11360         PR ipa/79043
11361         * function.c (set_cfun): Add new argument force.
11362         * function.h (set_cfun): Likewise.
11363         * ipa-inline-transform.c (inline_call): Use the function when
11364         strict alising from is dropped for function we inline to.
11365
11366 2017-01-13  Richard Biener  <rguenther@suse.de>
11367
11368         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
11369         for dumping GIMPLE INTEGER_CSTs.
11370
11371 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11372
11373         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
11374         to 201112L since C++17.
11375
11376 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
11377
11378         PR sanitizer/78887
11379         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
11380         if -fsanitize=kernel-address is present.
11381
11382 2017-01-13  Richard Biener  <rguenther@suse.de>
11383
11384         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
11385         as _Literal ( type ) number in case usual suffixes do not
11386         preserve all information.
11387
11388 2017-01-13  Richard Biener  <rguenther@suse.de>
11389
11390         PR tree-optimization/77283
11391         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
11392         and ssa-iterators.h.
11393         (is_feasible_trace): Implement a cost model based on joiner
11394         PHI node uses.
11395
11396 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
11397
11398         PR target/79004
11399         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
11400         char or short to __float128/_Float128 directly.
11401
11402 2017-01-12  Martin Sebor  <msebor@redhat.com>
11403
11404         to -Wformat-overflow.
11405         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
11406         (min_bytes_remaining): Same.
11407         (get_string_length): Same.
11408         (format_string): Same.
11409         (format_directive): Same.
11410         (add_bytes): Same.
11411         (pass_sprintf_length::handle_gimple_call): Same.
11412
11413 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
11414
11415         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
11416         info.nowrite calls with no lhs that can't throw.  Return bool
11417         whether gsi_remove has been called or not.
11418         (pass_sprintf_length::handle_gimple_call): Return bool whether
11419         try_substitute_return_value called gsi_remove.  Formatting fix.
11420         (pass_sprintf_length::execute): Don't use gsi_remove if
11421         handle_gimple_call returned true.
11422
11423         PR bootstrap/79069
11424         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
11425         be removed due to side-effects, don't remove following barrier nor
11426         turn the successor edge into fallthru edge.
11427
11428 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11429
11430         PR target/79044
11431         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
11432         element-reversing loads and stores as not swappable.
11433
11434 2017-01-12  Nathan Sidwell  <nathan@acm.org>
11435             Nicolai Stange  <nicstange@gmail.com>
11436
11437         * combine.c (try_combine): Don't ignore result of overlap checking
11438         loop.  Combine overlap & asm check into single loop.
11439
11440 2017-01-12  Richard Biener  <rguenther@suse.de>
11441
11442         * tree-pretty-print.c (dump_generic_node): Provide -gimple
11443         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
11444
11445 2017-01-12  Richard Biener  <rguenther@suse.de>
11446
11447         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
11448         and TS_TARGET_OPTION directly derive from TS_BASE.
11449         * tree-core.h (tree_optimization_option): Derive from tree_base.
11450         (tree_target_option): Likewise.
11451
11452 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
11453
11454         * config/i386/i386.c (memory_address_length): Increase len
11455         only when rip_relative_addr_p returns false.
11456
11457 2017-01-11  Julia Koval  <julia.koval@intel.com>
11458
11459         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
11460         (OPTION_MASK_ISA_SGX_SET): New.
11461         (ix86_handle_option): Handle OPT_msgx.
11462         * config.gcc: Added sgxintrin.h.
11463         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
11464         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
11465         * config/i386/i386.c (ix86_target_string): Add -msgx.
11466         (PTA_SGX): New.
11467         (ix86_option_override_internal): Handle new options.
11468         (ix86_valid_target_attribute_inner_p): Add sgx.
11469         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
11470         * config/i386/i386.opt: Add msgx.
11471         * config/i386/sgxintrin.h: New file.
11472         * config/i386/x86intrin.h: Add sgxintrin.h.
11473
11474 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
11475
11476         PR c++/71537
11477         * fold-const.c (maybe_nonzero_address): Return 1 for function
11478         local objects.
11479         (tree_single_nonzero_warnv_p): Don't handle function local objects
11480         here.
11481
11482         PR c++/72813
11483         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
11484         of c-header.
11485
11486 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
11487
11488         PR driver/78877
11489         * opts.c: Include "spellcheck.h"
11490         (struct string_fragment): New struct.
11491         (struct edit_distance_traits<const string_fragment &>): New
11492         struct.
11493         (get_closest_sanitizer_option): New function.
11494         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
11495
11496 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
11497
11498         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
11499         by 12.
11500         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
11501         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
11502         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
11503         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
11504         for initial die_offset if dwarf_split_debug_info.
11505         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
11506         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
11507         fields.
11508         (output_skeleton_debug_sections): Formatting fix.  Use
11509         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
11510         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
11511
11512 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
11513
11514         * config/arm/cortex-a53.md: Add bypasses for
11515         cortex_a53_r2f_cvt.
11516         (cortex_a53_r2f): Only use for transfers.
11517         (cortex_a53_f2r): Likewise.
11518         (cortex_a53_r2f_cvt): Add reservation for conversions.
11519         (cortex_a53_f2r_cvt): Likewise.
11520
11521 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
11522
11523         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
11524         to all inlined functions, change static to extern.
11525
11526 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
11527
11528         PR target/78253
11529         * config/arm/arm.c (legitimize_pic_address): Handle reference to
11530         weak symbol.
11531         (arm_assemble_integer): Likewise.
11532
11533 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
11534
11535         * config.gcc: Use new awk script to check CPU, FPU and architecture
11536         parameters for --with-... options.
11537         * config/arm/parsecpu.awk: New file
11538         * config/arm/arm-cpus.in: New file.
11539         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
11540         files.
11541         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
11542         files.
11543         * config/arm/t-arm: Update dependency rules.
11544         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
11545         of processing .def files.
11546         * config/arm/genopt.sh: Deleted.
11547         * config/arm/gentune.sh: Deleted.
11548         * config/arm/arm-cores.def: Deleted.
11549         * config/arm/arm-arches.def: Deleted.
11550         * config/arm/arm-fpus.def: Deleted.
11551         * config/arm/arm-tune.md: Regenerated.
11552         * config/arm/arm-tables.opt: Regenerated.
11553         * config/arm/arm-cpu.h: New generated file.
11554         * config/arm/arm-cpu-data.h: New generated file.
11555         * config/arm/arm-cpu-cdata.h: New generated file.
11556
11557 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
11558
11559         PR lto/79042
11560         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
11561         bit.
11562         (input_varpool_node): Unpack dynamically_initialized bit.
11563
11564 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
11565
11566         PR rtl-optimization/79032
11567         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
11568         the alignment of the adjusted memory reference against that of MODE,
11569         instead of the alignment of the original memory reference.
11570
11571 2017-01-11  Martin Jambor  <mjambor@suse.cz>
11572
11573         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
11574         test.
11575         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
11576         decorated functions.
11577
11578 2017-01-11  Richard Biener  <rguenther@suse.de>
11579
11580         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
11581         set range/nonnull info for PHI results.  Do not set it on
11582         stmts marked for removal.
11583
11584 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
11585
11586         * expr.c (store_field): In the bitfield case, fetch the return value
11587         from the registers before applying a single big-endian adjustment.
11588         Always do a final load for a BLKmode value not larger than a word.
11589
11590 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
11591
11592         PR c++/77949
11593         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
11594         that we correctly handle column numbers greater than
11595         LINE_MAP_MAX_COLUMN_NUMBER.
11596
11597 2017-01-10  Martin Sebor  <msebor@redhat.com>
11598
11599         PR middle-end/78245
11600         * gimple-ssa-sprintf.c (get_destination_size): Call
11601         {init,fini}object_sizes.
11602         * tree-object-size.c (addr_object_size): Adjust.
11603         (pass_through_call): Adjust.
11604         (pass_object_sizes::execute): Adjust.
11605         * tree-object-size.h (fini_object_sizes): Declare.
11606
11607 2017-01-10  Martin Sebor  <msebor@redhat.com>
11608
11609         PR tree-optimization/78775
11610         * builtins.c (get_size_range): Move...
11611         * calls.c: ...to here.
11612         (alloc_max_size): Accept zero argument.
11613         (operand_signed_p): Remove.
11614         (maybe_warn_alloc_args_overflow): Call get_size_range.
11615         * calls.h (get_size_range): Declare.
11616
11617 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
11618
11619         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
11620         from TI's devices.csv file as of September 2016.
11621         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
11622
11623 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
11624
11625         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
11626         * doc/invoke.texi: Likewise.
11627         * doc/md.texi: Likewise.
11628         * doc/objc.texi: Likewise.
11629
11630 2017-01-10  Joshua Conner  <joshconner@google.com>
11631
11632         * config/arm/fuchsia-elf.h: New file.
11633         * config/fuchsia.h: New file.
11634         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
11635         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
11636         targets.
11637         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
11638
11639 2016-01-10  Richard Biener  <rguenther@suse.de>
11640
11641         PR tree-optimization/79034
11642         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
11643         Propagate out degenerate PHIs in the joiner.
11644
11645 2017-01-10  Martin Liska  <mliska@suse.cz>
11646
11647         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
11648         (sort_congruence_classes_by_decl_uid): Likewise.
11649         (sort_congruence_class_groups_by_decl_uid): Likewise.
11650         (sem_item_optimizer::merge_classes): Sort class, groups in these
11651         classes and members in the groups by DECL_UID of declarations.
11652         This would make merge operations stable.
11653
11654 2017-01-10  Martin Liska  <mliska@suse.cz>
11655
11656         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
11657         usage of m_classes_vec.
11658         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
11659         (sem_item_optimizer::get_group_by_hash): Likewise.
11660         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
11661         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
11662         (sem_item_optimizer::verify_classes): Likewise.
11663         (sem_item_optimizer::process_cong_reduction): Likewise.
11664         (sem_item_optimizer::dump_cong_classes): Likewise.
11665         (sem_item_optimizer::merge_classes): Likewise.
11666         * ipa-icf.h (congruence_class_hash): Rename from
11667         congruence_class_group_hash.  Remove declaration of m_classes_vec.
11668
11669 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
11670
11671         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
11672         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
11673         * config.gcc: Add avx512vpopcntdqintrin.h.
11674         * config/i386/avx512vpopcntdqintrin.h: New.
11675         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
11676         * config/i386/i386-builtin-types.def: Add new types.
11677         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
11678         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
11679         __builtin_ia32_vpopcountq_v8di_mask): New.
11680         * config/i386/i386-c.c (ix86_target_macros_internal): Define
11681         __AVX512VPOPCNTDQ__.
11682         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
11683         (PTA_AVX512VPOPCNTDQ): Define.
11684         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
11685         TARGET_AVX512VPOPCNTDQ_P): Define.
11686         * config/i386/i386.opt: Add mavx512vpopcntdq.
11687         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
11688         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
11689
11690 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
11691
11692         PR middle-end/77484
11693         * predict.def (PRED_CALL): Set to 67.
11694
11695 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
11696
11697         * expr.c (store_field): In the bitfield case, if the value comes from
11698         a function call and is of an aggregate type returned in registers, do
11699         not modify the field mode; extract the value in all cases if the mode
11700         is BLKmode and the size is not larger than a word.
11701
11702 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
11703
11704         PR target/71017
11705         * config/i386/cpuid.h: Fix undefined behavior.
11706
11707 2017-01-04  Jeff Law  <law@redhat.com>
11708
11709         PR tree-optimization/79007
11710         PR tree-optimization/67955
11711         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
11712         conservative for pt.null when flag_non_call_exceptions is on.
11713
11714 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
11715
11716         PR translation/79019
11717         PR translation/79020
11718         * params.def (PARAM_INLINE_MIN_SPEEDUP,
11719         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
11720         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
11721         in descriptions.
11722         * config/avr/avr.opt (maccumulate-args): Likewise.
11723         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
11724         * common.opt (freport-bug): Likewise.
11725         * cif-code.def (CIF_FINAL_ERROR): Likewise.
11726         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
11727         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
11728         translatable string.
11729         * config/i386/i386.c (function_value_32): Likewise.
11730         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
11731         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
11732         Likewise.
11733         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
11734         * common/config/msp430/msp430-common.c (msp430_handle_option):
11735         Likewise.
11736         * symtab.c (symtab_node::verify_base): Likewise.
11737         * opts.c (set_debug_level): Likewise.
11738         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
11739         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
11740         missing whitespace to translatable strings.
11741         * config/avr/avr.md (bswapsi2): Fix typo in comment.
11742         * config/sh/superh.h: Likewise.
11743         * config/i386/xopintrin.h: Likewise.
11744         * config/i386/znver1.md: Likewise.
11745         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
11746         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
11747         * double-int.h (struct double_int): Likewise.
11748         * double-int.c (div_and_round_double): Likewise.
11749         * wide-int.cc: Likewise.
11750         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
11751         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
11752         * cfgcleanup.c (crossjumps_occured): Renamed to ...
11753         (crossjumps_occurred): ... this.
11754         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
11755         Adjust all uses.
11756
11757         PR tree-optimization/78899
11758         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
11759         returning bool return struct loop *, NULL for failure and the new
11760         loop on success.
11761         (versionable_outer_loop_p): Don't version outer loop if it has
11762         dont_vectorized bit set.
11763         (tree_if_conversion): When versioning outer loop, ensure
11764         tree_if_conversion is performed also on the inner loop of the
11765         non-vectorizable outer loop copy.
11766         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
11767         LOOP_VECTORIZED in inner loop of the scalar outer loop and
11768         prevent vectorization of it.
11769         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
11770         the outer loop vectorization of the non-scalar version is attempted
11771         before vectorization of the inner loop in scalar version.  If
11772         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
11773         vectorization of its inner loop.
11774         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
11775         has 2 inner loops, rename also on edges from bb whose single pred
11776         is outer_loop->header.  Fix typo in function comment.
11777
11778 2017-01-09  Martin Sebor  <msebor@redhat.com>
11779
11780         PR bootstrap/79033
11781         * asan.c (asan_emit_stack_protection): Increase local buffer size
11782         to avoid snprintf truncation warning.
11783
11784 2017-01-09  Andrew Pinski  <apinski@cavium.com>
11785
11786         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
11787         to reference thunderx2t99 for the tuning structure
11788         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
11789         Rename to ...
11790         (thunderx2t99_extra_costs): This.
11791         * config/aarch64/aarch64-tune.md: Regenerate.
11792         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
11793         (vulcan_addrcost_table): This.
11794         (vulcan_regmove_cost): Rename to ...
11795         (thunderx2t99_regmove_cost): This.
11796         (vulcan_vector_cost): Rename to ...
11797         (thunderx2t99_vector_cost): this.
11798         (vulcan_branch_cost): Rename to ...
11799         (thunderx2t99_branch_cost): This.
11800         (vulcan_tunings): Rename to ...
11801         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
11802         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
11803
11804 2017-01-09  Martin Jambor  <mjambor@suse.cz>
11805
11806         PR ipa/78365
11807         PR ipa/78599
11808         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
11809         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
11810         (propagate_vr_accross_jump_function): Use the above function for all
11811         value range computations for pass-through jump functions and type
11812         converasion from explicit value range values.
11813         (ipcp_propagate_stage): Do not attempt to deduce types of formal
11814         parameters from TYPE_ARG_TYPES.
11815         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
11816         (ipa_write_node_info): Stream type of the actual argument.
11817         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
11818
11819 2017-01-09  Martin Liska  <mliska@suse.cz>
11820
11821         PR pch/78970
11822         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
11823         (lookup_compiler): Do not show error message with have_E.
11824
11825 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
11826
11827         PR tree-optimization/78938
11828         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
11829         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
11830         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
11831         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
11832         fixes.
11833
11834 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11835
11836         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
11837         is const0_rtx.
11838
11839 2017-01-09  Richard Biener  <rguenther@suse.de>
11840
11841         PR tree-optimization/78997
11842         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
11843         name condition properly.
11844
11845 2017-01-09  Richard Biener  <rguenther@suse.de>
11846
11847         PR debug/79000
11848         * dwarf2out.c (is_cxx): New overload with context.
11849         (is_naming_typedef_decl): Use it.
11850
11851 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
11852
11853         * invoke.texi (Option Summary): Correct spacing in option lists
11854         and add line breaks to fix over-long lines.
11855
11856 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
11857
11858         PR middle-end/17660
11859
11860         * extend.texi (Common Variable Attributes): Add xref to GCC
11861         Internals manual to explain mode attribute keywords.
11862
11863 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
11864
11865         PR other/16519
11866         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
11867         and Preprocessor Options.
11868         (Options for Linking): Document -pthread here....
11869         (RS/6000 and PowerPC Options): ...not here.
11870         (Solaris 2 Options): ...or here.
11871         * doc/cppopts.texi: Document -pthread.
11872
11873 2017-01-08  Martin Sebor  <msebor@redhat.com>
11874
11875         PR middle-end/77708
11876         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
11877         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
11878         New member functions.
11879         (format_directive): Used them.
11880         (add_bytes): Same.
11881         (pass_sprintf_length::handle_gimple_call): Same.
11882         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
11883         to avoid truncation for any argument.
11884         (extract_affine_mul): Same.
11885         * tree.c (get_file_function_name): Same.
11886
11887 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
11888
11889         PR middle-end/77484
11890         * predict.def (PRED_INDIR_CALL): Set to 86.
11891
11892 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
11893
11894         PR preprocessor/54124
11895         * doc/cppopts.texi: Reformat -d subtable to list the full name
11896         of the options.  Add cross-reference to the docs for the general
11897         compiler -d options.
11898         * doc/invoke.texi (Developer Options): Add cross-reference to the
11899         preprocessor-specific -d option documentation.
11900
11901 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
11902
11903         PR preprocessor/13498
11904         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
11905         redudant material, and reflect new command-line options.
11906         (System Headers): Likewise.
11907
11908 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
11909
11910         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
11911         -isystem, and -idirafter.  Copy-edit.
11912         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
11913         default for -ftrack-macro-expansion.  Delete obsolete and
11914         badly-formatted implementation details about -fdebug-cpp output.
11915         * doc/cppwarnopts.texi: Copy-edit.
11916
11917 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
11918
11919         PR c++/72803
11920         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
11921         that the transition from a max line width >= 1<<10 to narrower
11922         lines works correctly.
11923
11924 2017-01-07  Alexandre Oliva <aoliva@redhat.com>
11925
11926         * doc/options.texi (PerFunction): New.
11927         * opt-functions.awk (switch_flags): Map both Optimization and
11928         PerFunction to CL_OPTIMIZATION.
11929         * opth-gen.awk: Test for PerFunction flag along with
11930         Optimization.
11931         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
11932         it only when the latter is present.  Skip those that don't in
11933         the hash function generator.
11934         * common.opt (fvar-tracking): Mark as PerFunction instead of
11935         Optimization.
11936         (fvar-tracking-assignments): Likewise.
11937         (fvar-tracking-assignments-toggle): Likewise.
11938         (fvar-tracking-uninit): Likewise.
11939
11940 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
11941
11942         PR translation/79018
11943         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
11944         the and store.
11945
11946 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
11947
11948         PR target/57583
11949         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
11950         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
11951         TARGET_LONG_JUMP_TABLE_OFFSETS.
11952         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
11953         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
11954         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
11955         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
11956         * config/m68k/m68k.md (tablejump expander): Likewise.
11957         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
11958         TARGET_LONG_JUMP_TABLE_OFFSETS.
11959         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
11960         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
11961
11962 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
11963             David Holsgrove <david.holsgrove@xilinx.com>
11964
11965         * common/config/microblaze/microblaze-common.c
11966         (TARGET_EXCEPT_UNWIND_INFO): Remove.
11967         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
11968         New prototype.
11969         * config/microblaze/microblaze.c (microblaze_must_save_register)
11970         (microblaze_expand_epilogue, microblaze_return_addr): Handle
11971         calls_eh_return.
11972         (microblaze_eh_return): New function.
11973         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
11974         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
11975         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
11976         * config/microblaze/microblaze.md (eh_return): New pattern.
11977
11978 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
11979
11980         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
11981         GCC_DIAGNOSTIC_STRINGIFY): Define.
11982
11983         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
11984
11985 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
11986
11987         * config/arm/arm.md (<mcrr>): New.
11988         (<mrrc>): New.
11989         * config/arm/arm.c (arm_arch5te): New.
11990         (arm_option_override): Set arm_arch5te.
11991         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
11992         and mrrc2.
11993         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
11994         (arm_mcrr_qualifiers): ... this. New.
11995         (MRRC_QUALIFIERS): Define to...
11996         (arm_mrrc_qualifiers): ... this. New.
11997         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
11998         __arm_mrrc2): New.
11999         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
12000         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
12001         (MRRCI, mrrc, MRRC): New.
12002         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
12003         VUNSPEC_MRRC2): New.
12004
12005 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12006
12007         * config/arm/arm.md (<mcr>): New.
12008         (<mrc>): New.
12009         * config/arm/arm.c (arm_coproc_builtin_available): Add
12010         support for mcr, mrc, mcr2 and mrc2.
12011         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
12012         (arm_mcr_qualifiers): ... this. New.
12013         (MRC_QUALIFIERS): Define to ...
12014         (arm_mrc_qualifiers): ... this. New.
12015         (MCR_QUALIFIERS): Define to ...
12016         (arm_mcr_qualifiers): ... this. New.
12017         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
12018         __arm_mrc2): New.
12019         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
12020         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
12021         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
12022         VUNSPEC_MRC2): New.
12023
12024 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12025
12026         * config/arm/arm.md (*ldc): New.
12027         (*stc): New.
12028         (<ldc>): New.
12029         (<stc>): New.
12030         * config/arm/arm.c (arm_coproc_builtin_available): Add
12031         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
12032         (arm_coproc_ldc_stc_legitimate_address): New.
12033         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
12034         'qualifier_const_pointer'.
12035         (LDC_QUALIFIERS): Define to...
12036         (arm_ldc_qualifiers): ... this. New.
12037         (STC_QUALIFIERS): Define to...
12038         (arm_stc_qualifiers): ... this. New.
12039         * config/arm/arm-protos.h
12040         (arm_coproc_ldc_stc_legitimate_address): New.
12041         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
12042         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
12043         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
12044         stc2, stcl, stc2l): New.
12045         * config/arm/constraints.md (Uz): New.
12046         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
12047         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
12048         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
12049         VUNSPEC_STC2L): New.
12050
12051 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12052
12053         * config/arm/arm.md (<cdp>): New.
12054         * config/arm/arm.c (neon_const_bounds): Rename this ...
12055         (arm_const_bounds): ... this.
12056         (arm_coproc_builtin_available): New.
12057         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
12058         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
12059         (CDP_QUALIFIERS): Define to...
12060         (arm_cdp_qualifiers): ... this. New.
12061         (void_UP): Define.
12062         (arm_expand_builtin_args): Add case for 6 arguments.
12063         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
12064         (arm_const_bounds): ... this.
12065         (arm_coproc_builtin_available): New.
12066         * config/arm/arm_acle.h (__arm_cdp): New.
12067         (__arm_cdp2): New.
12068         * config/arm/arm_acle_builtins.def (cdp): New.
12069         (cdp2): New.
12070         * config/arm/iterators.md (CDPI,CDP,cdp): New.
12071         * config/arm/neon.md: Rename all 'neon_const_bounds' to
12072         'arm_const_bounds'.
12073         * config/arm/types.md (coproc): New.
12074         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
12075         * gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
12076         * gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
12077         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
12078
12079 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12080
12081         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
12082         (UBINOP_QUALIFIERS): New.
12083         (si_UP): Define.
12084         (acle_builtin_data): New. Change comment.
12085         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
12086         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
12087         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
12088         arm_acle_builtins.def.
12089         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
12090         (arm_init_acle_builtins): New.
12091         (CRC32_BUILTIN): Remove.
12092         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
12093         crc32cb, crc32ch and crc32cw.
12094         (arm_init_crc32_builtins): Remove.
12095         (arm_init_builtins): Use arm_init_acle_builtins rather
12096         than arm_init_crc32_builtins.
12097         (arm_expand_acle_builtin): New.
12098         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
12099         * config/arm/arm_acle_builtins.def: New.
12100
12101 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12102
12103         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
12104         (arm_builtin_datum): ... this.
12105         (arm_init_neon_builtin): Rename to ...
12106         (arm_init_builtin): ... this. Add a new parameters PREFIX
12107         and USE_SIG_IN_NAME.
12108         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
12109         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
12110         'arm_builtin_datum'.
12111         (arm_init_vfp_builtins): Likewise.
12112         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
12113         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
12114         (arm_expand_neon_args): Rename to ...
12115         (arm_expand_builtin_args): ... this. Rename builtin_arg
12116         enum values and differentiate between ARG_BUILTIN_MEMORY
12117         and ARG_BUILTIN_NEON_MEMORY.
12118         (arm_expand_neon_builtin_1): Rename to ...
12119         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
12120         values, arm_expand_builtin_args and add bool parameter NEON.
12121         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
12122         (arm_expand_vfp_builtin): Likewise.
12123         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
12124
12125 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
12126
12127         PR middle-end/77484
12128         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
12129         * predict.c (tree_estimate_probability_bb): Reverse direction of
12130         polymorphic call predictor.
12131
12132 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
12133
12134         * passes.c (execute_one_pass): Split out pass-skipping logic into...
12135         (determine_pass_name_match): ...this new function and...
12136         (should_skip_pass_p): ...this new function.
12137
12138 2017-01-06  Nathan Sidwell  <nathan@acm.org>
12139
12140         * ipa-visibility.c (function_and_variable_visibility): Reformat
12141         comments and long lines.  Remove extrneous if.
12142         * symtab.c (symtab_node::make_decl_local): Fix code format.
12143         (symtab_node::set_section_for_node): Fix comment typo.
12144
12145 2017-01-06  Martin Liska  <mliska@suse.cz>
12146
12147         PR bootstrap/79003
12148         * lra-constraints.c: Rename invariant to lra_invariant.
12149         * predict.c (set_even_probabilities): Initialize e to NULL.
12150
12151 2017-01-05  Martin Sebor  <msebor@redhat.com>
12152
12153         PR tree-optimization/78910
12154         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
12155         (format_integer): Correct off-by-one error in the handling
12156         of precision with negative numbers in signed conversions..
12157
12158 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
12159
12160         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
12161
12162 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
12163
12164         PR tree-optimization/71016
12165         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
12166         factor_out_conditional_conversion.  Formatting fix.
12167         (factor_out_conditional_conversion): Add cond_stmt argument.
12168         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
12169         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
12170         Formatting fix.
12171
12172 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
12173
12174         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
12175         read-rtl-function.o, and selftest-rtl.o.
12176         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
12177         (selftest::aarch64_test_loading_full_dump): New function.
12178         (selftest::aarch64_run_selftests): New function.
12179         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
12180         selftest::aarch64_run_selftests.
12181         * config/i386/i386.c
12182         (selftest::ix86_test_loading_dump_fragment_1): New function.
12183         (selftest::ix86_test_loading_call_insn): New function.
12184         (selftest::ix86_test_loading_full_dump): New function.
12185         (selftest::ix86_test_loading_unspec): New function.
12186         (selftest::ix86_run_selftests): Call the new functions.
12187         * emit-rtl.c (maybe_set_max_label_num): New function.
12188         * emit-rtl.h (maybe_set_max_label_num): New decl.
12189         * function.c (instantiate_decls): Guard call to
12190         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
12191         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
12192         "static".
12193         * gensupport.c (gen_reader::gen_reader): Pass "false"
12194         for new "compact" param of rtx_reader.
12195         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
12196         rather than an empty string for NULL strings.
12197         * read-md.c: Potentially include config.h rather than bconfig.h.
12198         Wrap include of errors.h with #ifdef GENERATOR_FILE.
12199         (have_error): New global, copied from errors.c.
12200         (md_reader::read_name): Rename to...
12201         (md_reader::read_name_1): ...this, adding "out_loc" param,
12202         and converting "missing name or number" to returning false, rather
12203         than failing.
12204         (md_reader::read_name): Reimplement in terms of read_name_1.
12205         (md_reader::read_name_or_nil): New function.
12206         (md_reader::read_string): Handle "(nil)" by returning NULL.
12207         (md_reader::md_reader): Add new param "compact".
12208         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
12209         (md_reader::read_file): New method.
12210         * read-md.h (md_reader::md_reader): Add new param "compact".
12211         (md_reader::read_file): New method.
12212         (md_reader::is_compact): New accessor.
12213         (md_reader::read_name): Convert return type from void to file_location.
12214         (md_reader::read_name_or_nil): New decl.
12215         (md_reader::read_name_1): New decl.
12216         (md_reader::m_compact): New field.
12217         (noop_reader::noop_reader): Pass "false" for new "compact" param
12218         of rtx_reader.
12219         (rtx_reader::rtx_reader): Add new "compact" param.
12220         (rtx_reader::read_rtx_operand): Make virtual and convert return
12221         type from void to rtx.
12222         (rtx_reader::read_until): New decl.
12223         (rtx_reader::handle_any_trailing_information): New virtual function.
12224         (rtx_reader::postprocess): New virtual function.
12225         (rtx_reader::finalize_string): New virtual function.
12226         (rtx_reader::m_in_call_function_usage): New field.
12227         (rtx_reader::m_reuse_rtx_by_id): New field.
12228         * read-rtl-function.c: New file.
12229         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
12230         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
12231         (selftest::verify_three_block_rtl_cfg): New decl.
12232         * read-rtl-function.h: New file.
12233         * read-rtl.c: Potentially include config.h rather than bconfig.h.
12234         For host, include function.h, memmodel.h, and emit-rtl.h.
12235         (one_time_initialization): New function.
12236         (struct compact_insn_name): New struct.
12237         (compact_insn_names): New array.
12238         (find_code): Handle insn codes in compact dumps.
12239         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
12240         (bind_subst_iter_and_attr): Likewise.
12241         (add_condition_to_string): Likewise.
12242         (add_condition_to_rtx): Likewise.
12243         (apply_attribute_uses): Likewise.
12244         (add_current_iterators): Likewise.
12245         (apply_iterators): Likewise.
12246         (initialize_iterators): Guard usage of apply_subst_iterator with
12247         #ifdef GENERATOR_FILE.
12248         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
12249         (md_reader::read_mapping): Likewise.
12250         (add_define_attr_for_define_subst): Likewise.
12251         (add_define_subst_attr): Likewise.
12252         (read_subst_mapping): Likewise.
12253         (check_code_iterator): Likewise.
12254         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
12255         logic to...
12256         (one_time_initialization): New function.
12257         (rtx_reader::read_until): New method.
12258         (read_flags): New function.
12259         (parse_reg_note_name): New function.
12260         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
12261         Handle reuse_rtx ids.
12262         Wrap iterator lookup within #ifdef GENERATOR_FILE.
12263         Add parsing support for RTL dumps, mirroring the special-cases in
12264         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
12265         values, and calling handle_any_trailing_information.
12266         (rtx_reader::read_rtx_operand): Convert return type from void
12267         to rtx, returning return_rtx.  Handle case 'e'.  Call
12268         finalize_string on XSTR and XTMPL fields.
12269         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
12270          "(nil)" values were omitted.  Call the postprocess vfunc on the
12271         return_rtx.
12272         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
12273         class ctor.  Initialize m_in_call_function_usage.  Call
12274         one_time_initialization.
12275         * rtl-tests.c (selftest::test_uncond_jump): Call
12276         set_new_first_and_last_insn.
12277         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
12278         * selftest-rtl.c: New file.
12279         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
12280         (selftest::get_insn_by_uid): New decl.
12281         * selftest-run-tests.c (selftest::run_tests): Call
12282         read_rtl_function_c_tests.
12283         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
12284         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
12285         dumps.
12286
12287 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
12288
12289         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
12290         operands in a special way.  Assert that pos+len <= mode precision.
12291
12292 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
12293
12294         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
12295         3 argument Alias with unlimited for the negative form.
12296         (fno-vect-cost-model): Removed.
12297
12298 2017-01-05  Martin Liska  <mliska@suse.cz>
12299
12300         * hsa-gen.c (gen_hsa_divmod): New function.
12301         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
12302
12303 2017-01-05  Martin Liska  <mliska@suse.cz>
12304
12305         PR pch/78970
12306         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
12307         header.
12308
12309 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12310
12311         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
12312         small constant length operands.
12313
12314 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12315
12316         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
12317         between loop iterations.
12318
12319 2017-01-05  Martin Liska  <mliska@suse.cz>
12320
12321         PR sanitizer/78815
12322         * gimplify.c (gimplify_decl_expr): Compare to
12323         asan_poisoned_variables instread of checking flags.
12324         (gimplify_target_expr): Likewise.
12325         (gimplify_expr): Likewise.
12326         (gimplify_function_tree): Conditionally initialize
12327         asan_poisoned_variables.
12328
12329 2017-01-04  Jeff Law  <law@redhat.com>
12330
12331         PR tree-optimizatin/78812
12332         * rtl.h (contains_mem_rtx_p): Prototype.
12333         * ifcvt.c (containts_mem_rtx_p): Move from here to...
12334         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
12335         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
12336         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
12337         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
12338
12339 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
12340
12341         * input.c (assert_char_at_range): Default-initialize actual_range.
12342
12343 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
12344
12345         * df-scan.c (df_ref_create_structure): Make regno unsigned,
12346         to match the caller.
12347
12348 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
12349
12350         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
12351         insns after final jump in test to emit dummy move.
12352
12353 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
12354
12355         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
12356         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
12357
12358 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
12359
12360         * multiple_target.c (create_dispatcher_calls): Init e_next.
12361         * tree-ssa-loop-split.c (split_loop): Init border.
12362         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
12363         scalar_type.
12364
12365 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
12366
12367         PR target/71977
12368         PR target/70568
12369         PR target/78823
12370         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
12371         (altivec_register_operand): Do not return true if the operand
12372         contains a SUBREG mixing SImode and SFmode.
12373         (vsx_register_operand): Likewise.
12374         (vsx_reg_sfsubreg_ok): New predicate.
12375         (vfloat_operand): Do not return true if the operand contains a
12376         SUBREG mixing SImode and SFmode.
12377         (vint_operand): Likewise.
12378         (vlogical_operand): Likewise.
12379         (gpc_reg_operand): Likewise.
12380         (int_reg_operand): Likewise.
12381         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
12382         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
12383         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
12384         SImode and SFmode.
12385         (rs6000_emit_move_si_sf_subreg): New helper function.
12386         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
12387         fixup SUBREGs involving SImode and SFmode.
12388         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
12389         numbers for the new peephole2 optimization.
12390         (peephole2 for SFmode unions): New peephole2 to optimize cases in
12391         the GLIBC math library that do AND/IOR/XOR operations on single
12392         precision floating point.
12393         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
12394         target macros to say whether we need to avoid SUBREGs mixing
12395         SImode and SFmode.
12396         (TARGET_ALLOW_SF_SUBREG): Likewise.
12397         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
12398         (UNSPEC_SI_FROM_SF): Likewise.
12399         (iorxor): Change spacing.
12400         (and_ior_xor): New iterator for AND, IOR, and XOR.
12401         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
12402         (movdi_from_sf_zero_ext): Likewise.
12403         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
12404         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
12405         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
12406         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
12407         (fms<mode>4): Likewise.
12408         (fnma<mode>4): Likewise.
12409         (fnms<mode>4): Likewise.
12410         (nfma<mode>4): Likewise.
12411         (nfms<mode>4): Likewise.
12412
12413 2017-01-04  Marek Polacek  <polacek@redhat.com>
12414
12415         PR c++/64767
12416         * doc/invoke.texi: Document -Wpointer-compare.
12417
12418 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
12419
12420         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
12421         RejectNegative.
12422
12423         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
12424         descriptions for -gdwarf-5 and emit them as uleb128 instead of
12425         2-byte data.
12426
12427 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
12428
12429         PR target/78056
12430         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
12431         documentation of the powerpc_popcntb_ok attribute.
12432         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
12433         code to issue warning messages if a requested CPU configuration is
12434         not supported by the binary (assembler and loader) toolchain.
12435         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
12436         made to define a built-in function that has been disabled.
12437         (paired_init_builtins): Add assertion to prevent ICE if attempt is
12438         made to define a built-in function that has been disabled.
12439         (altivec_init_builtins): Add comment explaining why definition
12440         of the DST built-in functions is not preceded by an assertion
12441         check.  Add assertions to prevent ICE if attempts are made to
12442         define an altivec predicate or an abs* built-in function that has
12443         been disabled.
12444         (htm_init_builtins): Add comment explaining why definition of the
12445         htm built-in functions is not preceded by an assertion check.
12446
12447 2017-01-04  Jeff Law  <law@redhat.com>
12448
12449         PR tree-optimizatin/67955
12450         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
12451         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
12452         the points-to solution does not include pt_null.  Use DECL_PT_UID
12453         unconditionally.
12454
12455 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
12456
12457         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
12458         Use gen_int_mode instead of gen_lopwart for const_int operands.
12459
12460 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
12461
12462         PR tree-optimization/71563
12463         * match.pd: Simplify X << Y into X if Y is known to be 0 or
12464         out of range value - has low bits known to be zero.
12465
12466 2017-01-04  Alan Modra  <amodra@gmail.com>
12467
12468         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
12469         * configure: Regenerate.
12470         * config.in: Regenerate.
12471
12472 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
12473
12474         PR bootstrap/77569
12475         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
12476         a substring of the message, but strcmp with the whole message.  Ifdef
12477         ENABLE_NLS, translate the message first using dgettext.
12478
12479 2017-01-03  Jeff Law  <law@redhat.com>
12480
12481         PR tree-optimizatin/78856
12482         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
12483         (mark_threaded_blocks): Remove code to truncate thread paths that
12484         cross multiple loop headers.  Instead invalidate the cached loop
12485         iteration information and handle case of a thread path walking
12486         into an irreducible region.
12487
12488 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
12489
12490         PR target/78900
12491         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
12492         assertions.  Add support for doing the signbit if the IEEE 128-bit
12493         floating point value is in a GPR.
12494         * config/rs6000/rs6000.md (Fsignbit): Delete.
12495         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
12496         Update the length attribute if the value is in a GPR.
12497         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
12498         the sign or zero extension instruction, since the value is always 0/1.
12499         (signbit<mode>2_dm2): Delete using <Fsignbit>.
12500
12501         PR target/78953
12502         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
12503         extracting SImode to a GPR register so that we can generate a
12504         store, limit the vector to be in a traditional Altivec register
12505         for the vextuwrx instruction.
12506
12507 2017-01-03  Ian Lance Taylor  <iant@google.com>
12508
12509         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
12510
12511 2017-01-03  Martin Sebor  <msebor@redhat.com>
12512
12513         PR tree-optimization/78696
12514         * gimple-ssa-sprintf.c (format_floating): Correct handling of
12515         precision.  Use MPFR for %f for greater fidelity.  Correct handling
12516         of %g.
12517         (pass_sprintf_length::compute_format_length): Set width and precision
12518         specified by asrerisk to void_node for vararg functions.
12519         (try_substitute_return_value): Adjust dump output.
12520
12521 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
12522
12523         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
12524
12525 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
12526
12527         * doc/invoke.texi (SPARC options): Document -mlra as the default.
12528         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
12529         -mlra/-mno-lra was passed to the compiler.
12530
12531 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
12532
12533         PR rtl-optimization/65618
12534         * emit-rtl.c (try_split): Move initialization of "before" and
12535         "after" to just before the call to emit_insn_after_setloc.
12536
12537 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
12538
12539         * doc/md.texi (Standard Names): Remove reference to Java frontend.
12540
12541 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
12542
12543         * dwarf2out.c (gen_enumeration_type_die): When
12544         -gno-strict-dwarf, add a DW_AT_encoding attribute.
12545
12546 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
12547
12548         PR tree-optimization/78965
12549         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
12550         Change first argument from const call_info & to call_info &.  For %n
12551         set info.nowrite to false.
12552
12553         PR middle-end/78901
12554         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
12555         possibly throwing calls.
12556
12557         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
12558         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
12559         and fns handling, rather than in a separate case SSA_NAME.
12560
12561 2017-01-02  Jeff Law  <law@redhat.com>
12562
12563         * config/darwin-driver.c (darwin_driver_init): Const-correctness
12564         fixes for first_period and second_period variables.
12565
12566 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
12567
12568         PR target/78967
12569         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
12570         (*insvqi_1): New insn pattern.
12571         (*insvqi_1_mem_rex64): Ditto.
12572         (*insvqi_2): Ditto.
12573         (*insvqi_3): Rename from *insvqi.
12574
12575         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
12576
12577 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
12578
12579         * doc/cfg.texi (Edges): Remove reference to Java.
12580         (Maintaining the CFG): Ditto.
12581
12582 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
12583
12584         PR middle-end/77674
12585         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
12586         transparent aliases.
12587
12588 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
12589
12590         PR middle-end/77484
12591         * predict.def (PRED_CALL): Update hitrate.
12592         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
12593         * predict.c (tree_estimate_probability_bb): Split CALL predictor
12594         into direct/indirect/polymorphic variants.
12595
12596 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
12597
12598         Update copyright years.
12599
12600         * gcc.c (process_command): Update copyright notice dates.
12601         * gcov-dump.c (print_version): Ditto.
12602         * gcov.c (print_version): Ditto.
12603         * gcov-tool.c (print_version): Ditto.
12604         * gengtype.c (create_file): Ditto.
12605         * doc/cpp.texi: Bump @copying's copyright year.
12606         * doc/cppinternals.texi: Ditto.
12607         * doc/gcc.texi: Ditto.
12608         * doc/gccint.texi: Ditto.
12609         * doc/gcov.texi: Ditto.
12610         * doc/install.texi: Ditto.
12611         * doc/invoke.texi: Ditto.
12612 \f
12613 Copyright (C) 2017 Free Software Foundation, Inc.
12614
12615 Copying and distribution of this file, with or without modification,
12616 are permitted in any medium without royalty provided the copyright
12617 notice and this notice are preserved.