PR middle-end/79448 - unhelpful -Wformat-truncation=2 warning
[official-gcc.git] / gcc / ChangeLog
blob3d0e95e29d2d29ec43f20c443674ec32a2303d83
1 2017-02-14  Martin Sebor  <msebor@redhat.com>
3         PR middle-end/79448
4         * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
5           warning for strings of unknown length.
7 2017-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
9         * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
11 2017-02-14 Jeff Law  <law@redhat.com>
13         PR target/79404
14         * ira-costs.c (scan_one_insn): Initialize register move costs
15         for pseudos seen in USE/CLOBBER insns.
17         PR tree-optimization/79095
18         * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
19         if the numerator has the range ~[0,0] make the resultant range ~[0,0].
20         (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
21         if the operands are known to be not equal, then the resulting range
22         is ~[0,0].
23         (intersect_ranges): If the new range is ~[0,0] and the old range is
24         wide, then prefer ~[0,0].
25         * tree-vrp.c (overflow_comparison_p_1): New function.
26         (overflow_comparison_p): New function.
27         * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
28         if NAME is used in an overflow test.
29         (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
30         overflow check that can be expressed as an equality test, then adjust
31         ops to be that equality test.
33 2017-02-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35         * config/s390/s390-builtin-types.def: Remove flags argument.
36         * config/s390/s390.c (s390_init_builtins): Likewise.
38 2017-02-14  Martin Liska  <mliska@suse.cz>
40         * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
41         vector.  Fix trailing white spaces.
43 2017-02-14  James Greenhalgh  <james.greenhalgh@arm.com>
45         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
46         HFmode.
48 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
50         PR rtl-optimization/68664
51         * config/arm/arm.c (arm_sched_can_speculate_insn):
52         New function.  Declare prototype.
53         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
55 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
57         PR rtl-optimization/68664
58         * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
59         New function.
60         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
62 2017-02-14  Amit Pawar  <amit.pawar@amd.com>
64         * config/i386/i386.c (znver1_cost): Fix the alignment for function and
65         max skip bytes for function, loop and jump.
67 2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
69         * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
70         ABS_EXPR for gimple dump.
72 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
74         PR target/79462
75         * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
77         PR tree-optimization/79408
78         * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
79         case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
80         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
81         also if rhs1 is INTEGER_CST.
83 2017-02-14  Richard Biener  <rguenther@suse.de>
85         PR middle-end/79432
86         * tree-into-ssa.c (insert_phi_nodes): When the function can
87         have abnormal edges rewrite SSA names with broken use-def
88         dominance out of SSA and register them for PHI insertion.
90 2017-02-13  Martin Sebor  <msebor@redhat.com>
92         PR middle-end/79496
93         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
94         clearing info.nowrite flag when snprintf size argument is a range.
96 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
98         * cprop.c (cprop_jump): Add missing space in string literal.
99         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
100         (get_constraint_for_component_ref): Likewise.
101         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
102         * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
103         * lra-constraints.c (process_alt_operands): Likewise.
104         * ipa-inline.c (inline_small_functions): Likewise.
105         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
106         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
107         * trans-mem.c (diagnose_tm_1_op): Likewise.
108         * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
109         (grid_parallel_clauses_gridifiable): Likewise.
111         * config/nvptx/mkoffload.c (process): Add space in between
112         , and %d.
114         * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
115         "MOD4_SSE_REGS" and "ALL_REGS".
117         * spellcheck.c (test_data): Add , in between "foo" and "food".
119 2017-02-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
121         PR target/79449
122         * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
123         boundary crossing check and subsequent code generation agree.
125 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
127         * config/aarch64/aarch64.c (has_memory_op): Delete.
128         (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
129         has_memory_op.
131 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
133         PR rtl-optimization/79388
134         PR rtl-optimization/79450
135         * combine.c (distribute_notes): When removing TEM_INSN for which
136         corresponding dest has last value recorded, invalidate that last
137         value.
139 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
141         * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
142         of explicit '@'.  Add missing assembly comment marker on branch costs
143         printout.
145 2017-02-13  Nathan Sidwell  <nathan@acm.org>
147         * gengtype-lex.l (<in_struct>): Add '/'.
149 2017-02-13  Martin Liska  <mliska@suse.cz>
151         PR c/79471
152         * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
154 2017-02-13  Richard Biener  <rguenther@suse.de>
156         * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
157         Remove.
158         * configure: Re-generate.
159         * config.in: Likewise.
160         * graphite-dependences.c: Simplify as if
161         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
162         * graphite-isl-ast-to-gimple.c: Likewise.
163         * graphite-optimize-isl.c: Likewise.
164         * graphite-poly.c: Likewise.
165         * graphite-sese-to-poly.c: Likewise.
166         * graphite.h: Likewise.
167         * toplev.c: Include isl/version.h and use isl_version () for
168         printing the ISL version.
169         * doc/install.texi: Update ISL requirement.
171 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
173         * doc/standards.texi (Standards): Update reference to
174         Objective-C 2.0.
176 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
177         
178         * doc/extend.texi (Named Address Spaces): sourceware.org now
179         defaults to https.
180         * doc/install.texi (Binaries): Ditto.
181         (Specific): Ditto.
183 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
185         * doc/cpp.texi: Replace "stringify"/"stringification" with C 
186         standard terminology "stringize"/"stringizing" throughout.
187         * doc/cppinternals.texi: Likewise.
189 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
191         * doc/extend.texi: Fix some spelling mistakes and typos.
192         * doc/invoke.texi: Likewise.
194 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
196         PR ipa/79224
197         * params.def (inline-min-speedup) Change from 10 to 8.
199 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
201         * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
202         4.5.
204 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
206         PR ipa/79224
207         * ipa-inline-analysis.c (get_minimal_bb): New function.
208         (record_modified): Use it.
209         (remap_edge_change_prob): Handle also ancestor functions.
211 2017-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
213         * doc/contrib.texi (Contributors): Remove broken link into
214         the Mauve CVS repository.
216 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
218         PR middle-end/79454
219         * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
220         result computation whenever lhs doesn't have vector mode, not
221         just when it has BLKmode.
223 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
225         * doc/makefile.texi (profiledbootstrap): Refer to the
226         installation instructions only in textual form.
228 2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
230         PR target/79295
231         * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
233 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
235         * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
236         (Specific): Update mingw-w64 reference.
237         (Binaries): Ditto.
238         (Specific): Remove broken link to Renesas RX processor.
240 2017-02-10  Richard Biener  <rguenther@suse.de>
242         * toplev.c (process_options): Do not mention obsolete graphite
243         options when printing sorry message about missing graphite support.
244         Mention -floop-nest-optimize.
246 2017-02-10  Christophe Lyon  <christophe.lyon@linaro.org>
248         * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
249         (vtst_p16): Likewise.
250         (vtstq_p8): Likewise.
251         (vtstq_p16): Likewise.
252         (vtst_p64): New.
253         (vtstq_p64): Likewise.
254         * config/arm/arm_neon.h (vgetq_lane_p64): New.
255         (vset_lane_p64): New.
256         (vsetq_lane_p64): New.
258 2017-02-10  Jakub Jelinek  <jakub@redhat.com>
260         PR tree-optimization/79411
261         * tree-ssa-reassoc.c (is_reassociable_op): Return false if
262         stmt operands are SSA_NAMEs used in abnormal phis.
263         (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
264         phis.
266 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
268         PR ipa/70795
269         * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
270         flag if needed.
272 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
274         * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
276 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
278         * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
279         to avoid warning.
281         PR c/79413
282         * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
283         not arbitrary TREE_CONSTANT.
285         PR c/79431
286         * gimplify.c (gimplify_adjust_omp_clauses): Ignore
287         "omp declare target link" attribute unless is_global_var.
288         * omp-offload.c (find_link_var_op): Likewise.
290 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
291             Chung-Lin Tang  <cltang@codesourcery.com>
293         * gimplify.c (gimplify_scan_omp_clauses): No special handling for
294         OMP_CLAUSE_TILE.
295         (gimplify_adjust_omp_clauses): Don't delete TILE.
296         (gimplify_omp_for): Deal with TILE.
297         * internal-fn.c (expand_GOACC_TILE): New function.
298         * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
299         (GOACC_TILE): New.
300         * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
301         (expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
302         element fields.
303         (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
304         avoid DIV for outermost collapse var.
305         (expand_oacc_for): Insert tile element loop as needed.  Adjust.
306         Remove out of date comments, fix whitespace.
307         * omp-general.c (omp_extract_for_data): Deal with tiling.
308         * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
309         adjust OLF_DIM_BASE value.
310         (struct omp_for_data): Add tiling field.
311         * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
312         (lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
313         for auto loops.  Remove default auto determining, moved to
314         oacc_loop_fixed_partitions.
315         * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
316         stmts, add e_mask field.
317         (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
318         (oacc_thread_numbers): Use oacc_dim_call.
319         (oacc_xform_tile): New.
320         (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
321         (finish_oacc_loop): Adjust for ifns vector.
322         (oacc_loop_discover_walk): Append loop abstraction sites to list,
323         add case for GOACC_TILE fns.
324         (oacc_loop_xform_loop): Delete.
325         (oacc_loop_process): Iterate over call list directly, and add
326         handling for GOACC_TILE fns.
327         (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
328         dump partitioning.
329         (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
330         vector partitioning to outer loops.  Assign 2 partitions to loops
331         when available. Add TILE handling.
332         (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
333         (execite_oacc_device_lower): Process GOACC_TILE fns, ignore unknown specs.
334         * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
335         * tree.c (omp_clause_num_ops): Adjust TILE ops.
336         * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
338 2017-02-09  Gerald Pfeifer  <gerald@pfeifer.com>
340         * configure.ac (ACX_BUGURL): Update.
341         * configure: Regenerate.
343 2017-02-09  Richard Biener  <rguenther@suse.de>
345         PR tree-optimization/69823
346         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
347         Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.
349 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
351         * config/arc/arc-c.def: Add __NPS400__ definition.
352         * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
353         (TARGET_NPS400): Define.
355 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
357         * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
358         file.
359         (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
360         pointer, arch_info.
361         (arc_cpu_types): Fill the arch_info field with a pointer into the
362         arc_arch_types table.
363         (arc_selected_cpu): Declare.
364         * config/arc/arc.c (arc_selected_cpu): Make global.
365         (arc_selected_arch): Delete.
366         (arc_base_cpu): Delete.
367         (arc_override_options): Remove references to deleted variables,
368         update access to arch information.
369         (ARC_OPT): Update access to arch information.
370         (ARC_OPTX): Likewise.
371         * config/arc/arc.h (arc_base_cpu): Remove declaration.
372         (TARGET_ARC600): Update access to arch information.
373         (TARGET_ARC601): Likewise.
374         (TARGET_ARC700): Likewise.
375         (TARGET_EM): Likewise.
376         (TARGET_HS): Likewise.
377         * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
378         information.
380 2017-02-08  Pat Haugen  <pthaugen@us.ibm.com>
382         PR target/78604
383         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
384         condition/operands for integer GE/LE/GEU/LEU operations.
386 2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>
388         PR translation/79397
389         * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
390         of AltiVec.
392 2017-02-08  Martin Jambor  <mjambor@suse.cz>
394         PR ipa/79375
395         * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
396         whether allocation happened.
397         (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
398         nothing was allocated.
400 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
402         PR tree-optimization/79408
403         * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
404         constant, but SSA_NAME with a known integer range, use the minimum
405         of that range instead of op1 to determine if modulo can be replaced
406         with its first operand.
408 2016-02-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
410         * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
412 2017-02-08  Richard Biener  <rguenther@suse.de>
414         PR tree-optimization/71824
415         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
416         Check all loops contained in the merged region.
418 2017-02-07  Andrew Pinski  <apinski@cavium.com>
420         * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
422 2017-02-07  Andrew Pinski  <apinski@cavium.com>
424         * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
425         (thunderxt88): Likewise.
426         (thunderxt81): Disable LSE and change v8.1 to v8.
427         (thunderxt83): Likewise.
429 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
430             Richard Biener  <rguenther@suse.de>
432         PR middle-end/79399
433         * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
434         type from int to size_t.
435         * ira-costs.c (struct_costs_size): Change type from int to size_t.
437 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
439         PR rtl-optimization/79386
440         * cprop.c (bypass_conditional_jumps): Initialize
441         bypass_last_basic_block already before splitting bbs after
442         unconditional traps...
443         (bypass_conditional_jumps): ... rather than here.
445         PR target/79299
446         * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
447         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
448         *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
449         fix -masm=intel patterns.
451 2017-02-07  Richard Biener  <rguenther@suse.de>
453         PR tree-optimization/79256
454         PR middle-end/79278
455         * builtins.c (get_object_alignment_2): Use min_align_of_type
456         to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
457         and ADJUST_FIELD_ALIGN.
459         * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
460         type parameter.
461         * doc/tm.texi: Regenerate.
462         * stor-layout.c (layout_decl): Adjust.
463         (update_alignment_for_field): Likewise.
464         (place_field): Likewise.
465         (min_align_of_type): Likewise.
466         * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
467         * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
468         * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
469         * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
470         * config/frv/frv.c (frv_adjust_field_align): Likewise.
471         * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
472         * config/i386/i386.c (x86_field_alignment): Likewise.
473         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
474         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
475         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
476         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
477         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
478         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
479          Likewise.
481         Revert
482         2017-01-30  Richard Biener  <rguenther@suse.de>
484         PR tree-optimization/79256
485         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
486         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
487         alignment on TYPE.
489 2017-02-07  Toma Tabacu  <toma.tabacu@imgtec.com>
491         * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
492         argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
493         builtins to SImode and emit a zero-extend, if necessary.
495 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
497         * docs/invoke.texi (RISC-V Options): Alphabetize.
499 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
501         * doc/invoke.texi (RISC-V Options): Use two spaces to separate
502         options.
504 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
506         * config/riscv/riscv.c: New file.
507         * gcc/common/config/riscv/riscv-common.c: Likewise.
508         * config.gcc: Likewise.
509         * config/riscv/constraints.md: Likewise.
510         * config/riscv/elf.h: Likewise.
511         * config/riscv/generic.md: Likewise.
512         * config/riscv/linux.h: Likewise.
513         * config/riscv/multilib-generator: Likewise.
514         * config/riscv/peephole.md: Likewise.
515         * config/riscv/pic.md: Likewise.
516         * config/riscv/predicates.md: Likewise.
517         * config/riscv/riscv-builtins.c: Likewise.
518         * config/riscv/riscv-c.c: Likewise.
519         * config/riscv/riscv-ftypes.def: Likewise.
520         * config/riscv/riscv-modes.def: Likewise.
521         * config/riscv/riscv-opts.h: Likewise.
522         * config/riscv/riscv-protos.h: Likewise.
523         * config/riscv/riscv.h: Likewise.
524         * config/riscv/riscv.md: Likewise.
525         * config/riscv/riscv.opt: Likewise.
526         * config/riscv/sync.md: Likewise.
527         * config/riscv/t-elf-multilib: Likewise.
528         * config/riscv/t-linux: Likewise.
529         * config/riscv/t-linux-multilib: Likewise.
530         * config/riscv/t-riscv: Likewise.
531         * configure.ac: Likewise.
532         * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
533         Waterman as RISC-V maintainers.
534         * doc/install.texi: Add RISC-V entries.
535         * doc/invoke.texi: Add RISC-V options section.
536         * doc/md.texi: Add RISC-V constraints section.
537         * configure: Regenerated.
539 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
541         PR target/66144
542         * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
543         false values to be constant vectors with all 0 or all 1 bits set.
544         (vcondu<mode><mode>): Likewise.
545         * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
546         predicate.
547         (fpmask_comparison_operator): Update comment.
548         (vecint_comparison_operator): New predicate.
549         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
550         vector conditionals when the true and false values are constant
551         vectors with all 0 bits or all 1 bits set.
553 2017-02-06  Martin Sebor  <msebor@redhat.com>
555         PR  tree-optimization/79376
556         * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
558 2017-02-06  Uros Bizjak  <ubizjak@gmail.com>
560         * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
561         explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
562         to simplify split condition.
564 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
566         * omp-expand.c (oxpand_omp_atomic_fetch_op,
567         expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
568         false.
570 2017-02-06  Segher Boessenkool  <segher@kernel.crashing.org>
572         PR rtl-optimization/68664
573         * target.def (can_speculate_insn): New hook.
574         * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
575         * doc/tm.texi: Regenerate.
576         * sched-rgn.c (can_schedule_ready_p): Use the new hook.
577         * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
578         (rs6000_sched_can_speculate_insn): New function.
580 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
582         PR tree-optimization/79284
583         * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
584         * tree-vect-stmts.c (vect_get_vec_def_for_operand,
585         vectorizable_mask_load_store, vectorizable_operation,
586         vect_is_simple_cond, get_same_sized_vectype): Use it instead
587         of comparing TREE_CODE of a type against BOOLEAN_TYPE.
588         * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
589         vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
590         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
591         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
592         Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
593         is_gimple_assign (stmt).  Replace another such test with
594         is_gimple_assign (stmt).
596 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
598         PR target/78883
599         * config/avr/avr.c (rtl-iter.h): Include it.
600         (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
601         (avr_legitimate_combined_insn): ...and implementation.
603 2017-02-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>
605         * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
606         * config/s390/s390.c (s390_const_operand_ok)
607         (s390_canonicalize_comparison, s390_extract_part)
608         (s390_single_part, s390_contiguous_bitmask_nowrap_p)
609         (s390_contiguous_bitmask_p, s390_rtx_costs)
610         (legitimize_pic_address): Likewise.
611         * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
612         * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
613         ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
614         ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
615         * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
617 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
619         * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
620         REGNO($0) == REGNO($1).
622 2017-02-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
624         * config/s390/linux.h(SIZE_TYPE): Add comment.
626 2017-02-06  Julian Brown  <julian@codesourcery.com>
627             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
628             Virendra Pathak  <virendra.pathak@broadcom.com>
630         * config/aarch64/aarch64-cores.def: Change the scheduler
631         to Thunderx2t99.
632         * config/aarch64/aarch64.md: Include thunderx2t99.md.
633         * config/aarch64/thunderx2t99.md: New file.
635 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
637         * doc/standards.texi (Go Language): Update link to language
638         standard.
640 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
642         * tree-eh.c (lower_resx): Sanitize profile.
643         (cleanup_empty_eh_move_lp): Likewise.
645 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
647         PR tree-ssa/79347
648         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
649         ELSE_PROB.
650         * cfgloopmanip.h (loop_version): Update prototype.
651         * modulo-sched.c (sms_schedule): Update call of loop_version.
652         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
653         * tree-parloops.c (gen_parallel_loop): Likewise.
654         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
655         * tree-ssa-loop-split.c (split_loop): Likewise.
656         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
657         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
659 2017-02-05  Martin Liska  <mliska@suse.cz>
661         PR bootstrap/78985
662         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
663         variable to NULL.
664         (print_operand_address): Initialize a struct to zero.
666 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
668         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
669         garbage collector only in textual form.
671 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
672         
673         * doc/extend.texi (x86 specific memory model extensions for
674         transactional memory): Simplify a phrase.
676 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
678         PR target/79353
679         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
680         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
681         (atomic_storedi_1): Likewise.
683 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
685         PR tree-optimization/79338
686         * tree-parloops.c (gather_scalar_reductions): Don't call
687         vect_analyze_loop_form for loop->inner before destroying loop's
688         loop_vinfo.
690 2017-02-03  Martin Sebor  <msebor@redhat.com>
692         PR tree-optimization/79327
693         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
694         when precision has resulted in leading zeros.
695         (format_integer): Adjust the likely counter to assume an unknown
696         argument that may be zero is non-zero.
698 2017-02-03  Jason Merrill  <jason@redhat.com>
700         PR c++/78689
701         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
702         avoid copying non-taken branch.
704 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
706         PR tree-optimization/79340
707         * tree-vect-loop.c (vectorizable_reduction): Release
708         vec_defs elements after safe_splicing them into other vectors.
709         Formatting fixes.
711         PR tree-optimization/79327
712         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
713         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
714         dirtype.
715         (format_integer): Use wide_int_to_tree instead of build_int_cst
716         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
717         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
718         of shortest and longest sequence.
720 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
722         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
723         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
725 2017-02-03  Walter Lee  <walt@tilera.com>
727         PR target/78862
728         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
729         after initial stackframe link reg save.
730         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
732 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
734         PR target/79354
735         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
736         wu for stxssp alternative.
738 2017-02-03  Martin Sebor  <msebor@redhat.com>
740         PR tree-optimization/79352
741         * gimple-fold.c (get_range_strlen): Add argument.
742         (get_range_strlen): Change return type to bool.
743         (get_maxval_strlen): Pass in a dummy argument.
744         * gimple-fold.h (get_range_strlen): Change return type to bool.
745         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
746         * tree.h (array_at_struct_end_p): Add argument.
747         * tree.c (array_at_struct_end_p): Handle it.
749 2017-02-03  Martin Liska  <mliska@suse.cz>
751         PR lto/66295
752         * multiple_target.c (create_dispatcher_calls): Redirect edge
753         from a caller of a dispatcher.
754         (expand_target_clones): Make the clones local.
755         (ipa_target_clone): Do both target clones and resolvers.
756         (ipa_dispatcher_calls): Remove the pass.
757         (pass_dispatcher_calls::gate): Likewise.
758         (make_pass_dispatcher_calls): Likewise.
759         * passes.def (pass_target_clone): Put as very first IPA early
760         pass.
762 2017-02-03  Martin Liska  <mliska@suse.cz>
764         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
765         in case of a function with ifunc attribute.
767 2017-02-03  Martin Liska  <mliska@suse.cz>
769         * cgraph.c (cgraph_node::dump): Dump function version info.
770         * symtab.c (symtab_node::dump_base): Add missing new line.
772 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
774         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
775         (ifcombine_ifandif): Use it.
777 2017-02-03  Martin Liska  <mliska@suse.cz>
779         * doc/invoke.texi: Document default value for
780         use-after-scope-direct-emission-threshold.
782 2017-02-03  Martin Liska  <mliska@suse.cz>
784         PR tree-optimization/79339
785         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
786         (format_floating): Likewise.
788 2017-02-03  Martin Liska  <mliska@suse.cz>
790         PR ipa/79337
791         * ipa-prop.c (ipa_node_params_t::insert): Remove current
792         implementation.
793         (ipa_node_params_t::remove): Likewise.
794         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
795         initialization from removed ipa_node_params_t::insert.
796         (ipa_node_params::~ipa_node_params): Move from removed
797         ipa_node_params_t::release.
798         * symbol-summary.h (symbol_summary::m_released): New member.
799         Do not release a summary twice.  Do not allow to call finalizer
800         for types of a summary that live in GGC memory.
802 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
804         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
805         cmp_branch fusion.
807 2017-02-02  Martin Sebor  <msebor@redhat.com>
809         PR middle-end/79275
810         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
811         (format_string): Tighten up the range of output for non-constant
812         strings and correct the expected range for wide non-constant strings.
814 2017-02-02  Martin Sebor  <msebor@redhat.com>
816         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
818         PR middle-end/32003
819         * doc/invoke.texi (-fdump-rtl-): Remove pass-specific options from
820         index.
821         (-fdump-tree-@var): Add to index and document how to come up
822         with pass-specific option and dump file names.
823         (-fdump-passes): Clarify where to look for output.
825 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
827         PR middle-end/77445
828         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
829         statistics of the analyzed path; allow threading for speed when
830         any of BBs along the path are optimized for speed.
832 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
834         PR middle-end/78468
835         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
836         settings of the virtual registers.
838         Revert again
839         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
841         * explow.c (get_dynamic_stack_size): Take known alignment of stack
842         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
843         needed.
845 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
847         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
848         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
850 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
852         * config/s390/s390.md: Add missing comments with the expanded
853         mnemonics.
854         * config/s390/vector.md: Likewise.
855         * config/s390/vx-builtins.md: Likewise.
857 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
859         PR target/79197
860         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
861         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
862         conditions on a single line.
864 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
866         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
867         __S390_VX__ to __VX__.
869 2017-02-01  Andrew Pinski  <apinski@cavium.com>
871         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
872         stmt_info to record_stmt_cost.
873         (vect_get_known_peeling_cost): Pass stmt_info if known to
874         record_stmt_cost.
875         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
876         cpu_vector_cost field into
877         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
878         field into vec_int_stmt_cost and vec_fp_stmt_cost.
879         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
880         splitting of scalar_stmt_cost and vec_stmt_cost.
881         (thunderx_vector_cost): Likewise.
882         (cortexa57_vector_cost): LIkewise.
883         (exynosm1_vector_cost): Likewise.
884         (xgene1_vector_cost): Likewise.
885         (thunderx2t99_vector_cost): Improve after the splitting of the two
886         fields.
887         (aarch64_builtin_vectorization_cost): Update for the splitting of
888         scalar_stmt_cost and vec_stmt_cost.
890 2017-02-01  Torvald Riegel  <triegel@redhat.com>
891             Richard Henderson  <rth@redhat.com>
893         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
894         conditional on existance of a fast atomic load.
895         * optabs-query.c (can_atomic_load_p): New function.
896         * optabs-query.h (can_atomic_load_p): Declare it.
897         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
898         no fast atomic load is available for the particular size of access.
899         (expand_atomic_compare_and_swap): Likewise.
900         (expand_atomic_load): Likewise.
901         (expand_atomic_store): Likewise.
902         (expand_atomic_fetch_op): Likewise.
903         * testsuite/lib/target-supports.exp
904         (check_effective_target_sync_int_128): Remove x86 because it provides
905         no fast atomic load.
906         (check_effective_target_sync_int_128_runtime): Likewise.
908 2017-02-01  Richard Biener  <rguenther@suse.de>
910         * graphite.c: Include tree-vectorizer.h for find_loop_location.
911         (graphite_transform_loops): Provide opt-info for optimized nests.
912         * tree-parloop.c (parallelize_loops): Provide opt-info for
913         parallelized loops.
915 2017-02-01  Richard Biener  <rguenther@suse.de>
917         PR middle-end/79315
918         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
919         was not set before.
921 2017-02-01  Richard Biener  <rguenther@suse.de>
923         PR tree-optimization/71824
924         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
925         Verify the loops are valid in the merged SESE region.
926         (scop_detection::can_represent_loop_1): Check analyzing the
927         evolution of the number of iterations in the region succeeds.
929 2017-01-31  Ian Lance Taylor  <iant@golang.org>
931         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
932         REG_ARGS_SIZE note to 32-bit push insns and call insn.
934 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
936         PR preprocessor/79210
937         * input.c (get_substring_ranges_for_loc): Replace line_width
938         assertion with error-handling.
940 2017-01-31  Richard Biener  <rguenther@suse.de>
942         PR tree-optimization/77318
943         * graphite-sese-to-poly.c (extract_affine): Fix assert.
944         (create_pw_aff_from_tree): Take loop parameter.
945         (add_condition_to_pbb): Pass loop of the condition to
946         create_pw_aff_from_tree.
948 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
950         * config/s390/s390.c (s390_asan_shadow_offset): New function.
951         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
953 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
955         PR target/78597
956         PR target/79038
957         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
958         no longer used.
959         (convert_int_to_float128): Likewise.
960         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
961         (convert_int_to_float128): Likewise.
962         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
963         (UNSPEC_IEEE128_CONVERT): Likewise.
964         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
965         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
966         Use local variables for IBM extended format.
967         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
968         (fix_trunc<mode>si2_fprs): Likewise.
969         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
970         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
971         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
972         to know that we can now have integers of all sizes in vector
973         registers.
974         (fix<uns>_<mode>di2_hw): Likewise.
975         (float<uns>_<mode>si2_hw): Likewise.
976         (fix_<mode>si2_hw): Likewise.
977         (fixuns_<mode>si2_hw): Likewise.
978         (float<uns>_<mode>di2_hw): Likewise.
979         (float_<mode>di2_hw): Likewise.
980         (float_<mode>si2_hw): Likewise.
981         (floatuns_<mode>di2_hw): Likewise.
982         (floatuns_<mode>si2_hw): Likewise.
983         (xscvqp<su>wz_<mode>): Delete, no longer used.
984         (xscvqp<su>dz_<mode>): Likewise.
985         (xscv<su>dqp_<mode>): Likewise.
986         (ieee128_mfvsrd_64bit): Likewise.
987         (ieee128_mfvsrd_32bit): Likewise.
988         (ieee128_mfvsrwz): Likewise.
989         (ieee128_mtvsrw): Likewise.
990         (ieee128_mtvsrd_64bit): Likewise.
991         (ieee128_mtvsrd_32bit): Likewise.
993 2017-01-31  Martin Liska  <mliska@suse.cz>
995         PR ipa/79285
996         * ipa-prop.c (ipa_free_all_node_params): Call release method
997         instead of ~sumbol_summary to not to trigger double times
998         dtor of hash_map.
1000 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
1002         PR tree-optimization/71691
1003         * bitmap.h (class auto_bitmap): New.
1004         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
1005         is_maybe_undefined instead of ssa_undefined_value_p.
1007 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1009         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
1010         __S390_ARCH_LEVEL__ to __ARCH__.
1012 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
1014         PR tree-optimization/79267
1015         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
1016         if should_remove_lhs_p is true.
1018 2017-01-30  Alexandre Oliva <aoliva@redhat.com>
1020         PR debug/63238
1021         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
1022         (add_alignment_attribute): New.
1023         (base_type_die): Add alignment attribute.
1024         (subrange_type_die): Likewise.
1025         (modified_type_die): Likewise.
1026         (gen_array_type_die): Likewise.
1027         (gen_descr_array_type_die: Likewise.
1028         (gen_enumeration_type_die): Likewise.
1029         (gen_subprogram_die): Likewise.
1030         (gen_variable_die): Likewise.
1031         (gen_field_die): Likewise.
1032         (gen_ptr_to_mbr_type_die): Likewise.
1033         (gen_struct_or_union_type_die): Likewise.
1034         (gen_subroutine_type_die): Likewise.
1035         (gen_typedef_die): Likewise.
1036         (base_type_cmp): Compare alignment attribute.
1038 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
1040         PR target/79170
1041         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
1042         (setb_unsigned) New pattern for setb with CCUNS.
1043         * config/rs6000/rs6000.c (expand_block_compare): Use a different
1044         subfc./subfe sequence to avoid overflow problems.  Generate a
1045         shorter sequence with cmpld/setb for power9.
1046         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
1047         for generating subfc. instruction.
1048         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
1049         now uses this instruction.
1051 2017-01-30  Ian Lance Taylor  <iant@google.com>
1053         PR debug/79289
1054         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
1055         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
1057 2017-01-30  Martin Sebor  <msebor@redhat.com>
1059         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
1060         Move constant to the right of a relational operator.
1061         (get_mpfr_format_length, format_character, format_string): Ditto.
1062         (should_warn_p, maybe_warn): Same.
1064         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
1066 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
1068         PR lto/79061
1069         * asan.c (get_translation_unit_decl): Remove function.
1070         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
1072 2017-01-30  Martin Liska  <mliska@suse.cz>
1074         PR gcov-profile/79259
1075         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
1076         -fprofile-generate.
1078 2017-01-30  Martin Liska  <mliska@suse.cz>
1080         PR bootstrap/78985
1081         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
1082         Initialize variables with NULL value.
1084 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
1086         PR target/79260
1087         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
1088         tm_p_file.
1089         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
1091 2017-01-30  Richard Biener  <rguenther@suse.de>
1093         PR tree-optimization/79276
1094         * tree-vrp.c (process_assert_insertions): Properly adjust common
1095         when removing a duplicate.
1097         * gcc.dg/torture/pr79276.c: New testcase.
1099 2017-01-30  Richard Biener  <rguenther@suse.de>
1101         PR tree-optimization/79256
1102         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
1103         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
1104         alignment on TYPE.
1105         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
1107 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1109         PR target/79240
1110         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
1111         ("*r<noxa>sbg_<mode>_sll_bitmask")
1112         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
1113         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
1114         Use contiguous_bitmask_nowrap_operand.
1116 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1118         PR target/79268
1119         * config/rs6000/altivec.h (vec_xl): Revise #define.
1120         (vec_xst): Likewise.
1122 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
1124         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
1126 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
1128         PR rtl-optimization/79194
1129         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
1130         traps before call to bypass_conditional_jumps.
1132 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
1134         PR tree-optimization/71374
1135         * lra-constraints.c (check_conflict_input_operands): New.
1136         (match_reload): Use it.
1138 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
1140         PR target/79131
1141         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
1142         account to calculate conflict_set.
1144 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
1146         PR rtl-optimization/78559
1147         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
1148         other_insn in combine.
1150 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
1152         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
1153         uint16_type_node for BT_UINT16.
1155 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
1157         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
1158         "RTL Tests" to menu.
1159         (GIMPLE Tests): New node.
1160         (RTL Tests): New node.
1162 2017-01-27  Richard Biener  <rguenther@suse.de>
1164         PR tree-optimization/79245
1165         * tree-loop-distribution.c (distribute_loop): Apply cost
1166         modeling also to detected patterns.
1168 2017-01-27  Richard Biener  <rguenther@suse.de>
1170         PR tree-optimization/71433
1171         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
1172         (compare_assert_loc): New function.
1173         (process_assert_insertions): Sort and optimize assert locations
1174         to remove duplicates and push down identical assertions on
1175         edges to their destination block.
1177 2017-01-27  Richard Biener  <rguenther@suse.de>
1179         PR tree-optimization/79244
1180         * tree-vrp.c (remove_range_assertions): Forcefully propagate
1181         out SSA names even if abnormal.
1183 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
1185         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
1186         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
1187         instead of MPFR_RNDN.
1189 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
1191         PR target/79239
1192         * arm.c (arm_option_override): Don't call build_target_option_node
1193         until after doing all option overrides.
1194         (arm_valid_target_attribute_tree): Likewise.
1196 2017-01-27  Martin Liska  <mliska@suse.cz>
1198         * doc/invoke.texi (-fprofile-arcs): Document profiling support
1199         for {cd}tors and C++ {cd}tors.
1201 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1203         * config/s390/s390.md ("*setmem_long_and")
1204         ("*setmem_long_and_31z"): Use zero_extend instead of and.
1206 2017-01-26  Martin Sebor  <msebor@redhat.com>
1208         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
1209         of precision.
1211 2017-01-26  Martin Sebor  <msebor@redhat.com>
1213         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
1214         HAVE_DFmode before using XFmode or DFmode.
1215         (parse_directive): Avoid using the z length modifier to avoid
1216         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
1218         PR middle-end/78703
1219         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
1220         to accept adjustment as an array.
1221         (get_int_range): New function.
1222         (struct directive): Make width and prec arrays.
1223         (directive::set_width, directive::set_precision): Call get_int_range.
1224         (format_integer, format_floating): Handle width and precision ranges.
1225         (format_string, parse_directive): Same.
1227 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
1229         PR debug/79129
1230         * dwarf2out.c (generate_skeleton_bottom_up): For children with
1231         comdat_type_p set, just clone them, but keep the children in the
1232         original DIE.
1234         PR debug/78835
1235         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
1236         which have direct callers with -fvar-tracking-assignments enabled
1237         in the current TU.
1238         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
1239         inside of type units.
1241 2017-01-26  Martin Sebor  <msebor@redhat.com>
1243         PR middle-end/78703
1244         * gimple-ssa-sprintf.c (struct result_range): Add likely and
1245         unlikely counters.
1246         (struct format_result): Replace number_chars, number_chars_min,
1247         and number_chars_max with a single member of struct result_range.
1248         Remove bounded.
1249         (format_result::operator+=): Adjust.
1250         (struct fmtresult): Remove bounded.  Handle likely and unlikely
1251         counters.
1252         (fmtresult::adjust_for_width_or_precision): New function.
1253         (fmtresult:type_max_digits): New function.
1254         (bytes_remaining): Handle likely and unlikely counters.
1255         (min_bytes_remaining): Remove.
1256         (format_percent): Simplify.
1257         (format_integer, format_floating): Set likely and unlikely counters.
1258         (get_string_length, format_character, format_string): Same.
1259         (format_plain, should_warn_p): New function.
1260         (maybe_warn): Call should_warn_p.  Update diagnostic messages
1261         and handle those for all directives, including plain strings.
1262         (format_directive): Handle likely and unlikely counters.
1263         Remove unnecessary quoting from diagnostics.  Add an informational
1264         note.
1265         (add_bytes): Remove.
1266         (pass_sprintf_length::compute_format_length): Simplify.
1267         (try_substitute_return_value): Handle likely and unlikely counters.
1269 2017-01-26  Carl Love  <cel@us.ibm.com>
1271         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
1272         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
1274 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
1276         PR target/79131
1277         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
1278         endianess for subregs into account.
1279         * lra-constraints.c (lra_constraints): Do risky transformations
1280         always on the first iteration.
1281         * lra-lives.c (check_pseudos_live_through_calls): Add arg
1282         last_call_used_reg_set.
1283         (process_bb_lives): Define and use last_call_used_reg_set.
1284         * lra.c (lra): Always continue after lra_constraints on the first
1285         iteration.
1287 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
1289         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
1290         constant.
1291         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
1293 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
1295         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
1296         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
1297         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
1298         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
1299         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
1300         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
1301         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
1302         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
1303         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
1305 2017-01-26  Marek Polacek  <polacek@redhat.com>
1307         PR c/79199
1308         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
1309         for the third operand.
1311 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
1313         PR middle-end/79236
1314         * omp-low.c (struct omp_context): Add simt_stmt field.
1315         (scan_omp_for): Return omp_context *.
1316         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
1317         context to the _simt_ SIMD stmt.
1318         (lower_omp_for): For combined SIMD with sibling _simt_
1319         SIMD, make sure to use the same decls in _looptemp_
1320         clauses as in the sibling.
1322 2017-01-26  David Sherwood  <david.sherwood@arm.com>
1324         PR middle-end/79212
1325         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
1326         all contexts.
1328 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
1330         PR target/70465
1331         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
1332         emit fld b; fld a; if possible.
1334         * brig-builtins.def: Update copyright years.
1335         * config/arm/arm_acle_builtins.def: Update copyright years.
1337 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
1339         PR target/79179
1340         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
1341         constraint instead of o for the stxsd instruction.
1343 2017-01-25  Carl Love  <cel@us.ibm.com>
1345         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
1346         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
1348 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
1350         * doc/invoke.texi (C++ Dialect Options): Fix typo.
1352 2017-01-25  Richard Biener  <rguenther@suse.de>
1354         PR tree-optimization/69264
1355         * target.def (vector_alignment_reachable): Improve documentation.
1356         * doc/tm.texi: Regenerate.
1357         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
1358         and add a comment.
1359         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
1360         earlier changes with respect to TYPE_USER_ALIGN.
1361         (vector_alignment_reachable_p): Likewise.  Improve dumping.
1363 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1365         PR target/79145
1366         * config/arm/arm.md (xordi3): Force constant operand into a register
1367         for TARGET_IWMMXT.
1369 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1371         * doc/invoke.texi (-fstore-merging): Correct default optimization
1372         levels at which it is enabled.
1373         (-O): Move -fstore-merging from list to...
1374         (-O2): ... Here.
1376 2017-01-25  Richard Biener  <rguenther@suse.de>
1378         PR debug/78363
1379         * omp-expand.c: Include debug.h.
1380         (expand_omp_taskreg): Make sure to generate early debug before
1381         outlining anything from a function.
1382         (expand_omp_target): Likewise.
1383         (grid_expand_target_grid_body): Likewise.
1385 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
1387         PR lto/79061
1388         * asan.c (get_translation_unit_decl): New function.
1389         (asan_add_global): Extract modules file name from globals
1390         TRANSLATION_UNIT_DECL name.
1392 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
1394         PR target/77439
1395         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
1396         for long calls with APCS frame and VFP.
1398 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
1400         * cfg.c (original_copy_tables_initialized_p): New function.
1401         * cfg.h (original_copy_tables_initialized_p): New decl.
1402         * cfgrtl.c (relink_block_chain): Guard the call to
1403         free_original_copy_tables with a call to
1404         original_copy_tables_initialized_p.
1405         * cgraph.h (symtab_node::native_rtl_p): New decl.
1406         * cgraphunit.c (symtab_node::native_rtl_p): New function.
1407         (symtab_node::needed_p): Don't assert for early assembly output
1408         for __RTL functions.
1409         (cgraph_node::finalize_function): Set "force_output" for __RTL
1410         functions.
1411         (cgraph_node::analyze): Bail out early for __RTL functions.
1412         (analyze_functions): Update assertion to support __RTL functions.
1413         (cgraph_node::expand): Bail out early for __RTL functions.
1414         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
1415         __RTL functions.
1416         * function.h (struct function): Update comment for field
1417         "pass_startwith".
1418         * gimple-expr.c: Include "tree-pass.h".
1419         (gimple_has_body_p): Return false for __RTL functions.
1420         * Makefile.in (OBJS): Add run-rtl-passes.o.
1421         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
1422         accessor.
1423         (gcc::pass_manager::get_clean_slate): New accessor.
1424         * passes.c: Include "insn-addr.h".
1425         (should_skip_pass_p): Add logging.  Update logic for running
1426         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
1427         property-provider override so it is only done for gimple passes.
1428         Don't skip dfinit.
1429         (skip_pass): New function.
1430         (execute_one_pass): Call skip_pass when skipping passes.
1431         * read-md.c (md_reader::read_char): Support filtering
1432         the input to a subset of line numbers.
1433         (md_reader::md_reader): Initialize fields
1434         m_first_line and m_last_line.
1435         (md_reader::read_file_fragment): New function.
1436         * read-md.h (md_reader::read_file_fragment): New decl.
1437         (md_reader::m_first_line): New field.
1438         (md_reader::m_last_line): New field.
1439         * read-rtl-function.c (function_reader::create_function): Only
1440         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
1441         curr_properties.  Set DECL_INITIAL to a dummy block.
1442         (read_rtl_function_body_from_file_range): New function.
1443         * read-rtl-function.h (read_rtl_function_body_from_file_range):
1444         New decl.
1445         * run-rtl-passes.c: New file.
1446         * run-rtl-passes.h: New file.
1448 2017-01-24 Jeff Law  <law@redhat.com>
1450         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
1451         buffer size.
1453 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
1455         PR tree-optimization/79159
1456         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
1457         (record_nonwrapping_iv): Improve boundary using above function if no
1458         value range information.
1460 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
1461             Martin Jambor  <mjambor@suse.cz>
1463         * brig-builtins.def: New file.
1464         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
1465         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
1466         (DEF_HSAIL_SAT_BUILTIN): Likewise.
1467         (DEF_HSAIL_INTR_BUILTIN): Likewise.
1468         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
1469         * builtin-types.def (BT_INT8): New.
1470         (BT_INT16): Likewise.
1471         (BT_UINT8): Likewise.
1472         (BT_UINT16): Likewise.
1473         (BT_FN_ULONG): Likewise.
1474         (BT_FN_UINT_INT): Likewise.
1475         (BT_FN_UINT_ULONG): Likewise.
1476         (BT_FN_UINT_LONG): Likewise.
1477         (BT_FN_UINT_PTR): Likewise.
1478         (BT_FN_ULONG_PTR): Likewise.
1479         (BT_FN_INT8_FLOAT): Likewise.
1480         (BT_FN_INT16_FLOAT): Likewise.
1481         (BT_FN_UINT32_FLOAT): Likewise.
1482         (BT_FN_UINT16_FLOAT): Likewise.
1483         (BT_FN_UINT8_FLOAT): Likewise.
1484         (BT_FN_UINT64_FLOAT): Likewise.
1485         (BT_FN_UINT16_UINT32): Likewise.
1486         (BT_FN_UINT32_UINT16): Likewise.
1487         (BT_FN_UINT16_UINT16_UINT16): Likewise.
1488         (BT_FN_INT_PTR_INT): Likewise.
1489         (BT_FN_UINT_PTR_UINT): Likewise.
1490         (BT_FN_LONG_PTR_LONG): Likewise.
1491         (BT_FN_ULONG_PTR_ULONG): Likewise.
1492         (BT_FN_VOID_UINT64_UINT64): Likewise.
1493         (BT_FN_UINT8_UINT8_UINT8): Likewise.
1494         (BT_FN_INT8_INT8_INT8): Likewise.
1495         (BT_FN_INT16_INT16_INT16): Likewise.
1496         (BT_FN_INT_INT_INT): Likewise.
1497         (BT_FN_UINT_FLOAT_UINT): Likewise.
1498         (BT_FN_FLOAT_UINT_UINT): Likewise.
1499         (BT_FN_ULONG_UINT_UINT): Likewise.
1500         (BT_FN_ULONG_UINT_PTR): Likewise.
1501         (BT_FN_ULONG_ULONG_ULONG): Likewise.
1502         (BT_FN_UINT_UINT_UINT): Likewise.
1503         (BT_FN_VOID_UINT_PTR): Likewise.
1504         (BT_FN_UINT_UINT_PTR: Likewise.
1505         (BT_FN_UINT32_UINT64_PTR): Likewise.
1506         (BT_FN_INT_INT_UINT_UINT): Likewise.
1507         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
1508         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
1509         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
1510         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
1511         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
1512         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
1513         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
1514         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
1515         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
1516         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
1517         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
1518         * doc/frontends.texi: List BRIG FE.
1519         * doc/install.texi (Testing): Add BRIG tesring requirements.
1520         * doc/invoke.texi (Overall Options): Mention BRIG.
1521         * doc/standards.texi (Standards): Doucment BRIG HSA version.
1523 2017-01-24  Richard Biener  <rguenther@suse.de>
1525         PR translation/79208
1526         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
1528 2017-01-24  Martin Jambor  <mjambor@suse.cz>
1530         PR bootstrap/79198
1531         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
1532         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
1533         and known_contexts.
1535 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
1537         PR middle-end/79123
1538         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
1539         casts from signed to unsigned really don't have a range.
1541 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
1543         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
1544         GMP_RNDx for compatiblity.
1546 2017-01-24  Martin Liska  <mliska@suse.cz>
1548         PR bootstrap/79132
1549         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
1550         that would prevent us to call alloca with -1 as argument.
1552 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
1554         * dwarf2out.c (output_compilation_unit_header, output_file_names):
1555         Avoid -Wformat-security warning.
1557 2017-01-23  Andrew Pinski  <apinski@cavium.com>
1559         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
1560         cost table.
1562 2017-01-23  Martin Sebor  <msebor@redhat.com>
1564         PR middle-end/78703
1565         * gimple-ssa-sprintf.c (warn_level): New global.
1566         (format_integer): Use it here and throughout the rest of the file.
1567         Use the same switch to compute sign as base.
1568         (maybe_warn): New function.
1569         (format_directive): Factor out warnings into maybe_warn.
1570         Add debugging output.  Use warn_level.
1571         (add_bytes): Use warn_level.
1572         (pass_sprintf_length::compute_format_length): Add debugging output.
1573         (try_substitute_return_value): Same.
1574         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
1576         PR middle-end/78703
1577         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
1578         (struct fmtresult, format_integer, format_floating): Adjust.
1579         (fmtresult::fmtresult): Set max correctly in two argument ctor.
1580         (get_string_length, format_string,format_directive): Same.
1581         (pass_sprintf_length::compute_format_length): Same.
1582         (try_substitute_return_value): Simplify slightly.
1584         PR middle-end/78703
1585         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
1586         (fmtresult::operator+=): Outlined.
1587         (struct fmtresult): Add ctors.
1588         (struct conversion_spec): Rename...
1589         (struct directive): ...to this.  Add and remove data members.
1590         (directive::set_width, directive::set_precision): New functions.
1591         (format_percent): Use fmtresult ctor.
1592         (get_width_and_precision): Remove.
1593         (format_integer): Make naming changes.  Avoid computing width and
1594         precision.
1595         (format_floating): Same.  Adjust indentation.
1596         (format_character, format_none): New functions.
1597         (format_string): Moved character handling to format_character.
1598         (format_directive): Remove arguments, change return type.
1599         (parse_directive): New function.
1600         (pass_sprintf_length::compute_format_length): Move directive
1601         parsing to parse_directive.
1603 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
1605         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
1606         (assign_assembler_name_if_needed): ... this.
1607         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
1608         (assign_assembler_name_if_needed): ... this.
1609         (free_lang_data_in_cgraph): Adjust callers.
1610         * cgraphunit.c (cgraph_node::analyze): Likewise.
1611         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
1612         Likewise.
1614 2017-01-23  Richard Biener  <rguenther@suse.de>
1616         PR tree-optimization/79088
1617         PR tree-optimization/79188
1618         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
1619         resetting loop bounds after last path deletion.  Reset loop
1620         bounds of the target loop, make code match the comments.
1621         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
1622         Make sure loops need no fixups.
1624 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1626         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
1627         exponent support with double type for first argument.
1628         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
1629         type returned by __builtin_vec_extract_sig,
1630         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
1631         functions from "vector int" to "vector unsigned int" or from
1632         "vector long long int" to "vector unsigned long long int".
1633         Changed type returned by __builtin_vec_extract_exp,
1634         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
1635         functions from "vector int" to "vector unsigned int" or from
1636         "vector long long int" to "vector unsigned long long int".
1637         Changed return type of __builtin_vec_test_data_class,
1638         __builtin_vec_test_data_class_sp, and
1639         __builtin_vec_test_data_class_dp from "vector int" to
1640         "vector bool int" or from "vector long long int" to "vector bool
1641         long long int" and changed second argument type from "unsigned
1642         int" to "int".  Added new overloaded function forms "vector float
1643         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
1644         "vector float __builtin_vec_insert_exp_sp (vector float, vector
1645         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
1646         double, vector unsigned long long int)" and "vector double
1647         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
1648         long int)".  Changed return type of
1649         __builtin_scalar_test_data_class and
1650         __builtin_scalar_test_data_class_sp and
1651         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
1652         int" and changed second argument from "unsigned int" to "int".
1653         Changed type returned by __builtin_scalar_test_neg,
1654         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
1655         from "int" to "bool int".  Added new overloaded function form
1656         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
1657         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
1658         exponent double-precision with floating point first argument.
1659         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
1660         documentation of scalar_test_data_class, scalar_test_neg,
1661         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
1662         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
1663         vec_test_data_class built-in functions to reflect refinements in
1664         their type signatures.
1666 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
1668         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
1669         size of buf.
1670         (aarch64_elf_asm_destructor): Likewise.
1672 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
1674         PR rtl-optimization/78634
1675         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
1676         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
1677         * ifcvt.c (noce_try_cmove): Add missing cost check.
1679         PR rtl-optimization/71724
1680         * combine.c (if_then_else_cond): Look for situations where it is
1681         beneficial to undo the work of one of the recursive calls.
1683 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
1685         PR tree-optimization/70754
1686         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
1687         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
1688         combined stmt before it if not NULL.
1689         (combine_chains): Process refs reversely and compute dominance point
1690         for root ref.
1692 2017-01-23  Martin Liska  <mliska@suse.cz>
1694         PR tree-optimization/79196
1695         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
1696         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
1697         instead of memcmp.
1698         (strlen_optimize_stmt): Call the renamed function.
1700 2017-01-23  Michael Matz  <matz@suse.de>
1702         PR tree-optimization/78384
1703         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
1705 2017-01-23  Richard Biener  <rguenther@suse.de>
1707         PR tree-optimization/79186
1708         * tree-vrp.c (register_new_assert_for): Make sure we've seen
1709         both incoming edges before moving an assert.
1711 2017-01-23  Martin Jambor  <mjambor@suse.cz>
1713         * ipa-prop.c (load_from_param_1): Removed.
1714         (load_from_unmodified_param): Bits from load_from_param_1 put back
1715         here.
1716         (load_from_param): Removed.
1717         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
1718         with stmt.  Reverted back to use of load_from_unmodified_param.
1720 2017-01-23  Martin Jambor  <mjambor@suse.cz>
1722         PR ipa/79108
1723         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
1724         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
1725         field a pointer to garbage collected vector, mark lattices and
1726         ipcp_orig_node with GTY((skip)).
1727         (ipa_get_param_count): Adjust to descriptors being a pointer.
1728         (ipa_get_param): Likewise.
1729         (ipa_get_type): Likewise.
1730         (ipa_get_param_move_cost): Likewise.
1731         (ipa_set_param_used): Likewise.
1732         (ipa_get_controlled_uses): Likewise.
1733         (ipa_set_controlled_uses): Likewise.
1734         (ipa_is_param_used): Likewise.
1735         (ipa_node_params_t): Move into garbage collector.  New methods insert
1736         and remove.
1737         (ipa_node_params_sum): Annotate wth GTY(()).
1738         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
1739         garbage collected.
1740         (ipa_load_from_parm_agg): Adjust declaration.
1741         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
1742         * ipa-profile.c (ipa_profile): Likewise.
1743         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
1744         (ipa_populate_param_decls): Make descriptors parameter garbage
1745         collected.
1746         (ipa_dump_param): Adjust to descriptors being a pointer.
1747         (ipa_alloc_node_params): Likewise.
1748         (ipa_initialize_node_params): Likewise.
1749         (load_from_param_1): Make descriptors parameter garbage collected.
1750         (load_from_unmodified_param): Likewise.
1751         (load_from_param): Likewise.
1752         (ipa_load_from_parm_agg): Likewise.
1753         (ipa_node_params::~ipa_node_params): Removed.
1754         (ipa_free_all_node_params): Remove call to delete operator.
1755         (ipa_node_params_t::insert): New.
1756         (ipa_node_params_t::remove): Likewise.
1757         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
1758         copy known_csts and known_contexts vectors.
1759         (ipa_read_node_info): Adjust to descriptors being a pointer.
1760         (ipcp_modif_dom_walker): Make m_descriptors field garbage
1761         collected.
1762         (ipcp_transform_function): Make descriptors variable garbage
1763         collected.
1765 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
1767         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
1768         * config/i386/avx512dqintrin.h: Ditto.
1769         * config/i386/avx512fintrin.h: Ditto.
1770         * gcc/config/i386/i386.c: Handle new builtins.
1771         * config/i386/i386-builtin.def: Add new builtins.
1772         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
1773         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
1775 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
1776             Martin Liska  <mliska@suse.cz>
1778         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
1779         * asan.c (asan_expand_poison_ifn): Support stores and use
1780         appropriate ASAN report function.
1781         * internal-fn.c (expand_ASAN_POISON_USE): New function.
1782         * internal-fn.def (ASAN_POISON_USE): Declare.
1783         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
1784         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
1785         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
1786         ASAN_POISON calls w/o LHS.
1787         * tree-ssa.c (execute_update_addresses_taken): Create clobber
1788         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
1789         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
1790         * gimplify.c (asan_poison_variables): Add attribute
1791         use_after_scope_memory to variables that really needs to live
1792         in memory.
1793         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
1794         having the attribute.
1796 2017-01-23  Martin Liska  <mliska@suse.cz>
1798         * asan.c (create_asan_shadow_var): New function.
1799         (asan_expand_poison_ifn): Likewise.
1800         * asan.h (asan_expand_poison_ifn): New declaration.
1801         * internal-fn.c (expand_ASAN_POISON): Likewise.
1802         * internal-fn.def (ASAN_POISON): New builtin.
1803         * sanopt.c (pass_sanopt::execute): Expand
1804         asan_expand_poison_ifn.
1805         * tree-inline.c (copy_decl_for_dup_finish): Make function
1806         external.
1807         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
1808         * tree-ssa.c (is_asan_mark_p): New function.
1809         (execute_update_addresses_taken): Rewrite local variables
1810         (identified just by use-after-scope as addressable) into SSA.
1812 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
1814         * doc/install.texi (Specific): opensource.apple.com uses https
1815         now. Remove trailing slash.
1817 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
1819         * README.Portability: Remove note on an Irix compatibility issue.
1821 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
1823         * gcov.c (INCLUDE_ALGORITHM): Define.
1824         (INCLUDE_VECTOR): Define.
1825         No longer include <vector> and <algorithm> directly.
1827 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
1829         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
1830         to https.
1831         * doc/invoke.texi (Code Gen Options): Ditto.
1833 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
1835         PR lto/78407
1836         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
1838 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
1840         rtl-optimization/79125
1841         * cprop.c (local_cprop_pass): Handle cases where we make an
1842         unconditional trap.
1844 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
1846         PR target/61729
1847         PR target/77850
1848         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
1849         read from, for big endian.
1851 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
1853         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
1854         register pauth builtins for LP64 only.
1856 2017-01-20  Marek Polacek  <polacek@redhat.com>
1858         PR c/79152
1859         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
1860         non-case labels.
1862 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
1864         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
1865         of safelen status.
1866         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
1867         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
1868         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
1870 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1872         PR target/71270
1873         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
1874         in big-endian mode when they are not a single duplicated value.
1876 2017-01-20  Richard Biener  <rguenther@suse.de>
1878         * BASE-VER: Bump to 7.0.1.
1880 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
1882         * omp-low.c (omplow_simd_context): New struct.  Use it...
1883         (lower_rec_simd_input_clauses): ...here and...
1884         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
1885         references to idx, lane, max_vf, is_simt.
1887 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
1889         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
1890         mcpu=nps400.
1892 2017-01-20  Martin Jambor  <mjambor@suse.cz>
1894         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
1895         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
1896         gt-hsa-common.h.
1897         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
1898         (GTFILES): Rename hsa.c to hsa-common.c.
1899         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
1900         * hsa-dump.c: Likewise.
1901         * hsa-gen.c: Likewise.
1902         * hsa-regalloc.c: Likewise.
1903         * ipa-hsa.c: Likewise.
1904         * omp-expand.c: Likewise.
1905         * omp-low.c: Likewise.
1906         * toplev.c: Likewise.
1908 2017-01-20  Marek Polacek  <polacek@redhat.com>
1910         PR c/64279
1911         * doc/invoke.texi: Document -Wduplicated-branches.
1912         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
1913         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
1914         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
1915         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
1916         return 0 only when not OEP_LEXICOGRAPHIC.
1917         (fold_build_cleanup_point_expr): Use the expression
1918         location when building CLEANUP_POINT_EXPR.
1919         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
1920         * tree.c (add_expr): Handle error_mark_node.
1922 2017-01-20  Martin Liska  <mliska@suse.cz>
1924         PR lto/69188
1925         * tree-profile.c (init_ic_make_global_vars): Do not call
1926         finalize_decl.
1927         (gimple_init_gcov_profiler): Likewise.
1929 2017-01-20  Martin Liska  <mliska@suse.cz>
1931         PR ipa/71190
1932         * cgraph.h (maybe_create_reference): Remove argument and
1933         update comment.
1934         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
1935         argument.
1936         * ipa-cp.c (create_specialized_node): Likewise.
1937         * symtab.c (symtab_node::maybe_create_reference): Handle
1938         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
1940 2017-01-20  Martin Liska  <mliska@suse.cz>
1942         * read-rtl-function.c (function_reader::create_function): Use
1943         build_decl instread of build_decl_stat.
1945 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
1947         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
1948         * config/i386/avx512dqintrin.h: Ditto.
1949         * config/i386/avx512fintrin.h: Ditto.
1950         * config/i386/i386-builtin-types.def: Add new types.
1951         * gcc/config/i386/i386.c: Handle new types.
1952         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
1953         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
1954         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
1955         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
1956         (__builtin_ia32_kshiftridi): New.
1957         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
1959 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
1961         PR target/78875
1962         PR target/79140
1963         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
1964         define to rs6000_init_stack_protect_guard.
1965         (rs6000_init_stack_protect_guard): New function.
1967 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
1968             Yunqiang Su  <yunqiang.su@imgtec.com>
1970         * config.gcc (supported_defaults): Add madd4.
1971         (with_madd4): Add validation.
1972         (all_defaults): Add madd4.
1973         * config/mips/mips.opt (mmadd4): New option.
1974         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
1975         mmadd4.
1976         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
1977         __mips_no_madd4.
1978         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
1979         (ISA_HAS_FUSED_MADD4): Likewise.
1980         * gcc/doc/invoke.texi (-mmadd4): Document the new option.
1981         * gcc/doc/install.texi (--with-madd4): Document the new option.
1983 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
1985         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
1986         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
1987         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
1988         (aarch64_init_pauth_hint_builtins): New.
1989         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
1990         (aarch64_expand_builtin): Expand new builtins.
1992 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
1994         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
1995         * combine-stack-adj.c (no_unhandled_cfa): Handle
1996         REG_CFA_TOGGLE_RA_MANGLE.
1997         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
1998         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
1999         info for return address signing.
2000         (aarch64_expand_epilogue): Likewise.
2002 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
2004         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
2005         * config/aarch64/aarch64-protos.h
2006         (aarch64_return_address_signing_enabled): New declaration.
2007         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
2008         New function.
2009         (aarch64_expand_prologue): Sign return address before it's pushed onto
2010         stack.
2011         (aarch64_expand_epilogue): Authenticate return address fetched from
2012         stack.
2013         (aarch64_override_options): Sanity check for ILP32 and ISA level.
2014         (aarch64_attributes): New function attributes for "sign-return-address".
2015         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
2016         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
2017         ("*do_return"): Generate combined instructions according to key index.
2018         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
2019         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
2020         iterators.
2021         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
2022         * config/aarch64/aarch64.opt (msign-return-address=): New.
2023         * doc/extend.texi (AArch64 Function Attributes): Documents
2024         "sign-return-address=".
2025         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
2027 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
2029         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
2030         overall option summary.
2032 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
2034         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
2035         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
2036         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
2037         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
2039 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
2041         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
2042         -mpower9-minmax by default for -mcpu=power9.
2043         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
2044         128-bit floating point.
2046 2017-01-20  Alan Modra  <amodra@gmail.com>
2048         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
2049         optimizing for size.
2051 2017-01-20  Alan Modra  <amodra@gmail.com>
2053         PR target/79144
2054         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
2055         for strcmp and strncmp from corresponding builtin decl.
2057 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
2059         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
2060         instead of i386/rtems-64.h.
2061         * config/i386/rtems-64.h: Remove.
2063 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
2065         PR target/78478
2066         Revert:
2067         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
2069         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
2071 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
2073         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
2074         Change int to HOST_WIDE_INT.
2075         * config/aarch64/aarch64-protos.h
2076         (aarch64_simd_gen_const_vector_dup): Likewise.
2077         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
2079 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
2081         * langhooks-def.h (lhd_type_for_size): New decl.
2082         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
2083         * langhooks.c (lhd_type_for_size): New function, taken from
2084         lto_type_for_size.
2086 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
2088         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
2089         define_bypass for CR latency.
2090         (power9-cracked-alu): Update bypass latency and remove power9-branch.
2091         (power9-alu2): Add define_bypass for CR latency.
2092         (power9-cmp): New.
2093         (power9-mul): Update insn latency.
2094         (power9-mul-compare): Update insn latency, bypass latency and remove
2095         power9-branch.
2097 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2099         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
2100         Delete.
2101         * config/aarch64/aarch64.md
2102         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
2103         aarch64_nopcrelative_literal_loads.
2104         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
2106 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
2108         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
2109         TARGET_LOONGSON_3A.
2110         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
2112 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
2114         PR target/78176
2115         * config.gcc (supported_defaults): Add lxc1-sxc1.
2116         (with_lxc1_sxc1): Add validation.
2117         (all_defaults): Add lxc1-sxc1.
2118         * config/mips/mips.opt (mlxc1-sxc1): New option.
2119         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
2120         mlxc1-sxc1.
2121         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
2122         __mips_no_lxc1_sxc1.
2123         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
2124         * gcc/doc/invoke.texi (-mlxc1-sxc1): Document the new option.
2125         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
2127 2017-01-19  Richard Biener  <rguenther@suse.de>
2129         PR tree-optimization/72488
2130         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
2131         sure to restore SSA info.
2132         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
2134 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
2136         PR rtl-optimization/79121
2137         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
2138         of the inner type when shifting an extended value.
2140 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
2142         PR lto/78407
2143         * symtab.c (symtab_node::equal_address_to): Fix comparing of
2144         interposable aliases.
2146 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
2148         PR target/78516
2149         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
2150         Use the evmergelohi instruction.
2151         (mov_si<mode>_e500_subreg4_2_le): Likewise.
2152         (mov_sitf_e500_subreg8_2_be): Likewise.
2153         (mov_sitf_e500_subreg12_2_le): Likewise.
2154         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
2155         (mov_si<mode>_e500_subreg4_2_be): Likewise.
2156         (mov_sitf_e500_subreg8_2_le): Likewise.
2157         (mov_sitf_e500_subreg12_2_be): Likewise.
2159 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2161         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
2162         attribute from vecsimple to vecperm.
2163         (altivec_vbpermq2): Likewise.
2165 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2167         PR target/79040
2168         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
2170 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
2171         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
2172         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
2173         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
2174         case where N arg is SIZE_MAX.
2175         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
2176         (cmpstrsi): Add pattern.
2178 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
2180         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2181         __builtin_vec_revb builtins.
2182         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
2183         built-in functions to support generation of the ISA 3.0 XXBR<x>
2184         vector byte reverse instructions.
2185         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
2186         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
2187         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
2188         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
2189         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
2190         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
2191         (P9V_BUILTIN_VEC_REVB): Likewise.
2192         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
2193         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
2194         (p9_xxbrq_v16qi): Likewise.
2195         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
2196         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
2197         (p9_xxbrh_v8hi): Likewise.
2198         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
2199         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
2200         vec_revb built-in functions.
2202 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
2204         PR rtl-optimization/78952
2205         * config/i386/i386.md (any_extract): New code iterator.
2206         (*insvqi_2): Use any_extract for source operand.
2207         (*insvqi_3): Use any_shiftrt for source operand.
2209 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
2211         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
2212         New function.
2213         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
2215 2017-01-18  Matthias Klose  <doko@ubuntu.com>
2217         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
2219 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2221         * config/rs6000/altivec.h (vec_bperm): Change #define.
2222         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
2223         (altivec_vbpermq2): New define_insn.
2224         (altivec_vbpermd): Likewise.
2225         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
2226         function interface.
2227         (VBPERMD): Likewise.
2228         (VBPERM): New polymorphic function interface.
2229         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
2230         Add entries for P9V_BUILTIN_VEC_VBPERM.
2231         * doc/extend.texi: Add interfaces for vec_bperm.
2233 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2235         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
2236         first letter of error messages.
2237         (s390_resolve_overloaded_builtin): Likewise.
2238         * config/s390/s390.c (s390_expand_builtin): Likewise.
2239         (s390_invalid_arg_for_unprototyped_fn): Likewise.
2240         (s390_valid_target_attribute_inner_p): Likewise.
2241         * config/s390/s390.md ("tabort"): Likewise.
2243 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
2245         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
2246         (ISA_AVOID_DIV_HILO): New macro.
2247         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
2248         (ISA_HAS_DDIV): Likewise.
2250 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
2252         * doc/invoke.texi (fabi-version): Correct number of occurrences.
2254 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
2256         * doc/invoke.texi (fabi-version): Spelling fix.
2258 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
2260         PR c++/70182
2261         * doc/invoke.texi (fabi-version): Mention mangling fix for
2262         operator names.
2264 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
2266         PR c++/77489
2267         * doc/invoke.texi (fabi-version): Document discriminator mangling.
2269 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
2271         PR target/78875
2272         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
2273         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
2274         the new options.
2275         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
2276         flexible settings.
2277         (stack_protect_test): Ditto.
2278         * config/rs6000/rs6000.opt (mstack-protector-guard=,
2279         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
2280         options.
2281         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
2282         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
2283         -mstack-protector-guard-offset=.
2284         (RS/6000 and PowerPC Options): Ditto.
2286 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
2288         * config/i386/i386.h (MASK_CLASS_P): New define.
2289         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
2290         there are no registers from different register sets also when
2291         mask registers are used.  Update function comment.
2292         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
2293         to (*k/*r) and (*k/*km) alternatives.
2295 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
2297         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
2298         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
2299         (EH_RETURN_HANDLER_RTX): New define.
2300         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
2301         Force frame pointer in EH return functions.
2302         (aarch64_expand_epilogue): Add barrier for eh_return.
2303         (aarch64_final_eh_return_addr): Remove.
2304         (aarch64_eh_return_handler_rtx): New function.
2305         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
2306         Remove.
2307         (aarch64_eh_return_handler_rtx): New prototype.
2309 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2311         * config/rs6000/altivec.h (vec_rlmi): New #define.
2312         (vec_vrlnm): Likewise.
2313         (vec_rlnm): Likewise.
2314         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
2315         (UNSPEC_VRLNM): Likewise.
2316         (VIlong): New mode iterator.
2317         (altivec_vrl<VI_char>mi): New define_insn.
2318         (altivec_vrl<VI_char>nm): Likewise.
2319         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
2320         function entry.
2321         (VRLDNM): Likewise.
2322         (RLNM): New polymorphic function entry.
2323         (VRLWMI): New monomorphic function entry.
2324         (VRLDMI): Likewise.
2325         (RLMI): New polymorphic function entry.
2326         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
2327         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
2328         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
2329         vec_vrlnm.
2331 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
2333         PR debug/78839
2334         * dwarf2out.c (field_byte_offset): Restore the
2335         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
2336         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
2337         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
2338         of build2 + fold.
2340 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
2342         PR ada/67205
2343         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
2345 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
2347         PR debug/71669
2348         * dwarf2out.c (add_data_member_location_attribute): For constant
2349         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
2350         instead of DW_AT_data_member_location, DW_AT_bit_offset and
2351         DW_AT_byte_size attributes.
2353 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
2355         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
2356         after forcing to constant memory when the code model is medium.
2358 2017-01-17  Julia Koval  <julia.koval@intel.com>
2360         PR target/76731
2361         * config/i386/avx512fintrin.h
2362         (_mm512_i32gather_ps): Change __addr type to void const*.
2363         (_mm512_mask_i32gather_ps): Ditto.
2364         (_mm512_i32gather_pd): Ditto.
2365         (_mm512_mask_i32gather_pd): Ditto.
2366         (_mm512_i64gather_ps): Ditto.
2367         (_mm512_mask_i64gather_ps): Ditto.
2368         (_mm512_i64gather_pd): Ditto.
2369         (_mm512_mask_i64gather_pd): Ditto.
2370         (_mm512_i32gather_epi32): Ditto.
2371         (_mm512_mask_i32gather_epi32): Ditto.
2372         (_mm512_i32gather_epi64): Ditto.
2373         (_mm512_mask_i32gather_epi64): Ditto.
2374         (_mm512_i64gather_epi32): Ditto.
2375         (_mm512_mask_i64gather_epi32): Ditto.
2376         (_mm512_i64gather_epi64): Ditto.
2377         (_mm512_mask_i64gather_epi64): Ditto.
2378         (_mm512_i32scatter_ps): Change __addr type to void*.
2379         (_mm512_mask_i32scatter_ps): Ditto.
2380         (_mm512_i32scatter_pd): Ditto.
2381         (_mm512_mask_i32scatter_pd): Ditto.
2382         (_mm512_i64scatter_ps): Ditto.
2383         (_mm512_mask_i64scatter_ps): Ditto.
2384         (_mm512_i64scatter_pd): Ditto.
2385         (_mm512_mask_i64scatter_pd): Ditto.
2386         (_mm512_i32scatter_epi32): Ditto.
2387         (_mm512_mask_i32scatter_epi32): Ditto.
2388         (_mm512_i32scatter_epi64): Ditto.
2389         (_mm512_mask_i32scatter_epi64): Ditto.
2390         (_mm512_i64scatter_epi32): Ditto.
2391         (_mm512_mask_i64scatter_epi32): Ditto.
2392         (_mm512_i64scatter_epi64): Ditto.
2393         (_mm512_mask_i64scatter_epi64): Ditto.
2394         * config/i386/avx512pfintrin.h
2395         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
2396         (_mm512_mask_prefetch_i32gather_ps): Ditto.
2397         (_mm512_mask_prefetch_i64gather_pd): Ditto.
2398         (_mm512_mask_prefetch_i64gather_ps): Ditto.
2399         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
2400         (_mm512_prefetch_i32scatter_ps): Ditto.
2401         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
2402         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
2403         (_mm512_prefetch_i64scatter_pd): Ditto.
2404         (_mm512_prefetch_i64scatter_ps): Ditto.
2405         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
2406         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
2407         * config/i386/avx512vlintrin.h
2408         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
2409         (_mm_mmask_i32gather_ps): Ditto.
2410         (_mm256_mmask_i32gather_pd): Ditto.
2411         (_mm_mmask_i32gather_pd): Ditto.
2412         (_mm256_mmask_i64gather_ps): Ditto.
2413         (_mm_mmask_i64gather_ps): Ditto.
2414         (_mm256_mmask_i64gather_pd): Ditto.
2415         (_mm_mmask_i64gather_pd): Ditto.
2416         (_mm256_mmask_i32gather_epi32): Ditto.
2417         (_mm_mmask_i32gather_epi32): Ditto.
2418         (_mm256_mmask_i32gather_epi64): Ditto.
2419         (_mm_mmask_i32gather_epi64): Ditto.
2420         (_mm256_mmask_i64gather_epi32): Ditto.
2421         (_mm_mmask_i64gather_epi32): Ditto.
2422         (_mm256_mmask_i64gather_epi64): Ditto.
2423         (_mm_mmask_i64gather_epi64): Ditto.
2424         (_mm256_i32scatter_ps): Change __addr type to void*.
2425         (_mm256_mask_i32scatter_ps): Ditto.
2426         (_mm_i32scatter_ps): Ditto.
2427         (_mm_mask_i32scatter_ps): Ditto.
2428         (_mm256_i32scatter_pd): Ditto.
2429         (_mm256_mask_i32scatter_pd): Ditto.
2430         (_mm_i32scatter_pd): Ditto.
2431         (_mm_mask_i32scatter_pd): Ditto.
2432         (_mm256_i64scatter_ps): Ditto.
2433         (_mm256_mask_i64scatter_ps): Ditto.
2434         (_mm_i64scatter_ps): Ditto.
2435         (_mm_mask_i64scatter_ps): Ditto.
2436         (_mm256_i64scatter_pd): Ditto.
2437         (_mm256_mask_i64scatter_pd): Ditto.
2438         (_mm_i64scatter_pd): Ditto.
2439         (_mm_mask_i64scatter_pd): Ditto.
2440         (_mm256_i32scatter_epi32): Ditto.
2441         (_mm256_mask_i32scatter_epi32): Ditto.
2442         (_mm_i32scatter_epi32): Ditto.
2443         (_mm_mask_i32scatter_epi32): Ditto.
2444         (_mm256_i32scatter_epi64): Ditto.
2445         (_mm256_mask_i32scatter_epi64): Ditto.
2446         (_mm_i32scatter_epi64): Ditto.
2447         (_mm_mask_i32scatter_epi64): Ditto.
2448         (_mm256_i64scatter_epi32): Ditto.
2449         (_mm256_mask_i64scatter_epi32): Ditto.
2450         (_mm_i64scatter_epi32): Ditto.
2451         (_mm_mask_i64scatter_epi32): Ditto.
2452         (_mm256_i64scatter_epi64): Ditto.
2453         (_mm256_mask_i64scatter_epi64): Ditto.
2454         (_mm_i64scatter_epi64): Ditto.
2455         (_mm_mask_i64scatter_epi64): Ditto.
2456         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
2457         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
2458         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
2459         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
2460         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
2461         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
2462         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
2463         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
2464         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
2465         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
2466         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
2467         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
2468         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
2469         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
2470         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
2471         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
2472         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
2473         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
2474         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
2475         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
2476         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
2477         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
2478         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
2479         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
2480         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
2481         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
2482         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
2483         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
2484         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
2485         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
2486         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
2487         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
2488         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
2489         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
2490         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
2491         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
2492         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
2493         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
2494         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
2495         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
2496         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
2497         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
2498         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
2499         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
2500         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
2501         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
2502         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
2503         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
2504         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
2505         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
2506         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
2507         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
2508         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
2509         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
2510         definitions accordingly.
2512 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
2513             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
2515         PR target/79079
2516         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
2517         gen_lowpart.
2519 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
2521         PR target/79058
2522         * ira-conflicts.c (ira_build_conflicts): Update total conflict
2523         hard regs for inner regno.
2525 2017-01-17  Martin Liska  <mliska@suse.cz>
2527         PR ipa/71207
2528         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
2529         assumption and add comment.
2531 2017-01-17  Nathan Sidwell  <nathan@acm.org>
2533         * ipa-visibility.c (localize_node): New function, broken out of ...
2534         (function_and_variable_visibility): ... here. Call it.
2536 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
2538         PR middle-end/77445
2539         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
2540         correctly set frequency of oudgoing edge.
2541         (duplicate_thread_path): Fix profile updating.
2543 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
2545         PR other/79046
2546         * configure.ac: Add GCC_BASE_VER.
2547         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
2548         version from BASE-VER file.
2549         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
2550         (gcc.o): Depend on $(BASEVER).
2551         * common.opt (dumpfullversion): New option.
2552         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
2553         * doc/invoke.texi: Document -dumpfullversion.
2554         * doc/install.texi: Document --with-gcc-major-version-only.
2555         * configure: Regenerated.
2557 2017-01-17  Richard Biener  <rguenther@suse.de>
2559         PR tree-optimization/71433
2560         * tree-vrp.c (register_new_assert_for): Merge same asserts
2561         on all incoming edges.
2562         (process_assert_insertions_for): Handle insertions at the
2563         beginning of BBs.
2565 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
2567         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
2568         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
2570 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
2572         PR target/78633
2573         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
2574         RTL sharing.
2576 2017-01-17  Alan Modra  <amodra@gmail.com>
2578         PR target/79066
2579         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
2580         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
2581         symbolic stack limit when pic.
2583 2017-01-16  Martin Sebor  <msebor@redhat.com>
2585         PR tree-optimization/78608
2586         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
2588 2017-01-16  Jeff Law  <law@redhat.com>
2590         Revert:
2591         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
2592         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
2593         for several include directories that may be relative to sysroot.
2594         * config/i386/x-mingw32 (gplus_includedir): Define.
2595         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
2596         (native_system_includedir): Likewise.
2597         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
2598         override if TARGET_SYSTEM_ROOT is defined.
2599         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
2601         PR tree-optimization/79090
2602         PR tree-optimization/33562
2603         PR tree-optimization/61912
2604         PR tree-optimization/77485
2605         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
2606         and computed trims into the dump file.
2608 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
2610         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
2612 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
2614         PR c/79089
2615         * gimplify.c (gimplify_init_constructor): If want_value and
2616         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
2617         fix.
2619         PR target/79080
2620         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
2621         sequence.  Formatting fixes.
2622         (doloop_optimize): Formatting fixes.
2624         PR driver/49726
2625         * gcc.c (debug_level_greater_than_spec_func): New function.
2626         (static_spec_functions): Add debug-level-gt spec function.
2627         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
2628         !g0.
2629         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
2630         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
2631         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
2632         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
2633         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
2634         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
2636 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
2638         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
2639         QImode fixups to general and mask registers only.
2641 2017-01-16  Carl Love  <cel@us.ibm.com>
2643         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
2644         for built-in functions
2645         vector signed char vec_nabs (vector signed char)
2646         vector signed short vec_nabs (vector signed short)
2647         vector signed int vec_nabs (vector signed int)
2648         vector signed long long vec_nabs (vector signed long long)
2649         vector float vec_nabs (vector float)
2650         vector double vec_nabs (vector double)
2651         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
2652         and NABS overload.
2653         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
2654         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
2655         * doc/extend.texi: Update the documentation file for the new built-in
2656         functions.
2658 2017-01-16  Martin Sebor  <msebor@redhat.com>
2660         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
2661         message.
2663 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2665         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
2666         UNSPEC_VSX__XXSPLTD to require special splat handling.
2668 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
2670         PR bootstrap/78616
2671         * system.h: Poison strndup.
2673 2017-01-16  Alan Modra  <amodra@gmail.com>
2675         PR target/79098
2676         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
2677         use a switch.
2679 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
2681         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
2683 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
2685         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
2686         call recog here.  Assert that INSN_CODE (insn) is non-negative.
2688 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
2690         PR target/72749
2691         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
2692         fallthrough.
2693         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
2694         in the currently scheduled RTL fragment.
2696 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
2698         PR rtl-optimization/78751
2699         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
2700         give up.
2702 2017-01-14  Jeff Law  <law@redhat.com>
2704         PR tree-optimization/79090
2705         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
2706         variable length stores.
2707         (compute_trims): Delete dead assignment to *trim_tail.
2708         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
2709         zero length.
2711 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
2713         PR rtl-optimization/78626
2714         PR rtl-optimization/78727
2715         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
2716         of a block, and split such blocks after everything else is finished.
2718 2017-01-14  Alan Modra  <amodra@gmail.com>
2720         PR target/72749
2721         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
2722         target legitimate_combined_insn.
2723         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
2724         (rs6000_legitimate_combined_insn): New function.
2725         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
2726         all uses.
2727         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
2728         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
2729         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
2731 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
2733         * doc/frontends.texi (G++ and GCC): Remove references to Java.
2735 2017-01-13  Jeff Law  <law@redhat.com>
2737         PR tree-optimization/33562
2738         PR tree-optimization/61912
2739         PR tree-optimization/77485
2740         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
2741         a statement.
2742         (delete_dead_assignment): Likewise.
2743         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
2744         statement to delete_dead_call and delete_dead_assignment.
2746 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
2748         PR c/78304
2749         * substring-locations.c (format_warning_va): Strengthen case 1 so
2750         that both endpoints of the substring must be within the format
2751         range for just the substring to be printed.
2753 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
2755         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
2756         * config/i386/i386.c (ix86_target_string): Add missing options
2757         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
2758         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
2759         flags_other and ix86_target_other to flags2_other.  Display unknown
2760         isa2 options.
2761         (ix86_valid_target_attribute_inner_p): Add missing options and
2762         reorder options by implied ISAs, as in ix86_target_string.
2764 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
2766         * hash-table.h (hash_table::too_empty_p): New function.
2767         (hash_table::expand): Use it.
2768         (hash_table::traverse): Likewise.
2769         (hash_table::empty_slot): Use sizeof (value_type) instead of
2770         sizeof (PTR) to convert bytes to elements.  Shrink the table
2771         if the current size is excessive for the current number of
2772         elements.
2774 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
2776         * ira-costs.c (record_reg_classes): Break from the inner loop
2777         early once alt_fail is known to be true.  Update outer loop
2778         handling accordingly.
2780 2017-01-13  Jeff Law  <law@redhat.com>
2782         * tree-ssa-dse.c (decrement_count): New function.
2783         (increment_start_addr, maybe_trim_memstar_call): Likewise.
2784         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
2785         when we know the partially dead statement is a mem* function.
2787         PR tree-optimization/61912
2788         PR tree-optimization/77485
2789         * tree-ssa-dse.c: Include expr.h.
2790         (maybe_trim_constructor_store): New function.
2791         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
2793         PR tree-optimization/33562
2794         PR tree-optimization/61912
2795         PR tree-optimization/77485
2796         * doc/invoke.texi: Document new dse-max-object-size param.
2797         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
2798         * tree-ssa-dse.c: Include params.h.
2799         (dse_store_status): New enum.
2800         (initialize_ao_ref_for_dse): New, partially extracted from
2801         dse_optimize_stmt.
2802         (valid_ao_ref_for_dse, normalize_ref): New.
2803         (setup_live_bytes_from_ref, compute_trims): Likewise.
2804         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
2805         (maybe_trim_partially_dead_store): Likewise.
2806         (maybe_trim_complex_store): Likewise.
2807         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
2808         Track what bytes live from the original store.  Return tri-state
2809         for dead, partially dead or live.
2810         (dse_dom_walker): Add constructor, destructor and new private members.
2811         (delete_dead_call, delete_dead_assignment): New extracted from
2812         dse_optimize_stmt.
2813         (dse_optimize_stmt): Make a member of dse_dom_walker.
2814         Use initialize_ao_ref_for_dse.
2816         PR tree-optimization/33562
2817         PR tree-optimization/61912
2818         PR tree-optimization/77485
2819         * sbitmap.h (bitmap_count_bits): Prototype.
2820         (bitmap_clear_range, bitmap_set_range): Likewise.
2821         * sbitmap.c (bitmap_clear_range): New function.
2822         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
2824 2017-01-13  Martin Liska  <mliska@suse.cz>
2826         PR ipa/79043
2827         * function.c (set_cfun): Add new argument force.
2828         * function.h (set_cfun): Likewise.
2829         * ipa-inline-transform.c (inline_call): Use the function when
2830         strict alising from is dropped for function we inline to.
2832 2017-01-13  Richard Biener  <rguenther@suse.de>
2834         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
2835         for dumping GIMPLE INTEGER_CSTs.
2837 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2839         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
2840         to 201112L since C++17.
2842 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
2844         PR sanitizer/78887
2845         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
2846         if -fsanitize=kernel-address is present.
2848 2017-01-13  Richard Biener  <rguenther@suse.de>
2850         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
2851         as _Literal ( type ) number in case usual suffixes do not
2852         preserve all information.
2854 2017-01-13  Richard Biener  <rguenther@suse.de>
2856         PR tree-optimization/77283
2857         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
2858         and ssa-iterators.h.
2859         (is_feasible_trace): Implement a cost model based on joiner
2860         PHI node uses.
2862 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
2864         PR target/79004
2865         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
2866         char or short to __float128/_Float128 directly.
2868 2017-01-12  Martin Sebor  <msebor@redhat.com>
2870         to -Wformat-overflow.
2871         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
2872         (min_bytes_remaining): Same.
2873         (get_string_length): Same.
2874         (format_string): Same.
2875         (format_directive): Same.
2876         (add_bytes): Same.
2877         (pass_sprintf_length::handle_gimple_call): Same.
2879 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
2881         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
2882         info.nowrite calls with no lhs that can't throw.  Return bool
2883         whether gsi_remove has been called or not.
2884         (pass_sprintf_length::handle_gimple_call): Return bool whether
2885         try_substitute_return_value called gsi_remove.  Formatting fix.
2886         (pass_sprintf_length::execute): Don't use gsi_remove if
2887         handle_gimple_call returned true.
2889         PR bootstrap/79069
2890         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
2891         be removed due to side-effects, don't remove following barrier nor
2892         turn the successor edge into fallthru edge.
2894 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2896         PR target/79044
2897         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
2898         element-reversing loads and stores as not swappable.
2900 2017-01-12  Nathan Sidwell  <nathan@acm.org>
2901             Nicolai Stange  <nicstange@gmail.com>
2903         * combine.c (try_combine): Don't ignore result of overlap checking
2904         loop.  Combine overlap & asm check into single loop.
2906 2017-01-12  Richard Biener  <rguenther@suse.de>
2908         * tree-pretty-print.c (dump_generic_node): Provide -gimple
2909         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
2911 2017-01-12  Richard Biener  <rguenther@suse.de>
2913         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
2914         and TS_TARGET_OPTION directly derive from TS_BASE.
2915         * tree-core.h (tree_optimization_option): Derive from tree_base.
2916         (tree_target_option): Likewise.
2918 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
2920         * config/i386/i386.c (memory_address_length): Increase len
2921         only when rip_relative_addr_p returns false.
2923 2017-01-11  Julia Koval  <julia.koval@intel.com>
2925         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
2926         (OPTION_MASK_ISA_SGX_SET): New.
2927         (ix86_handle_option): Handle OPT_msgx.
2928         * config.gcc: Added sgxintrin.h.
2929         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
2930         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
2931         * config/i386/i386.c (ix86_target_string): Add -msgx.
2932         (PTA_SGX): New.
2933         (ix86_option_override_internal): Handle new options.
2934         (ix86_valid_target_attribute_inner_p): Add sgx.
2935         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
2936         * config/i386/i386.opt: Add msgx.
2937         * config/i386/sgxintrin.h: New file.
2938         * config/i386/x86intrin.h: Add sgxintrin.h.
2940 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
2942         PR c++/71537
2943         * fold-const.c (maybe_nonzero_address): Return 1 for function
2944         local objects.
2945         (tree_single_nonzero_warnv_p): Don't handle function local objects
2946         here.
2948         PR c++/72813
2949         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
2950         of c-header.
2952 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
2954         PR driver/78877
2955         * opts.c: Include "spellcheck.h"
2956         (struct string_fragment): New struct.
2957         (struct edit_distance_traits<const string_fragment &>): New
2958         struct.
2959         (get_closest_sanitizer_option): New function.
2960         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
2962 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
2964         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
2965         by 12.
2966         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
2967         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
2968         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
2969         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
2970         for initial die_offset if dwarf_split_debug_info.
2971         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
2972         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
2973         fields.
2974         (output_skeleton_debug_sections): Formatting fix.  Use
2975         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
2976         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
2978 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
2980         * config/arm/cortex-a53.md: Add bypasses for
2981         cortex_a53_r2f_cvt.
2982         (cortex_a53_r2f): Only use for transfers.
2983         (cortex_a53_f2r): Likewise.
2984         (cortex_a53_r2f_cvt): Add reservation for conversions.
2985         (cortex_a53_f2r_cvt): Likewise.
2987 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
2989         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
2990         to all inlined functions, change static to extern.
2992 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
2994         PR target/78253
2995         * config/arm/arm.c (legitimize_pic_address): Handle reference to
2996         weak symbol.
2997         (arm_assemble_integer): Likewise.
2999 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
3001         * config.gcc: Use new awk script to check CPU, FPU and architecture
3002         parameters for --with-... options.
3003         * config/arm/parsecpu.awk: New file
3004         * config/arm/arm-cpus.in: New file.
3005         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
3006         files.
3007         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
3008         files.
3009         * config/arm/t-arm: Update dependency rules.
3010         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
3011         of processing .def files.
3012         * config/arm/genopt.sh: Deleted.
3013         * config/arm/gentune.sh: Deleted.
3014         * config/arm/arm-cores.def: Deleted.
3015         * config/arm/arm-arches.def: Deleted.
3016         * config/arm/arm-fpus.def: Deleted.
3017         * config/arm/arm-tune.md: Regenerated.
3018         * config/arm/arm-tables.opt: Regenerated.
3019         * config/arm/arm-cpu.h: New generated file.
3020         * config/arm/arm-cpu-data.h: New generated file.
3021         * config/arm/arm-cpu-cdata.h: New generated file.
3023 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
3025         PR lto/79042
3026         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
3027         bit.
3028         (input_varpool_node): Unpack dynamically_initialized bit.
3030 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
3032         PR rtl-optimization/79032
3033         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
3034         the alignment of the adjusted memory reference against that of MODE,
3035         instead of the alignment of the original memory reference.
3037 2017-01-11  Martin Jambor  <mjambor@suse.cz>
3039         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
3040         test.
3041         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
3042         decorated functions.
3044 2017-01-11  Richard Biener  <rguenther@suse.de>
3046         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
3047         set range/nonnull info for PHI results.  Do not set it on
3048         stmts marked for removal.
3050 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
3052         * expr.c (store_field): In the bitfield case, fetch the return value
3053         from the registers before applying a single big-endian adjustment.
3054         Always do a final load for a BLKmode value not larger than a word.
3056 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
3058         PR c++/77949
3059         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
3060         that we correctly handle column numbers greater than
3061         LINE_MAP_MAX_COLUMN_NUMBER.
3063 2017-01-10  Martin Sebor  <msebor@redhat.com>
3065         PR middle-end/78245
3066         * gimple-ssa-sprintf.c (get_destination_size): Call
3067         {init,fini}object_sizes.
3068         * tree-object-size.c (addr_object_size): Adjust.
3069         (pass_through_call): Adjust.
3070         (pass_object_sizes::execute): Adjust.
3071         * tree-object-size.h (fini_object_sizes): Declare.
3073 2017-01-10  Martin Sebor  <msebor@redhat.com>
3075         PR tree-optimization/78775
3076         * builtins.c (get_size_range): Move...
3077         * calls.c: ...to here.
3078         (alloc_max_size): Accept zero argument.
3079         (operand_signed_p): Remove.
3080         (maybe_warn_alloc_args_overflow): Call get_size_range.
3081         * calls.h (get_size_range): Declare.
3083 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
3085         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
3086         from TI's devices.csv file as of September 2016.
3087         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
3089 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
3091         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
3092         * doc/invoke.texi: Likewise.
3093         * doc/md.texi: Likewise.
3094         * doc/objc.texi: Likewise.
3096 2017-01-10  Joshua Conner  <joshconner@google.com>
3098         * config/arm/fuchsia-elf.h: New file.
3099         * config/fuchsia.h: New file.
3100         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
3101         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
3102         targets.
3103         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
3105 2016-01-10  Richard Biener  <rguenther@suse.de>
3107         PR tree-optimization/79034
3108         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
3109         Propagate out degenerate PHIs in the joiner.
3111 2017-01-10  Martin Liska  <mliska@suse.cz>
3113         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
3114         (sort_congruence_classes_by_decl_uid): Likewise.
3115         (sort_congruence_class_groups_by_decl_uid): Likewise.
3116         (sem_item_optimizer::merge_classes): Sort class, groups in these
3117         classes and members in the groups by DECL_UID of declarations.
3118         This would make merge operations stable.
3120 2017-01-10  Martin Liska  <mliska@suse.cz>
3122         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
3123         usage of m_classes_vec.
3124         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
3125         (sem_item_optimizer::get_group_by_hash): Likewise.
3126         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
3127         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
3128         (sem_item_optimizer::verify_classes): Likewise.
3129         (sem_item_optimizer::process_cong_reduction): Likewise.
3130         (sem_item_optimizer::dump_cong_classes): Likewise.
3131         (sem_item_optimizer::merge_classes): Likewise.
3132         * ipa-icf.h (congruence_class_hash): Rename from
3133         congruence_class_group_hash.  Remove declaration of m_classes_vec.
3135 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
3137         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
3138         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
3139         * config.gcc: Add avx512vpopcntdqintrin.h.
3140         * config/i386/avx512vpopcntdqintrin.h: New.
3141         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
3142         * config/i386/i386-builtin-types.def: Add new types.
3143         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
3144         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
3145         __builtin_ia32_vpopcountq_v8di_mask): New.
3146         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3147         __AVX512VPOPCNTDQ__.
3148         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
3149         (PTA_AVX512VPOPCNTDQ): Define.
3150         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
3151         TARGET_AVX512VPOPCNTDQ_P): Define.
3152         * config/i386/i386.opt: Add mavx512vpopcntdq.
3153         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
3154         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
3156 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
3158         PR middle-end/77484
3159         * predict.def (PRED_CALL): Set to 67.
3161 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
3163         * expr.c (store_field): In the bitfield case, if the value comes from
3164         a function call and is of an aggregate type returned in registers, do
3165         not modify the field mode; extract the value in all cases if the mode
3166         is BLKmode and the size is not larger than a word.
3168 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
3170         PR target/71017
3171         * config/i386/cpuid.h: Fix undefined behavior.
3173 2017-01-04  Jeff Law  <law@redhat.com>
3175         PR tree-optimization/79007
3176         PR tree-optimization/67955
3177         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
3178         conservative for pt.null when flag_non_call_exceptions is on.
3180 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
3182         PR translation/79019
3183         PR translation/79020
3184         * params.def (PARAM_INLINE_MIN_SPEEDUP,
3185         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
3186         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
3187         in descriptions.
3188         * config/avr/avr.opt (maccumulate-args): Likewise.
3189         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
3190         * common.opt (freport-bug): Likewise.
3191         * cif-code.def (CIF_FINAL_ERROR): Likewise.
3192         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
3193         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
3194         translatable string.
3195         * config/i386/i386.c (function_value_32): Likewise.
3196         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
3197         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
3198         Likewise.
3199         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
3200         * common/config/msp430/msp430-common.c (msp430_handle_option):
3201         Likewise.
3202         * symtab.c (symtab_node::verify_base): Likewise.
3203         * opts.c (set_debug_level): Likewise.
3204         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
3205         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
3206         missing whitespace to translatable strings.
3207         * config/avr/avr.md (bswapsi2): Fix typo in comment.
3208         * config/sh/superh.h: Likewise.
3209         * config/i386/xopintrin.h: Likewise.
3210         * config/i386/znver1.md: Likewise.
3211         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
3212         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
3213         * double-int.h (struct double_int): Likewise.
3214         * double-int.c (div_and_round_double): Likewise.
3215         * wide-int.cc: Likewise.
3216         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
3217         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
3218         * cfgcleanup.c (crossjumps_occured): Renamed to ...
3219         (crossjumps_occurred): ... this.
3220         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
3221         Adjust all uses.
3223         PR tree-optimization/78899
3224         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
3225         returning bool return struct loop *, NULL for failure and the new
3226         loop on success.
3227         (versionable_outer_loop_p): Don't version outer loop if it has
3228         dont_vectorized bit set.
3229         (tree_if_conversion): When versioning outer loop, ensure
3230         tree_if_conversion is performed also on the inner loop of the
3231         non-vectorizable outer loop copy.
3232         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
3233         LOOP_VECTORIZED in inner loop of the scalar outer loop and
3234         prevent vectorization of it.
3235         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
3236         the outer loop vectorization of the non-scalar version is attempted
3237         before vectorization of the inner loop in scalar version.  If
3238         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
3239         vectorization of its inner loop.
3240         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
3241         has 2 inner loops, rename also on edges from bb whose single pred
3242         is outer_loop->header.  Fix typo in function comment.
3244 2017-01-09  Martin Sebor  <msebor@redhat.com>
3246         PR bootstrap/79033
3247         * asan.c (asan_emit_stack_protection): Increase local buffer size
3248         to avoid snprintf truncation warning.
3250 2017-01-09  Andrew Pinski  <apinski@cavium.com>
3252         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
3253         to reference thunderx2t99 for the tuning structure
3254         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
3255         Rename to ...
3256         (thunderx2t99_extra_costs): This.
3257         * config/aarch64/aarch64-tune.md: Regenerate.
3258         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
3259         (vulcan_addrcost_table): This.
3260         (vulcan_regmove_cost): Rename to ...
3261         (thunderx2t99_regmove_cost): This.
3262         (vulcan_vector_cost): Rename to ...
3263         (thunderx2t99_vector_cost): this.
3264         (vulcan_branch_cost): Rename to ...
3265         (thunderx2t99_branch_cost): This.
3266         (vulcan_tunings): Rename to ...
3267         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
3268         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
3270 2017-01-09  Martin Jambor  <mjambor@suse.cz>
3272         PR ipa/78365
3273         PR ipa/78599
3274         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
3275         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
3276         (propagate_vr_accross_jump_function): Use the above function for all
3277         value range computations for pass-through jump functions and type
3278         converasion from explicit value range values.
3279         (ipcp_propagate_stage): Do not attempt to deduce types of formal
3280         parameters from TYPE_ARG_TYPES.
3281         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
3282         (ipa_write_node_info): Stream type of the actual argument.
3283         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
3285 2017-01-09  Martin Liska  <mliska@suse.cz>
3287         PR pch/78970
3288         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
3289         (lookup_compiler): Do not show error message with have_E.
3291 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
3293         PR tree-optimization/78938
3294         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
3295         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
3296         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
3297         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
3298         fixes.
3300 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3302         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
3303         is const0_rtx.
3305 2017-01-09  Richard Biener  <rguenther@suse.de>
3307         PR tree-optimization/78997
3308         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
3309         name condition properly.
3311 2017-01-09  Richard Biener  <rguenther@suse.de>
3313         PR debug/79000
3314         * dwarf2out.c (is_cxx): New overload with context.
3315         (is_naming_typedef_decl): Use it.
3317 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
3319         * invoke.texi (Option Summary): Correct spacing in option lists
3320         and add line breaks to fix over-long lines.
3322 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
3324         PR middle-end/17660
3326         * extend.texi (Common Variable Attributes): Add xref to GCC
3327         Internals manual to explain mode attribute keywords.
3329 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
3331         PR other/16519
3332         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
3333         and Preprocessor Options.
3334         (Options for Linking): Document -pthread here....
3335         (RS/6000 and PowerPC Options): ...not here.
3336         (Solaris 2 Options): ...or here.
3337         * doc/cppopts.texi: Document -pthread.
3339 2017-01-08  Martin Sebor  <msebor@redhat.com>
3341         PR middle-end/77708
3342         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
3343         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
3344         New member functions.
3345         (format_directive): Used them.
3346         (add_bytes): Same.
3347         (pass_sprintf_length::handle_gimple_call): Same.
3348         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
3349         to avoid truncation for any argument.
3350         (extract_affine_mul): Same.
3351         * tree.c (get_file_function_name): Same.
3353 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
3355         PR middle-end/77484
3356         * predict.def (PRED_INDIR_CALL): Set to 86.
3358 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
3360         PR preprocessor/54124
3361         * doc/cppopts.texi: Reformat -d subtable to list the full name
3362         of the options.  Add cross-reference to the docs for the general
3363         compiler -d options.
3364         * doc/invoke.texi (Developer Options): Add cross-reference to the
3365         preprocessor-specific -d option documentation.
3367 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
3369         PR preprocessor/13498
3370         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
3371         redudant material, and reflect new command-line options.
3372         (System Headers): Likewise.
3374 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
3376         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
3377         -isystem, and -idirafter.  Copy-edit.
3378         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
3379         default for -ftrack-macro-expansion.  Delete obsolete and
3380         badly-formatted implementation details about -fdebug-cpp output.
3381         * doc/cppwarnopts.texi: Copy-edit.
3383 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
3385         PR c++/72803
3386         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
3387         that the transition from a max line width >= 1<<10 to narrower
3388         lines works correctly.
3390 2017-01-07  Alexandre Oliva <aoliva@redhat.com>
3392         * doc/options.texi (PerFunction): New.
3393         * opt-functions.awk (switch_flags): Map both Optimization and
3394         PerFunction to CL_OPTIMIZATION.
3395         * opth-gen.awk: Test for PerFunction flag along with
3396         Optimization.
3397         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
3398         it only when the latter is present.  Skip those that don't in
3399         the hash function generator.
3400         * common.opt (fvar-tracking): Mark as PerFunction instead of
3401         Optimization.
3402         (fvar-tracking-assignments): Likewise.
3403         (fvar-tracking-assignments-toggle): Likewise.
3404         (fvar-tracking-uninit): Likewise.
3406 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
3408         PR translation/79018
3409         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
3410         the and store.
3412 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
3414         PR target/57583
3415         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
3416         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
3417         TARGET_LONG_JUMP_TABLE_OFFSETS.
3418         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
3419         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
3420         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
3421         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
3422         * config/m68k/m68k.md (tablejump expander): Likewise.
3423         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
3424         TARGET_LONG_JUMP_TABLE_OFFSETS.
3425         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
3426         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
3428 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
3429             David Holsgrove <david.holsgrove@xilinx.com>
3431         * common/config/microblaze/microblaze-common.c
3432         (TARGET_EXCEPT_UNWIND_INFO): Remove.
3433         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
3434         New prototype.
3435         * config/microblaze/microblaze.c (microblaze_must_save_register)
3436         (microblaze_expand_epilogue, microblaze_return_addr): Handle
3437         calls_eh_return.
3438         (microblaze_eh_return): New function.
3439         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
3440         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
3441         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
3442         * config/microblaze/microblaze.md (eh_return): New pattern.
3444 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
3446         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
3447         GCC_DIAGNOSTIC_STRINGIFY): Define.
3449         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
3451 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
3453         * config/arm/arm.md (<mcrr>): New.
3454         (<mrrc>): New.
3455         * config/arm/arm.c (arm_arch5te): New.
3456         (arm_option_override): Set arm_arch5te.
3457         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
3458         and mrrc2.
3459         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
3460         (arm_mcrr_qualifiers): ... this. New.
3461         (MRRC_QUALIFIERS): Define to...
3462         (arm_mrrc_qualifiers): ... this. New.
3463         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
3464         __arm_mrrc2): New.
3465         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
3466         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
3467         (MRRCI, mrrc, MRRC): New.
3468         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
3469         VUNSPEC_MRRC2): New.
3471 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
3473         * config/arm/arm.md (<mcr>): New.
3474         (<mrc>): New.
3475         * config/arm/arm.c (arm_coproc_builtin_available): Add
3476         support for mcr, mrc, mcr2 and mrc2.
3477         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
3478         (arm_mcr_qualifiers): ... this. New.
3479         (MRC_QUALIFIERS): Define to ...
3480         (arm_mrc_qualifiers): ... this. New.
3481         (MCR_QUALIFIERS): Define to ...
3482         (arm_mcr_qualifiers): ... this. New.
3483         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
3484         __arm_mrc2): New.
3485         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
3486         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
3487         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
3488         VUNSPEC_MRC2): New.
3490 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
3492         * config/arm/arm.md (*ldc): New.
3493         (*stc): New.
3494         (<ldc>): New.
3495         (<stc>): New.
3496         * config/arm/arm.c (arm_coproc_builtin_available): Add
3497         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
3498         (arm_coproc_ldc_stc_legitimate_address): New.
3499         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
3500         'qualifier_const_pointer'.
3501         (LDC_QUALIFIERS): Define to...
3502         (arm_ldc_qualifiers): ... this. New.
3503         (STC_QUALIFIERS): Define to...
3504         (arm_stc_qualifiers): ... this. New.
3505         * config/arm/arm-protos.h
3506         (arm_coproc_ldc_stc_legitimate_address): New.
3507         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
3508         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
3509         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
3510         stc2, stcl, stc2l): New.
3511         * config/arm/constraints.md (Uz): New.
3512         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
3513         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
3514         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
3515         VUNSPEC_STC2L): New.
3517 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
3519         * config/arm/arm.md (<cdp>): New.
3520         * config/arm/arm.c (neon_const_bounds): Rename this ...
3521         (arm_const_bounds): ... this.
3522         (arm_coproc_builtin_available): New.
3523         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
3524         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
3525         (CDP_QUALIFIERS): Define to...
3526         (arm_cdp_qualifiers): ... this. New.
3527         (void_UP): Define.
3528         (arm_expand_builtin_args): Add case for 6 arguments.
3529         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
3530         (arm_const_bounds): ... this.
3531         (arm_coproc_builtin_available): New.
3532         * config/arm/arm_acle.h (__arm_cdp): New.
3533         (__arm_cdp2): New.
3534         * config/arm/arm_acle_builtins.def (cdp): New.
3535         (cdp2): New.
3536         * config/arm/iterators.md (CDPI,CDP,cdp): New.
3537         * config/arm/neon.md: Rename all 'neon_const_bounds' to
3538         'arm_const_bounds'.
3539         * config/arm/types.md (coproc): New.
3540         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
3541         * gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
3542         * gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
3543         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
3545 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
3547         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
3548         (UBINOP_QUALIFIERS): New.
3549         (si_UP): Define.
3550         (acle_builtin_data): New. Change comment.
3551         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
3552         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
3553         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
3554         arm_acle_builtins.def.
3555         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
3556         (arm_init_acle_builtins): New.
3557         (CRC32_BUILTIN): Remove.
3558         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
3559         crc32cb, crc32ch and crc32cw.
3560         (arm_init_crc32_builtins): Remove.
3561         (arm_init_builtins): Use arm_init_acle_builtins rather
3562         than arm_init_crc32_builtins.
3563         (arm_expand_acle_builtin): New.
3564         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
3565         * config/arm/arm_acle_builtins.def: New.
3567 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
3569         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
3570         (arm_builtin_datum): ... this.
3571         (arm_init_neon_builtin): Rename to ...
3572         (arm_init_builtin): ... this. Add a new parameters PREFIX
3573         and USE_SIG_IN_NAME.
3574         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
3575         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
3576         'arm_builtin_datum'.
3577         (arm_init_vfp_builtins): Likewise.
3578         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
3579         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
3580         (arm_expand_neon_args): Rename to ...
3581         (arm_expand_builtin_args): ... this. Rename builtin_arg
3582         enum values and differentiate between ARG_BUILTIN_MEMORY
3583         and ARG_BUILTIN_NEON_MEMORY.
3584         (arm_expand_neon_builtin_1): Rename to ...
3585         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
3586         values, arm_expand_builtin_args and add bool parameter NEON.
3587         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
3588         (arm_expand_vfp_builtin): Likewise.
3589         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
3591 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
3593         PR middle-end/77484
3594         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
3595         * predict.c (tree_estimate_probability_bb): Reverse direction of
3596         polymorphic call predictor.
3598 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
3600         * passes.c (execute_one_pass): Split out pass-skipping logic into...
3601         (determine_pass_name_match): ...this new function and...
3602         (should_skip_pass_p): ...this new function.
3604 2017-01-06  Nathan Sidwell  <nathan@acm.org>
3606         * ipa-visibility.c (function_and_variable_visibility): Reformat
3607         comments and long lines.  Remove extrneous if.
3608         * symtab.c (symtab_node::make_decl_local): Fix code format.
3609         (symtab_node::set_section_for_node): Fix comment typo.
3611 2017-01-06  Martin Liska  <mliska@suse.cz>
3613         PR bootstrap/79003
3614         * lra-constraints.c: Rename invariant to lra_invariant.
3615         * predict.c (set_even_probabilities): Initialize e to NULL.
3617 2017-01-05  Martin Sebor  <msebor@redhat.com>
3619         PR tree-optimization/78910
3620         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
3621         (format_integer): Correct off-by-one error in the handling
3622         of precision with negative numbers in signed conversions..
3624 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
3626         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
3628 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
3630         PR tree-optimization/71016
3631         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
3632         factor_out_conditional_conversion.  Formatting fix.
3633         (factor_out_conditional_conversion): Add cond_stmt argument.
3634         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
3635         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
3636         Formatting fix.
3638 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
3640         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
3641         read-rtl-function.o, and selftest-rtl.o.
3642         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
3643         (selftest::aarch64_test_loading_full_dump): New function.
3644         (selftest::aarch64_run_selftests): New function.
3645         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
3646         selftest::aarch64_run_selftests.
3647         * config/i386/i386.c
3648         (selftest::ix86_test_loading_dump_fragment_1): New function.
3649         (selftest::ix86_test_loading_call_insn): New function.
3650         (selftest::ix86_test_loading_full_dump): New function.
3651         (selftest::ix86_test_loading_unspec): New function.
3652         (selftest::ix86_run_selftests): Call the new functions.
3653         * emit-rtl.c (maybe_set_max_label_num): New function.
3654         * emit-rtl.h (maybe_set_max_label_num): New decl.
3655         * function.c (instantiate_decls): Guard call to
3656         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
3657         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
3658         "static".
3659         * gensupport.c (gen_reader::gen_reader): Pass "false"
3660         for new "compact" param of rtx_reader.
3661         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
3662         rather than an empty string for NULL strings.
3663         * read-md.c: Potentially include config.h rather than bconfig.h.
3664         Wrap include of errors.h with #ifdef GENERATOR_FILE.
3665         (have_error): New global, copied from errors.c.
3666         (md_reader::read_name): Rename to...
3667         (md_reader::read_name_1): ...this, adding "out_loc" param,
3668         and converting "missing name or number" to returning false, rather
3669         than failing.
3670         (md_reader::read_name): Reimplement in terms of read_name_1.
3671         (md_reader::read_name_or_nil): New function.
3672         (md_reader::read_string): Handle "(nil)" by returning NULL.
3673         (md_reader::md_reader): Add new param "compact".
3674         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
3675         (md_reader::read_file): New method.
3676         * read-md.h (md_reader::md_reader): Add new param "compact".
3677         (md_reader::read_file): New method.
3678         (md_reader::is_compact): New accessor.
3679         (md_reader::read_name): Convert return type from void to file_location.
3680         (md_reader::read_name_or_nil): New decl.
3681         (md_reader::read_name_1): New decl.
3682         (md_reader::m_compact): New field.
3683         (noop_reader::noop_reader): Pass "false" for new "compact" param
3684         of rtx_reader.
3685         (rtx_reader::rtx_reader): Add new "compact" param.
3686         (rtx_reader::read_rtx_operand): Make virtual and convert return
3687         type from void to rtx.
3688         (rtx_reader::read_until): New decl.
3689         (rtx_reader::handle_any_trailing_information): New virtual function.
3690         (rtx_reader::postprocess): New virtual function.
3691         (rtx_reader::finalize_string): New virtual function.
3692         (rtx_reader::m_in_call_function_usage): New field.
3693         (rtx_reader::m_reuse_rtx_by_id): New field.
3694         * read-rtl-function.c: New file.
3695         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
3696         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
3697         (selftest::verify_three_block_rtl_cfg): New decl.
3698         * read-rtl-function.h: New file.
3699         * read-rtl.c: Potentially include config.h rather than bconfig.h.
3700         For host, include function.h, memmodel.h, and emit-rtl.h.
3701         (one_time_initialization): New function.
3702         (struct compact_insn_name): New struct.
3703         (compact_insn_names): New array.
3704         (find_code): Handle insn codes in compact dumps.
3705         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
3706         (bind_subst_iter_and_attr): Likewise.
3707         (add_condition_to_string): Likewise.
3708         (add_condition_to_rtx): Likewise.
3709         (apply_attribute_uses): Likewise.
3710         (add_current_iterators): Likewise.
3711         (apply_iterators): Likewise.
3712         (initialize_iterators): Guard usage of apply_subst_iterator with
3713         #ifdef GENERATOR_FILE.
3714         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
3715         (md_reader::read_mapping): Likewise.
3716         (add_define_attr_for_define_subst): Likewise.
3717         (add_define_subst_attr): Likewise.
3718         (read_subst_mapping): Likewise.
3719         (check_code_iterator): Likewise.
3720         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
3721         logic to...
3722         (one_time_initialization): New function.
3723         (rtx_reader::read_until): New method.
3724         (read_flags): New function.
3725         (parse_reg_note_name): New function.
3726         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
3727         Handle reuse_rtx ids.
3728         Wrap iterator lookup within #ifdef GENERATOR_FILE.
3729         Add parsing support for RTL dumps, mirroring the special-cases in
3730         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
3731         values, and calling handle_any_trailing_information.
3732         (rtx_reader::read_rtx_operand): Convert return type from void
3733         to rtx, returning return_rtx.  Handle case 'e'.  Call
3734         finalize_string on XSTR and XTMPL fields.
3735         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
3736          "(nil)" values were omitted.  Call the postprocess vfunc on the
3737         return_rtx.
3738         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
3739         class ctor.  Initialize m_in_call_function_usage.  Call
3740         one_time_initialization.
3741         * rtl-tests.c (selftest::test_uncond_jump): Call
3742         set_new_first_and_last_insn.
3743         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
3744         * selftest-rtl.c: New file.
3745         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
3746         (selftest::get_insn_by_uid): New decl.
3747         * selftest-run-tests.c (selftest::run_tests): Call
3748         read_rtl_function_c_tests.
3749         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
3750         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
3751         dumps.
3753 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
3755         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
3756         operands in a special way.  Assert that pos+len <= mode precision.
3758 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
3760         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
3761         3 argument Alias with unlimited for the negative form.
3762         (fno-vect-cost-model): Removed.
3764 2017-01-05  Martin Liska  <mliska@suse.cz>
3766         * hsa-gen.c (gen_hsa_divmod): New function.
3767         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
3769 2017-01-05  Martin Liska  <mliska@suse.cz>
3771         PR pch/78970
3772         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
3773         header.
3775 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3777         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
3778         small constant length operands.
3780 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3782         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
3783         between loop iterations.
3785 2017-01-05  Martin Liska  <mliska@suse.cz>
3787         PR sanitizer/78815
3788         * gimplify.c (gimplify_decl_expr): Compare to
3789         asan_poisoned_variables instread of checking flags.
3790         (gimplify_target_expr): Likewise.
3791         (gimplify_expr): Likewise.
3792         (gimplify_function_tree): Conditionally initialize
3793         asan_poisoned_variables.
3795 2017-01-04  Jeff Law  <law@redhat.com>
3797         PR tree-optimizatin/78812
3798         * rtl.h (contains_mem_rtx_p): Prototype.
3799         * ifcvt.c (containts_mem_rtx_p): Move from here to...
3800         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
3801         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
3802         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
3803         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
3805 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
3807         * input.c (assert_char_at_range): Default-initialize actual_range.
3809 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
3811         * df-scan.c (df_ref_create_structure): Make regno unsigned,
3812         to match the caller.
3814 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
3816         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
3817         insns after final jump in test to emit dummy move.
3819 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
3821         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
3822         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
3824 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
3826         * multiple_target.c (create_dispatcher_calls): Init e_next.
3827         * tree-ssa-loop-split.c (split_loop): Init border.
3828         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
3829         scalar_type.
3831 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
3833         PR target/71977
3834         PR target/70568
3835         PR target/78823
3836         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
3837         (altivec_register_operand): Do not return true if the operand
3838         contains a SUBREG mixing SImode and SFmode.
3839         (vsx_register_operand): Likewise.
3840         (vsx_reg_sfsubreg_ok): New predicate.
3841         (vfloat_operand): Do not return true if the operand contains a
3842         SUBREG mixing SImode and SFmode.
3843         (vint_operand): Likewise.
3844         (vlogical_operand): Likewise.
3845         (gpc_reg_operand): Likewise.
3846         (int_reg_operand): Likewise.
3847         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
3848         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
3849         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
3850         SImode and SFmode.
3851         (rs6000_emit_move_si_sf_subreg): New helper function.
3852         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
3853         fixup SUBREGs involving SImode and SFmode.
3854         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
3855         numbers for the new peephole2 optimization.
3856         (peephole2 for SFmode unions): New peephole2 to optimize cases in
3857         the GLIBC math library that do AND/IOR/XOR operations on single
3858         precision floating point.
3859         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
3860         target macros to say whether we need to avoid SUBREGs mixing
3861         SImode and SFmode.
3862         (TARGET_ALLOW_SF_SUBREG): Likewise.
3863         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
3864         (UNSPEC_SI_FROM_SF): Likewise.
3865         (iorxor): Change spacing.
3866         (and_ior_xor): New iterator for AND, IOR, and XOR.
3867         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
3868         (movdi_from_sf_zero_ext): Likewise.
3869         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
3870         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
3871         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
3872         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
3873         (fms<mode>4): Likewise.
3874         (fnma<mode>4): Likewise.
3875         (fnms<mode>4): Likewise.
3876         (nfma<mode>4): Likewise.
3877         (nfms<mode>4): Likewise.
3879 2017-01-04  Marek Polacek  <polacek@redhat.com>
3881         PR c++/64767
3882         * doc/invoke.texi: Document -Wpointer-compare.
3884 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
3886         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
3887         RejectNegative.
3889         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
3890         descriptions for -gdwarf-5 and emit them as uleb128 instead of
3891         2-byte data.
3893 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3895         PR target/78056
3896         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
3897         documentation of the powerpc_popcntb_ok attribute.
3898         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
3899         code to issue warning messages if a requested CPU configuration is
3900         not supported by the binary (assembler and loader) toolchain.
3901         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
3902         made to define a built-in function that has been disabled.
3903         (paired_init_builtins): Add assertion to prevent ICE if attempt is
3904         made to define a built-in function that has been disabled.
3905         (altivec_init_builtins): Add comment explaining why definition
3906         of the DST built-in functions is not preceded by an assertion
3907         check.  Add assertions to prevent ICE if attempts are made to
3908         define an altivec predicate or an abs* built-in function that has
3909         been disabled.
3910         (htm_init_builtins): Add comment explaining why definition of the
3911         htm built-in functions is not preceded by an assertion check.
3913 2017-01-04  Jeff Law  <law@redhat.com>
3915         PR tree-optimizatin/67955
3916         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
3917         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
3918         the points-to solution does not include pt_null.  Use DECL_PT_UID
3919         unconditionally.
3921 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
3923         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
3924         Use gen_int_mode instead of gen_lopwart for const_int operands.
3926 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
3928         PR tree-optimization/71563
3929         * match.pd: Simplify X << Y into X if Y is known to be 0 or
3930         out of range value - has low bits known to be zero.
3932 2017-01-04  Alan Modra  <amodra@gmail.com>
3934         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
3935         * configure: Regenerate.
3936         * config.in: Regenerate.
3938 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
3940         PR bootstrap/77569
3941         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
3942         a substring of the message, but strcmp with the whole message.  Ifdef
3943         ENABLE_NLS, translate the message first using dgettext.
3945 2017-01-03  Jeff Law  <law@redhat.com>
3947         PR tree-optimizatin/78856
3948         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
3949         (mark_threaded_blocks): Remove code to truncate thread paths that
3950         cross multiple loop headers.  Instead invalidate the cached loop
3951         iteration information and handle case of a thread path walking
3952         into an irreducible region.
3954 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
3956         PR target/78900
3957         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
3958         assertions.  Add support for doing the signbit if the IEEE 128-bit
3959         floating point value is in a GPR.
3960         * config/rs6000/rs6000.md (Fsignbit): Delete.
3961         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
3962         Update the length attribute if the value is in a GPR.
3963         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
3964         the sign or zero extension instruction, since the value is always 0/1.
3965         (signbit<mode>2_dm2): Delete using <Fsignbit>.
3967         PR target/78953
3968         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
3969         extracting SImode to a GPR register so that we can generate a
3970         store, limit the vector to be in a traditional Altivec register
3971         for the vextuwrx instruction.
3973 2017-01-03  Ian Lance Taylor  <iant@google.com>
3975         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
3977 2017-01-03  Martin Sebor  <msebor@redhat.com>
3979         PR tree-optimization/78696
3980         * gimple-ssa-sprintf.c (format_floating): Correct handling of
3981         precision.  Use MPFR for %f for greater fidelity.  Correct handling
3982         of %g.
3983         (pass_sprintf_length::compute_format_length): Set width and precision
3984         specified by asrerisk to void_node for vararg functions.
3985         (try_substitute_return_value): Adjust dump output.
3987 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
3989         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
3991 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
3993         * doc/invoke.texi (SPARC options): Document -mlra as the default.
3994         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
3995         -mlra/-mno-lra was passed to the compiler.
3997 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
3999         PR rtl-optimization/65618
4000         * emit-rtl.c (try_split): Move initialization of "before" and
4001         "after" to just before the call to emit_insn_after_setloc.
4003 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
4005         * doc/md.texi (Standard Names): Remove reference to Java frontend.
4007 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
4009         * dwarf2out.c (gen_enumeration_type_die): When
4010         -gno-strict-dwarf, add a DW_AT_encoding attribute.
4012 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
4014         PR tree-optimization/78965
4015         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
4016         Change first argument from const call_info & to call_info &.  For %n
4017         set info.nowrite to false.
4019         PR middle-end/78901
4020         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
4021         possibly throwing calls.
4023         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
4024         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
4025         and fns handling, rather than in a separate case SSA_NAME.
4027 2017-01-02  Jeff Law  <law@redhat.com>
4029         * config/darwin-driver.c (darwin_driver_init): Const-correctness
4030         fixes for first_period and second_period variables.
4032 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
4034         PR target/78967
4035         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
4036         (*insvqi_1): New insn pattern.
4037         (*insvqi_1_mem_rex64): Ditto.
4038         (*insvqi_2): Ditto.
4039         (*insvqi_3): Rename from *insvqi.
4041         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
4043 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
4045         * doc/cfg.texi (Edges): Remove reference to Java.
4046         (Maintaining the CFG): Ditto.
4048 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
4050         PR middle-end/77674
4051         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
4052         transparent aliases.
4054 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
4056         PR middle-end/77484
4057         * predict.def (PRED_CALL): Update hitrate.
4058         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
4059         * predict.c (tree_estimate_probability_bb): Split CALL predictor
4060         into direct/indirect/polymorphic variants.
4062 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
4064         Update copyright years.
4066         * gcc.c (process_command): Update copyright notice dates.
4067         * gcov-dump.c (print_version): Ditto.
4068         * gcov.c (print_version): Ditto.
4069         * gcov-tool.c (print_version): Ditto.
4070         * gengtype.c (create_file): Ditto.
4071         * doc/cpp.texi: Bump @copying's copyright year.
4072         * doc/cppinternals.texi: Ditto.
4073         * doc/gcc.texi: Ditto.
4074         * doc/gccint.texi: Ditto.
4075         * doc/gcov.texi: Ditto.
4076         * doc/install.texi: Ditto.
4077         * doc/invoke.texi: Ditto.
4079 Copyright (C) 2017 Free Software Foundation, Inc.
4081 Copying and distribution of this file, with or without modification,
4082 are permitted in any medium without royalty provided the copyright
4083 notice and this notice are preserved.