5e4c756cd1c06fc9754e2525a9d22e80f928d3b1
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2017-02-06  Julian Brown  <julian@codesourcery.com>
2             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
3             Virendra Pathak  <virendra.pathak@broadcom.com>
4
5         * config/aarch64/aarch64-cores.def: Change the scheduler
6         to Thunderx2t99.
7         * config/aarch64/aarch64.md: Include thunderx2t99.md.
8         * config/aarch64/thunderx2t99.md: New file.
9
10 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
11
12         * doc/standards.texi (Go Language): Update link to language
13         standard.
14
15 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
16
17         * tree-eh.c (lower_resx): Sanitize profile.
18         (cleanup_empty_eh_move_lp): Likewise.
19
20 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
21
22         PR tree-ssa/79347
23         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
24         ELSE_PROB.
25         * cfgloopmanip.h (loop_version): Update prototype.
26         * modulo-sched.c (sms_schedule): Update call of loop_version.
27         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
28         * tree-parloops.c (gen_parallel_loop): Likewise.
29         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
30         * tree-ssa-loop-split.c (split_loop): Likewise.
31         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
32         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
33
34 2017-02-05  Martin Liska  <mliska@suse.cz>
35
36         PR bootstrap/78985
37         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
38         variable to NULL.
39         (print_operand_address): Initialize a struct to zero.
40
41 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
42
43         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
44         garbage collector only in textual form.
45
46 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
47         
48         * doc/extend.texi (x86 specific memory model extensions for
49         transactional memory): Simplify a phrase.
50
51 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
52
53         PR target/79353
54         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
55         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
56         (atomic_storedi_1): Likewise.
57
58 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
59
60         PR tree-optimization/79338
61         * tree-parloops.c (gather_scalar_reductions): Don't call
62         vect_analyze_loop_form for loop->inner before destroying loop's
63         loop_vinfo.
64
65 2017-02-03  Martin Sebor  <msebor@redhat.com>
66
67         PR tree-optimization/79327
68         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
69         when precision has resulted in leading zeros.
70         (format_integer): Adjust the likely counter to assume an unknown
71         argument that may be zero is non-zero.
72
73 2017-02-03  Jason Merrill  <jason@redhat.com>
74
75         PR c++/78689
76         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
77         avoid copying non-taken branch.
78
79 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
80
81         PR tree-optimization/79340
82         * tree-vect-loop.c (vectorizable_reduction): Release
83         vec_defs elements after safe_splicing them into other vectors.
84         Formatting fixes.
85
86         PR tree-optimization/79327
87         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
88         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
89         dirtype.
90         (format_integer): Use wide_int_to_tree instead of build_int_cst
91         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
92         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
93         of shortest and longest sequence.
94
95 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
96
97         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
98         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
99
100 2017-02-03  Walter Lee  <walt@tilera.com>
101
102         PR target/78862
103         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
104         after initial stackframe link reg save.
105         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
106
107 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
108
109         PR target/79354
110         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
111         wu for stxssp alternative.
112
113 2017-02-03  Martin Sebor  <msebor@redhat.com>
114
115         PR tree-optimization/79352
116         * gimple-fold.c (get_range_strlen): Add argument.
117         (get_range_strlen): Change return type to bool.
118         (get_maxval_strlen): Pass in a dummy argument.
119         * gimple-fold.h (get_range_strlen): Change return type to bool.
120         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
121         * tree.h (array_at_struct_end_p): Add argument.
122         * tree.c (array_at_struct_end_p): Handle it.
123
124 2017-02-03  Martin Liska  <mliska@suse.cz>
125
126         PR lto/66295
127         * multiple_target.c (create_dispatcher_calls): Redirect edge
128         from a caller of a dispatcher.
129         (expand_target_clones): Make the clones local.
130         (ipa_target_clone): Do both target clones and resolvers.
131         (ipa_dispatcher_calls): Remove the pass.
132         (pass_dispatcher_calls::gate): Likewise.
133         (make_pass_dispatcher_calls): Likewise.
134         * passes.def (pass_target_clone): Put as very first IPA early
135         pass.
136
137 2017-02-03  Martin Liska  <mliska@suse.cz>
138
139         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
140         in case of a function with ifunc attribute.
141
142 2017-02-03  Martin Liska  <mliska@suse.cz>
143
144         * cgraph.c (cgraph_node::dump): Dump function version info.
145         * symtab.c (symtab_node::dump_base): Add missing new line.
146
147 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
148
149         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
150         (ifcombine_ifandif): Use it.
151
152 2017-02-03  Martin Liska  <mliska@suse.cz>
153
154         * doc/invoke.texi: Document default value for
155         use-after-scope-direct-emission-threshold.
156
157 2017-02-03  Martin Liska  <mliska@suse.cz>
158
159         PR tree-optimization/79339
160         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
161         (format_floating): Likewise.
162
163 2017-02-03  Martin Liska  <mliska@suse.cz>
164
165         PR ipa/79337
166         * ipa-prop.c (ipa_node_params_t::insert): Remove current
167         implementation.
168         (ipa_node_params_t::remove): Likewise.
169         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
170         initialization from removed ipa_node_params_t::insert.
171         (ipa_node_params::~ipa_node_params): Move from removed
172         ipa_node_params_t::release.
173         * symbol-summary.h (symbol_summary::m_released): New member.
174         Do not release a summary twice.  Do not allow to call finalizer
175         for types of a summary that live in GGC memory.
176
177 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
178
179         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
180         cmp_branch fusion.
181
182 2017-02-02  Martin Sebor  <msebor@redhat.com>
183
184         PR middle-end/79275
185         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
186         (format_string): Tighten up the range of output for non-constant
187         strings and correct the expected range for wide non-constant strings.
188
189 2017-02-02  Martin Sebor  <msebor@redhat.com>
190
191         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
192
193         PR middle-end/32003
194         * doc/invoke.texi (-fdump-rtl-): Remove pass-specific options from
195         index.
196         (-fdump-tree-@var): Add to index and document how to come up
197         with pass-specific option and dump file names.
198         (-fdump-passes): Clarify where to look for output.
199
200 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
201
202         PR middle-end/77445
203         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
204         statistics of the analyzed path; allow threading for speed when
205         any of BBs along the path are optimized for speed.
206
207 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
208
209         PR middle-end/78468
210         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
211         settings of the virtual registers.
212
213         Revert again
214         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
215
216         * explow.c (get_dynamic_stack_size): Take known alignment of stack
217         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
218         needed.
219
220 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
221
222         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
223         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
224
225 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
226
227         * config/s390/s390.md: Add missing comments with the expanded
228         mnemonics.
229         * config/s390/vector.md: Likewise.
230         * config/s390/vx-builtins.md: Likewise.
231
232 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
233
234         PR target/79197
235         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
236         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
237         conditions on a single line.
238
239 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
240
241         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
242         __S390_VX__ to __VX__.
243
244 2017-02-01  Andrew Pinski  <apinski@cavium.com>
245
246         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
247         stmt_info to record_stmt_cost.
248         (vect_get_known_peeling_cost): Pass stmt_info if known to
249         record_stmt_cost.
250         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
251         cpu_vector_cost field into
252         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
253         field into vec_int_stmt_cost and vec_fp_stmt_cost.
254         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
255         splitting of scalar_stmt_cost and vec_stmt_cost.
256         (thunderx_vector_cost): Likewise.
257         (cortexa57_vector_cost): LIkewise.
258         (exynosm1_vector_cost): Likewise.
259         (xgene1_vector_cost): Likewise.
260         (thunderx2t99_vector_cost): Improve after the splitting of the two
261         fields.
262         (aarch64_builtin_vectorization_cost): Update for the splitting of
263         scalar_stmt_cost and vec_stmt_cost.
264
265 2017-02-01  Torvald Riegel  <triegel@redhat.com>
266             Richard Henderson  <rth@redhat.com>
267
268         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
269         conditional on existance of a fast atomic load.
270         * optabs-query.c (can_atomic_load_p): New function.
271         * optabs-query.h (can_atomic_load_p): Declare it.
272         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
273         no fast atomic load is available for the particular size of access.
274         (expand_atomic_compare_and_swap): Likewise.
275         (expand_atomic_load): Likewise.
276         (expand_atomic_store): Likewise.
277         (expand_atomic_fetch_op): Likewise.
278         * testsuite/lib/target-supports.exp
279         (check_effective_target_sync_int_128): Remove x86 because it provides
280         no fast atomic load.
281         (check_effective_target_sync_int_128_runtime): Likewise.
282
283 2017-02-01  Richard Biener  <rguenther@suse.de>
284
285         * graphite.c: Include tree-vectorizer.h for find_loop_location.
286         (graphite_transform_loops): Provide opt-info for optimized nests.
287         * tree-parloop.c (parallelize_loops): Provide opt-info for
288         parallelized loops.
289
290 2017-02-01  Richard Biener  <rguenther@suse.de>
291
292         PR middle-end/79315
293         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
294         was not set before.
295
296 2017-02-01  Richard Biener  <rguenther@suse.de>
297
298         PR tree-optimization/71824
299         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
300         Verify the loops are valid in the merged SESE region.
301         (scop_detection::can_represent_loop_1): Check analyzing the
302         evolution of the number of iterations in the region succeeds.
303
304 2017-01-31  Ian Lance Taylor  <iant@golang.org>
305
306         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
307         REG_ARGS_SIZE note to 32-bit push insns and call insn.
308
309 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
310
311         PR preprocessor/79210
312         * input.c (get_substring_ranges_for_loc): Replace line_width
313         assertion with error-handling.
314
315 2017-01-31  Richard Biener  <rguenther@suse.de>
316
317         PR tree-optimization/77318
318         * graphite-sese-to-poly.c (extract_affine): Fix assert.
319         (create_pw_aff_from_tree): Take loop parameter.
320         (add_condition_to_pbb): Pass loop of the condition to
321         create_pw_aff_from_tree.
322
323 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
324
325         * config/s390/s390.c (s390_asan_shadow_offset): New function.
326         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
327
328 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
329
330         PR target/78597
331         PR target/79038
332         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
333         no longer used.
334         (convert_int_to_float128): Likewise.
335         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
336         (convert_int_to_float128): Likewise.
337         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
338         (UNSPEC_IEEE128_CONVERT): Likewise.
339         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
340         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
341         Use local variables for IBM extended format.
342         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
343         (fix_trunc<mode>si2_fprs): Likewise.
344         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
345         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
346         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
347         to know that we can now have integers of all sizes in vector
348         registers.
349         (fix<uns>_<mode>di2_hw): Likewise.
350         (float<uns>_<mode>si2_hw): Likewise.
351         (fix_<mode>si2_hw): Likewise.
352         (fixuns_<mode>si2_hw): Likewise.
353         (float<uns>_<mode>di2_hw): Likewise.
354         (float_<mode>di2_hw): Likewise.
355         (float_<mode>si2_hw): Likewise.
356         (floatuns_<mode>di2_hw): Likewise.
357         (floatuns_<mode>si2_hw): Likewise.
358         (xscvqp<su>wz_<mode>): Delete, no longer used.
359         (xscvqp<su>dz_<mode>): Likewise.
360         (xscv<su>dqp_<mode>): Likewise.
361         (ieee128_mfvsrd_64bit): Likewise.
362         (ieee128_mfvsrd_32bit): Likewise.
363         (ieee128_mfvsrwz): Likewise.
364         (ieee128_mtvsrw): Likewise.
365         (ieee128_mtvsrd_64bit): Likewise.
366         (ieee128_mtvsrd_32bit): Likewise.
367
368 2017-01-31  Martin Liska  <mliska@suse.cz>
369
370         PR ipa/79285
371         * ipa-prop.c (ipa_free_all_node_params): Call release method
372         instead of ~sumbol_summary to not to trigger double times
373         dtor of hash_map.
374
375 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
376
377         PR tree-optimization/71691
378         * bitmap.h (class auto_bitmap): New.
379         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
380         is_maybe_undefined instead of ssa_undefined_value_p.
381
382 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
383
384         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
385         __S390_ARCH_LEVEL__ to __ARCH__.
386
387 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
388
389         PR tree-optimization/79267
390         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
391         if should_remove_lhs_p is true.
392
393 2017-01-30  Alexandre Oliva <aoliva@redhat.com>
394
395         PR debug/63238
396         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
397         (add_alignment_attribute): New.
398         (base_type_die): Add alignment attribute.
399         (subrange_type_die): Likewise.
400         (modified_type_die): Likewise.
401         (gen_array_type_die): Likewise.
402         (gen_descr_array_type_die: Likewise.
403         (gen_enumeration_type_die): Likewise.
404         (gen_subprogram_die): Likewise.
405         (gen_variable_die): Likewise.
406         (gen_field_die): Likewise.
407         (gen_ptr_to_mbr_type_die): Likewise.
408         (gen_struct_or_union_type_die): Likewise.
409         (gen_subroutine_type_die): Likewise.
410         (gen_typedef_die): Likewise.
411         (base_type_cmp): Compare alignment attribute.
412
413 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
414
415         PR target/79170
416         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
417         (setb_unsigned) New pattern for setb with CCUNS.
418         * config/rs6000/rs6000.c (expand_block_compare): Use a different
419         subfc./subfe sequence to avoid overflow problems.  Generate a
420         shorter sequence with cmpld/setb for power9.
421         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
422         for generating subfc. instruction.
423         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
424         now uses this instruction.
425
426 2017-01-30  Ian Lance Taylor  <iant@google.com>
427
428         PR debug/79289
429         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
430         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
431
432 2017-01-30  Martin Sebor  <msebor@redhat.com>
433
434         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
435         Move constant to the right of a relational operator.
436         (get_mpfr_format_length, format_character, format_string): Ditto.
437         (should_warn_p, maybe_warn): Same.
438
439         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
440
441 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
442
443         PR lto/79061
444         * asan.c (get_translation_unit_decl): Remove function.
445         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
446
447 2017-01-30  Martin Liska  <mliska@suse.cz>
448
449         PR gcov-profile/79259
450         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
451         -fprofile-generate.
452
453 2017-01-30  Martin Liska  <mliska@suse.cz>
454
455         PR bootstrap/78985
456         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
457         Initialize variables with NULL value.
458
459 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
460
461         PR target/79260
462         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
463         tm_p_file.
464         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
465
466 2017-01-30  Richard Biener  <rguenther@suse.de>
467
468         PR tree-optimization/79276
469         * tree-vrp.c (process_assert_insertions): Properly adjust common
470         when removing a duplicate.
471
472         * gcc.dg/torture/pr79276.c: New testcase.
473
474 2017-01-30  Richard Biener  <rguenther@suse.de>
475
476         PR tree-optimization/79256
477         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
478         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
479         alignment on TYPE.
480         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
481
482 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
483
484         PR target/79240
485         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
486         ("*r<noxa>sbg_<mode>_sll_bitmask")
487         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
488         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
489         Use contiguous_bitmask_nowrap_operand.
490
491 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
492
493         PR target/79268
494         * config/rs6000/altivec.h (vec_xl): Revise #define.
495         (vec_xst): Likewise.
496
497 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
498
499         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
500
501 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
502
503         PR rtl-optimization/79194
504         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
505         traps before call to bypass_conditional_jumps.
506
507 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
508
509         PR tree-optimization/71374
510         * lra-constraints.c (check_conflict_input_operands): New.
511         (match_reload): Use it.
512
513 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
514
515         PR target/79131
516         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
517         account to calculate conflict_set.
518
519 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
520
521         PR rtl-optimization/78559
522         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
523         other_insn in combine.
524
525 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
526
527         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
528         uint16_type_node for BT_UINT16.
529
530 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
531
532         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
533         "RTL Tests" to menu.
534         (GIMPLE Tests): New node.
535         (RTL Tests): New node.
536
537 2017-01-27  Richard Biener  <rguenther@suse.de>
538
539         PR tree-optimization/79245
540         * tree-loop-distribution.c (distribute_loop): Apply cost
541         modeling also to detected patterns.
542
543 2017-01-27  Richard Biener  <rguenther@suse.de>
544
545         PR tree-optimization/71433
546         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
547         (compare_assert_loc): New function.
548         (process_assert_insertions): Sort and optimize assert locations
549         to remove duplicates and push down identical assertions on
550         edges to their destination block.
551
552 2017-01-27  Richard Biener  <rguenther@suse.de>
553
554         PR tree-optimization/79244
555         * tree-vrp.c (remove_range_assertions): Forcefully propagate
556         out SSA names even if abnormal.
557
558 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
559
560         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
561         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
562         instead of MPFR_RNDN.
563
564 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
565
566         PR target/79239
567         * arm.c (arm_option_override): Don't call build_target_option_node
568         until after doing all option overrides.
569         (arm_valid_target_attribute_tree): Likewise.
570
571 2017-01-27  Martin Liska  <mliska@suse.cz>
572
573         * doc/invoke.texi (-fprofile-arcs): Document profiling support
574         for {cd}tors and C++ {cd}tors.
575
576 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
577
578         * config/s390/s390.md ("*setmem_long_and")
579         ("*setmem_long_and_31z"): Use zero_extend instead of and.
580
581 2017-01-26  Martin Sebor  <msebor@redhat.com>
582
583         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
584         of precision.
585
586 2017-01-26  Martin Sebor  <msebor@redhat.com>
587
588         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
589         HAVE_DFmode before using XFmode or DFmode.
590         (parse_directive): Avoid using the z length modifier to avoid
591         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
592
593         PR middle-end/78703
594         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
595         to accept adjustment as an array.
596         (get_int_range): New function.
597         (struct directive): Make width and prec arrays.
598         (directive::set_width, directive::set_precision): Call get_int_range.
599         (format_integer, format_floating): Handle width and precision ranges.
600         (format_string, parse_directive): Same.
601
602 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
603
604         PR debug/79129
605         * dwarf2out.c (generate_skeleton_bottom_up): For children with
606         comdat_type_p set, just clone them, but keep the children in the
607         original DIE.
608
609         PR debug/78835
610         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
611         which have direct callers with -fvar-tracking-assignments enabled
612         in the current TU.
613         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
614         inside of type units.
615
616 2017-01-26  Martin Sebor  <msebor@redhat.com>
617
618         PR middle-end/78703
619         * gimple-ssa-sprintf.c (struct result_range): Add likely and
620         unlikely counters.
621         (struct format_result): Replace number_chars, number_chars_min,
622         and number_chars_max with a single member of struct result_range.
623         Remove bounded.
624         (format_result::operator+=): Adjust.
625         (struct fmtresult): Remove bounded.  Handle likely and unlikely
626         counters.
627         (fmtresult::adjust_for_width_or_precision): New function.
628         (fmtresult:type_max_digits): New function.
629         (bytes_remaining): Handle likely and unlikely counters.
630         (min_bytes_remaining): Remove.
631         (format_percent): Simplify.
632         (format_integer, format_floating): Set likely and unlikely counters.
633         (get_string_length, format_character, format_string): Same.
634         (format_plain, should_warn_p): New function.
635         (maybe_warn): Call should_warn_p.  Update diagnostic messages
636         and handle those for all directives, including plain strings.
637         (format_directive): Handle likely and unlikely counters.
638         Remove unnecessary quoting from diagnostics.  Add an informational
639         note.
640         (add_bytes): Remove.
641         (pass_sprintf_length::compute_format_length): Simplify.
642         (try_substitute_return_value): Handle likely and unlikely counters.
643
644 2017-01-26  Carl Love  <cel@us.ibm.com>
645
646         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
647         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
648
649 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
650
651         PR target/79131
652         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
653         endianess for subregs into account.
654         * lra-constraints.c (lra_constraints): Do risky transformations
655         always on the first iteration.
656         * lra-lives.c (check_pseudos_live_through_calls): Add arg
657         last_call_used_reg_set.
658         (process_bb_lives): Define and use last_call_used_reg_set.
659         * lra.c (lra): Always continue after lra_constraints on the first
660         iteration.
661
662 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
663
664         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
665         constant.
666         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
667
668 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
669
670         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
671         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
672         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
673         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
674         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
675         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
676         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
677         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
678         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
679
680 2017-01-26  Marek Polacek  <polacek@redhat.com>
681
682         PR c/79199
683         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
684         for the third operand.
685
686 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
687
688         PR middle-end/79236
689         * omp-low.c (struct omp_context): Add simt_stmt field.
690         (scan_omp_for): Return omp_context *.
691         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
692         context to the _simt_ SIMD stmt.
693         (lower_omp_for): For combined SIMD with sibling _simt_
694         SIMD, make sure to use the same decls in _looptemp_
695         clauses as in the sibling.
696
697 2017-01-26  David Sherwood  <david.sherwood@arm.com>
698
699         PR middle-end/79212
700         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
701         all contexts.
702
703 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
704
705         PR target/70465
706         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
707         emit fld b; fld a; if possible.
708
709         * brig-builtins.def: Update copyright years.
710         * config/arm/arm_acle_builtins.def: Update copyright years.
711
712 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
713
714         PR target/79179
715         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
716         constraint instead of o for the stxsd instruction.
717
718 2017-01-25  Carl Love  <cel@us.ibm.com>
719
720         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
721         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
722
723 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
724
725         * doc/invoke.texi (C++ Dialect Options): Fix typo.
726
727 2017-01-25  Richard Biener  <rguenther@suse.de>
728
729         PR tree-optimization/69264
730         * target.def (vector_alignment_reachable): Improve documentation.
731         * doc/tm.texi: Regenerate.
732         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
733         and add a comment.
734         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
735         earlier changes with respect to TYPE_USER_ALIGN.
736         (vector_alignment_reachable_p): Likewise.  Improve dumping.
737
738 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
739
740         PR target/79145
741         * config/arm/arm.md (xordi3): Force constant operand into a register
742         for TARGET_IWMMXT.
743
744 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
745
746         * doc/invoke.texi (-fstore-merging): Correct default optimization
747         levels at which it is enabled.
748         (-O): Move -fstore-merging from list to...
749         (-O2): ... Here.
750
751 2017-01-25  Richard Biener  <rguenther@suse.de>
752
753         PR debug/78363
754         * omp-expand.c: Include debug.h.
755         (expand_omp_taskreg): Make sure to generate early debug before
756         outlining anything from a function.
757         (expand_omp_target): Likewise.
758         (grid_expand_target_grid_body): Likewise.
759
760 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
761
762         PR lto/79061
763         * asan.c (get_translation_unit_decl): New function.
764         (asan_add_global): Extract modules file name from globals
765         TRANSLATION_UNIT_DECL name.
766
767 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
768
769         PR target/77439
770         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
771         for long calls with APCS frame and VFP.
772
773 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
774
775         * cfg.c (original_copy_tables_initialized_p): New function.
776         * cfg.h (original_copy_tables_initialized_p): New decl.
777         * cfgrtl.c (relink_block_chain): Guard the call to
778         free_original_copy_tables with a call to
779         original_copy_tables_initialized_p.
780         * cgraph.h (symtab_node::native_rtl_p): New decl.
781         * cgraphunit.c (symtab_node::native_rtl_p): New function.
782         (symtab_node::needed_p): Don't assert for early assembly output
783         for __RTL functions.
784         (cgraph_node::finalize_function): Set "force_output" for __RTL
785         functions.
786         (cgraph_node::analyze): Bail out early for __RTL functions.
787         (analyze_functions): Update assertion to support __RTL functions.
788         (cgraph_node::expand): Bail out early for __RTL functions.
789         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
790         __RTL functions.
791         * function.h (struct function): Update comment for field
792         "pass_startwith".
793         * gimple-expr.c: Include "tree-pass.h".
794         (gimple_has_body_p): Return false for __RTL functions.
795         * Makefile.in (OBJS): Add run-rtl-passes.o.
796         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
797         accessor.
798         (gcc::pass_manager::get_clean_slate): New accessor.
799         * passes.c: Include "insn-addr.h".
800         (should_skip_pass_p): Add logging.  Update logic for running
801         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
802         property-provider override so it is only done for gimple passes.
803         Don't skip dfinit.
804         (skip_pass): New function.
805         (execute_one_pass): Call skip_pass when skipping passes.
806         * read-md.c (md_reader::read_char): Support filtering
807         the input to a subset of line numbers.
808         (md_reader::md_reader): Initialize fields
809         m_first_line and m_last_line.
810         (md_reader::read_file_fragment): New function.
811         * read-md.h (md_reader::read_file_fragment): New decl.
812         (md_reader::m_first_line): New field.
813         (md_reader::m_last_line): New field.
814         * read-rtl-function.c (function_reader::create_function): Only
815         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
816         curr_properties.  Set DECL_INITIAL to a dummy block.
817         (read_rtl_function_body_from_file_range): New function.
818         * read-rtl-function.h (read_rtl_function_body_from_file_range):
819         New decl.
820         * run-rtl-passes.c: New file.
821         * run-rtl-passes.h: New file.
822
823 2017-01-24 Jeff Law  <law@redhat.com>
824
825         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
826         buffer size.
827
828 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
829
830         PR tree-optimization/79159
831         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
832         (record_nonwrapping_iv): Improve boundary using above function if no
833         value range information.
834
835 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
836             Martin Jambor  <mjambor@suse.cz>
837
838         * brig-builtins.def: New file.
839         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
840         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
841         (DEF_HSAIL_SAT_BUILTIN): Likewise.
842         (DEF_HSAIL_INTR_BUILTIN): Likewise.
843         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
844         * builtin-types.def (BT_INT8): New.
845         (BT_INT16): Likewise.
846         (BT_UINT8): Likewise.
847         (BT_UINT16): Likewise.
848         (BT_FN_ULONG): Likewise.
849         (BT_FN_UINT_INT): Likewise.
850         (BT_FN_UINT_ULONG): Likewise.
851         (BT_FN_UINT_LONG): Likewise.
852         (BT_FN_UINT_PTR): Likewise.
853         (BT_FN_ULONG_PTR): Likewise.
854         (BT_FN_INT8_FLOAT): Likewise.
855         (BT_FN_INT16_FLOAT): Likewise.
856         (BT_FN_UINT32_FLOAT): Likewise.
857         (BT_FN_UINT16_FLOAT): Likewise.
858         (BT_FN_UINT8_FLOAT): Likewise.
859         (BT_FN_UINT64_FLOAT): Likewise.
860         (BT_FN_UINT16_UINT32): Likewise.
861         (BT_FN_UINT32_UINT16): Likewise.
862         (BT_FN_UINT16_UINT16_UINT16): Likewise.
863         (BT_FN_INT_PTR_INT): Likewise.
864         (BT_FN_UINT_PTR_UINT): Likewise.
865         (BT_FN_LONG_PTR_LONG): Likewise.
866         (BT_FN_ULONG_PTR_ULONG): Likewise.
867         (BT_FN_VOID_UINT64_UINT64): Likewise.
868         (BT_FN_UINT8_UINT8_UINT8): Likewise.
869         (BT_FN_INT8_INT8_INT8): Likewise.
870         (BT_FN_INT16_INT16_INT16): Likewise.
871         (BT_FN_INT_INT_INT): Likewise.
872         (BT_FN_UINT_FLOAT_UINT): Likewise.
873         (BT_FN_FLOAT_UINT_UINT): Likewise.
874         (BT_FN_ULONG_UINT_UINT): Likewise.
875         (BT_FN_ULONG_UINT_PTR): Likewise.
876         (BT_FN_ULONG_ULONG_ULONG): Likewise.
877         (BT_FN_UINT_UINT_UINT): Likewise.
878         (BT_FN_VOID_UINT_PTR): Likewise.
879         (BT_FN_UINT_UINT_PTR: Likewise.
880         (BT_FN_UINT32_UINT64_PTR): Likewise.
881         (BT_FN_INT_INT_UINT_UINT): Likewise.
882         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
883         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
884         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
885         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
886         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
887         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
888         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
889         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
890         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
891         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
892         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
893         * doc/frontends.texi: List BRIG FE.
894         * doc/install.texi (Testing): Add BRIG tesring requirements.
895         * doc/invoke.texi (Overall Options): Mention BRIG.
896         * doc/standards.texi (Standards): Doucment BRIG HSA version.
897
898 2017-01-24  Richard Biener  <rguenther@suse.de>
899
900         PR translation/79208
901         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
902
903 2017-01-24  Martin Jambor  <mjambor@suse.cz>
904
905         PR bootstrap/79198
906         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
907         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
908         and known_contexts.
909
910 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
911
912         PR middle-end/79123
913         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
914         casts from signed to unsigned really don't have a range.
915
916 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
917
918         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
919         GMP_RNDx for compatiblity.
920
921 2017-01-24  Martin Liska  <mliska@suse.cz>
922
923         PR bootstrap/79132
924         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
925         that would prevent us to call alloca with -1 as argument.
926
927 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
928
929         * dwarf2out.c (output_compilation_unit_header, output_file_names):
930         Avoid -Wformat-security warning.
931
932 2017-01-23  Andrew Pinski  <apinski@cavium.com>
933
934         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
935         cost table.
936
937 2017-01-23  Martin Sebor  <msebor@redhat.com>
938
939         PR middle-end/78703
940         * gimple-ssa-sprintf.c (warn_level): New global.
941         (format_integer): Use it here and throughout the rest of the file.
942         Use the same switch to compute sign as base.
943         (maybe_warn): New function.
944         (format_directive): Factor out warnings into maybe_warn.
945         Add debugging output.  Use warn_level.
946         (add_bytes): Use warn_level.
947         (pass_sprintf_length::compute_format_length): Add debugging output.
948         (try_substitute_return_value): Same.
949         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
950
951         PR middle-end/78703
952         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
953         (struct fmtresult, format_integer, format_floating): Adjust.
954         (fmtresult::fmtresult): Set max correctly in two argument ctor.
955         (get_string_length, format_string,format_directive): Same.
956         (pass_sprintf_length::compute_format_length): Same.
957         (try_substitute_return_value): Simplify slightly.
958
959         PR middle-end/78703
960         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
961         (fmtresult::operator+=): Outlined.
962         (struct fmtresult): Add ctors.
963         (struct conversion_spec): Rename...
964         (struct directive): ...to this.  Add and remove data members.
965         (directive::set_width, directive::set_precision): New functions.
966         (format_percent): Use fmtresult ctor.
967         (get_width_and_precision): Remove.
968         (format_integer): Make naming changes.  Avoid computing width and
969         precision.
970         (format_floating): Same.  Adjust indentation.
971         (format_character, format_none): New functions.
972         (format_string): Moved character handling to format_character.
973         (format_directive): Remove arguments, change return type.
974         (parse_directive): New function.
975         (pass_sprintf_length::compute_format_length): Move directive
976         parsing to parse_directive.
977
978 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
979
980         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
981         (assign_assembler_name_if_needed): ... this.
982         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
983         (assign_assembler_name_if_needed): ... this.
984         (free_lang_data_in_cgraph): Adjust callers.
985         * cgraphunit.c (cgraph_node::analyze): Likewise.
986         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
987         Likewise.
988
989 2017-01-23  Richard Biener  <rguenther@suse.de>
990
991         PR tree-optimization/79088
992         PR tree-optimization/79188
993         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
994         resetting loop bounds after last path deletion.  Reset loop
995         bounds of the target loop, make code match the comments.
996         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
997         Make sure loops need no fixups.
998
999 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1000
1001         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
1002         exponent support with double type for first argument.
1003         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
1004         type returned by __builtin_vec_extract_sig,
1005         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
1006         functions from "vector int" to "vector unsigned int" or from
1007         "vector long long int" to "vector unsigned long long int".
1008         Changed type returned by __builtin_vec_extract_exp,
1009         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
1010         functions from "vector int" to "vector unsigned int" or from
1011         "vector long long int" to "vector unsigned long long int".
1012         Changed return type of __builtin_vec_test_data_class,
1013         __builtin_vec_test_data_class_sp, and
1014         __builtin_vec_test_data_class_dp from "vector int" to
1015         "vector bool int" or from "vector long long int" to "vector bool
1016         long long int" and changed second argument type from "unsigned
1017         int" to "int".  Added new overloaded function forms "vector float
1018         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
1019         "vector float __builtin_vec_insert_exp_sp (vector float, vector
1020         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
1021         double, vector unsigned long long int)" and "vector double
1022         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
1023         long int)".  Changed return type of
1024         __builtin_scalar_test_data_class and
1025         __builtin_scalar_test_data_class_sp and
1026         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
1027         int" and changed second argument from "unsigned int" to "int".
1028         Changed type returned by __builtin_scalar_test_neg,
1029         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
1030         from "int" to "bool int".  Added new overloaded function form
1031         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
1032         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
1033         exponent double-precision with floating point first argument.
1034         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
1035         documentation of scalar_test_data_class, scalar_test_neg,
1036         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
1037         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
1038         vec_test_data_class built-in functions to reflect refinements in
1039         their type signatures.
1040
1041 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
1042
1043         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
1044         size of buf.
1045         (aarch64_elf_asm_destructor): Likewise.
1046
1047 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
1048
1049         PR rtl-optimization/78634
1050         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
1051         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
1052         * ifcvt.c (noce_try_cmove): Add missing cost check.
1053
1054         PR rtl-optimization/71724
1055         * combine.c (if_then_else_cond): Look for situations where it is
1056         beneficial to undo the work of one of the recursive calls.
1057
1058 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
1059
1060         PR tree-optimization/70754
1061         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
1062         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
1063         combined stmt before it if not NULL.
1064         (combine_chains): Process refs reversely and compute dominance point
1065         for root ref.
1066
1067 2017-01-23  Martin Liska  <mliska@suse.cz>
1068
1069         PR tree-optimization/79196
1070         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
1071         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
1072         instead of memcmp.
1073         (strlen_optimize_stmt): Call the renamed function.
1074
1075 2017-01-23  Michael Matz  <matz@suse.de>
1076
1077         PR tree-optimization/78384
1078         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
1079
1080 2017-01-23  Richard Biener  <rguenther@suse.de>
1081
1082         PR tree-optimization/79186
1083         * tree-vrp.c (register_new_assert_for): Make sure we've seen
1084         both incoming edges before moving an assert.
1085
1086 2017-01-23  Martin Jambor  <mjambor@suse.cz>
1087
1088         * ipa-prop.c (load_from_param_1): Removed.
1089         (load_from_unmodified_param): Bits from load_from_param_1 put back
1090         here.
1091         (load_from_param): Removed.
1092         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
1093         with stmt.  Reverted back to use of load_from_unmodified_param.
1094
1095 2017-01-23  Martin Jambor  <mjambor@suse.cz>
1096
1097         PR ipa/79108
1098         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
1099         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
1100         field a pointer to garbage collected vector, mark lattices and
1101         ipcp_orig_node with GTY((skip)).
1102         (ipa_get_param_count): Adjust to descriptors being a pointer.
1103         (ipa_get_param): Likewise.
1104         (ipa_get_type): Likewise.
1105         (ipa_get_param_move_cost): Likewise.
1106         (ipa_set_param_used): Likewise.
1107         (ipa_get_controlled_uses): Likewise.
1108         (ipa_set_controlled_uses): Likewise.
1109         (ipa_is_param_used): Likewise.
1110         (ipa_node_params_t): Move into garbage collector.  New methods insert
1111         and remove.
1112         (ipa_node_params_sum): Annotate wth GTY(()).
1113         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
1114         garbage collected.
1115         (ipa_load_from_parm_agg): Adjust declaration.
1116         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
1117         * ipa-profile.c (ipa_profile): Likewise.
1118         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
1119         (ipa_populate_param_decls): Make descriptors parameter garbage
1120         collected.
1121         (ipa_dump_param): Adjust to descriptors being a pointer.
1122         (ipa_alloc_node_params): Likewise.
1123         (ipa_initialize_node_params): Likewise.
1124         (load_from_param_1): Make descriptors parameter garbage collected.
1125         (load_from_unmodified_param): Likewise.
1126         (load_from_param): Likewise.
1127         (ipa_load_from_parm_agg): Likewise.
1128         (ipa_node_params::~ipa_node_params): Removed.
1129         (ipa_free_all_node_params): Remove call to delete operator.
1130         (ipa_node_params_t::insert): New.
1131         (ipa_node_params_t::remove): Likewise.
1132         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
1133         copy known_csts and known_contexts vectors.
1134         (ipa_read_node_info): Adjust to descriptors being a pointer.
1135         (ipcp_modif_dom_walker): Make m_descriptors field garbage
1136         collected.
1137         (ipcp_transform_function): Make descriptors variable garbage
1138         collected.
1139
1140 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
1141
1142         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
1143         * config/i386/avx512dqintrin.h: Ditto.
1144         * config/i386/avx512fintrin.h: Ditto.
1145         * gcc/config/i386/i386.c: Handle new builtins.
1146         * config/i386/i386-builtin.def: Add new builtins.
1147         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
1148         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
1149
1150 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
1151             Martin Liska  <mliska@suse.cz>
1152
1153         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
1154         * asan.c (asan_expand_poison_ifn): Support stores and use
1155         appropriate ASAN report function.
1156         * internal-fn.c (expand_ASAN_POISON_USE): New function.
1157         * internal-fn.def (ASAN_POISON_USE): Declare.
1158         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
1159         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
1160         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
1161         ASAN_POISON calls w/o LHS.
1162         * tree-ssa.c (execute_update_addresses_taken): Create clobber
1163         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
1164         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
1165         * gimplify.c (asan_poison_variables): Add attribute
1166         use_after_scope_memory to variables that really needs to live
1167         in memory.
1168         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
1169         having the attribute.
1170
1171 2017-01-23  Martin Liska  <mliska@suse.cz>
1172
1173         * asan.c (create_asan_shadow_var): New function.
1174         (asan_expand_poison_ifn): Likewise.
1175         * asan.h (asan_expand_poison_ifn): New declaration.
1176         * internal-fn.c (expand_ASAN_POISON): Likewise.
1177         * internal-fn.def (ASAN_POISON): New builtin.
1178         * sanopt.c (pass_sanopt::execute): Expand
1179         asan_expand_poison_ifn.
1180         * tree-inline.c (copy_decl_for_dup_finish): Make function
1181         external.
1182         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
1183         * tree-ssa.c (is_asan_mark_p): New function.
1184         (execute_update_addresses_taken): Rewrite local variables
1185         (identified just by use-after-scope as addressable) into SSA.
1186
1187 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
1188
1189         * doc/install.texi (Specific): opensource.apple.com uses https
1190         now. Remove trailing slash.
1191
1192 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
1193
1194         * README.Portability: Remove note on an Irix compatibility issue.
1195
1196 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
1197
1198         * gcov.c (INCLUDE_ALGORITHM): Define.
1199         (INCLUDE_VECTOR): Define.
1200         No longer include <vector> and <algorithm> directly.
1201
1202 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
1203
1204         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
1205         to https.
1206         * doc/invoke.texi (Code Gen Options): Ditto.
1207
1208 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
1209
1210         PR lto/78407
1211         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
1212
1213 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
1214
1215         rtl-optimization/79125
1216         * cprop.c (local_cprop_pass): Handle cases where we make an
1217         unconditional trap.
1218
1219 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
1220
1221         PR target/61729
1222         PR target/77850
1223         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
1224         read from, for big endian.
1225
1226 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
1227
1228         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
1229         register pauth builtins for LP64 only.
1230
1231 2017-01-20  Marek Polacek  <polacek@redhat.com>
1232
1233         PR c/79152
1234         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
1235         non-case labels.
1236
1237 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
1238
1239         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
1240         of safelen status.
1241         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
1242         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
1243         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
1244
1245 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1246
1247         PR target/71270
1248         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
1249         in big-endian mode when they are not a single duplicated value.
1250
1251 2017-01-20  Richard Biener  <rguenther@suse.de>
1252
1253         * BASE-VER: Bump to 7.0.1.
1254
1255 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
1256
1257         * omp-low.c (omplow_simd_context): New struct.  Use it...
1258         (lower_rec_simd_input_clauses): ...here and...
1259         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
1260         references to idx, lane, max_vf, is_simt.
1261
1262 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
1263
1264         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
1265         mcpu=nps400.
1266
1267 2017-01-20  Martin Jambor  <mjambor@suse.cz>
1268
1269         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
1270         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
1271         gt-hsa-common.h.
1272         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
1273         (GTFILES): Rename hsa.c to hsa-common.c.
1274         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
1275         * hsa-dump.c: Likewise.
1276         * hsa-gen.c: Likewise.
1277         * hsa-regalloc.c: Likewise.
1278         * ipa-hsa.c: Likewise.
1279         * omp-expand.c: Likewise.
1280         * omp-low.c: Likewise.
1281         * toplev.c: Likewise.
1282
1283 2017-01-20  Marek Polacek  <polacek@redhat.com>
1284
1285         PR c/64279
1286         * doc/invoke.texi: Document -Wduplicated-branches.
1287         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
1288         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
1289         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
1290         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
1291         return 0 only when not OEP_LEXICOGRAPHIC.
1292         (fold_build_cleanup_point_expr): Use the expression
1293         location when building CLEANUP_POINT_EXPR.
1294         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
1295         * tree.c (add_expr): Handle error_mark_node.
1296
1297 2017-01-20  Martin Liska  <mliska@suse.cz>
1298
1299         PR lto/69188
1300         * tree-profile.c (init_ic_make_global_vars): Do not call
1301         finalize_decl.
1302         (gimple_init_gcov_profiler): Likewise.
1303
1304 2017-01-20  Martin Liska  <mliska@suse.cz>
1305
1306         PR ipa/71190
1307         * cgraph.h (maybe_create_reference): Remove argument and
1308         update comment.
1309         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
1310         argument.
1311         * ipa-cp.c (create_specialized_node): Likewise.
1312         * symtab.c (symtab_node::maybe_create_reference): Handle
1313         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
1314
1315 2017-01-20  Martin Liska  <mliska@suse.cz>
1316
1317         * read-rtl-function.c (function_reader::create_function): Use
1318         build_decl instread of build_decl_stat.
1319
1320 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
1321
1322         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
1323         * config/i386/avx512dqintrin.h: Ditto.
1324         * config/i386/avx512fintrin.h: Ditto.
1325         * config/i386/i386-builtin-types.def: Add new types.
1326         * gcc/config/i386/i386.c: Handle new types.
1327         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
1328         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
1329         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
1330         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
1331         (__builtin_ia32_kshiftridi): New.
1332         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
1333
1334 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
1335
1336         PR target/78875
1337         PR target/79140
1338         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
1339         define to rs6000_init_stack_protect_guard.
1340         (rs6000_init_stack_protect_guard): New function.
1341
1342 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
1343             Yunqiang Su  <yunqiang.su@imgtec.com>
1344
1345         * config.gcc (supported_defaults): Add madd4.
1346         (with_madd4): Add validation.
1347         (all_defaults): Add madd4.
1348         * config/mips/mips.opt (mmadd4): New option.
1349         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
1350         mmadd4.
1351         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
1352         __mips_no_madd4.
1353         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
1354         (ISA_HAS_FUSED_MADD4): Likewise.
1355         * gcc/doc/invoke.texi (-mmadd4): Document the new option.
1356         * gcc/doc/install.texi (--with-madd4): Document the new option.
1357
1358 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
1359
1360         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
1361         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
1362         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
1363         (aarch64_init_pauth_hint_builtins): New.
1364         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
1365         (aarch64_expand_builtin): Expand new builtins.
1366
1367 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
1368
1369         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
1370         * combine-stack-adj.c (no_unhandled_cfa): Handle
1371         REG_CFA_TOGGLE_RA_MANGLE.
1372         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
1373         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
1374         info for return address signing.
1375         (aarch64_expand_epilogue): Likewise.
1376
1377 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
1378
1379         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
1380         * config/aarch64/aarch64-protos.h
1381         (aarch64_return_address_signing_enabled): New declaration.
1382         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
1383         New function.
1384         (aarch64_expand_prologue): Sign return address before it's pushed onto
1385         stack.
1386         (aarch64_expand_epilogue): Authenticate return address fetched from
1387         stack.
1388         (aarch64_override_options): Sanity check for ILP32 and ISA level.
1389         (aarch64_attributes): New function attributes for "sign-return-address".
1390         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
1391         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
1392         ("*do_return"): Generate combined instructions according to key index.
1393         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
1394         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
1395         iterators.
1396         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
1397         * config/aarch64/aarch64.opt (msign-return-address=): New.
1398         * doc/extend.texi (AArch64 Function Attributes): Documents
1399         "sign-return-address=".
1400         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
1401
1402 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
1403
1404         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
1405         overall option summary.
1406
1407 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
1408
1409         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
1410         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
1411         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
1412         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
1413
1414 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
1415
1416         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
1417         -mpower9-minmax by default for -mcpu=power9.
1418         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
1419         128-bit floating point.
1420
1421 2017-01-20  Alan Modra  <amodra@gmail.com>
1422
1423         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
1424         optimizing for size.
1425
1426 2017-01-20  Alan Modra  <amodra@gmail.com>
1427
1428         PR target/79144
1429         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
1430         for strcmp and strncmp from corresponding builtin decl.
1431
1432 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
1433
1434         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
1435         instead of i386/rtems-64.h.
1436         * config/i386/rtems-64.h: Remove.
1437
1438 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
1439
1440         PR target/78478
1441         Revert:
1442         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
1443
1444         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
1445
1446 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
1447
1448         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
1449         Change int to HOST_WIDE_INT.
1450         * config/aarch64/aarch64-protos.h
1451         (aarch64_simd_gen_const_vector_dup): Likewise.
1452         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
1453
1454 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
1455
1456         * langhooks-def.h (lhd_type_for_size): New decl.
1457         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
1458         * langhooks.c (lhd_type_for_size): New function, taken from
1459         lto_type_for_size.
1460
1461 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
1462
1463         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
1464         define_bypass for CR latency.
1465         (power9-cracked-alu): Update bypass latency and remove power9-branch.
1466         (power9-alu2): Add define_bypass for CR latency.
1467         (power9-cmp): New.
1468         (power9-mul): Update insn latency.
1469         (power9-mul-compare): Update insn latency, bypass latency and remove
1470         power9-branch.
1471
1472 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1473
1474         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
1475         Delete.
1476         * config/aarch64/aarch64.md
1477         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
1478         aarch64_nopcrelative_literal_loads.
1479         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
1480
1481 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
1482
1483         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
1484         TARGET_LOONGSON_3A.
1485         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
1486
1487 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
1488
1489         PR target/78176
1490         * config.gcc (supported_defaults): Add lxc1-sxc1.
1491         (with_lxc1_sxc1): Add validation.
1492         (all_defaults): Add lxc1-sxc1.
1493         * config/mips/mips.opt (mlxc1-sxc1): New option.
1494         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
1495         mlxc1-sxc1.
1496         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
1497         __mips_no_lxc1_sxc1.
1498         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
1499         * gcc/doc/invoke.texi (-mlxc1-sxc1): Document the new option.
1500         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
1501
1502 2017-01-19  Richard Biener  <rguenther@suse.de>
1503
1504         PR tree-optimization/72488
1505         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
1506         sure to restore SSA info.
1507         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
1508
1509 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
1510
1511         PR rtl-optimization/79121
1512         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
1513         of the inner type when shifting an extended value.
1514
1515 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
1516
1517         PR lto/78407
1518         * symtab.c (symtab_node::equal_address_to): Fix comparing of
1519         interposable aliases.
1520
1521 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
1522
1523         PR target/78516
1524         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
1525         Use the evmergelohi instruction.
1526         (mov_si<mode>_e500_subreg4_2_le): Likewise.
1527         (mov_sitf_e500_subreg8_2_be): Likewise.
1528         (mov_sitf_e500_subreg12_2_le): Likewise.
1529         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
1530         (mov_si<mode>_e500_subreg4_2_be): Likewise.
1531         (mov_sitf_e500_subreg8_2_le): Likewise.
1532         (mov_sitf_e500_subreg12_2_be): Likewise.
1533
1534 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1535
1536         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
1537         attribute from vecsimple to vecperm.
1538         (altivec_vbpermq2): Likewise.
1539
1540 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1541
1542         PR target/79040
1543         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
1544
1545 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
1546         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
1547         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
1548         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
1549         case where N arg is SIZE_MAX.
1550         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
1551         (cmpstrsi): Add pattern.
1552
1553 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
1554
1555         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1556         __builtin_vec_revb builtins.
1557         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
1558         built-in functions to support generation of the ISA 3.0 XXBR<x>
1559         vector byte reverse instructions.
1560         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
1561         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
1562         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
1563         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
1564         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
1565         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
1566         (P9V_BUILTIN_VEC_REVB): Likewise.
1567         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
1568         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
1569         (p9_xxbrq_v16qi): Likewise.
1570         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
1571         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
1572         (p9_xxbrh_v8hi): Likewise.
1573         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
1574         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
1575         vec_revb built-in functions.
1576
1577 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
1578
1579         PR rtl-optimization/78952
1580         * config/i386/i386.md (any_extract): New code iterator.
1581         (*insvqi_2): Use any_extract for source operand.
1582         (*insvqi_3): Use any_shiftrt for source operand.
1583
1584 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
1585
1586         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
1587         New function.
1588         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
1589
1590 2017-01-18  Matthias Klose  <doko@ubuntu.com>
1591
1592         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
1593
1594 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1595
1596         * config/rs6000/altivec.h (vec_bperm): Change #define.
1597         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
1598         (altivec_vbpermq2): New define_insn.
1599         (altivec_vbpermd): Likewise.
1600         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
1601         function interface.
1602         (VBPERMD): Likewise.
1603         (VBPERM): New polymorphic function interface.
1604         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
1605         Add entries for P9V_BUILTIN_VEC_VBPERM.
1606         * doc/extend.texi: Add interfaces for vec_bperm.
1607
1608 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1609
1610         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
1611         first letter of error messages.
1612         (s390_resolve_overloaded_builtin): Likewise.
1613         * config/s390/s390.c (s390_expand_builtin): Likewise.
1614         (s390_invalid_arg_for_unprototyped_fn): Likewise.
1615         (s390_valid_target_attribute_inner_p): Likewise.
1616         * config/s390/s390.md ("tabort"): Likewise.
1617
1618 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
1619
1620         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
1621         (ISA_AVOID_DIV_HILO): New macro.
1622         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
1623         (ISA_HAS_DDIV): Likewise.
1624
1625 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
1626
1627         * doc/invoke.texi (fabi-version): Correct number of occurrences.
1628
1629 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
1630
1631         * doc/invoke.texi (fabi-version): Spelling fix.
1632
1633 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
1634
1635         PR c++/70182
1636         * doc/invoke.texi (fabi-version): Mention mangling fix for
1637         operator names.
1638
1639 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
1640
1641         PR c++/77489
1642         * doc/invoke.texi (fabi-version): Document discriminator mangling.
1643
1644 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
1645
1646         PR target/78875
1647         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
1648         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
1649         the new options.
1650         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
1651         flexible settings.
1652         (stack_protect_test): Ditto.
1653         * config/rs6000/rs6000.opt (mstack-protector-guard=,
1654         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
1655         options.
1656         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
1657         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
1658         -mstack-protector-guard-offset=.
1659         (RS/6000 and PowerPC Options): Ditto.
1660
1661 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
1662
1663         * config/i386/i386.h (MASK_CLASS_P): New define.
1664         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
1665         there are no registers from different register sets also when
1666         mask registers are used.  Update function comment.
1667         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
1668         to (*k/*r) and (*k/*km) alternatives.
1669
1670 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
1671
1672         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
1673         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
1674         (EH_RETURN_HANDLER_RTX): New define.
1675         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
1676         Force frame pointer in EH return functions.
1677         (aarch64_expand_epilogue): Add barrier for eh_return.
1678         (aarch64_final_eh_return_addr): Remove.
1679         (aarch64_eh_return_handler_rtx): New function.
1680         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
1681         Remove.
1682         (aarch64_eh_return_handler_rtx): New prototype.
1683
1684 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1685
1686         * config/rs6000/altivec.h (vec_rlmi): New #define.
1687         (vec_vrlnm): Likewise.
1688         (vec_rlnm): Likewise.
1689         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
1690         (UNSPEC_VRLNM): Likewise.
1691         (VIlong): New mode iterator.
1692         (altivec_vrl<VI_char>mi): New define_insn.
1693         (altivec_vrl<VI_char>nm): Likewise.
1694         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
1695         function entry.
1696         (VRLDNM): Likewise.
1697         (RLNM): New polymorphic function entry.
1698         (VRLWMI): New monomorphic function entry.
1699         (VRLDMI): Likewise.
1700         (RLMI): New polymorphic function entry.
1701         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
1702         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
1703         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
1704         vec_vrlnm.
1705
1706 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
1707
1708         PR debug/78839
1709         * dwarf2out.c (field_byte_offset): Restore the
1710         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
1711         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
1712         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
1713         of build2 + fold.
1714
1715 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
1716
1717         PR ada/67205
1718         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
1719
1720 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
1721
1722         PR debug/71669
1723         * dwarf2out.c (add_data_member_location_attribute): For constant
1724         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
1725         instead of DW_AT_data_member_location, DW_AT_bit_offset and
1726         DW_AT_byte_size attributes.
1727
1728 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
1729
1730         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
1731         after forcing to constant memory when the code model is medium.
1732
1733 2017-01-17  Julia Koval  <julia.koval@intel.com>
1734
1735         PR target/76731
1736         * config/i386/avx512fintrin.h
1737         (_mm512_i32gather_ps): Change __addr type to void const*.
1738         (_mm512_mask_i32gather_ps): Ditto.
1739         (_mm512_i32gather_pd): Ditto.
1740         (_mm512_mask_i32gather_pd): Ditto.
1741         (_mm512_i64gather_ps): Ditto.
1742         (_mm512_mask_i64gather_ps): Ditto.
1743         (_mm512_i64gather_pd): Ditto.
1744         (_mm512_mask_i64gather_pd): Ditto.
1745         (_mm512_i32gather_epi32): Ditto.
1746         (_mm512_mask_i32gather_epi32): Ditto.
1747         (_mm512_i32gather_epi64): Ditto.
1748         (_mm512_mask_i32gather_epi64): Ditto.
1749         (_mm512_i64gather_epi32): Ditto.
1750         (_mm512_mask_i64gather_epi32): Ditto.
1751         (_mm512_i64gather_epi64): Ditto.
1752         (_mm512_mask_i64gather_epi64): Ditto.
1753         (_mm512_i32scatter_ps): Change __addr type to void*.
1754         (_mm512_mask_i32scatter_ps): Ditto.
1755         (_mm512_i32scatter_pd): Ditto.
1756         (_mm512_mask_i32scatter_pd): Ditto.
1757         (_mm512_i64scatter_ps): Ditto.
1758         (_mm512_mask_i64scatter_ps): Ditto.
1759         (_mm512_i64scatter_pd): Ditto.
1760         (_mm512_mask_i64scatter_pd): Ditto.
1761         (_mm512_i32scatter_epi32): Ditto.
1762         (_mm512_mask_i32scatter_epi32): Ditto.
1763         (_mm512_i32scatter_epi64): Ditto.
1764         (_mm512_mask_i32scatter_epi64): Ditto.
1765         (_mm512_i64scatter_epi32): Ditto.
1766         (_mm512_mask_i64scatter_epi32): Ditto.
1767         (_mm512_i64scatter_epi64): Ditto.
1768         (_mm512_mask_i64scatter_epi64): Ditto.
1769         * config/i386/avx512pfintrin.h
1770         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
1771         (_mm512_mask_prefetch_i32gather_ps): Ditto.
1772         (_mm512_mask_prefetch_i64gather_pd): Ditto.
1773         (_mm512_mask_prefetch_i64gather_ps): Ditto.
1774         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
1775         (_mm512_prefetch_i32scatter_ps): Ditto.
1776         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
1777         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
1778         (_mm512_prefetch_i64scatter_pd): Ditto.
1779         (_mm512_prefetch_i64scatter_ps): Ditto.
1780         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
1781         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
1782         * config/i386/avx512vlintrin.h
1783         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
1784         (_mm_mmask_i32gather_ps): Ditto.
1785         (_mm256_mmask_i32gather_pd): Ditto.
1786         (_mm_mmask_i32gather_pd): Ditto.
1787         (_mm256_mmask_i64gather_ps): Ditto.
1788         (_mm_mmask_i64gather_ps): Ditto.
1789         (_mm256_mmask_i64gather_pd): Ditto.
1790         (_mm_mmask_i64gather_pd): Ditto.
1791         (_mm256_mmask_i32gather_epi32): Ditto.
1792         (_mm_mmask_i32gather_epi32): Ditto.
1793         (_mm256_mmask_i32gather_epi64): Ditto.
1794         (_mm_mmask_i32gather_epi64): Ditto.
1795         (_mm256_mmask_i64gather_epi32): Ditto.
1796         (_mm_mmask_i64gather_epi32): Ditto.
1797         (_mm256_mmask_i64gather_epi64): Ditto.
1798         (_mm_mmask_i64gather_epi64): Ditto.
1799         (_mm256_i32scatter_ps): Change __addr type to void*.
1800         (_mm256_mask_i32scatter_ps): Ditto.
1801         (_mm_i32scatter_ps): Ditto.
1802         (_mm_mask_i32scatter_ps): Ditto.
1803         (_mm256_i32scatter_pd): Ditto.
1804         (_mm256_mask_i32scatter_pd): Ditto.
1805         (_mm_i32scatter_pd): Ditto.
1806         (_mm_mask_i32scatter_pd): Ditto.
1807         (_mm256_i64scatter_ps): Ditto.
1808         (_mm256_mask_i64scatter_ps): Ditto.
1809         (_mm_i64scatter_ps): Ditto.
1810         (_mm_mask_i64scatter_ps): Ditto.
1811         (_mm256_i64scatter_pd): Ditto.
1812         (_mm256_mask_i64scatter_pd): Ditto.
1813         (_mm_i64scatter_pd): Ditto.
1814         (_mm_mask_i64scatter_pd): Ditto.
1815         (_mm256_i32scatter_epi32): Ditto.
1816         (_mm256_mask_i32scatter_epi32): Ditto.
1817         (_mm_i32scatter_epi32): Ditto.
1818         (_mm_mask_i32scatter_epi32): Ditto.
1819         (_mm256_i32scatter_epi64): Ditto.
1820         (_mm256_mask_i32scatter_epi64): Ditto.
1821         (_mm_i32scatter_epi64): Ditto.
1822         (_mm_mask_i32scatter_epi64): Ditto.
1823         (_mm256_i64scatter_epi32): Ditto.
1824         (_mm256_mask_i64scatter_epi32): Ditto.
1825         (_mm_i64scatter_epi32): Ditto.
1826         (_mm_mask_i64scatter_epi32): Ditto.
1827         (_mm256_i64scatter_epi64): Ditto.
1828         (_mm256_mask_i64scatter_epi64): Ditto.
1829         (_mm_i64scatter_epi64): Ditto.
1830         (_mm_mask_i64scatter_epi64): Ditto.
1831         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
1832         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
1833         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
1834         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
1835         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
1836         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
1837         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
1838         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
1839         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
1840         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
1841         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
1842         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
1843         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
1844         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
1845         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
1846         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
1847         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
1848         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
1849         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
1850         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
1851         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
1852         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
1853         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
1854         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
1855         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
1856         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
1857         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
1858         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
1859         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
1860         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
1861         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
1862         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
1863         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
1864         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
1865         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
1866         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
1867         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
1868         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
1869         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
1870         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
1871         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
1872         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
1873         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
1874         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
1875         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
1876         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
1877         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
1878         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
1879         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
1880         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
1881         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
1882         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
1883         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
1884         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
1885         definitions accordingly.
1886
1887 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
1888             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
1889
1890         PR target/79079
1891         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
1892         gen_lowpart.
1893
1894 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
1895
1896         PR target/79058
1897         * ira-conflicts.c (ira_build_conflicts): Update total conflict
1898         hard regs for inner regno.
1899
1900 2017-01-17  Martin Liska  <mliska@suse.cz>
1901
1902         PR ipa/71207
1903         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
1904         assumption and add comment.
1905
1906 2017-01-17  Nathan Sidwell  <nathan@acm.org>
1907
1908         * ipa-visibility.c (localize_node): New function, broken out of ...
1909         (function_and_variable_visibility): ... here. Call it.
1910
1911 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
1912
1913         PR middle-end/77445
1914         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
1915         correctly set frequency of oudgoing edge.
1916         (duplicate_thread_path): Fix profile updating.
1917
1918 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
1919
1920         PR other/79046
1921         * configure.ac: Add GCC_BASE_VER.
1922         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
1923         version from BASE-VER file.
1924         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
1925         (gcc.o): Depend on $(BASEVER).
1926         * common.opt (dumpfullversion): New option.
1927         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
1928         * doc/invoke.texi: Document -dumpfullversion.
1929         * doc/install.texi: Document --with-gcc-major-version-only.
1930         * configure: Regenerated.
1931
1932 2017-01-17  Richard Biener  <rguenther@suse.de>
1933
1934         PR tree-optimization/71433
1935         * tree-vrp.c (register_new_assert_for): Merge same asserts
1936         on all incoming edges.
1937         (process_assert_insertions_for): Handle insertions at the
1938         beginning of BBs.
1939
1940 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
1941
1942         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
1943         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
1944
1945 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
1946
1947         PR target/78633
1948         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
1949         RTL sharing.
1950
1951 2017-01-17  Alan Modra  <amodra@gmail.com>
1952
1953         PR target/79066
1954         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
1955         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
1956         symbolic stack limit when pic.
1957
1958 2017-01-16  Martin Sebor  <msebor@redhat.com>
1959
1960         PR tree-optimization/78608
1961         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
1962
1963 2017-01-16  Jeff Law  <law@redhat.com>
1964
1965         Revert:
1966         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
1967         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
1968         for several include directories that may be relative to sysroot.
1969         * config/i386/x-mingw32 (gplus_includedir): Define.
1970         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
1971         (native_system_includedir): Likewise.
1972         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
1973         override if TARGET_SYSTEM_ROOT is defined.
1974         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
1975
1976         PR tree-optimization/79090
1977         PR tree-optimization/33562
1978         PR tree-optimization/61912
1979         PR tree-optimization/77485
1980         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
1981         and computed trims into the dump file.
1982
1983 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
1984
1985         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
1986
1987 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
1988
1989         PR c/79089
1990         * gimplify.c (gimplify_init_constructor): If want_value and
1991         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
1992         fix.
1993
1994         PR target/79080
1995         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
1996         sequence.  Formatting fixes.
1997         (doloop_optimize): Formatting fixes.
1998
1999         PR driver/49726
2000         * gcc.c (debug_level_greater_than_spec_func): New function.
2001         (static_spec_functions): Add debug-level-gt spec function.
2002         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
2003         !g0.
2004         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
2005         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
2006         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
2007         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
2008         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
2009         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
2010
2011 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
2012
2013         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
2014         QImode fixups to general and mask registers only.
2015
2016 2017-01-16  Carl Love  <cel@us.ibm.com>
2017
2018         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
2019         for built-in functions
2020         vector signed char vec_nabs (vector signed char)
2021         vector signed short vec_nabs (vector signed short)
2022         vector signed int vec_nabs (vector signed int)
2023         vector signed long long vec_nabs (vector signed long long)
2024         vector float vec_nabs (vector float)
2025         vector double vec_nabs (vector double)
2026         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
2027         and NABS overload.
2028         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
2029         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
2030         * doc/extend.texi: Update the documentation file for the new built-in
2031         functions.
2032
2033 2017-01-16  Martin Sebor  <msebor@redhat.com>
2034
2035         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
2036         message.
2037
2038 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2039
2040         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
2041         UNSPEC_VSX__XXSPLTD to require special splat handling.
2042
2043 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
2044
2045         PR bootstrap/78616
2046         * system.h: Poison strndup.
2047
2048 2017-01-16  Alan Modra  <amodra@gmail.com>
2049
2050         PR target/79098
2051         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
2052         use a switch.
2053
2054 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
2055
2056         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
2057
2058 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
2059
2060         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
2061         call recog here.  Assert that INSN_CODE (insn) is non-negative.
2062
2063 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
2064
2065         PR target/72749
2066         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
2067         fallthrough.
2068         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
2069         in the currently scheduled RTL fragment.
2070
2071 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
2072
2073         PR rtl-optimization/78751
2074         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
2075         give up.
2076
2077 2017-01-14  Jeff Law  <law@redhat.com>
2078
2079         PR tree-optimization/79090
2080         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
2081         variable length stores.
2082         (compute_trims): Delete dead assignment to *trim_tail.
2083         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
2084         zero length.
2085
2086 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
2087
2088         PR rtl-optimization/78626
2089         PR rtl-optimization/78727
2090         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
2091         of a block, and split such blocks after everything else is finished.
2092
2093 2017-01-14  Alan Modra  <amodra@gmail.com>
2094
2095         PR target/72749
2096         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
2097         target legitimate_combined_insn.
2098         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
2099         (rs6000_legitimate_combined_insn): New function.
2100         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
2101         all uses.
2102         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
2103         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
2104         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
2105
2106 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
2107
2108         * doc/frontends.texi (G++ and GCC): Remove references to Java.
2109
2110 2017-01-13  Jeff Law  <law@redhat.com>
2111
2112         PR tree-optimization/33562
2113         PR tree-optimization/61912
2114         PR tree-optimization/77485
2115         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
2116         a statement.
2117         (delete_dead_assignment): Likewise.
2118         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
2119         statement to delete_dead_call and delete_dead_assignment.
2120
2121 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
2122
2123         PR c/78304
2124         * substring-locations.c (format_warning_va): Strengthen case 1 so
2125         that both endpoints of the substring must be within the format
2126         range for just the substring to be printed.
2127
2128 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
2129
2130         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
2131         * config/i386/i386.c (ix86_target_string): Add missing options
2132         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
2133         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
2134         flags_other and ix86_target_other to flags2_other.  Display unknown
2135         isa2 options.
2136         (ix86_valid_target_attribute_inner_p): Add missing options and
2137         reorder options by implied ISAs, as in ix86_target_string.
2138
2139 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
2140
2141         * hash-table.h (hash_table::too_empty_p): New function.
2142         (hash_table::expand): Use it.
2143         (hash_table::traverse): Likewise.
2144         (hash_table::empty_slot): Use sizeof (value_type) instead of
2145         sizeof (PTR) to convert bytes to elements.  Shrink the table
2146         if the current size is excessive for the current number of
2147         elements.
2148
2149 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
2150
2151         * ira-costs.c (record_reg_classes): Break from the inner loop
2152         early once alt_fail is known to be true.  Update outer loop
2153         handling accordingly.
2154
2155 2017-01-13  Jeff Law  <law@redhat.com>
2156
2157         * tree-ssa-dse.c (decrement_count): New function.
2158         (increment_start_addr, maybe_trim_memstar_call): Likewise.
2159         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
2160         when we know the partially dead statement is a mem* function.
2161
2162         PR tree-optimization/61912
2163         PR tree-optimization/77485
2164         * tree-ssa-dse.c: Include expr.h.
2165         (maybe_trim_constructor_store): New function.
2166         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
2167
2168         PR tree-optimization/33562
2169         PR tree-optimization/61912
2170         PR tree-optimization/77485
2171         * doc/invoke.texi: Document new dse-max-object-size param.
2172         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
2173         * tree-ssa-dse.c: Include params.h.
2174         (dse_store_status): New enum.
2175         (initialize_ao_ref_for_dse): New, partially extracted from
2176         dse_optimize_stmt.
2177         (valid_ao_ref_for_dse, normalize_ref): New.
2178         (setup_live_bytes_from_ref, compute_trims): Likewise.
2179         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
2180         (maybe_trim_partially_dead_store): Likewise.
2181         (maybe_trim_complex_store): Likewise.
2182         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
2183         Track what bytes live from the original store.  Return tri-state
2184         for dead, partially dead or live.
2185         (dse_dom_walker): Add constructor, destructor and new private members.
2186         (delete_dead_call, delete_dead_assignment): New extracted from
2187         dse_optimize_stmt.
2188         (dse_optimize_stmt): Make a member of dse_dom_walker.
2189         Use initialize_ao_ref_for_dse.
2190
2191         PR tree-optimization/33562
2192         PR tree-optimization/61912
2193         PR tree-optimization/77485
2194         * sbitmap.h (bitmap_count_bits): Prototype.
2195         (bitmap_clear_range, bitmap_set_range): Likewise.
2196         * sbitmap.c (bitmap_clear_range): New function.
2197         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
2198
2199 2017-01-13  Martin Liska  <mliska@suse.cz>
2200
2201         PR ipa/79043
2202         * function.c (set_cfun): Add new argument force.
2203         * function.h (set_cfun): Likewise.
2204         * ipa-inline-transform.c (inline_call): Use the function when
2205         strict alising from is dropped for function we inline to.
2206
2207 2017-01-13  Richard Biener  <rguenther@suse.de>
2208
2209         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
2210         for dumping GIMPLE INTEGER_CSTs.
2211
2212 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2213
2214         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
2215         to 201112L since C++17.
2216
2217 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
2218
2219         PR sanitizer/78887
2220         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
2221         if -fsanitize=kernel-address is present.
2222
2223 2017-01-13  Richard Biener  <rguenther@suse.de>
2224
2225         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
2226         as _Literal ( type ) number in case usual suffixes do not
2227         preserve all information.
2228
2229 2017-01-13  Richard Biener  <rguenther@suse.de>
2230
2231         PR tree-optimization/77283
2232         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
2233         and ssa-iterators.h.
2234         (is_feasible_trace): Implement a cost model based on joiner
2235         PHI node uses.
2236
2237 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
2238
2239         PR target/79004
2240         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
2241         char or short to __float128/_Float128 directly.
2242
2243 2017-01-12  Martin Sebor  <msebor@redhat.com>
2244
2245         to -Wformat-overflow.
2246         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
2247         (min_bytes_remaining): Same.
2248         (get_string_length): Same.
2249         (format_string): Same.
2250         (format_directive): Same.
2251         (add_bytes): Same.
2252         (pass_sprintf_length::handle_gimple_call): Same.
2253
2254 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
2255
2256         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
2257         info.nowrite calls with no lhs that can't throw.  Return bool
2258         whether gsi_remove has been called or not.
2259         (pass_sprintf_length::handle_gimple_call): Return bool whether
2260         try_substitute_return_value called gsi_remove.  Formatting fix.
2261         (pass_sprintf_length::execute): Don't use gsi_remove if
2262         handle_gimple_call returned true.
2263
2264         PR bootstrap/79069
2265         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
2266         be removed due to side-effects, don't remove following barrier nor
2267         turn the successor edge into fallthru edge.
2268
2269 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2270
2271         PR target/79044
2272         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
2273         element-reversing loads and stores as not swappable.
2274
2275 2017-01-12  Nathan Sidwell  <nathan@acm.org>
2276             Nicolai Stange  <nicstange@gmail.com>
2277
2278         * combine.c (try_combine): Don't ignore result of overlap checking
2279         loop.  Combine overlap & asm check into single loop.
2280
2281 2017-01-12  Richard Biener  <rguenther@suse.de>
2282
2283         * tree-pretty-print.c (dump_generic_node): Provide -gimple
2284         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
2285
2286 2017-01-12  Richard Biener  <rguenther@suse.de>
2287
2288         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
2289         and TS_TARGET_OPTION directly derive from TS_BASE.
2290         * tree-core.h (tree_optimization_option): Derive from tree_base.
2291         (tree_target_option): Likewise.
2292
2293 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
2294
2295         * config/i386/i386.c (memory_address_length): Increase len
2296         only when rip_relative_addr_p returns false.
2297
2298 2017-01-11  Julia Koval  <julia.koval@intel.com>
2299
2300         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
2301         (OPTION_MASK_ISA_SGX_SET): New.
2302         (ix86_handle_option): Handle OPT_msgx.
2303         * config.gcc: Added sgxintrin.h.
2304         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
2305         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
2306         * config/i386/i386.c (ix86_target_string): Add -msgx.
2307         (PTA_SGX): New.
2308         (ix86_option_override_internal): Handle new options.
2309         (ix86_valid_target_attribute_inner_p): Add sgx.
2310         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
2311         * config/i386/i386.opt: Add msgx.
2312         * config/i386/sgxintrin.h: New file.
2313         * config/i386/x86intrin.h: Add sgxintrin.h.
2314
2315 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
2316
2317         PR c++/71537
2318         * fold-const.c (maybe_nonzero_address): Return 1 for function
2319         local objects.
2320         (tree_single_nonzero_warnv_p): Don't handle function local objects
2321         here.
2322
2323         PR c++/72813
2324         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
2325         of c-header.
2326
2327 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
2328
2329         PR driver/78877
2330         * opts.c: Include "spellcheck.h"
2331         (struct string_fragment): New struct.
2332         (struct edit_distance_traits<const string_fragment &>): New
2333         struct.
2334         (get_closest_sanitizer_option): New function.
2335         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
2336
2337 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
2338
2339         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
2340         by 12.
2341         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
2342         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
2343         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
2344         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
2345         for initial die_offset if dwarf_split_debug_info.
2346         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
2347         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
2348         fields.
2349         (output_skeleton_debug_sections): Formatting fix.  Use
2350         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
2351         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
2352
2353 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
2354
2355         * config/arm/cortex-a53.md: Add bypasses for
2356         cortex_a53_r2f_cvt.
2357         (cortex_a53_r2f): Only use for transfers.
2358         (cortex_a53_f2r): Likewise.
2359         (cortex_a53_r2f_cvt): Add reservation for conversions.
2360         (cortex_a53_f2r_cvt): Likewise.
2361
2362 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
2363
2364         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
2365         to all inlined functions, change static to extern.
2366
2367 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
2368
2369         PR target/78253
2370         * config/arm/arm.c (legitimize_pic_address): Handle reference to
2371         weak symbol.
2372         (arm_assemble_integer): Likewise.
2373
2374 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
2375
2376         * config.gcc: Use new awk script to check CPU, FPU and architecture
2377         parameters for --with-... options.
2378         * config/arm/parsecpu.awk: New file
2379         * config/arm/arm-cpus.in: New file.
2380         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
2381         files.
2382         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
2383         files.
2384         * config/arm/t-arm: Update dependency rules.
2385         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
2386         of processing .def files.
2387         * config/arm/genopt.sh: Deleted.
2388         * config/arm/gentune.sh: Deleted.
2389         * config/arm/arm-cores.def: Deleted.
2390         * config/arm/arm-arches.def: Deleted.
2391         * config/arm/arm-fpus.def: Deleted.
2392         * config/arm/arm-tune.md: Regenerated.
2393         * config/arm/arm-tables.opt: Regenerated.
2394         * config/arm/arm-cpu.h: New generated file.
2395         * config/arm/arm-cpu-data.h: New generated file.
2396         * config/arm/arm-cpu-cdata.h: New generated file.
2397
2398 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
2399
2400         PR lto/79042
2401         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
2402         bit.
2403         (input_varpool_node): Unpack dynamically_initialized bit.
2404
2405 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
2406
2407         PR rtl-optimization/79032
2408         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
2409         the alignment of the adjusted memory reference against that of MODE,
2410         instead of the alignment of the original memory reference.
2411
2412 2017-01-11  Martin Jambor  <mjambor@suse.cz>
2413
2414         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
2415         test.
2416         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
2417         decorated functions.
2418
2419 2017-01-11  Richard Biener  <rguenther@suse.de>
2420
2421         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
2422         set range/nonnull info for PHI results.  Do not set it on
2423         stmts marked for removal.
2424
2425 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
2426
2427         * expr.c (store_field): In the bitfield case, fetch the return value
2428         from the registers before applying a single big-endian adjustment.
2429         Always do a final load for a BLKmode value not larger than a word.
2430
2431 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
2432
2433         PR c++/77949
2434         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
2435         that we correctly handle column numbers greater than
2436         LINE_MAP_MAX_COLUMN_NUMBER.
2437
2438 2017-01-10  Martin Sebor  <msebor@redhat.com>
2439
2440         PR middle-end/78245
2441         * gimple-ssa-sprintf.c (get_destination_size): Call
2442         {init,fini}object_sizes.
2443         * tree-object-size.c (addr_object_size): Adjust.
2444         (pass_through_call): Adjust.
2445         (pass_object_sizes::execute): Adjust.
2446         * tree-object-size.h (fini_object_sizes): Declare.
2447
2448 2017-01-10  Martin Sebor  <msebor@redhat.com>
2449
2450         PR tree-optimization/78775
2451         * builtins.c (get_size_range): Move...
2452         * calls.c: ...to here.
2453         (alloc_max_size): Accept zero argument.
2454         (operand_signed_p): Remove.
2455         (maybe_warn_alloc_args_overflow): Call get_size_range.
2456         * calls.h (get_size_range): Declare.
2457
2458 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
2459
2460         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
2461         from TI's devices.csv file as of September 2016.
2462         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
2463
2464 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
2465
2466         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
2467         * doc/invoke.texi: Likewise.
2468         * doc/md.texi: Likewise.
2469         * doc/objc.texi: Likewise.
2470
2471 2017-01-10  Joshua Conner  <joshconner@google.com>
2472
2473         * config/arm/fuchsia-elf.h: New file.
2474         * config/fuchsia.h: New file.
2475         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
2476         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
2477         targets.
2478         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
2479
2480 2016-01-10  Richard Biener  <rguenther@suse.de>
2481
2482         PR tree-optimization/79034
2483         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
2484         Propagate out degenerate PHIs in the joiner.
2485
2486 2017-01-10  Martin Liska  <mliska@suse.cz>
2487
2488         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
2489         (sort_congruence_classes_by_decl_uid): Likewise.
2490         (sort_congruence_class_groups_by_decl_uid): Likewise.
2491         (sem_item_optimizer::merge_classes): Sort class, groups in these
2492         classes and members in the groups by DECL_UID of declarations.
2493         This would make merge operations stable.
2494
2495 2017-01-10  Martin Liska  <mliska@suse.cz>
2496
2497         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
2498         usage of m_classes_vec.
2499         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
2500         (sem_item_optimizer::get_group_by_hash): Likewise.
2501         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
2502         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
2503         (sem_item_optimizer::verify_classes): Likewise.
2504         (sem_item_optimizer::process_cong_reduction): Likewise.
2505         (sem_item_optimizer::dump_cong_classes): Likewise.
2506         (sem_item_optimizer::merge_classes): Likewise.
2507         * ipa-icf.h (congruence_class_hash): Rename from
2508         congruence_class_group_hash.  Remove declaration of m_classes_vec.
2509
2510 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
2511
2512         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
2513         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
2514         * config.gcc: Add avx512vpopcntdqintrin.h.
2515         * config/i386/avx512vpopcntdqintrin.h: New.
2516         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
2517         * config/i386/i386-builtin-types.def: Add new types.
2518         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
2519         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
2520         __builtin_ia32_vpopcountq_v8di_mask): New.
2521         * config/i386/i386-c.c (ix86_target_macros_internal): Define
2522         __AVX512VPOPCNTDQ__.
2523         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
2524         (PTA_AVX512VPOPCNTDQ): Define.
2525         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
2526         TARGET_AVX512VPOPCNTDQ_P): Define.
2527         * config/i386/i386.opt: Add mavx512vpopcntdq.
2528         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
2529         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
2530
2531 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
2532
2533         PR middle-end/77484
2534         * predict.def (PRED_CALL): Set to 67.
2535
2536 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
2537
2538         * expr.c (store_field): In the bitfield case, if the value comes from
2539         a function call and is of an aggregate type returned in registers, do
2540         not modify the field mode; extract the value in all cases if the mode
2541         is BLKmode and the size is not larger than a word.
2542
2543 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
2544
2545         PR target/71017
2546         * config/i386/cpuid.h: Fix undefined behavior.
2547
2548 2017-01-04  Jeff Law  <law@redhat.com>
2549
2550         PR tree-optimization/79007
2551         PR tree-optimization/67955
2552         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
2553         conservative for pt.null when flag_non_call_exceptions is on.
2554
2555 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
2556
2557         PR translation/79019
2558         PR translation/79020
2559         * params.def (PARAM_INLINE_MIN_SPEEDUP,
2560         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
2561         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
2562         in descriptions.
2563         * config/avr/avr.opt (maccumulate-args): Likewise.
2564         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
2565         * common.opt (freport-bug): Likewise.
2566         * cif-code.def (CIF_FINAL_ERROR): Likewise.
2567         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
2568         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
2569         translatable string.
2570         * config/i386/i386.c (function_value_32): Likewise.
2571         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
2572         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
2573         Likewise.
2574         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
2575         * common/config/msp430/msp430-common.c (msp430_handle_option):
2576         Likewise.
2577         * symtab.c (symtab_node::verify_base): Likewise.
2578         * opts.c (set_debug_level): Likewise.
2579         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
2580         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
2581         missing whitespace to translatable strings.
2582         * config/avr/avr.md (bswapsi2): Fix typo in comment.
2583         * config/sh/superh.h: Likewise.
2584         * config/i386/xopintrin.h: Likewise.
2585         * config/i386/znver1.md: Likewise.
2586         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
2587         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
2588         * double-int.h (struct double_int): Likewise.
2589         * double-int.c (div_and_round_double): Likewise.
2590         * wide-int.cc: Likewise.
2591         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
2592         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
2593         * cfgcleanup.c (crossjumps_occured): Renamed to ...
2594         (crossjumps_occurred): ... this.
2595         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
2596         Adjust all uses.
2597
2598         PR tree-optimization/78899
2599         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
2600         returning bool return struct loop *, NULL for failure and the new
2601         loop on success.
2602         (versionable_outer_loop_p): Don't version outer loop if it has
2603         dont_vectorized bit set.
2604         (tree_if_conversion): When versioning outer loop, ensure
2605         tree_if_conversion is performed also on the inner loop of the
2606         non-vectorizable outer loop copy.
2607         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
2608         LOOP_VECTORIZED in inner loop of the scalar outer loop and
2609         prevent vectorization of it.
2610         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
2611         the outer loop vectorization of the non-scalar version is attempted
2612         before vectorization of the inner loop in scalar version.  If
2613         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
2614         vectorization of its inner loop.
2615         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
2616         has 2 inner loops, rename also on edges from bb whose single pred
2617         is outer_loop->header.  Fix typo in function comment.
2618
2619 2017-01-09  Martin Sebor  <msebor@redhat.com>
2620
2621         PR bootstrap/79033
2622         * asan.c (asan_emit_stack_protection): Increase local buffer size
2623         to avoid snprintf truncation warning.
2624
2625 2017-01-09  Andrew Pinski  <apinski@cavium.com>
2626
2627         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
2628         to reference thunderx2t99 for the tuning structure
2629         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
2630         Rename to ...
2631         (thunderx2t99_extra_costs): This.
2632         * config/aarch64/aarch64-tune.md: Regenerate.
2633         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
2634         (vulcan_addrcost_table): This.
2635         (vulcan_regmove_cost): Rename to ...
2636         (thunderx2t99_regmove_cost): This.
2637         (vulcan_vector_cost): Rename to ...
2638         (thunderx2t99_vector_cost): this.
2639         (vulcan_branch_cost): Rename to ...
2640         (thunderx2t99_branch_cost): This.
2641         (vulcan_tunings): Rename to ...
2642         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
2643         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
2644
2645 2017-01-09  Martin Jambor  <mjambor@suse.cz>
2646
2647         PR ipa/78365
2648         PR ipa/78599
2649         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
2650         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
2651         (propagate_vr_accross_jump_function): Use the above function for all
2652         value range computations for pass-through jump functions and type
2653         converasion from explicit value range values.
2654         (ipcp_propagate_stage): Do not attempt to deduce types of formal
2655         parameters from TYPE_ARG_TYPES.
2656         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
2657         (ipa_write_node_info): Stream type of the actual argument.
2658         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
2659
2660 2017-01-09  Martin Liska  <mliska@suse.cz>
2661
2662         PR pch/78970
2663         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
2664         (lookup_compiler): Do not show error message with have_E.
2665
2666 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
2667
2668         PR tree-optimization/78938
2669         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
2670         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
2671         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
2672         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
2673         fixes.
2674
2675 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2676
2677         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
2678         is const0_rtx.
2679
2680 2017-01-09  Richard Biener  <rguenther@suse.de>
2681
2682         PR tree-optimization/78997
2683         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
2684         name condition properly.
2685
2686 2017-01-09  Richard Biener  <rguenther@suse.de>
2687
2688         PR debug/79000
2689         * dwarf2out.c (is_cxx): New overload with context.
2690         (is_naming_typedef_decl): Use it.
2691
2692 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
2693
2694         * invoke.texi (Option Summary): Correct spacing in option lists
2695         and add line breaks to fix over-long lines.
2696
2697 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
2698
2699         PR middle-end/17660
2700
2701         * extend.texi (Common Variable Attributes): Add xref to GCC
2702         Internals manual to explain mode attribute keywords.
2703
2704 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
2705
2706         PR other/16519
2707         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
2708         and Preprocessor Options.
2709         (Options for Linking): Document -pthread here....
2710         (RS/6000 and PowerPC Options): ...not here.
2711         (Solaris 2 Options): ...or here.
2712         * doc/cppopts.texi: Document -pthread.
2713
2714 2017-01-08  Martin Sebor  <msebor@redhat.com>
2715
2716         PR middle-end/77708
2717         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
2718         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
2719         New member functions.
2720         (format_directive): Used them.
2721         (add_bytes): Same.
2722         (pass_sprintf_length::handle_gimple_call): Same.
2723         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
2724         to avoid truncation for any argument.
2725         (extract_affine_mul): Same.
2726         * tree.c (get_file_function_name): Same.
2727
2728 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
2729
2730         PR middle-end/77484
2731         * predict.def (PRED_INDIR_CALL): Set to 86.
2732
2733 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
2734
2735         PR preprocessor/54124
2736         * doc/cppopts.texi: Reformat -d subtable to list the full name
2737         of the options.  Add cross-reference to the docs for the general
2738         compiler -d options.
2739         * doc/invoke.texi (Developer Options): Add cross-reference to the
2740         preprocessor-specific -d option documentation.
2741
2742 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
2743
2744         PR preprocessor/13498
2745         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
2746         redudant material, and reflect new command-line options.
2747         (System Headers): Likewise.
2748
2749 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
2750
2751         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
2752         -isystem, and -idirafter.  Copy-edit.
2753         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
2754         default for -ftrack-macro-expansion.  Delete obsolete and
2755         badly-formatted implementation details about -fdebug-cpp output.
2756         * doc/cppwarnopts.texi: Copy-edit.
2757
2758 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
2759
2760         PR c++/72803
2761         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
2762         that the transition from a max line width >= 1<<10 to narrower
2763         lines works correctly.
2764
2765 2017-01-07  Alexandre Oliva <aoliva@redhat.com>
2766
2767         * doc/options.texi (PerFunction): New.
2768         * opt-functions.awk (switch_flags): Map both Optimization and
2769         PerFunction to CL_OPTIMIZATION.
2770         * opth-gen.awk: Test for PerFunction flag along with
2771         Optimization.
2772         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
2773         it only when the latter is present.  Skip those that don't in
2774         the hash function generator.
2775         * common.opt (fvar-tracking): Mark as PerFunction instead of
2776         Optimization.
2777         (fvar-tracking-assignments): Likewise.
2778         (fvar-tracking-assignments-toggle): Likewise.
2779         (fvar-tracking-uninit): Likewise.
2780
2781 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
2782
2783         PR translation/79018
2784         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
2785         the and store.
2786
2787 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
2788
2789         PR target/57583
2790         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
2791         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
2792         TARGET_LONG_JUMP_TABLE_OFFSETS.
2793         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
2794         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
2795         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
2796         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
2797         * config/m68k/m68k.md (tablejump expander): Likewise.
2798         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
2799         TARGET_LONG_JUMP_TABLE_OFFSETS.
2800         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
2801         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
2802
2803 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
2804             David Holsgrove <david.holsgrove@xilinx.com>
2805
2806         * common/config/microblaze/microblaze-common.c
2807         (TARGET_EXCEPT_UNWIND_INFO): Remove.
2808         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
2809         New prototype.
2810         * config/microblaze/microblaze.c (microblaze_must_save_register)
2811         (microblaze_expand_epilogue, microblaze_return_addr): Handle
2812         calls_eh_return.
2813         (microblaze_eh_return): New function.
2814         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
2815         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
2816         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
2817         * config/microblaze/microblaze.md (eh_return): New pattern.
2818
2819 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
2820
2821         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
2822         GCC_DIAGNOSTIC_STRINGIFY): Define.
2823
2824         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
2825
2826 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2827
2828         * config/arm/arm.md (<mcrr>): New.
2829         (<mrrc>): New.
2830         * config/arm/arm.c (arm_arch5te): New.
2831         (arm_option_override): Set arm_arch5te.
2832         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
2833         and mrrc2.
2834         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
2835         (arm_mcrr_qualifiers): ... this. New.
2836         (MRRC_QUALIFIERS): Define to...
2837         (arm_mrrc_qualifiers): ... this. New.
2838         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
2839         __arm_mrrc2): New.
2840         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
2841         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
2842         (MRRCI, mrrc, MRRC): New.
2843         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
2844         VUNSPEC_MRRC2): New.
2845
2846 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2847
2848         * config/arm/arm.md (<mcr>): New.
2849         (<mrc>): New.
2850         * config/arm/arm.c (arm_coproc_builtin_available): Add
2851         support for mcr, mrc, mcr2 and mrc2.
2852         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
2853         (arm_mcr_qualifiers): ... this. New.
2854         (MRC_QUALIFIERS): Define to ...
2855         (arm_mrc_qualifiers): ... this. New.
2856         (MCR_QUALIFIERS): Define to ...
2857         (arm_mcr_qualifiers): ... this. New.
2858         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
2859         __arm_mrc2): New.
2860         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
2861         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
2862         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
2863         VUNSPEC_MRC2): New.
2864
2865 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2866
2867         * config/arm/arm.md (*ldc): New.
2868         (*stc): New.
2869         (<ldc>): New.
2870         (<stc>): New.
2871         * config/arm/arm.c (arm_coproc_builtin_available): Add
2872         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
2873         (arm_coproc_ldc_stc_legitimate_address): New.
2874         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
2875         'qualifier_const_pointer'.
2876         (LDC_QUALIFIERS): Define to...
2877         (arm_ldc_qualifiers): ... this. New.
2878         (STC_QUALIFIERS): Define to...
2879         (arm_stc_qualifiers): ... this. New.
2880         * config/arm/arm-protos.h
2881         (arm_coproc_ldc_stc_legitimate_address): New.
2882         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
2883         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
2884         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
2885         stc2, stcl, stc2l): New.
2886         * config/arm/constraints.md (Uz): New.
2887         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
2888         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
2889         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
2890         VUNSPEC_STC2L): New.
2891
2892 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2893
2894         * config/arm/arm.md (<cdp>): New.
2895         * config/arm/arm.c (neon_const_bounds): Rename this ...
2896         (arm_const_bounds): ... this.
2897         (arm_coproc_builtin_available): New.
2898         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
2899         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
2900         (CDP_QUALIFIERS): Define to...
2901         (arm_cdp_qualifiers): ... this. New.
2902         (void_UP): Define.
2903         (arm_expand_builtin_args): Add case for 6 arguments.
2904         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
2905         (arm_const_bounds): ... this.
2906         (arm_coproc_builtin_available): New.
2907         * config/arm/arm_acle.h (__arm_cdp): New.
2908         (__arm_cdp2): New.
2909         * config/arm/arm_acle_builtins.def (cdp): New.
2910         (cdp2): New.
2911         * config/arm/iterators.md (CDPI,CDP,cdp): New.
2912         * config/arm/neon.md: Rename all 'neon_const_bounds' to
2913         'arm_const_bounds'.
2914         * config/arm/types.md (coproc): New.
2915         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
2916         * gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
2917         * gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
2918         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
2919
2920 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2921
2922         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
2923         (UBINOP_QUALIFIERS): New.
2924         (si_UP): Define.
2925         (acle_builtin_data): New. Change comment.
2926         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
2927         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
2928         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
2929         arm_acle_builtins.def.
2930         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
2931         (arm_init_acle_builtins): New.
2932         (CRC32_BUILTIN): Remove.
2933         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
2934         crc32cb, crc32ch and crc32cw.
2935         (arm_init_crc32_builtins): Remove.
2936         (arm_init_builtins): Use arm_init_acle_builtins rather
2937         than arm_init_crc32_builtins.
2938         (arm_expand_acle_builtin): New.
2939         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
2940         * config/arm/arm_acle_builtins.def: New.
2941
2942 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2943
2944         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
2945         (arm_builtin_datum): ... this.
2946         (arm_init_neon_builtin): Rename to ...
2947         (arm_init_builtin): ... this. Add a new parameters PREFIX
2948         and USE_SIG_IN_NAME.
2949         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
2950         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
2951         'arm_builtin_datum'.
2952         (arm_init_vfp_builtins): Likewise.
2953         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
2954         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
2955         (arm_expand_neon_args): Rename to ...
2956         (arm_expand_builtin_args): ... this. Rename builtin_arg
2957         enum values and differentiate between ARG_BUILTIN_MEMORY
2958         and ARG_BUILTIN_NEON_MEMORY.
2959         (arm_expand_neon_builtin_1): Rename to ...
2960         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
2961         values, arm_expand_builtin_args and add bool parameter NEON.
2962         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
2963         (arm_expand_vfp_builtin): Likewise.
2964         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
2965
2966 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
2967
2968         PR middle-end/77484
2969         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
2970         * predict.c (tree_estimate_probability_bb): Reverse direction of
2971         polymorphic call predictor.
2972
2973 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
2974
2975         * passes.c (execute_one_pass): Split out pass-skipping logic into...
2976         (determine_pass_name_match): ...this new function and...
2977         (should_skip_pass_p): ...this new function.
2978
2979 2017-01-06  Nathan Sidwell  <nathan@acm.org>
2980
2981         * ipa-visibility.c (function_and_variable_visibility): Reformat
2982         comments and long lines.  Remove extrneous if.
2983         * symtab.c (symtab_node::make_decl_local): Fix code format.
2984         (symtab_node::set_section_for_node): Fix comment typo.
2985
2986 2017-01-06  Martin Liska  <mliska@suse.cz>
2987
2988         PR bootstrap/79003
2989         * lra-constraints.c: Rename invariant to lra_invariant.
2990         * predict.c (set_even_probabilities): Initialize e to NULL.
2991
2992 2017-01-05  Martin Sebor  <msebor@redhat.com>
2993
2994         PR tree-optimization/78910
2995         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
2996         (format_integer): Correct off-by-one error in the handling
2997         of precision with negative numbers in signed conversions..
2998
2999 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
3000
3001         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
3002
3003 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
3004
3005         PR tree-optimization/71016
3006         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
3007         factor_out_conditional_conversion.  Formatting fix.
3008         (factor_out_conditional_conversion): Add cond_stmt argument.
3009         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
3010         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
3011         Formatting fix.
3012
3013 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
3014
3015         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
3016         read-rtl-function.o, and selftest-rtl.o.
3017         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
3018         (selftest::aarch64_test_loading_full_dump): New function.
3019         (selftest::aarch64_run_selftests): New function.
3020         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
3021         selftest::aarch64_run_selftests.
3022         * config/i386/i386.c
3023         (selftest::ix86_test_loading_dump_fragment_1): New function.
3024         (selftest::ix86_test_loading_call_insn): New function.
3025         (selftest::ix86_test_loading_full_dump): New function.
3026         (selftest::ix86_test_loading_unspec): New function.
3027         (selftest::ix86_run_selftests): Call the new functions.
3028         * emit-rtl.c (maybe_set_max_label_num): New function.
3029         * emit-rtl.h (maybe_set_max_label_num): New decl.
3030         * function.c (instantiate_decls): Guard call to
3031         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
3032         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
3033         "static".
3034         * gensupport.c (gen_reader::gen_reader): Pass "false"
3035         for new "compact" param of rtx_reader.
3036         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
3037         rather than an empty string for NULL strings.
3038         * read-md.c: Potentially include config.h rather than bconfig.h.
3039         Wrap include of errors.h with #ifdef GENERATOR_FILE.
3040         (have_error): New global, copied from errors.c.
3041         (md_reader::read_name): Rename to...
3042         (md_reader::read_name_1): ...this, adding "out_loc" param,
3043         and converting "missing name or number" to returning false, rather
3044         than failing.
3045         (md_reader::read_name): Reimplement in terms of read_name_1.
3046         (md_reader::read_name_or_nil): New function.
3047         (md_reader::read_string): Handle "(nil)" by returning NULL.
3048         (md_reader::md_reader): Add new param "compact".
3049         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
3050         (md_reader::read_file): New method.
3051         * read-md.h (md_reader::md_reader): Add new param "compact".
3052         (md_reader::read_file): New method.
3053         (md_reader::is_compact): New accessor.
3054         (md_reader::read_name): Convert return type from void to file_location.
3055         (md_reader::read_name_or_nil): New decl.
3056         (md_reader::read_name_1): New decl.
3057         (md_reader::m_compact): New field.
3058         (noop_reader::noop_reader): Pass "false" for new "compact" param
3059         of rtx_reader.
3060         (rtx_reader::rtx_reader): Add new "compact" param.
3061         (rtx_reader::read_rtx_operand): Make virtual and convert return
3062         type from void to rtx.
3063         (rtx_reader::read_until): New decl.
3064         (rtx_reader::handle_any_trailing_information): New virtual function.
3065         (rtx_reader::postprocess): New virtual function.
3066         (rtx_reader::finalize_string): New virtual function.
3067         (rtx_reader::m_in_call_function_usage): New field.
3068         (rtx_reader::m_reuse_rtx_by_id): New field.
3069         * read-rtl-function.c: New file.
3070         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
3071         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
3072         (selftest::verify_three_block_rtl_cfg): New decl.
3073         * read-rtl-function.h: New file.
3074         * read-rtl.c: Potentially include config.h rather than bconfig.h.
3075         For host, include function.h, memmodel.h, and emit-rtl.h.
3076         (one_time_initialization): New function.
3077         (struct compact_insn_name): New struct.
3078         (compact_insn_names): New array.
3079         (find_code): Handle insn codes in compact dumps.
3080         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
3081         (bind_subst_iter_and_attr): Likewise.
3082         (add_condition_to_string): Likewise.
3083         (add_condition_to_rtx): Likewise.
3084         (apply_attribute_uses): Likewise.
3085         (add_current_iterators): Likewise.
3086         (apply_iterators): Likewise.
3087         (initialize_iterators): Guard usage of apply_subst_iterator with
3088         #ifdef GENERATOR_FILE.
3089         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
3090         (md_reader::read_mapping): Likewise.
3091         (add_define_attr_for_define_subst): Likewise.
3092         (add_define_subst_attr): Likewise.
3093         (read_subst_mapping): Likewise.
3094         (check_code_iterator): Likewise.
3095         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
3096         logic to...
3097         (one_time_initialization): New function.
3098         (rtx_reader::read_until): New method.
3099         (read_flags): New function.
3100         (parse_reg_note_name): New function.
3101         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
3102         Handle reuse_rtx ids.
3103         Wrap iterator lookup within #ifdef GENERATOR_FILE.
3104         Add parsing support for RTL dumps, mirroring the special-cases in
3105         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
3106         values, and calling handle_any_trailing_information.
3107         (rtx_reader::read_rtx_operand): Convert return type from void
3108         to rtx, returning return_rtx.  Handle case 'e'.  Call
3109         finalize_string on XSTR and XTMPL fields.
3110         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
3111          "(nil)" values were omitted.  Call the postprocess vfunc on the
3112         return_rtx.
3113         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
3114         class ctor.  Initialize m_in_call_function_usage.  Call
3115         one_time_initialization.
3116         * rtl-tests.c (selftest::test_uncond_jump): Call
3117         set_new_first_and_last_insn.
3118         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
3119         * selftest-rtl.c: New file.
3120         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
3121         (selftest::get_insn_by_uid): New decl.
3122         * selftest-run-tests.c (selftest::run_tests): Call
3123         read_rtl_function_c_tests.
3124         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
3125         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
3126         dumps.
3127
3128 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
3129
3130         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
3131         operands in a special way.  Assert that pos+len <= mode precision.
3132
3133 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
3134
3135         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
3136         3 argument Alias with unlimited for the negative form.
3137         (fno-vect-cost-model): Removed.
3138
3139 2017-01-05  Martin Liska  <mliska@suse.cz>
3140
3141         * hsa-gen.c (gen_hsa_divmod): New function.
3142         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
3143
3144 2017-01-05  Martin Liska  <mliska@suse.cz>
3145
3146         PR pch/78970
3147         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
3148         header.
3149
3150 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3151
3152         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
3153         small constant length operands.
3154
3155 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3156
3157         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
3158         between loop iterations.
3159
3160 2017-01-05  Martin Liska  <mliska@suse.cz>
3161
3162         PR sanitizer/78815
3163         * gimplify.c (gimplify_decl_expr): Compare to
3164         asan_poisoned_variables instread of checking flags.
3165         (gimplify_target_expr): Likewise.
3166         (gimplify_expr): Likewise.
3167         (gimplify_function_tree): Conditionally initialize
3168         asan_poisoned_variables.
3169
3170 2017-01-04  Jeff Law  <law@redhat.com>
3171
3172         PR tree-optimizatin/78812
3173         * rtl.h (contains_mem_rtx_p): Prototype.
3174         * ifcvt.c (containts_mem_rtx_p): Move from here to...
3175         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
3176         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
3177         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
3178         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
3179
3180 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
3181
3182         * input.c (assert_char_at_range): Default-initialize actual_range.
3183
3184 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
3185
3186         * df-scan.c (df_ref_create_structure): Make regno unsigned,
3187         to match the caller.
3188
3189 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
3190
3191         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
3192         insns after final jump in test to emit dummy move.
3193
3194 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
3195
3196         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
3197         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
3198
3199 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
3200
3201         * multiple_target.c (create_dispatcher_calls): Init e_next.
3202         * tree-ssa-loop-split.c (split_loop): Init border.
3203         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
3204         scalar_type.
3205
3206 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
3207
3208         PR target/71977
3209         PR target/70568
3210         PR target/78823
3211         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
3212         (altivec_register_operand): Do not return true if the operand
3213         contains a SUBREG mixing SImode and SFmode.
3214         (vsx_register_operand): Likewise.
3215         (vsx_reg_sfsubreg_ok): New predicate.
3216         (vfloat_operand): Do not return true if the operand contains a
3217         SUBREG mixing SImode and SFmode.
3218         (vint_operand): Likewise.
3219         (vlogical_operand): Likewise.
3220         (gpc_reg_operand): Likewise.
3221         (int_reg_operand): Likewise.
3222         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
3223         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
3224         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
3225         SImode and SFmode.
3226         (rs6000_emit_move_si_sf_subreg): New helper function.
3227         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
3228         fixup SUBREGs involving SImode and SFmode.
3229         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
3230         numbers for the new peephole2 optimization.
3231         (peephole2 for SFmode unions): New peephole2 to optimize cases in
3232         the GLIBC math library that do AND/IOR/XOR operations on single
3233         precision floating point.
3234         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
3235         target macros to say whether we need to avoid SUBREGs mixing
3236         SImode and SFmode.
3237         (TARGET_ALLOW_SF_SUBREG): Likewise.
3238         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
3239         (UNSPEC_SI_FROM_SF): Likewise.
3240         (iorxor): Change spacing.
3241         (and_ior_xor): New iterator for AND, IOR, and XOR.
3242         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
3243         (movdi_from_sf_zero_ext): Likewise.
3244         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
3245         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
3246         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
3247         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
3248         (fms<mode>4): Likewise.
3249         (fnma<mode>4): Likewise.
3250         (fnms<mode>4): Likewise.
3251         (nfma<mode>4): Likewise.
3252         (nfms<mode>4): Likewise.
3253
3254 2017-01-04  Marek Polacek  <polacek@redhat.com>
3255
3256         PR c++/64767
3257         * doc/invoke.texi: Document -Wpointer-compare.
3258
3259 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
3260
3261         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
3262         RejectNegative.
3263
3264         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
3265         descriptions for -gdwarf-5 and emit them as uleb128 instead of
3266         2-byte data.
3267
3268 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3269
3270         PR target/78056
3271         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
3272         documentation of the powerpc_popcntb_ok attribute.
3273         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
3274         code to issue warning messages if a requested CPU configuration is
3275         not supported by the binary (assembler and loader) toolchain.
3276         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
3277         made to define a built-in function that has been disabled.
3278         (paired_init_builtins): Add assertion to prevent ICE if attempt is
3279         made to define a built-in function that has been disabled.
3280         (altivec_init_builtins): Add comment explaining why definition
3281         of the DST built-in functions is not preceded by an assertion
3282         check.  Add assertions to prevent ICE if attempts are made to
3283         define an altivec predicate or an abs* built-in function that has
3284         been disabled.
3285         (htm_init_builtins): Add comment explaining why definition of the
3286         htm built-in functions is not preceded by an assertion check.
3287
3288 2017-01-04  Jeff Law  <law@redhat.com>
3289
3290         PR tree-optimizatin/67955
3291         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
3292         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
3293         the points-to solution does not include pt_null.  Use DECL_PT_UID
3294         unconditionally.
3295
3296 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
3297
3298         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
3299         Use gen_int_mode instead of gen_lopwart for const_int operands.
3300
3301 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
3302
3303         PR tree-optimization/71563
3304         * match.pd: Simplify X << Y into X if Y is known to be 0 or
3305         out of range value - has low bits known to be zero.
3306
3307 2017-01-04  Alan Modra  <amodra@gmail.com>
3308
3309         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
3310         * configure: Regenerate.
3311         * config.in: Regenerate.
3312
3313 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
3314
3315         PR bootstrap/77569
3316         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
3317         a substring of the message, but strcmp with the whole message.  Ifdef
3318         ENABLE_NLS, translate the message first using dgettext.
3319
3320 2017-01-03  Jeff Law  <law@redhat.com>
3321
3322         PR tree-optimizatin/78856
3323         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
3324         (mark_threaded_blocks): Remove code to truncate thread paths that
3325         cross multiple loop headers.  Instead invalidate the cached loop
3326         iteration information and handle case of a thread path walking
3327         into an irreducible region.
3328
3329 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
3330
3331         PR target/78900
3332         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
3333         assertions.  Add support for doing the signbit if the IEEE 128-bit
3334         floating point value is in a GPR.
3335         * config/rs6000/rs6000.md (Fsignbit): Delete.
3336         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
3337         Update the length attribute if the value is in a GPR.
3338         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
3339         the sign or zero extension instruction, since the value is always 0/1.
3340         (signbit<mode>2_dm2): Delete using <Fsignbit>.
3341
3342         PR target/78953
3343         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
3344         extracting SImode to a GPR register so that we can generate a
3345         store, limit the vector to be in a traditional Altivec register
3346         for the vextuwrx instruction.
3347
3348 2017-01-03  Ian Lance Taylor  <iant@google.com>
3349
3350         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
3351
3352 2017-01-03  Martin Sebor  <msebor@redhat.com>
3353
3354         PR tree-optimization/78696
3355         * gimple-ssa-sprintf.c (format_floating): Correct handling of
3356         precision.  Use MPFR for %f for greater fidelity.  Correct handling
3357         of %g.
3358         (pass_sprintf_length::compute_format_length): Set width and precision
3359         specified by asrerisk to void_node for vararg functions.
3360         (try_substitute_return_value): Adjust dump output.
3361
3362 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
3363
3364         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
3365
3366 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
3367
3368         * doc/invoke.texi (SPARC options): Document -mlra as the default.
3369         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
3370         -mlra/-mno-lra was passed to the compiler.
3371
3372 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
3373
3374         PR rtl-optimization/65618
3375         * emit-rtl.c (try_split): Move initialization of "before" and
3376         "after" to just before the call to emit_insn_after_setloc.
3377
3378 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
3379
3380         * doc/md.texi (Standard Names): Remove reference to Java frontend.
3381
3382 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
3383
3384         * dwarf2out.c (gen_enumeration_type_die): When
3385         -gno-strict-dwarf, add a DW_AT_encoding attribute.
3386
3387 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
3388
3389         PR tree-optimization/78965
3390         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
3391         Change first argument from const call_info & to call_info &.  For %n
3392         set info.nowrite to false.
3393
3394         PR middle-end/78901
3395         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
3396         possibly throwing calls.
3397
3398         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
3399         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
3400         and fns handling, rather than in a separate case SSA_NAME.
3401
3402 2017-01-02  Jeff Law  <law@redhat.com>
3403
3404         * config/darwin-driver.c (darwin_driver_init): Const-correctness
3405         fixes for first_period and second_period variables.
3406
3407 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
3408
3409         PR target/78967
3410         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
3411         (*insvqi_1): New insn pattern.
3412         (*insvqi_1_mem_rex64): Ditto.
3413         (*insvqi_2): Ditto.
3414         (*insvqi_3): Rename from *insvqi.
3415
3416         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
3417
3418 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
3419
3420         * doc/cfg.texi (Edges): Remove reference to Java.
3421         (Maintaining the CFG): Ditto.
3422
3423 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
3424
3425         PR middle-end/77674
3426         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
3427         transparent aliases.
3428
3429 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
3430
3431         PR middle-end/77484
3432         * predict.def (PRED_CALL): Update hitrate.
3433         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
3434         * predict.c (tree_estimate_probability_bb): Split CALL predictor
3435         into direct/indirect/polymorphic variants.
3436
3437 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
3438
3439         Update copyright years.
3440
3441         * gcc.c (process_command): Update copyright notice dates.
3442         * gcov-dump.c (print_version): Ditto.
3443         * gcov.c (print_version): Ditto.
3444         * gcov-tool.c (print_version): Ditto.
3445         * gengtype.c (create_file): Ditto.
3446         * doc/cpp.texi: Bump @copying's copyright year.
3447         * doc/cppinternals.texi: Ditto.
3448         * doc/gcc.texi: Ditto.
3449         * doc/gccint.texi: Ditto.
3450         * doc/gcov.texi: Ditto.
3451         * doc/install.texi: Ditto.
3452         * doc/invoke.texi: Ditto.
3453 \f
3454 Copyright (C) 2017 Free Software Foundation, Inc.
3455
3456 Copying and distribution of this file, with or without modification,
3457 are permitted in any medium without royalty provided the copyright
3458 notice and this notice are preserved.