PR tree-optimization/71437
[official-gcc.git] / gcc / ChangeLog
blob96e1592daae167120871df9c92759e9b67639aa4
1 2017-03-16  Jeff Law  <law@redhat.com>
3         PR tree-optimization/71437
4         * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
5         member function.  Implementation moved into after_dom_children
6         member function and into the threader's thread_outgoing_edges
7         function.
8         (dom_opt_dom_walker::after_dom_children): Simplify by moving
9         some code into new thread_outgoing_edges.
10         * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
11         definition.  Simplify marker handling (do it here).   Assume we always
12         have the available expression and the const/copies tables.
13         (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
14         and tree-vrp.c
15         * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
16         * tree-vrp.c (equiv_stack): No longer file scoped.
17         (vrp_dom_walker): New class.
18         (vrp_dom_walker::before_dom_children): New member function.
19         (vrp_dom_walker::after_dom_children): Likewise.
20         (identify_jump_threads):  Setup domwalker.  Use it rather than
21         walking edges in a random order by hand.  Simplify setup/finalization.
22         (finalize_jump_threads): Remove.
23         (vrp_finalize): Do not call identify_jump_threads here.
24         (execute_vrp): Do it here instead and call thread_through_all_blocks
25         here too.
26         
27         PR tree-optimization/71437
28         * tree-ssa-dom.c (pfn_simplify): Add basic_block argument.  All
29         callers changed.
30         (simplify_stmt_for_jump_threading): Add basic_block argument.  All
31         callers changed.
32         (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
33         (dom_opt_dom_walker::thread_across_edge): Remove 
34         handle_dominating_asserts argument.  All callers changed.
35         (record_temporary_equivalences_from_stmts_at_dest): Corresponding
36         changes.  Remove calls to lhs_of_dominating_assert.  Other
37         uses of handle_dominating_asserts turn into unconditional code
38         (simplify_control_stmt_condition_1): Likewise.
39         (simplify_control_stmt_condition): Likewise.
40         (thread_through_normal_block, thread_across_edge): Likewise.
41         * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
42         * tree-vrp.c (lhs_of_dominating_assert): Move here.  Return original
43         object if it is not an SSA_NAME.
44         (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
45         before calling into the VRP specific simplifiers.
46         (identify_jump_threads): Remove handle_dominating_asserts
47         argument.
49 2017-03-16  Jakub Jelinek  <jakub@redhat.com>
51         PR fortran/79886
52         * tree-diagnostic.c (default_tree_printer): No longer static.
53         * tree-diagnostic.h (default_tree_printer): New prototype.
55 2017-03-16  Tamar Christina  <tamar.christina@arm.com>
57         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
58         Change ins into fmov.
60 2017-03-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
62         * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
63         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
64         Use h_con constraint for operand 1.
65         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
66         (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
68 2017-03-15  Jeff Law  <law@redhat.com>
70         PR tree-optimization/71437
71         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
72         (record_temporary_equivalences): Use it.
74         PR tree-optimization/71437
75         * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
76         tree-ssa-scopedtables.
77         (lookup_avail_expr, build_and_record_new_cond): Likewise.
78         (record_conditions, record_cond, vuse_eq): Likewise.
79         (record_edge_info): Adjust to API tweak of record_conditions.
80         (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
81         (record_temporary_equivalences, optimize_stmt): Likewise.
82         (eliminate_redundant_computations): Likewise.
83         (record_equivalences_from_stmt): Likewise.
84         * tree-ssa-scopedtables.c: Include options.h and params.h.
85         (vuse_eq): New function, moved from tree-ssa-dom.c
86         (build_and_record_new_cond): Likewise.
87         (record_conditions): Likewise.  Accept vector of conditions rather
88         than edge_equivalence structure for first argument.
89         for the first argument.
90         (avail_exprs_stack::lookup_avail_expr): New member function, moved
91         from tree-ssa-dom.c.
92         (avail_exprs_stack::record_cond): Likewise.
93         * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
94         from tree-ssa-dom.c.
95         (avail_exprs_stack): Add new member functions lookup_avail_expr
96         and record_cond.
97         (record_conditions): Declare.
99 2017-03-15  Vladimir Makarov  <vmakarov@redhat.com>
101         PR target/80017
102         * lra-constraints.c (process_alt_operands): Increase reject for
103         reloading an input/output operand.
105 2017-03-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
107         PR target/79038
108         * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
109         insns to convert from signed/unsigned char/short to IEEE 128-bit
110         floating point.
111         (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
113 2017-03-15  Uros Bizjak  <ubizjak@gmail.com>
115         PR target/80019
116         * config/i386/i386.c (ix86_vector_duplicate_value): Create
117         subreg of inner mode for values already in registers.
119 2017-03-15  Bernd Schmidt  <bschmidt@redhat.com>
121         * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
122         iteration reg is used after the loop.
124 2017-03-14  Martin Sebor  <msebor@redhat.com>
126         PR tree-optimization/79800
127         * gimple-ssa-sprintf.c (format_floating: Add argument.  Handle
128         precision in negative-positive range.
129         (format_floating): Call non-const overload with adjusted precision.
131 2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
133         PR target/79947
134         * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
135         -mpowerpc-gfxopt.
137 2017-03-14  Martin Sebor  <msebor@redhat.com>
139         PR middle-end/80020
140         * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
141         * builtins.def (aligned_alloc): Use it.
143         PR c/79936
144         * Makefile.in (GTFILES): Add calls.c.
145         * calls.c: Include "gt-calls.h".
147 2017-03-14  Bernd Schmidt  <bschmidt@redhat.com>
149         PR rtl-optimization/79728
150         * regs.h (struct target_regs): New field
151         x_contains_allocatable_regs_of_mode.
152         (contains_allocatable_regs_of_mode): New macro.
153         * reginfo.c (init_reg_sets_1): Initialize it, and change
154         contains_reg_of_mode so it includes global regs as well.
155         * reload.c (push_reload): Use contains_allocatable_regs_of_mode
156         rather than contains_regs_of_mode.
158 2017-03-14  Martin Liska  <mliska@suse.cz>
160         * doc/invoke.texi: Document options that can't be combined with
161         -fcheck-pointer-bounds.
163 2017-03-14  Martin Liska  <mliska@suse.cz>
165         PR middle-end/79831
166         * doc/invoke.texi (-Wchkp): Document the option.
168 2017-03-14  Martin Liska  <mliska@suse.cz>
170         * Makefile.in: Install gcov-dump.
172 2017-03-14  Martin Liska  <mliska@suse.cz>
174         * multiple_target.c (expand_target_clones): Bail out for
175         an invalid attribute.
177 2017-03-14  Richard Biener  <rguenther@suse.de>
179         * alias.c (struct alias_set_entry): Pack properly.
180         * cfgloop.h (struct loop): Likewise.
181         * cse.c (struct set): Likewise.
182         * ipa-utils.c (struct searchc_env): Likewise.
183         * loop-invariant.c (struct invariant): Likewise.
184         * lra-remat.c (struct cand): Likewise.
185         * recog.c (struct change_t): Likewise.
186         * rtl.h (struct address_info): Likewise.
187         * symbol-summary.h (function_summary): Likewise.
188         * tree-loop-distribution.c (struct partition): Likewise.
189         * tree-object-size.c (struct object_size_info): Likewise.
190         * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
191         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
192         * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
193         * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
194         * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
195         * tree-vectorizer.h (struct _loop_vec_info): Likewise.
196         (struct _stmt_vec_info): Likewise.
198 2017-03-14  Martin Liska  <mliska@suse.cz>
200         PR target/79892
201         * multiple_target.c (create_dispatcher_calls): Check that
202         a target can create a function dispatcher.
204 2017-03-14  Martin Liska  <mliska@suse.cz>
206         PR lto/66295
207         * multiple_target.c (expand_target_clones): Drop local.local
208         flag for default implementation.
210 2017-03-14  Richard Biener  <rguenther@suse.de>
212         PR tree-optimization/80030
213         * tree-vect-stmts.c (vectorizable_store): Plug memleak.
215 2017-03-13  Kito Cheng  <kito.cheng@gmail.com>
217         * config/riscv/riscv.c (riscv_emit_float_compare>: Use
218         gcc_fallthrough() instead of __attribute__((fallthrough));
220 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
222         * doc/gcc.texi: Remove "up" link to (DIR).
223         * doc/gccint.texi: Ditto.
225 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
226         
227         * doc/install.texi (Specific) <avr>: Remove reference to
228         binutils 2.13.
230 2017-03-13  Jeff Law  <law@redhat.com>
232         * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
233         attribute rather than comments.
235         * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
236         match_scratch operand is highest.
238 2017-03-13  Martin Liska  <mliska@suse.cz>
240         PR middle-end/78339
241         * ipa-pure-const.c (warn_function_noreturn): If the declarations
242         is a CHKP clone, use original declaration.
244 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
246         * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
247         (arc_conditional_register_usage): Use a different allocation order
248         when optimizing for size.
249         * common/config/arc/arc-common.c (arc_option_optimization_table):
250         Section anchors default on when optimizing for size.
252 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
254         * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
256 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
258         * config/arc/arc.c (arc_output_addsi): Emit code density adds.
259         * config/arc/arc.md (cpu_facility): Add cd variant.
260         (*movqi_insn): Add code density variant.
261         (*movhi_insn): Likewise.
262         (*movqi_insn): Likewise.
263         (*addsi3_mixed): Likewise.
264         (subsi3_insn): Likewise.
266 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
268         * config/arc/arc.md (movsi_cond_exec): Update constraint.
270 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
272         * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
273         expressions with MINUS and UNARY ops.
275 2017-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
277         PR target/79911
278         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
279         Rename to...
280         (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
281         between vec_select and vector argument.
282         (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
283         (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
284         (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
285         (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
286         (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
287         (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
289 2017-03-13  Richard Biener  <rguenther@suse.de>
291         PR other/79991
292         * params.def (vect-max-peeling-for-alignment): Fix typo.
294 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
296         * doc/install.texi (Specific) <mips-*-*>: Remove description of
297         issue that only occurred with binutils below 2.18.
298         
299 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
301         * doc/install.texi (Specific) <cris-axis-elf>: No longer
302         refer to binutils 2.11/2.12 minimum.
304 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
306         * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
307         ftp.kernel.org and simplify binutils requirement.
309 2017-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
311         * doc/invoke.texi (Warning Options): Fix spelling of link-time
312         optimization.
313         (Optimize Options): Ditto.  Also remove redundancy.
315 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
317         PR translation/79848
318         * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
319         "%qs".
320         * ipa-pure-const.c (suggest_attribute): Likewise.  Convert _
321         to G_ to avoid double translation.
323 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
325         PR translation/79923
326         * auto-profile.c (get_combined_location): Convert leading
327         character of diagnostics to lower case and remove trailing period.
328         (read_profile): Likewise for various diagnostics.
329         * config/arm/arm.c (arm_option_override): Remove trailing period
330         from various diagnostics.
331         * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
332         (msp430_expand_delay_cycles): Likewise.
334 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
336         PR target/79925
337         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
338         full command-line argument, rather than just "str".
339         (aarch64_validate_march): Likewise.
340         (aarch64_validate_mtune): Likewise.
342 2017-03-10  Bernd Schmidt  <bschmidt@redhat.com>
344         PR rtl-optimization/78911
345         * lra-assigns.c (must_not_spill_p): New function.
346         (spill_for): Use it.
348 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
350         PR tree-optimization/79981
351         * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
352         ATOMIC_COMPARE_EXCHANGE ifn result.
353         (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
354         IFN_ATOMIC_COMPARE_EXCHANGE.
356 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
358         PR driver/79875
359         * opts.c (parse_sanitizer_options): Add missing question mark to
360         "did you mean" message.
362 2017-03-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
364         * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
365         built-in.
366         (VMULEUH_UNS): Likewise.
367         (VMULOUB_UNS): Likewise.
368         (VMULOUH_UNS): Likewise.
369         * config/rs6000/rs6000.c (builtin_function_type): Remove
370         references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
372 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
374         PR bootstrap/79952
375         * read-rtl-function.c (function_reader::read_rtx_operand): Update
376         x with result of extra_parsing_for_operand_code_0.
377         (function_reader::extra_parsing_for_operand_code_0): Convert
378         return type from void to rtx, returning x.  When reading
379         SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
380         larger size containing struct block_symbol.
382 2017-03-10  Segher Boessenkool  <segher@kernel.crashing.org>
384         * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
385         -mfloat128-hardware without -m64.
387 2017-03-10  Will Schmidt <will_schmidt@vnet.ibm.com>
389         PR target/79941
390         * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
391         entries to the case statement that marks unsigned arguments to
392         overloaded functions.
394 2017-03-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
396         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
397         two typographic errors in the handling of TARGET_UPPER_REGS_DI.
399 2017-03-10  Pat Haugen  <pthaugen@us.ibm.com>
401         PR target/79907
402         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
403         TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
405 2017-03-10  Martin Liska  <mliska@suse.cz>
407         PR target/65705
408         PR target/69804
409         * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
410         * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
411         FIELD != NULL.
413 2017-03-10  Olivier Hainque  <hainque@adacore.com>
415         * tree-switch-conversion (array_value_type): Start by resetting
416         candidate type to it's main variant.
418 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
420         PR rtl-optimization/79909
421         * combine.c (try_combine): Use simplify_replace_rtx on individual
422         CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
423         of the whole CALL_INSN_FUNCTION_USAGE.
425         PR tree-optimization/79972
426         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
427         get_range_info on SSA_NAMEs.  Formatting fixes.
429 2017-03-10  Richard Biener  <rguenther@suse.de>
430             Jakub Jelinek  <jakub@redhat.com>
432         PR tree-optimization/77975
433         * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
434         edge to be constant.
435         (get_val_for): For constant x return it.  Formatting fix.
436         (loop_niter_by_eval): Avoid pointless looping if the next iteration
437         would use the same bases as the current one.
439 2017-03-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
441         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
442         instead of vec_select for V1TImode.
443         * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
444         longer needed.
445         (VSX_LE_128): Add V1TI to this mode iterator.
446         (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
447         (*vsx_le_perm_store_<mode>): Likewise.
448         (pre-reload splitter for VSX stores): Likewise.
449         (post-reload splitter for VSX stores): Likewise.
450         (*vsx_xxpermdi2_le_<mode>): Likewise.
451         (*vsx_lxvd2x2_le_<mode>): Likewise.
452         (*vsx_stxvd2x2_le_<mode>): Likewise.
454 2017-03-09  Michael Eager  <eager@eagercon.com>
456         Correct failures with --enable-checking=yes,rtl.
458         * config/microblaze/microblaze.c (microblaze_expand_shift):
459         Replace GET_CODE test with CONST_INT_P and INTVAL test with
460         test for const0_rtx.
461         * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
462         lshrsi3_byone): Replace INTVAL with test for const1_rtx.
464 2017-03-09  Richard Biener  <rguenther@suse.de>
466         PR tree-optimization/79977
467         * graphite-scop-detection.c (scop_detection::merge_sese):
468         Handle the case of extra exits to blocks dominating the entry.
470 2017-03-09  Toma Tabacu  <toma.tabacu@imgtec.com>
472         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
473         Document rdynamic.
475 2017-03-09  Vladimir Makarov  <vmakarov@redhat.com>
477         PR rtl-optimization/79949
478         * lra-constraints.c (process_alt_operands): Check memory when
479         trying to predict a cycle.  Print about the overall increase.
481 2017-03-09  Richard Biener  <rguenther@suse.de>
483         PR middle-end/79971
484         * gimple-expr.c (useless_type_conversion_p): Preserve
485         TYPE_SATURATING for fixed-point types.
487 2017-03-09  Richard Biener  <rguenther@suse.de>
489         PR ipa/79970
490         * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
491         alignment of BLKmode params.
493 2017-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
495         PR target/79913
496         * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
497         (VALL_NO_V2Q): Likewise.
498         (VDQF_DF): Delete.
499         * config/aarch64/aarch64-simd.md
500         (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
501         iterator.
502         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
503         VALL_NO_V2Q mode iterator.
504         (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
506 2017-03-09  Martin Liska  <mliska@suse.cz>
508         PR tree-optimization/79631
509         * tree-chkp-opt.c (chkp_is_constant_addr): Call
510         tree_int_cst_sign_bit just for INTEGER constants.
512 2017-03-09  Martin Liska  <mliska@suse.cz>
514         PR target/65705
515         PR target/69804
516         * toplev.c (process_options): Disable -fcheck-pointer-bounds with
517         sanitizers.
519 2017-03-09  Marek Polacek  <polacek@redhat.com>
521         PR c++/79672
522         * tree.c (inchash::add_expr): Handle TREE_VEC.
524 2017-03-09  Martin Liska  <mliska@suse.cz>
526         PR ipa/79764
527         (chkp_narrow_size_and_offset): New function.
528         (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
529         (void chkp_parse_bit_field_ref): New function.
530         (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
531         (chkp_process_stmt): Use chkp_parse_bit_field_ref.
533 2017-03-09  Martin Liska  <mliska@suse.cz>
535         PR ipa/79761
536         * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
537         (chkp_find_bounds_1): Remove gcc_unreachable.
539 2017-03-09  Jakub Jelinek  <jakub@redhat.com>
541         PR sanitizer/79944
542         * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
543         BUILT_IN_SYNC*, determine the access type from the size suffix and
544         always build a MEM_REF with that type.  Handle forgotten
545         BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
547         PR target/79932
548         * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
549         _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
550         _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
551         _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
552         _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
553         _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
554         _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
555         _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
556         _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
557         _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
558         _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
559         _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
560         _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
561         _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
562         _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
563         _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
564         _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
565         _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
566         _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
567         _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
568         _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
569         _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
570         _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
571         _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
572         _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
573         _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
574         _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
575         _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
576         _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
577         _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
578         definitions outside of __OPTIMIZE__ guarded section.
580         PR target/79932
581         * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
582         _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
583         _mm512_packus_epi32, _mm512_maskz_packus_epi32,
584         _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
585         guarded section.
587 2017-03-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
589         * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
590         ("vfenez<mode>"): Add missing constraints.
592 2017-03-08  Martin Sebor  <msebor@redhat.com>
594         PR target/79928
595         * config/nds32/nds32.c (nds32_option_override): 
597 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
599         PR c/79940
600         * gimplify.c (gimplify_omp_for): Replace index var in outer
601         taskloop statement with an artificial variable and add
602         OMP_CLAUSE_PRIVATE clause for it.
604 2017-03-08  Richard Biener  <rguenther@suse.de>
606         PR tree-optimization/79955
607         * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
608         for accesses that are completely outside of the variable.
610 2017-03-08  Andrew Haley  <aph@redhat.com>
612         PR tree-optimization/79943
613         * tree-ssa-loop-split.c (compute_new_first_bound): When
614         calculating the new upper bound, (END-BEG) should be added, not
615         subtracted.
617 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
619         * config/avr/avr.md (setmemhi): Make sure match_dup
620         operand number comes before match_scratch.
622 2017-03-08  Richard Biener  <rguenther@suse.de>
624         PR tree-optimization/79920
625         * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
626         with ncopies == 1 to ...
627         (vect_transform_slp_perm_load): ... here.  Properly compute
628         all element loads by iterating VF times over the group.  Do
629         not handle ncopies (computed in a broken way) in
630         vect_create_mask_and_perm.
632 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
634         PR sanitizer/79904
635         * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
636         is a uniform vector, use uniform_vector_p return value instead of
637         building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
639 2017-03-07  Marek Polacek  <polacek@redhat.com>
641         PR middle-end/79809
642         * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
643         (alloca_call_type): Likewise.
645 2017-03-07  Martin Liska  <mliska@suse.cz>
647         * gcov.c (process_args): Put comment to correct location.
649 2017-03-07  Martin Liska  <mliska@suse.cz>
651         PR middle-end/68270
652         * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
653         Use array_at_struct_end_p instead of DECL_CHAIN (field).
654         (chkp_narrow_bounds_for_field): Likewise.
655         (chkp_parse_array_and_component_ref): Pass one more argument to
656         call.
658 2017-03-07  Richard Biener  <rguenther@suse.de>
660         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
661         preheaders.
663 2017-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
665         * config/i386/i386.c (ix86_local_alignment): Align most aggregates
666         of 16 bytes and more to 16 bytes, not those of 16 bits and more.
668 2017-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
670         PR c/79855
671         * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
672         to end of description.
673         (PARAM_MAX_STORES_TO_MERGE): Likewise.
675 2017-03-07  Jakub Jelinek  <jakub@redhat.com>
677         PR rtl-optimization/79901
678         * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
679         ...
680         (*avx512f_<code><mode>3<mask_name>): ... this.
681         (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
682         iterator instead of VI8_AVX2_AVX512BW.
684         PR rtl-optimization/79901
685         * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
686         min/max expander, expand it using expand_vec_cond_expr.
688         PR sanitizer/79897
689         * ubsan.c (ubsan_encode_value): Call mark_addressable on the
690         temporary.
692 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
694         PR c++/79821
695         * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
696         to void * for PCH reasons.
697         * dwarf2out.c (output_loc_operands, output_die): Cast
698         v.val_vec.array to unsigned char *.
700 2017-03-06  John David Anglin  <danglin@gcc.gnu.org>
702         PR target/77850
703         * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
704         vector types.
706 2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>
708         PR rtl-optimization/79571
709         * lra-constraints.c (process_alt_operands): Calculate static
710         reject and subtract it from overall when only addresses will be
711         reloaded.
713 2017-03-06  Julia Koval  <julia.koval@intel.com>
715         PR target/79793
716         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
717         incoming stack boundary to 128 for 64-bit targets.
719 2017-03-06  Richard Biener  <rguenther@suse.de>
721         PR tree-optimization/79894
722         * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
723         to NULL after folding it.
725 2017-03-06  Richard Biener  <rguenther@suse.de>
727         PR tree-optimization/79824
728         * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
729         check disabling peeling for gaps.
731 2017-03-06  Toma Tabacu  <toma.tabacu@imgtec.com>
733         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
734         attributes): Document gettimeofday.
736 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
738         * config/s390/s390.c (s390_option_override_internal): Set
739         PARAM_MIN_VECT_LOOP_BOUND
741 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
743         * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
744         * config/s390/s390.md: Likewise.
746 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
748         PR target/79812
749         * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
750         (<avx2_avx512>_perm<mode>): Rename to ...
751         (avx2_perm<mode>): ... this.  Use VI8F_256 iterator instead
752         of VI8F_256_512.
753         (<avx512>_perm<mode>_mask): Rename to ...
754         (avx512vl_perm<mode>_mask): ... this.  Use VI8F_256 iterator instead
755         of VI8F_256_512.
756         (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
757         (avx2_perm<mode>_1<mask_name): ... this.  Use VI8F_256 iterator
758         instead of VI8F_256_512.
759         (avx512f_perm<mode>): New define_expand.
760         (avx512f_perm<mode>_mask): Likewise.
761         (avx512f_perm<mode>_1<mask_name>): New define_insn.
762         (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
764 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
766         * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
767         msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
768         if_then_else.
769         (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
771 2017-03-06  Martin Liska  <mliska@suse.cz>
773         PR sanitize/79783
774         * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
775         when having a SSA NAME w/o VAR_DECL assigned to it.
777 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
779         * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
780         msa_dpsub_<su>_d): Fix MODE for vec_select.
782 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
784         * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
785         argument.
786         * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
788 2017-03-06  Richard Biener  <rguenther@suse.de>
790         * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
791         * plugin.c (register_plugin_info): Likewise.
792         * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
794 2017-03-05  Jakub Jelinek  <jakub@redhat.com>
796         * config/i386/sse.md (sse_storehps, sse_storelps,
797         avx_<castmode><avxsizesuffix>_<castmode>,
798         avx512f_<castmode><avxsizesuffix>_<castmode>,
799         avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
800         in condition that at least one operand is not a MEM.
802 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
804         PR middle-end/79805
805         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
806         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
807         ECF_NOTHROW.
808         * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
809         gimple_call_nothrow_p flag based on whether original builtin can throw.
810         If it can, emit following stmts on the fallthrough edge.
811         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
812         don't create new bb if inserting just debug stmts on the edge, try to
813         insert them on the fallthru bb or just reset debug stmts.
815 2017-03-03  Segher Boesssenkool  <segher@kernel.crashing.org>
817         PR target/43763
818         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
819         restore recog_data (including the operand rtxes inside it) around
820         the call to get_insn_template.
822 2017-03-03  Martin Sebor  <msebor@redhat.com>
824         PR tree-optimization/79699
825         * context.c (context::~context): Free MPFR caches to avoid
826         a memory leak on program exit.
828 2017-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
830         * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
831         Use wide_int::ulow () instead of .elt (0).
833 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
835         * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
836         (*pushxf): Limit oF constraint to 32bit targets and add oC
837         constraint for 64bit targets.
838         (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
839         (*pushdf): Change rmF constraint to rmC.
841 2017-03-03  Martin Liska  <mliska@suse.cz>
843         * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
844         Remove unused variable.
846 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
848         PR target/79807
849         * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
850         is a memory operand, increase num_memory.
851         (ix86_expand_args_builtin): Likewise.
853 2017-03-03  Jan Hubicka  <jh@suse.cz>
855         PR lto/79760
856         * ipa-devirt.c (maybe_record_node): Properly handle
857         __cxa_pure_virtual visibility.
859 2017-03-03  Martin Liska  <mliska@suse.cz>
861         PR tree-optimization/79803
862         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
863         assert.
864         (pass_loop_prefetch::execute): Disabled optimization if an
865         assumption about L1 cache size is not met.
867 2017-03-03  Martin Liska  <mliska@suse.cz>
869         PR rtl-optimization/79574
870         * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
871         (hash_scan_set): Likewise.
872         (dump_hash_table): Likewise.
873         (hoist_code): Likewise.
875 2017-03-03  Richard Biener  <rguenther@suse.de>
877         * fixed-value.c (fixed_from_string): Restore use of elt (1)
878         in place of uhigh ().
879         (fixed_convert_from_real): Likewise.
881 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
883         PR target/79514
884         * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
886 2017-03-03  Richard Biener  <rguenther@suse.de>
888         PR middle-end/79818
889         * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
890         TYPE_OVERFLOW_UNDEFINED check.
892 2017-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
894         * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
895         numbers.
896         (vector_ae_<mode>_p): Likewise.
897         (vector_nez_<mode>_p): Likewise.
898         (vector_ne_v2di_p): Likewise.
899         (vector_ae_v2di_p): Likewise.
900         (vector_ne_<mode>_p): Likewise.
901         * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
902         numbers.
903         (vsx_tsqrt<mode>2_fe): Likewise.
905 2017-03-02  Uros Bizjak  <ubizjak@gmail.com>
907         PR target/79514
908         * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
910 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
912         PR rtl-optimization/79780
913         * cprop.c (one_cprop_pass): When second and further conditional trap
914         in a single basic block is turned into an unconditional trap, turn it
915         into a deleted note to avoid RTL verification failures.
917 2017-03-02  Richard Biener  <rguenther@suse.de>
919         * fold-const.c (const_binop): Use ulow () instead of elt (0).
921 2017-03-02  Richard Biener  <rguenther@suse.de>
923         PR tree-optimization/79345
924         PR c++/42000
925         * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
926         param and abort the walk, returning -1 if it is hit.
927         (walk_aliased_vdefs): Take a limit param and pass it on.
928         * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
929         defaulting to 0 and return a signed int.
930         * tree-ssa-uninit.c (struct check_defs_data): New struct.
931         (check_defs): New helper.
932         (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
933         about uninitialized memory.
934         * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
935         bogus uninitialized warning.
936         (fixed_convert_from_real): Likewise.
938 2017-03-02  Bin Cheng  <bin.cheng@arm.com>
940         PR tree-optimization/66768
941         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
942         iv_use if base object can't be determined.
944 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
946         PR tree-optimization/79345
947         * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
948         * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
949         (get_pattern_stats): Initialize it.
950         * genemit.c (gen_expand): Verify match_scratch numbers come after
951         match_operand/match_dup numbers.
952         * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
953         match_scratch numbers.
954         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
955         Likewise.
956         * config/s390/s390.md (trunctdsd2): Likewise.
958 2017-03-02  Richard Biener  <rguenther@suse.de>
960         * wide-int.h (wide_int_storage::operator=): Implement in terms
961         of wi::copy.
963 2017-03-02  Richard Biener  <rguenther@suse.de>
965         PR tree-optimization/79777
966         * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
967         the to insert expression to sth existing.
969 2017-03-01  Martin Sebor  <msebor@redhat.com>
971         PR middle-end/79692
972         * gimple-ssa-sprintf.c
973         (directive::known_width_and_precision): New function.
974         (format_integer): Use it.
975         (get_mpfr_format_length): Consider the full range of precision
976         when computing %g output with the # flag.  Set the likely byte
977         count to 3 rather than 1 when precision is indeterminate.
978         (format_floating): Correct the lower bound of precision.
980 2017-03-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
982         * doc/invoke.texi: Document default code model for 64-bit Linux.
984 2017-03-01  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
986         PR target/79752
987         * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
988         udiv rather than div since input pattern is unsigned.
990 2017-03-01  Uros Bizjak  <ubizjak@gmail.com>
992         * config/i386/i386.c (print_reg): Warn for values of
993         unsupported size in integer register.
995 2017-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
997         PR target/79439
998         * config/rs6000/predicates.md (current_file_function_operand): Do
999         not allow self calls to be local if the function is replaceable.
1001 2017-03-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1003         PR target/79395
1004         * config/rs6000/altivec.h (vec_ctz and others): Change the
1005         preprocessor macro that controls conditional compilation from
1006         _ARCH_PWR9 to __POWER9_VECTOR__.
1007         (vec_all_ne): Change parameterization of __altivec_scalar_pred
1008         macro expansion under preprocessor #ifdef __POWER9_VECTOR__
1009         control (instead of _ARCH_PWR9 control) so that template
1010         definition uses power9-specific function.
1011         (vec_any_eq): Likewise.
1012         (vec_all_ne): Change macro definition to use a power9-specific
1013         expansion under #ifdef __POWER9_VECTOR__ control (instead of
1014         _ARCH_PWR9 control).
1015         (vec_any_eq) Likewise.
1016         * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
1017         expansion for CMPNEF to remove support for xvcmpnesp instruction.
1018         (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
1019         support for xvcmpnedp instruction.
1020         (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
1021         macro expansion so that Power9 implementation of vec_all_ne does
1022         not use the AltiVec predicate framework.
1023         (VCMPNEH_P): Likewise.
1024         (VCMPNEW_P): Likewise.
1025         (VCMPNED_P): Likewise.
1026         (VCMPNEFP_P): Likewise.
1027         (VCMPNEDP_P): Likewise.
1028         (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
1029         implementation of vec_any_eq to not use AltiVec predicate
1030         framework.
1031         (VCMPAEH_P): Likewise.
1032         (VCMPAEW_P): Likewise.
1033         (VCMPAED_P): Likewise.
1034         (VCMPAEFP_P): Likewise.
1035         (VCMPAEDP_P): Likewise.
1036         (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
1037         BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
1038         not use the AltiVec predicate framework.
1039         (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
1040         of vec_any_eq to not use AltiVec predicate framework.
1041         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
1042         support for predefined __POWER9_VECTOR__ macro to indicate that
1043         Power9 instruction selection is enabled.
1044         (altivec_overloaded_builtins): Remove extraneous
1045         ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
1046         function argument types RS6000_BTI_bool_V16QI and
1047         RS6000_BTI_bool_V16QI.  Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
1048         entry for overloaded function argument types RS6000_BTI_bool_V4SI
1049         andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB.  Remove
1050         two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
1051         P9V_BUILTIN_CMPNEF to force use of instructions not specific to
1052         Power9 for implementations of vec_cmpne.  Change the signature for
1053         all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
1054         (representing vec_all_ne) to remove the previously described first
1055         argument of type RS6000_BTI_INTSI, as this was an artifact of
1056         reliance on the AltiVec predicate framework, which is no longer
1057         used in the implementation of these functions.  Add
1058         P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
1059         function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
1060         since, unlike the AltiVec predicate framework implementation, we
1061         do not share function descriptors between vec_alle and vec_anyeq.
1062         (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
1063         set of modes that receive special treatment even when
1064         TARGET_P9_VECTOR is true.  The special treatment emits code that
1065         does not depend on Power9 instructions.
1066         * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
1067         define_expand to not rely on AltiVec predicate framework.
1068         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
1069         function.
1070         (vector_ne_v2di_p): Change this define_expand to not rely on
1071         AltiVec predicate framework.
1072         (vector_ae_v2di_p): New define_expand to represent vec_any_eq
1073         function.
1074         (vector_ne_<mode>_p): Change this define_expand to not rely on
1075         AltiVec predicate framework.
1076         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
1077         function.
1078         * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
1079         (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
1080         define_insn pattern.
1081         (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
1082         define_insn pattern because the xvcmpne<VSs>. instruction is not
1083         supported.
1084         (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
1085         instruction is not supported.
1087 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
1089         * config/nvptx/nvptx.c: Include intl.h.
1091 2017-03-01  Martin Jambor  <mjambor@suse.cz>
1093         PR lto/78140
1094         * ipa-prop.h (ipa_bits): Removed field known.
1095         (ipa_jump_func): Removed field vr_known.  Changed fields bits and m_vr
1096         to pointers.  Adjusted their comments to warn about their sharing.
1097         (ipcp_transformation_summary): Change bits to a vector of pointers.
1098         (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
1099         (ipa_get_ipa_bits_for_value): Declare.
1100         * tree-vrp.h (value_range): Mark as GTY((for_user)).
1101         * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
1102         (ipa_bits_hash_table): Likewise.
1103         (ipa_vr_ggc_hash_traits): Likewise.
1104         (ipa_vr_hash_table): Likewise.
1105         (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
1106         being pointers and vr_known being removed.
1107         (ipa_set_jf_unknown): Likewise.
1108         (ipa_get_ipa_bits_for_value): New function.
1109         (ipa_set_jfunc_bits): Likewise.
1110         (ipa_get_value_range): New overloaded functions.
1111         (ipa_set_jfunc_vr): Likewise.
1112         (ipa_compute_jump_functions_for_edge): Use the above functions to
1113         construct bits and vr parts of jump functions.
1114         (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
1115         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
1116         exist.
1117         (ipcp_grow_transformations_if_necessary): Also allocate
1118         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
1119         exist.
1120         (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
1121         them.  Fix too long lines.
1122         (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
1123         vr_known being removed.
1124         (ipa_read_jump_function): Use new setter functions to construct bits
1125         and vr parts of jump functions or set them to NULL.
1126         (write_ipcp_transformation_info): Adjust for bits being pointers.
1127         (read_ipcp_transformation_info): Likewise.
1128         (ipcp_update_bits): Likewise.  Fix excessively long lines a trailing
1129         space.
1130         Include gt-ipa-prop.h.
1131         * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
1132         being pointers.
1133         (ipcp_store_bits_results): Likewise.
1134         (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
1135         Do not write to existing jump functions but use a temporary instead.
1137 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
1139         PR c++/79681
1140         * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
1141         attempt to use its first operand as BIT_FIELD_REF base.
1143 2017-03-01  Richard Biener  <rguenther@suse.de>
1145         PR middle-end/79721
1146         * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
1147         interpolating formula in wrapping arithmetic.
1148         (chrec_apply): Convert chrec_evaluate return value to wanted type.
1150 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
1152         PR tree-optimization/79734
1153         * tree-vect-generic.c (expand_vector_condition): Optimize
1154         AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
1155         Handle VEC_COND_EXPR where comparison has different inner width from
1156         type's inner width.
1158 2017-02-28  Sandra Loosemore  <sandra@codesourcery.com>
1160         * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
1161         markup, and similar issues.  Remove @opindex entries for things
1162         that aren't options.  Add missing -mmpy-option entries.
1164 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
1166         PR tree-optimization/79737
1167         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
1168         a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
1169         tmpbuf[byte_size - 1].  Call natice_encode_expr with byte_size - 1
1170         instead of byte_size.  Formatting fix.
1171         (shift_bytes_in_array_right): Formatting fix.
1173 2017-02-28  Eric Botcazou  <ebotcazou@adacore.com>
1175         PR target/79749
1176         * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
1177         condition on optimize for the leaf function test.
1179 2017-02-28  Martin Liska  <mliska@suse.cz>
1181         PR lto/79625
1182         * read-rtl-function.c (function_reader::handle_unknown_directive):
1183         Bail out when one uses -flto.
1185 2017-02-28  Martin Liska  <mliska@suse.cz>
1187         * common.opt: Replace space with tabular for options of <number>
1188         type.
1189         * config/i386/i386.opt: Show <number> value for
1190         -mlarge-data-threshold.
1191         * opts.c (print_filtered_help): Do not display number in hexadecimal
1192         format.
1194 2017-02-28  Martin Liska  <mliska@suse.cz>
1196         * common.opt: Fix --help=option -Q for options which are of
1197         an enum type.
1199 2017-02-28  Uros Bizjak  <ubizjak@gmail.com>
1201         * config/i386/i386.c (print_reg): Error out for values
1202         of 8-bit size in invalid integer register.
1204 2017-02-28  Martin Sebor  <msebor@redhat.com>
1206         PR tree-optimization/79691
1207         * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
1209 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
1211         PR target/79729
1212         * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
1213         gcc_unreachable with output_operand_lossage.
1215 2017-02-28  Richard Biener  <rguenther@suse.de>
1217         PR tree-optimization/79740
1218         * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
1219         inserts.
1220         (visit_nary_op): Insert the nary into the hashtable if we
1221         pattern-matched sth.
1222         * tree-ssa-pre.c (eliminate_insert): Robustify.
1224 2017-02-28  Richard Biener  <rguenther@suse.de>
1226         PR middle-end/79731
1227         * fold-const.c (decode_field_reference): Reject out-of-bound
1228         accesses.
1230 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
1232         * config/i386/i386.c: Include intl.h.
1233         (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
1234         instead of just cond ? "..." : "...".
1235         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
1236         * coverage.c (read_counts_file): Likewise.
1237         * omp-offload.c: Include intl.h.
1238         (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
1239         of just cond ? "..." : "...".
1240         * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
1241         of just cond ? "..." : "...".
1243 2017-02-28  Richard Earnshaw  <rearnsha@arm.com>
1245         PR target/79742
1246         * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
1247         entry, if present.
1248         * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
1249         'tune for' CPU name.
1250         * config/arm/arm-cpu-data.h: Regenerated.
1252 2017-02-28  Richard Biener  <rguenther@suse.de>
1254         PR tree-optimization/79732
1255         * tree-inline.c (expand_call_inline): Do not shadow var.
1257 2017-02-28  Richard Biener  <rguenther@suse.de>
1259         PR tree-optimization/79723
1260         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
1261         address-space properly.
1263 2017-02-28  Thomas Schwinge  <thomas@codesourcery.com>
1265         * doc/optinfo.texi (Optimization groups): Fix option used for
1266         OPTGROUP_ALL.
1267         * doc/invoke.texi (-fopt-info): Document "omp".
1268         * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
1269         (OPTGROUP_ALL): Add OPTGROUP_OMP.
1270         * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
1271         * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
1272         * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
1274         * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP.  Adjust
1275         all users.
1276         * dumpfile.c (optgroup_options): Instead of "openmp", associate
1277         OPTGROUP_OMP with "omp".
1279 2017-02-27  Pat Haugen  <pthaugen@us.ibm.com>
1281         PR target/79544
1282         * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
1283         for arithmetic shift of unsigned V2DI.
1285 2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>
1287         * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
1288         arc/linux.h headers.
1289         * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
1290         (LINK_SPEC): Likewise.
1291         (ARC_TLS_EXTRA_START_SPEC): Likewise.
1292         (EXTRA_SPECS): Likewise.
1293         (STARTFILE_SPEC): Likewise.
1294         (ENDFILE_SPEC): Likewise.
1295         (LIB_SPEC): Likewise.
1296         (TARGET_SDATA_DEFAULT): Likewise.
1297         (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
1298         (MULTILIB_DEFAULTS): Likewise.
1299         (DWARF2_UNWIND_INFO): Likewise.
1300         * config/arc/big.h: New file.
1301         * config/arc/elf.h: Likewise.
1302         * config/arc/linux.h: Likewise.
1303         * config/arc/t-uClibc: Remove.
1305 2017-02-27  Bin Cheng  <bin.cheng@arm.com>
1307         PR tree-optimization/77536
1308         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
1309         (tree_transform_and_unroll_loop): Use above function to compute the
1310         estimated niter of unrolled loop and use it when scaling profile.
1311         Also use count info rather than frequency if it's non-zero.
1312         * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
1313         * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
1314         (vect_transform_loop): Call above function.
1316 2017-02-27  Richard Biener  <rguenther@suse.de>
1318         PR tree-optimization/45397
1319         * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
1320         * tree-ssa-sccvn.c (valueized_wider_op): New helper.
1321         (visit_nary_op): Add pattern matching for CSEing sign-changed
1322         or truncated operations with wider ones.
1324 2017-02-27  Richard Biener  <rguenther@suse.de>
1326         PR tree-optimization/79690
1327         * tree-vect-stmts.c (vectorizable_store): Use vector type
1328         built from the DR with address-space.
1330 2017-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
1332         * doc/invoke.texi (Optimize Options): Refine the description
1333         of asan-use-after-return.
1335 2017-02-25  Alan Modra  <amodra@gmail.com>
1337         PR rtl-optimization/79584
1338         * lra-constraints.c (base_to_reg): Reload ad->base, the entire
1339         base, not ad->base_term, the reg within base.  Remove assertion
1340         that ad->base == ad->base_term.  Replace gen_int_mode using
1341         bogus mode with const0_rtx.
1343 2017-02-25  Jakub Jelinek  <jakub@redhat.com>
1345         PR middle-end/79396
1346         * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
1347         FMA_EXPR like tcc_binary or tcc_unary.
1349         * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
1351         PR debug/77589
1352         * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
1353         bitfield.
1354         (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
1355         (output_loc_operands): Handle DW_OP_call_ref and
1356         DW_OP_GNU_variable_value.
1357         (struct variable_value_struct): New type.
1358         (struct variable_value_hasher): Likewise.
1359         (variable_value_hash): New variable.
1360         (string_types): Remove.
1361         (copy_loc_descr): New function.
1362         (add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
1363         (prepend_loc_descr_to_each): New function.
1364         (add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
1365         instead of add_loc_descr_to_each if the first argument is single
1366         location list and the second has multiple.
1367         (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
1368         (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
1369         when looking for variable value which doesn't have other location info.
1370         (loc_list_from_tree): Formatting fix.
1371         (gen_array_type_die): Simplify DW_AT_string_length handling.
1372         (adjust_string_types): Remove.
1373         (gen_subprogram_die): Don't call adjust_string_types nor test/set
1374         string_types.  Call resolve_variable_values.
1375         (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
1376         (resolve_addr_in_expr): Likewise.  Add A argument.
1377         (copy_deref_exprloc): Remove deref argument.  Adjust for the
1378         original expression being DW_OP_GNU_variable_value with optionally
1379         DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
1380         optionally after it.
1381         (optimize_string_length): Rework for DW_OP_GNU_variable_value.
1382         (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
1383         callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
1384         (variable_value_hasher::hash, variable_value_hasher::equal): New
1385         methods.
1386         (resolve_variable_value_in_expr, resolve_variable_value,
1387         resolve_variable_values, note_variable_value_in_expr,
1388         note_variable_value): New functions.
1389         (dwarf2out_early_finish): Call note_variable_value on all toplevel
1390         DIEs.
1392 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
1394         PR c/79677
1395         * opts.h (handle_generated_option): Add GENERATED_P argument.
1396         * opts-common.c (handle_option): Adjust function comment.
1397         (handle_generated_option): Add GENERATED_P argument, pass it to
1398         handle_option.
1399         (control_warning_option): Pass false to handle_generated_option
1400         GENERATED_P.
1401         * opts.c (maybe_default_option): Pass true to handle_generated_option
1402         GENERATED_P.
1403         * optc-gen.awk: Likewise.
1405 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
1407         * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
1408         a REG, look at the REG it is a SUBREG of.
1409         (splitter for cmpeqsi_t): Ditto.
1411 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
1413         * config/pa/pa.c (pa_combine_instructions): Do not share RTL.  Make
1414         the special USEs with the pattern of the insn, not the insn itself.
1416 2017-02-24  Matthew Fortune  <matthew.fortune@imgtec.com>
1418         PR target/79473
1419         * doc/invoke.texi: Document -mload-store-pairs.
1421 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
1422             Sandra Loosemore  <sandra@codesourcery.com>
1424         * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
1425         argument isn't a CONST_INT.
1426         (nios2_alternate_compare_const): Assert op is a CONST_INT.
1427         (nios2_valid_compare_const_p): Assert op is a CONST_INT.
1428         (nios2_validate_compare): Bypass alternate compare logic if *op2
1429         is not a CONST_INT.
1430         (ldstwm_operation_p): Return false if first_base is not a REG or
1431         if first_offset is not a CONST_INT.
1433 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
1435         * config/cris/cris.md: Use correct operand in a define_peephole2.
1437 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
1439         * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
1441 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
1443         * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
1444         this_insn if it is an INSN or JUMP_INSN.
1445         (force_offsettable): Look at base, not at addr.
1446         * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
1447         on things that aren't necessarily CONST_INTs.
1449 2017-02-24  Uros Bizjak  <ubizjak@gmail.com>
1451         * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
1452         -mfpmath=sse is the default also for x86-32 targets with SSE2
1453         instruction set when @option{-ffast-math} is enabled
1455 2017-02-24  Jeff Law  <law@redhat.com>
1457         PR rtl-optimizatoin/79286
1458         * ira.c (update_equiv_regs): Drop may_trap_p exception to
1459         dominance test.
1461 2017-02-24  Richard Biener  <rguenther@suse.de>
1463         PR tree-optimization/79389
1464         * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
1465         debug insns.
1467 2017-02-24  Aldy Hernandez  <aldyh@redhat.com>
1469         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
1470         function comment to reflect reality.
1471         (loop_exits_before_overflow): Fix typo in function description.
1473 2017-02-24  Richard Biener  <rguenther@suse.de>
1475         PR tree-optimization/79389
1476         * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
1477         properly that a threading opportunity exists.  Detect conditional
1478         copy/constant propagation opportunities.
1480 2017-02-23  Eric Botcazou  <ebotcazou@adacore.com>
1482         * config/visium/visium.md (type): Add trap.
1483         (b): New mode attribute.
1484         (*btst): Rename into...
1485         (*btst<mode>): ...this and adjust.
1486         (*cbranchsi4_btst_insn): Rename into...
1487         (*cbranch<mode>4_btst_insn): ...this and adjust.
1488         (trap): New define_insn.
1490 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
1492         PR tree-optimization/79389
1493         * ifcvt.c (struct noce_if_info): Add rev_cond field.
1494         (noce_reversed_cond_code): New function.
1495         (noce_emit_store_flag): Use rev_cond if non-NULL instead of
1496         reversed_comparison_code.  Formatting fix.
1497         (noce_try_store_flag): Test rev_cond != NULL in addition to
1498         reversed_comparison_code.
1499         (noce_try_store_flag_constants): Likewise.
1500         (noce_try_store_flag_mask): Likewise.
1501         (noce_try_addcc): Use rev_cond if non-NULL instead of
1502         reversed_comparison_code.
1503         (noce_try_cmove_arith): Likewise.  Formatting fixes.
1504         (noce_try_minmax, noce_try_abs): Clear rev_cond.
1505         (noce_find_if_block): Initialize rev_cond.
1506         (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
1507         instead of false as last argument never attempt to reverse it
1508         afterwards.
1510 2017-02-23  Bin Cheng  <bin.cheng@arm.com>
1512         PR tree-optimization/79663
1513         * tree-predcom.c (combine_chains): Process refs in reverse order
1514         only for ZERO length chains, and add explaining comment.
1516 2017-02-23  Jeff Law  <law@redhat.com>
1518         PR tree-optimization/79578
1519         * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
1520         in call to operand_equal_p.
1522 2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>
1524         PR target/71017
1525         * config/i386/cpuid.h: Fix another undefined behavior.
1527 2017-02-23  Richard Biener  <rguenther@suse.de>
1529         PR tree-optimization/79683
1530         * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
1531         vector types for data-refs.
1533 2017-02-23  Martin Liska  <mliska@suse.cz>
1535         * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
1537 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
1539         PR middle-end/79665
1540         * internal-fn.c (get_range_pos_neg): Moved to ...
1541         * tree.c (get_range_pos_neg): ... here.  No longer static.
1542         * tree.h (get_range_pos_neg): New prototype.
1543         * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
1544         are known to be in between 0 and signed maximum inclusive, try to
1545         expand both unsigned and signed divmod and use the cheaper one from
1546         those.
1548 2017-02-22  Jeff Law  <law@redhat.com>
1550         PR tree-optimization/79578
1551         * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
1552         to compare base operands.
1554 2017-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
1556         PR target/79211
1557         * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
1558         gpc_reg_operand instead of fpr_reg_operand.
1560 2017-02-22  Sameera Deshpande  <sameera.deshpande@imgtec.com>
1562         * config/mips/mips.c (mips_return_in_memory): Force FP
1563         vector types to be returned in memory for o32 ABI.
1565 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
1567         * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
1568         instead of DW_TAG_member for static data member declarations and don't
1569         set no_linkage_name for static inline data members.
1570         (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
1571         to DW_TAG_member.
1573 2017-02-22  Martin Liska  <mliska@suse.cz>
1575         * doc/invoke.texi: Replace inequality signs with square brackets
1576         for -Wnormalized.
1578 2017-02-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1580         PR tree-optimization/68644
1581         * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
1583 2017-02-22  Matthew Fortune  <matthew.fortune@imgtec.com>
1585         PR target/78660
1586         * lra-constraints.c (simplify_operand_subreg): Handle
1587         WORD_REGISTER_OPERATIONS targets.
1589 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
1591         PR target/70465
1592         * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
1593         and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
1594         elimination by swapping fld*.
1596 2017-02-22  Richard Biener  <rguenther@suse.de>
1598         PR tree-optimization/79673
1599         * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
1600         convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
1601         irrelevant address-space qualifiers and avoiding a
1602         ADDR_SPACE_CONVERT_EXPR from fold_convert.
1604 2017-02-22  Richard Biener  <rguenther@suse.de>
1606         PR tree-optimization/79666
1607         * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
1608         to not symbolically negate if that may introduce undefined
1609         overflow.
1611 2017-02-22  Martin Liska  <mliska@suse.cz>
1613         PR lto/79587
1614         * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
1615         * data-streamer-out.c (streamer_write_gcov_count_stream):
1616         Likewise.
1617         * value-prof.c (stream_out_histogram_value): Make assert more
1618         precise based on type of counter.
1620 2017-02-21  Uros Bizjak  <ubizjak@gmail.com>
1622         PR target/79593
1623         * config/i386/i386.md (standard_x87sse_constant_load splitter):
1624         Use nonimmediate_operand instead of memory_operand for operand 1.
1625         (float-extend standard_x87sse_constant_load splitter): Ditto.
1627 2017-02-21 Jeff Law  <law@redhat.com>
1629         PR tree-optimization/79621
1630         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
1631         blocks with edges to themselves.
1633 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
1635         PR target/79633
1636         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
1637         is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
1638         Use gimple_call_builtin_p.
1640         PR target/79570
1641         * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
1642         on temporarily removed DEBUG_INSNs.
1644         PR tree-optimization/79649
1645         * tree-loop-distribution.c (classify_partition): Give up on
1646         non-generic address space loads/stores.
1648 2017-02-21  Aldy Hernandez  <aldyh@redhat.com>
1650         * doc/loop.texi (Loop manipulation): Remove nonexistent
1651         tree_ssa_loop_version from the documentation.
1652         * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
1654 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
1656         PR target/79494
1657         * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
1658         make_reg_eh_region_note_nothrow_nononlocal on call_insn.
1659         * config/rs6000/rs6000.c: Include except.h.
1660         (rs6000_expand_split_stack_prologue): Call
1661         make_reg_eh_region_note_nothrow_nononlocal on the call insn.
1663 2017-02-21  Martin Jambor  <mjambor@suse.cz>
1665         PR lto/79579
1666         * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
1667         have been analyzed.
1669 2017-02-21  Martin Jambor  <mjambor@suse.cz>
1671         * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
1672         for backward compatibility only.
1673         * doc/invoke.texi (Option Summary): Remove all references to
1674         -fipa-cp-alignment.
1676 2017-02-21  Matthew Fortune  <matthew.fortune@imgtec.com>
1678         PR target/78660
1679         Revert:
1680         2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
1682         * lra-constraints.c (curr_insn_transform): Handle
1683         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
1685 2017-02-21  Martin Liska  <mliska@suse.cz>
1687         * config/i386/i386.opt: Replace -masm-dialect with -masm.
1689 2017-02-21  Thomas Schwinge  <thomas@codesourcery.com>
1691         PR translation/79638
1692         * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
1694 2017-02-21  Eric Botcazou  <ebotcazou@adacore.com>
1696         PR ada/67205
1697         * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
1698         (arm_function_ok_for_sibcall): Return false for an indirect call by
1699         descriptor if all the argument registers are used.
1700         (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
1701         alignment of the function.
1703 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
1705         PR tree-optimization/61441
1706         * simplify-rtx.c (simplify_const_unary_operation): For
1707         -fsignaling-nans and sNaN operand, return NULL_RTX rather than
1708         the sNaN unmodified.
1710 2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1712         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
1713         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
1714         instead of SYSTEM_HEADER_DIR.
1716 2017-02-20  Gerald Pfeifer  <gerald@pfeifer.com>
1717             Martin LiÅ¡ka  <mliska@suse.cz>
1719         * doc/invoke.texi (use-after-scope-direct-emission-threshold):
1720         Fix typos and grammar, use active voice, and clarify.
1722 2017-02-20  Marek Polacek  <polacek@redhat.com>
1724         PR middle-end/79537
1725         * gimplify.c (gimplify_expr): Handle unused *&&L;.
1727         PR sanitizer/79558
1728         * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
1730 2017-02-20  Jakub Jelinek  <jakub@redhat.com>
1732         PR target/79568
1733         * config/i386/i386.c (ix86_expand_builtin): Handle
1734         OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
1735         ix86_builtins_isa[fcode].isa as a requirement of those
1736         flags and any other flag in the bitmask.
1737         (ix86_init_mmx_sse_builtins): Use 0 instead of
1738         ~OPTION_MASK_ISA_64BIT as mask.
1739         * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
1740         __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
1741         __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
1742         __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
1744 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
1746         PR target/78012
1747         * lra-constraints.c (split_reg): Check requested split mode
1748         is supported by the register.
1750 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
1752         * lra-constraints.c (simplify_operand_subreg): Remove early
1753         return false.
1755 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
1757         PR target/78660
1758         * lra-constraints.c (curr_insn_transform): Tighten condition
1759         for converting SUBREG reloads from OP_OUT to OP_INOUT.
1761 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
1763         PR target/78660
1764         * lra-constraints.c (curr_insn_transform): Handle
1765         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
1767 2017-02-19  Uros Bizjak  <ubizjak@gmail.com>
1769         Revert:
1770         2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
1772         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
1774 2017-02-19  Jonathan Wakely  <jwakely@redhat.com>
1776         PR c++/69523
1777         * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
1778         description.
1780 2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1782         * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
1783         for FMA_EXPR.
1785 2017-02-18  Jakub Jelinek  <jakub@redhat.com>
1787         * final.c (last_columnnum, override_columnnum): New variables.
1788         (final_start_function): Set last_columnnum, pass it to begin_prologue
1789         hook and pass 0 to dwarf2out_begin_prologue.
1790         (final_scan_insn): Update override_columnnum.  Pass last_columnnum
1791         to source_line debug hook.
1792         (notice_source_line): Compute last_columnnum and for debug_column_info
1793         return true on column changes.
1794         * debug.h (struct gcc_debug_hooks): Add column argument to
1795         source_line and begin_prologue hooks.
1796         (debug_nothing_int_charstar_int_bool): Remove prototype.
1797         (debug_nothing_int_int_charstar,
1798         debug_nothing_int_int_charstar_int_bool): New prototypes.
1799         (dwarf2out_begin_prologue): Add column argument.
1800         * debug.c (do_nothing_debug_hooks): Adjust source_line and
1801         begin_prologue hooks.
1802         (debug_nothing_int_charstar_int_bool): Remove.
1803         (debug_nothing_int_int_charstar,
1804         debug_nothing_int_int_charstar_int_bool): New functions.
1805         * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
1806         through to dwarf2out_source_line.
1807         (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
1808         (dwarf2out_source_line): Add column argument, emit it if requested.
1809         * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
1810         arguments.
1811         * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
1812         * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
1813         * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
1814         through to dwarf2out_begin_prologue.
1815         (vmsdbgout_source_line): Add column argument, pass it through to
1816         dwarf2out_source_line.
1817         * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
1818         dbxout_source_line caller.
1819         (dbxout_source_line): Add column argument.
1821         * common.opt (gno-column-info, gcolumn-info): New options.
1822         * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
1823         (check_die): Also test for multiple DW_AT_decl_column attributes.
1824         (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
1825         DW_AT_decl_column if requested.
1826         (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
1827         if requested.
1828         (gen_variable_die): Likewise.
1829         (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
1830         * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
1832         PR target/79569
1833         * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
1834         * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
1835         (ix86_handle_option): Handle OPT_m3dnowa.
1836         * doc/invoke.texi (-m3dnowa): Document.
1837         * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
1838         -m3dnowa instead of -m3dnow -march=athlon.
1840         PR target/79559
1841         * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
1842         instead of gcc_assert for K, r and R code checks.  Formatting fixes.
1844 2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1846         PR target/79261
1847         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
1848         support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
1849         * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
1850         generator for vsx_xxpermdi_<mode>_be.
1851         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
1852         force big-endian semantics.
1853         (vsx_xxpermdi_<mode>_be): New define_expand with same
1854         implementation as previous version of vsx_xxpermdi_<mode>.
1856 2017-02-17  Jakub Jelinek  <jakub@redhat.com>
1858         PR tree-optimization/79327
1859         * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
1860         variable, its initialization and use.
1862 2017-02-17  Julia Koval  <julia.koval@intel.com>
1864         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
1865         (OPTION_MASK_ISA_PKU_UNSET): New.
1866         (ix86_handle_option): Handle -mrdpid.
1867         * config/i386/cpuid.h (bit_RDPID): New.
1868         * config/i386/driver-i386.c (host_detect_local_cpu):
1869         Detect RDPID feature.
1870         * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
1871         * config/i386/i386-c.c (ix86_target_macros_internal):
1872         Handle RDPID flag.
1873         * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
1874         (ix86_valid_target_attribute_inner_p): Add "rdpid".
1875         (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
1876         * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
1877         * config/i386/i386.md (define_insn "rdpid"): New.
1878         * config/i386/i386.opt Add -mrdpid.
1879         * config/i386/immintrin.h (_rdpid_u32): New.
1881 2017-02-17  Vladimir Makarov  <vmakarov@redhat.com>
1883         PR rtl-optimization/79541
1884         * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
1885         instead of transforming it into USE.
1887 2017-02-17  Segher Boessenkool  <segher@kernel.crashing.org>
1889         * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
1890         If HONOR_SNANS (SFmode) force the input to a register.
1891         (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
1892         (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
1893         an frsp or similar insn.
1895 2017-02-17  Martin Liska  <mliska@suse.cz>
1897         PR rtl-optimization/79577
1898         * params.def (selsched-max-sched-times): Increase minimum to 1.
1900 2017-02-17  Martin Liska  <mliska@suse.cz>
1902         PR rtl-optimization/79574
1903         * gcse.c (want_to_gcse_p): Prevent integer overflow.
1905 2017-02-17  Martin Liska  <mliska@suse.cz>
1907         PR tree-optimization/79529
1908         * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
1909         ssa_defined_default_def_p to handle cases which are implicitly
1910         defined.
1911         * tree-ssa.c (ssa_defined_default_def_p): New function.
1912         (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
1913         which are implicitly defined.
1914         * tree-ssa.h (ssa_defined_default_def_p): Declare.
1916 2017-02-17  Richard Biener  <rguenther@suse.de>
1918         PR middle-end/79576
1919         * params.def (max-ssa-name-query-depth): Limit to 10.
1921 2017-02-17  Richard Biener  <rguenther@suse.de>
1923         PR tree-optimization/79552
1924         * tree-ssa-structalias.c (visit_loadstore): Properly verify
1925         default defs.
1927 2017-02-17  Richard Biener  <rguenther@suse.de>
1929         PR bootstrap/79567
1930         * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
1932 2017-02-17  Marek Polacek  <polacek@redhat.com>
1934         PR middle-end/79536
1935         * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
1936         (fold_negate_expr): New wrapper.
1938 2017-02-16  Sandra Loosemore  <sandra@codesourcery.com>
1940         * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: 
1941         Correct terminology and de-emphasize pre-standard behavior.
1943 2017-02-16  Alan Modra  <amodra@gmail.com>
1945         PR rtl-optimization/79286
1946         * ira.c (def_dominates_uses): New function.
1947         (update_equiv_regs): Don't create an equivalence for insns that
1948         may trap where the register def does not dominate the use.
1950 2017-02-16  Vladimir Makarov  <vmakarov@redhat.com>
1952         PR rtl-optimization/78127
1953         * lra.c (lra): Call lra_eliminate before finish the loop after
1954         lra_constraint.
1956 2017-02-16  Richard Biener  <rguenther@suse.de>
1958         * graphite.h: Do not include isl/isl_val_gmp.h, instead include
1959         isl/isl_val.h.
1960         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
1961         (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
1962         * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
1963         (isl_val_int_from_wi): New function.
1964         (extract_affine_gmp): Rename to ...
1965         (extract_affine_wi): ... this, take a widest_int.
1966         (extract_affine_int): Just wrap extract_affine_wi.
1967         (add_param_constraints): Use isl_val_int_from_wi.
1968         (add_loop_constraints): Likewise, and extract_affine_wi.
1970 2017-02-15 Jeff Law  <law@redhat.com>
1972         PR middle-end/79521
1973         * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
1974         ira_init_register_move_cost_if_necessary.
1976 2017-02-15  Martin Sebor  <msebor@redhat.com>
1978         PR middle-end/32003
1979         * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
1980         removed in a prior commit.
1982 2017-02-15  Bin Cheng  <bin.cheng@arm.com>
1984         PR tree-optimization/79347
1985         * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
1986         counters during peeling.
1988 2017-02-15  Thomas Schwinge  <thomas@codesourcery.com>
1990         * Makefile.in (site.exp): Remove "set ISLVER".
1992 2017-02-15  Jakub Jelinek  <jakub@redhat.com>
1994         PR target/79487
1995         * real.c (real_from_integer): Call real_convert even for decimal.
1997 2017-02-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1999         PR target/79421
2000         * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
2002 2017-02-14  Andrew Pinski  <apinski@cavium.com>
2004         * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
2005         cores and change the partno/implementer to be correct.
2006         (thunderx2t99p1): New core which replaces thunderx2t99 and still has
2007         the 'B" as the implementer.
2008         * config/aarch64/aarch64-tune.md: Regenerate.
2010 2017-02-14  Carl Love  <cel@us.ibm.com>
2012         * config/rs6000/rs6000.c: Add case statement entry to make the
2013         xvcvuxdsp built-in argument unsigned.
2014         * config/rs6000/vsx.md: Fix the source and return operand types so they
2015         match the instruction definitions from the ISA document.  Fix typo
2016         in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
2017         statement.
2019 2017-02-14  Vladimir Makarov  <vmakarov@redhat.com>
2021         PR target/79282
2022         * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
2023         member early_clobber_alts.
2024         * lra-lives.c (reg_early_clobber_p): New.
2025         (process_bb_lives): Use it.
2026         * lra.c (new_insn_reg): New arg early_clobber_alts.  Use it.
2027         (debug_operand_data): Initialize early_clobber_alts.
2028         (setup_operand_alternative): Set up early_clobber_alts.
2029         (collect_non_operand_hard_regs): Ditto.  Pass early clobber
2030         alternatives to new_insn_reg.
2031         (add_regs_to_insn_regno_info): Add arg early_clobber_alts.  Use
2032         it.
2033         (lra_update_insn_regno_info): Pass the new arg.
2035 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
2037         PR middle-end/79505
2038         * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
2039         (new_oacc_loop_raw): Don't clear already cleared fields.
2041         PR target/79481
2042         * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
2043         _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
2044         _mm512_prefetch_i64gather_ps): New inline functions and macros.
2046 2017-02-14  Uros Bizjak  <ubizjak@gmail.com>
2048         PR target/79495
2049         * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
2051 2017-02-14  H.J. Lu  <hongjiu.lu@intel.com>
2053         PR target/79498
2054         * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
2055         the extra instruction to the right place to store 128-bit constant
2056         when needed.
2058 2017-02-14  Martin Sebor  <msebor@redhat.com>
2060         PR middle-end/79448
2061         * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
2062           warning for strings of unknown length.
2064 2017-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
2066         * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
2068 2017-02-14 Jeff Law  <law@redhat.com>
2070         PR target/79404
2071         * ira-costs.c (scan_one_insn): Initialize register move costs
2072         for pseudos seen in USE/CLOBBER insns.
2074         PR tree-optimization/79095
2075         * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
2076         if the numerator has the range ~[0,0] make the resultant range ~[0,0].
2077         (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
2078         if the operands are known to be not equal, then the resulting range
2079         is ~[0,0].
2080         (intersect_ranges): If the new range is ~[0,0] and the old range is
2081         wide, then prefer ~[0,0].
2082         * tree-vrp.c (overflow_comparison_p_1): New function.
2083         (overflow_comparison_p): New function.
2084         * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
2085         if NAME is used in an overflow test.
2086         (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
2087         overflow check that can be expressed as an equality test, then adjust
2088         ops to be that equality test.
2090 2017-02-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2092         * config/s390/s390-builtin-types.def: Remove flags argument.
2093         * config/s390/s390.c (s390_init_builtins): Likewise.
2095 2017-02-14  Martin Liska  <mliska@suse.cz>
2097         * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
2098         vector.  Fix trailing white spaces.
2100 2017-02-14  James Greenhalgh  <james.greenhalgh@arm.com>
2102         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
2103         HFmode.
2105 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2107         PR rtl-optimization/68664
2108         * config/arm/arm.c (arm_sched_can_speculate_insn):
2109         New function.  Declare prototype.
2110         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
2112 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2114         PR rtl-optimization/68664
2115         * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
2116         New function.
2117         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
2119 2017-02-14  Amit Pawar  <amit.pawar@amd.com>
2121         * config/i386/i386.c (znver1_cost): Fix the alignment for function and
2122         max skip bytes for function, loop and jump.
2124 2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2126         * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
2127         ABS_EXPR for gimple dump.
2129 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
2131         PR target/79462
2132         * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
2134         PR tree-optimization/79408
2135         * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
2136         case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
2137         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
2138         also if rhs1 is INTEGER_CST.
2140 2017-02-14  Richard Biener  <rguenther@suse.de>
2142         PR middle-end/79432
2143         * tree-into-ssa.c (insert_phi_nodes): When the function can
2144         have abnormal edges rewrite SSA names with broken use-def
2145         dominance out of SSA and register them for PHI insertion.
2147 2017-02-13  Martin Sebor  <msebor@redhat.com>
2149         PR middle-end/79496
2150         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
2151         clearing info.nowrite flag when snprintf size argument is a range.
2153 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
2155         * cprop.c (cprop_jump): Add missing space in string literal.
2156         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
2157         (get_constraint_for_component_ref): Likewise.
2158         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
2159         * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
2160         * lra-constraints.c (process_alt_operands): Likewise.
2161         * ipa-inline.c (inline_small_functions): Likewise.
2162         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
2163         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
2164         * trans-mem.c (diagnose_tm_1_op): Likewise.
2165         * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
2166         (grid_parallel_clauses_gridifiable): Likewise.
2168         * config/nvptx/mkoffload.c (process): Add space in between
2169         , and %d.
2171         * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
2172         "MOD4_SSE_REGS" and "ALL_REGS".
2174         * spellcheck.c (test_data): Add , in between "foo" and "food".
2176 2017-02-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
2178         PR target/79449
2179         * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
2180         boundary crossing check and subsequent code generation agree.
2182 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2184         * config/aarch64/aarch64.c (has_memory_op): Delete.
2185         (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
2186         has_memory_op.
2188 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
2190         PR rtl-optimization/79388
2191         PR rtl-optimization/79450
2192         * combine.c (distribute_notes): When removing TEM_INSN for which
2193         corresponding dest has last value recorded, invalidate that last
2194         value.
2196 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2198         * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
2199         of explicit '@'.  Add missing assembly comment marker on branch costs
2200         printout.
2202 2017-02-13  Nathan Sidwell  <nathan@acm.org>
2204         * gengtype-lex.l (<in_struct>): Add '/'.
2206 2017-02-13  Martin Liska  <mliska@suse.cz>
2208         PR c/79471
2209         * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
2211 2017-02-13  Richard Biener  <rguenther@suse.de>
2213         * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
2214         Remove.
2215         * configure: Re-generate.
2216         * config.in: Likewise.
2217         * graphite-dependences.c: Simplify as if
2218         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
2219         * graphite-isl-ast-to-gimple.c: Likewise.
2220         * graphite-optimize-isl.c: Likewise.
2221         * graphite-poly.c: Likewise.
2222         * graphite-sese-to-poly.c: Likewise.
2223         * graphite.h: Likewise.
2224         * toplev.c: Include isl/version.h and use isl_version () for
2225         printing the ISL version.
2226         * doc/install.texi: Update ISL requirement.
2228 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
2230         * doc/standards.texi (Standards): Update reference to
2231         Objective-C 2.0.
2233 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
2234         
2235         * doc/extend.texi (Named Address Spaces): sourceware.org now
2236         defaults to https.
2237         * doc/install.texi (Binaries): Ditto.
2238         (Specific): Ditto.
2240 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
2242         * doc/cpp.texi: Replace "stringify"/"stringification" with C 
2243         standard terminology "stringize"/"stringizing" throughout.
2244         * doc/cppinternals.texi: Likewise.
2246 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
2248         * doc/extend.texi: Fix some spelling mistakes and typos.
2249         * doc/invoke.texi: Likewise.
2251 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
2253         PR ipa/79224
2254         * params.def (inline-min-speedup) Change from 10 to 8.
2256 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
2258         * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
2259         4.5.
2261 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
2263         PR ipa/79224
2264         * ipa-inline-analysis.c (get_minimal_bb): New function.
2265         (record_modified): Use it.
2266         (remap_edge_change_prob): Handle also ancestor functions.
2268 2017-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
2270         * doc/contrib.texi (Contributors): Remove broken link into
2271         the Mauve CVS repository.
2273 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
2275         PR middle-end/79454
2276         * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
2277         result computation whenever lhs doesn't have vector mode, not
2278         just when it has BLKmode.
2280 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
2282         * doc/makefile.texi (profiledbootstrap): Refer to the
2283         installation instructions only in textual form.
2285 2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
2287         PR target/79295
2288         * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
2290 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
2292         * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
2293         (Specific): Update mingw-w64 reference.
2294         (Binaries): Ditto.
2295         (Specific): Remove broken link to Renesas RX processor.
2297 2017-02-10  Richard Biener  <rguenther@suse.de>
2299         * toplev.c (process_options): Do not mention obsolete graphite
2300         options when printing sorry message about missing graphite support.
2301         Mention -floop-nest-optimize.
2303 2017-02-10  Christophe Lyon  <christophe.lyon@linaro.org>
2305         * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
2306         (vtst_p16): Likewise.
2307         (vtstq_p8): Likewise.
2308         (vtstq_p16): Likewise.
2309         (vtst_p64): New.
2310         (vtstq_p64): Likewise.
2311         * config/arm/arm_neon.h (vgetq_lane_p64): New.
2312         (vset_lane_p64): New.
2313         (vsetq_lane_p64): New.
2315 2017-02-10  Jakub Jelinek  <jakub@redhat.com>
2317         PR tree-optimization/79411
2318         * tree-ssa-reassoc.c (is_reassociable_op): Return false if
2319         stmt operands are SSA_NAMEs used in abnormal phis.
2320         (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
2321         phis.
2323 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
2325         PR ipa/70795
2326         * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
2327         flag if needed.
2329 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
2331         * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
2333 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
2335         * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
2336         to avoid warning.
2338         PR c/79413
2339         * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
2340         not arbitrary TREE_CONSTANT.
2342         PR c/79431
2343         * gimplify.c (gimplify_adjust_omp_clauses): Ignore
2344         "omp declare target link" attribute unless is_global_var.
2345         * omp-offload.c (find_link_var_op): Likewise.
2347 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
2348             Chung-Lin Tang  <cltang@codesourcery.com>
2350         * gimplify.c (gimplify_scan_omp_clauses): No special handling for
2351         OMP_CLAUSE_TILE.
2352         (gimplify_adjust_omp_clauses): Don't delete TILE.
2353         (gimplify_omp_for): Deal with TILE.
2354         * internal-fn.c (expand_GOACC_TILE): New function.
2355         * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
2356         (GOACC_TILE): New.
2357         * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
2358         (expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
2359         element fields.
2360         (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
2361         avoid DIV for outermost collapse var.
2362         (expand_oacc_for): Insert tile element loop as needed.  Adjust.
2363         Remove out of date comments, fix whitespace.
2364         * omp-general.c (omp_extract_for_data): Deal with tiling.
2365         * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
2366         adjust OLF_DIM_BASE value.
2367         (struct omp_for_data): Add tiling field.
2368         * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
2369         (lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
2370         for auto loops.  Remove default auto determining, moved to
2371         oacc_loop_fixed_partitions.
2372         * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
2373         stmts, add e_mask field.
2374         (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
2375         (oacc_thread_numbers): Use oacc_dim_call.
2376         (oacc_xform_tile): New.
2377         (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
2378         (finish_oacc_loop): Adjust for ifns vector.
2379         (oacc_loop_discover_walk): Append loop abstraction sites to list,
2380         add case for GOACC_TILE fns.
2381         (oacc_loop_xform_loop): Delete.
2382         (oacc_loop_process): Iterate over call list directly, and add
2383         handling for GOACC_TILE fns.
2384         (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
2385         dump partitioning.
2386         (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
2387         vector partitioning to outer loops.  Assign 2 partitions to loops
2388         when available. Add TILE handling.
2389         (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
2390         (execite_oacc_device_lower): Process GOACC_TILE fns, ignore unknown specs.
2391         * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
2392         * tree.c (omp_clause_num_ops): Adjust TILE ops.
2393         * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
2395 2017-02-09  Gerald Pfeifer  <gerald@pfeifer.com>
2397         * configure.ac (ACX_BUGURL): Update.
2398         * configure: Regenerate.
2400 2017-02-09  Richard Biener  <rguenther@suse.de>
2402         PR tree-optimization/69823
2403         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
2404         Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.
2406 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
2408         * config/arc/arc-c.def: Add __NPS400__ definition.
2409         * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
2410         (TARGET_NPS400): Define.
2412 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
2414         * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
2415         file.
2416         (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
2417         pointer, arch_info.
2418         (arc_cpu_types): Fill the arch_info field with a pointer into the
2419         arc_arch_types table.
2420         (arc_selected_cpu): Declare.
2421         * config/arc/arc.c (arc_selected_cpu): Make global.
2422         (arc_selected_arch): Delete.
2423         (arc_base_cpu): Delete.
2424         (arc_override_options): Remove references to deleted variables,
2425         update access to arch information.
2426         (ARC_OPT): Update access to arch information.
2427         (ARC_OPTX): Likewise.
2428         * config/arc/arc.h (arc_base_cpu): Remove declaration.
2429         (TARGET_ARC600): Update access to arch information.
2430         (TARGET_ARC601): Likewise.
2431         (TARGET_ARC700): Likewise.
2432         (TARGET_EM): Likewise.
2433         (TARGET_HS): Likewise.
2434         * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
2435         information.
2437 2017-02-08  Pat Haugen  <pthaugen@us.ibm.com>
2439         PR target/78604
2440         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
2441         condition/operands for integer GE/LE/GEU/LEU operations.
2443 2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>
2445         PR translation/79397
2446         * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
2447         of AltiVec.
2449 2017-02-08  Martin Jambor  <mjambor@suse.cz>
2451         PR ipa/79375
2452         * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
2453         whether allocation happened.
2454         (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
2455         nothing was allocated.
2457 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
2459         PR tree-optimization/79408
2460         * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
2461         constant, but SSA_NAME with a known integer range, use the minimum
2462         of that range instead of op1 to determine if modulo can be replaced
2463         with its first operand.
2465 2016-02-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2467         * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
2469 2017-02-08  Richard Biener  <rguenther@suse.de>
2471         PR tree-optimization/71824
2472         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
2473         Check all loops contained in the merged region.
2475 2017-02-07  Andrew Pinski  <apinski@cavium.com>
2477         * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
2479 2017-02-07  Andrew Pinski  <apinski@cavium.com>
2481         * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
2482         (thunderxt88): Likewise.
2483         (thunderxt81): Disable LSE and change v8.1 to v8.
2484         (thunderxt83): Likewise.
2486 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
2487             Richard Biener  <rguenther@suse.de>
2489         PR middle-end/79399
2490         * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
2491         type from int to size_t.
2492         * ira-costs.c (struct_costs_size): Change type from int to size_t.
2494 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
2496         PR rtl-optimization/79386
2497         * cprop.c (bypass_conditional_jumps): Initialize
2498         bypass_last_basic_block already before splitting bbs after
2499         unconditional traps...
2500         (bypass_conditional_jumps): ... rather than here.
2502         PR target/79299
2503         * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
2504         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
2505         *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
2506         fix -masm=intel patterns.
2508 2017-02-07  Richard Biener  <rguenther@suse.de>
2510         PR tree-optimization/79256
2511         PR middle-end/79278
2512         * builtins.c (get_object_alignment_2): Use min_align_of_type
2513         to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
2514         and ADJUST_FIELD_ALIGN.
2516         * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
2517         type parameter.
2518         * doc/tm.texi: Regenerate.
2519         * stor-layout.c (layout_decl): Adjust.
2520         (update_alignment_for_field): Likewise.
2521         (place_field): Likewise.
2522         (min_align_of_type): Likewise.
2523         * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
2524         * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
2525         * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
2526         * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
2527         * config/frv/frv.c (frv_adjust_field_align): Likewise.
2528         * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
2529         * config/i386/i386.c (x86_field_alignment): Likewise.
2530         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
2531         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
2532         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
2533         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
2534         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
2535         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
2536          Likewise.
2538         Revert
2539         2017-01-30  Richard Biener  <rguenther@suse.de>
2541         PR tree-optimization/79256
2542         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
2543         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
2544         alignment on TYPE.
2546 2017-02-07  Toma Tabacu  <toma.tabacu@imgtec.com>
2548         * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
2549         argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
2550         builtins to SImode and emit a zero-extend, if necessary.
2552 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
2554         * docs/invoke.texi (RISC-V Options): Alphabetize.
2556 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
2558         * doc/invoke.texi (RISC-V Options): Use two spaces to separate
2559         options.
2561 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
2563         * config/riscv/riscv.c: New file.
2564         * gcc/common/config/riscv/riscv-common.c: Likewise.
2565         * config.gcc: Likewise.
2566         * config/riscv/constraints.md: Likewise.
2567         * config/riscv/elf.h: Likewise.
2568         * config/riscv/generic.md: Likewise.
2569         * config/riscv/linux.h: Likewise.
2570         * config/riscv/multilib-generator: Likewise.
2571         * config/riscv/peephole.md: Likewise.
2572         * config/riscv/pic.md: Likewise.
2573         * config/riscv/predicates.md: Likewise.
2574         * config/riscv/riscv-builtins.c: Likewise.
2575         * config/riscv/riscv-c.c: Likewise.
2576         * config/riscv/riscv-ftypes.def: Likewise.
2577         * config/riscv/riscv-modes.def: Likewise.
2578         * config/riscv/riscv-opts.h: Likewise.
2579         * config/riscv/riscv-protos.h: Likewise.
2580         * config/riscv/riscv.h: Likewise.
2581         * config/riscv/riscv.md: Likewise.
2582         * config/riscv/riscv.opt: Likewise.
2583         * config/riscv/sync.md: Likewise.
2584         * config/riscv/t-elf-multilib: Likewise.
2585         * config/riscv/t-linux: Likewise.
2586         * config/riscv/t-linux-multilib: Likewise.
2587         * config/riscv/t-riscv: Likewise.
2588         * configure.ac: Likewise.
2589         * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
2590         Waterman as RISC-V maintainers.
2591         * doc/install.texi: Add RISC-V entries.
2592         * doc/invoke.texi: Add RISC-V options section.
2593         * doc/md.texi: Add RISC-V constraints section.
2594         * configure: Regenerated.
2596 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
2598         PR target/66144
2599         * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
2600         false values to be constant vectors with all 0 or all 1 bits set.
2601         (vcondu<mode><mode>): Likewise.
2602         * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
2603         predicate.
2604         (fpmask_comparison_operator): Update comment.
2605         (vecint_comparison_operator): New predicate.
2606         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
2607         vector conditionals when the true and false values are constant
2608         vectors with all 0 bits or all 1 bits set.
2610 2017-02-06  Martin Sebor  <msebor@redhat.com>
2612         PR  tree-optimization/79376
2613         * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
2615 2017-02-06  Uros Bizjak  <ubizjak@gmail.com>
2617         * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
2618         explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
2619         to simplify split condition.
2621 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
2623         * omp-expand.c (oxpand_omp_atomic_fetch_op,
2624         expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
2625         false.
2627 2017-02-06  Segher Boessenkool  <segher@kernel.crashing.org>
2629         PR rtl-optimization/68664
2630         * target.def (can_speculate_insn): New hook.
2631         * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
2632         * doc/tm.texi: Regenerate.
2633         * sched-rgn.c (can_schedule_ready_p): Use the new hook.
2634         * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
2635         (rs6000_sched_can_speculate_insn): New function.
2637 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
2639         PR tree-optimization/79284
2640         * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
2641         * tree-vect-stmts.c (vect_get_vec_def_for_operand,
2642         vectorizable_mask_load_store, vectorizable_operation,
2643         vect_is_simple_cond, get_same_sized_vectype): Use it instead
2644         of comparing TREE_CODE of a type against BOOLEAN_TYPE.
2645         * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
2646         vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
2647         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
2648         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
2649         Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
2650         is_gimple_assign (stmt).  Replace another such test with
2651         is_gimple_assign (stmt).
2653 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
2655         PR target/78883
2656         * config/avr/avr.c (rtl-iter.h): Include it.
2657         (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
2658         (avr_legitimate_combined_insn): ...and implementation.
2660 2017-02-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2662         * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
2663         * config/s390/s390.c (s390_const_operand_ok)
2664         (s390_canonicalize_comparison, s390_extract_part)
2665         (s390_single_part, s390_contiguous_bitmask_nowrap_p)
2666         (s390_contiguous_bitmask_p, s390_rtx_costs)
2667         (legitimize_pic_address): Likewise.
2668         * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
2669         * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
2670         ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
2671         ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
2672         * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
2674 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
2676         * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
2677         REGNO($0) == REGNO($1).
2679 2017-02-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2681         * config/s390/linux.h(SIZE_TYPE): Add comment.
2683 2017-02-06  Julian Brown  <julian@codesourcery.com>
2684             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
2685             Virendra Pathak  <virendra.pathak@broadcom.com>
2687         * config/aarch64/aarch64-cores.def: Change the scheduler
2688         to Thunderx2t99.
2689         * config/aarch64/aarch64.md: Include thunderx2t99.md.
2690         * config/aarch64/thunderx2t99.md: New file.
2692 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
2694         * doc/standards.texi (Go Language): Update link to language
2695         standard.
2697 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
2699         * tree-eh.c (lower_resx): Sanitize profile.
2700         (cleanup_empty_eh_move_lp): Likewise.
2702 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
2704         PR tree-ssa/79347
2705         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
2706         ELSE_PROB.
2707         * cfgloopmanip.h (loop_version): Update prototype.
2708         * modulo-sched.c (sms_schedule): Update call of loop_version.
2709         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
2710         * tree-parloops.c (gen_parallel_loop): Likewise.
2711         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
2712         * tree-ssa-loop-split.c (split_loop): Likewise.
2713         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
2714         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
2716 2017-02-05  Martin Liska  <mliska@suse.cz>
2718         PR bootstrap/78985
2719         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
2720         variable to NULL.
2721         (print_operand_address): Initialize a struct to zero.
2723 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
2725         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
2726         garbage collector only in textual form.
2728 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
2729         
2730         * doc/extend.texi (x86 specific memory model extensions for
2731         transactional memory): Simplify a phrase.
2733 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
2735         PR target/79353
2736         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
2737         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
2738         (atomic_storedi_1): Likewise.
2740 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
2742         PR tree-optimization/79338
2743         * tree-parloops.c (gather_scalar_reductions): Don't call
2744         vect_analyze_loop_form for loop->inner before destroying loop's
2745         loop_vinfo.
2747 2017-02-03  Martin Sebor  <msebor@redhat.com>
2749         PR tree-optimization/79327
2750         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
2751         when precision has resulted in leading zeros.
2752         (format_integer): Adjust the likely counter to assume an unknown
2753         argument that may be zero is non-zero.
2755 2017-02-03  Jason Merrill  <jason@redhat.com>
2757         PR c++/78689
2758         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
2759         avoid copying non-taken branch.
2761 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
2763         PR tree-optimization/79340
2764         * tree-vect-loop.c (vectorizable_reduction): Release
2765         vec_defs elements after safe_splicing them into other vectors.
2766         Formatting fixes.
2768         PR tree-optimization/79327
2769         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
2770         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
2771         dirtype.
2772         (format_integer): Use wide_int_to_tree instead of build_int_cst
2773         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
2774         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
2775         of shortest and longest sequence.
2777 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
2779         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
2780         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
2782 2017-02-03  Walter Lee  <walt@tilera.com>
2784         PR target/78862
2785         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
2786         after initial stackframe link reg save.
2787         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
2789 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
2791         PR target/79354
2792         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
2793         wu for stxssp alternative.
2795 2017-02-03  Martin Sebor  <msebor@redhat.com>
2797         PR tree-optimization/79352
2798         * gimple-fold.c (get_range_strlen): Add argument.
2799         (get_range_strlen): Change return type to bool.
2800         (get_maxval_strlen): Pass in a dummy argument.
2801         * gimple-fold.h (get_range_strlen): Change return type to bool.
2802         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
2803         * tree.h (array_at_struct_end_p): Add argument.
2804         * tree.c (array_at_struct_end_p): Handle it.
2806 2017-02-03  Martin Liska  <mliska@suse.cz>
2808         PR lto/66295
2809         * multiple_target.c (create_dispatcher_calls): Redirect edge
2810         from a caller of a dispatcher.
2811         (expand_target_clones): Make the clones local.
2812         (ipa_target_clone): Do both target clones and resolvers.
2813         (ipa_dispatcher_calls): Remove the pass.
2814         (pass_dispatcher_calls::gate): Likewise.
2815         (make_pass_dispatcher_calls): Likewise.
2816         * passes.def (pass_target_clone): Put as very first IPA early
2817         pass.
2819 2017-02-03  Martin Liska  <mliska@suse.cz>
2821         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
2822         in case of a function with ifunc attribute.
2824 2017-02-03  Martin Liska  <mliska@suse.cz>
2826         * cgraph.c (cgraph_node::dump): Dump function version info.
2827         * symtab.c (symtab_node::dump_base): Add missing new line.
2829 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
2831         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
2832         (ifcombine_ifandif): Use it.
2834 2017-02-03  Martin Liska  <mliska@suse.cz>
2836         * doc/invoke.texi: Document default value for
2837         use-after-scope-direct-emission-threshold.
2839 2017-02-03  Martin Liska  <mliska@suse.cz>
2841         PR tree-optimization/79339
2842         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
2843         (format_floating): Likewise.
2845 2017-02-03  Martin Liska  <mliska@suse.cz>
2847         PR ipa/79337
2848         * ipa-prop.c (ipa_node_params_t::insert): Remove current
2849         implementation.
2850         (ipa_node_params_t::remove): Likewise.
2851         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
2852         initialization from removed ipa_node_params_t::insert.
2853         (ipa_node_params::~ipa_node_params): Move from removed
2854         ipa_node_params_t::release.
2855         * symbol-summary.h (symbol_summary::m_released): New member.
2856         Do not release a summary twice.  Do not allow to call finalizer
2857         for types of a summary that live in GGC memory.
2859 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
2861         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
2862         cmp_branch fusion.
2864 2017-02-02  Martin Sebor  <msebor@redhat.com>
2866         PR middle-end/79275
2867         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
2868         (format_string): Tighten up the range of output for non-constant
2869         strings and correct the expected range for wide non-constant strings.
2871 2017-02-02  Martin Sebor  <msebor@redhat.com>
2873         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
2875         PR middle-end/32003
2876         * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
2877         index.
2878         (-fdump-tree-@var): Add to index and document how to come up
2879         with pass-specific option and dump file names.
2880         (-fdump-passes): Clarify where to look for output.
2882 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
2884         PR middle-end/77445
2885         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
2886         statistics of the analyzed path; allow threading for speed when
2887         any of BBs along the path are optimized for speed.
2889 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
2891         PR middle-end/78468
2892         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
2893         settings of the virtual registers.
2895         Revert again
2896         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2898         * explow.c (get_dynamic_stack_size): Take known alignment of stack
2899         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
2900         needed.
2902 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2904         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
2905         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
2907 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2909         * config/s390/s390.md: Add missing comments with the expanded
2910         mnemonics.
2911         * config/s390/vector.md: Likewise.
2912         * config/s390/vx-builtins.md: Likewise.
2914 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
2916         PR target/79197
2917         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
2918         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
2919         conditions on a single line.
2921 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2923         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
2924         __S390_VX__ to __VX__.
2926 2017-02-01  Andrew Pinski  <apinski@cavium.com>
2928         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
2929         stmt_info to record_stmt_cost.
2930         (vect_get_known_peeling_cost): Pass stmt_info if known to
2931         record_stmt_cost.
2932         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
2933         cpu_vector_cost field into
2934         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
2935         field into vec_int_stmt_cost and vec_fp_stmt_cost.
2936         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
2937         splitting of scalar_stmt_cost and vec_stmt_cost.
2938         (thunderx_vector_cost): Likewise.
2939         (cortexa57_vector_cost): LIkewise.
2940         (exynosm1_vector_cost): Likewise.
2941         (xgene1_vector_cost): Likewise.
2942         (thunderx2t99_vector_cost): Improve after the splitting of the two
2943         fields.
2944         (aarch64_builtin_vectorization_cost): Update for the splitting of
2945         scalar_stmt_cost and vec_stmt_cost.
2947 2017-02-01  Torvald Riegel  <triegel@redhat.com>
2948             Richard Henderson  <rth@redhat.com>
2950         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
2951         conditional on existance of a fast atomic load.
2952         * optabs-query.c (can_atomic_load_p): New function.
2953         * optabs-query.h (can_atomic_load_p): Declare it.
2954         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
2955         no fast atomic load is available for the particular size of access.
2956         (expand_atomic_compare_and_swap): Likewise.
2957         (expand_atomic_load): Likewise.
2958         (expand_atomic_store): Likewise.
2959         (expand_atomic_fetch_op): Likewise.
2960         * testsuite/lib/target-supports.exp
2961         (check_effective_target_sync_int_128): Remove x86 because it provides
2962         no fast atomic load.
2963         (check_effective_target_sync_int_128_runtime): Likewise.
2965 2017-02-01  Richard Biener  <rguenther@suse.de>
2967         * graphite.c: Include tree-vectorizer.h for find_loop_location.
2968         (graphite_transform_loops): Provide opt-info for optimized nests.
2969         * tree-parloop.c (parallelize_loops): Provide opt-info for
2970         parallelized loops.
2972 2017-02-01  Richard Biener  <rguenther@suse.de>
2974         PR middle-end/79315
2975         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
2976         was not set before.
2978 2017-02-01  Richard Biener  <rguenther@suse.de>
2980         PR tree-optimization/71824
2981         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
2982         Verify the loops are valid in the merged SESE region.
2983         (scop_detection::can_represent_loop_1): Check analyzing the
2984         evolution of the number of iterations in the region succeeds.
2986 2017-01-31  Ian Lance Taylor  <iant@golang.org>
2988         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
2989         REG_ARGS_SIZE note to 32-bit push insns and call insn.
2991 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
2993         PR preprocessor/79210
2994         * input.c (get_substring_ranges_for_loc): Replace line_width
2995         assertion with error-handling.
2997 2017-01-31  Richard Biener  <rguenther@suse.de>
2999         PR tree-optimization/77318
3000         * graphite-sese-to-poly.c (extract_affine): Fix assert.
3001         (create_pw_aff_from_tree): Take loop parameter.
3002         (add_condition_to_pbb): Pass loop of the condition to
3003         create_pw_aff_from_tree.
3005 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
3007         * config/s390/s390.c (s390_asan_shadow_offset): New function.
3008         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
3010 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
3012         PR target/78597
3013         PR target/79038
3014         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
3015         no longer used.
3016         (convert_int_to_float128): Likewise.
3017         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
3018         (convert_int_to_float128): Likewise.
3019         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
3020         (UNSPEC_IEEE128_CONVERT): Likewise.
3021         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
3022         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
3023         Use local variables for IBM extended format.
3024         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
3025         (fix_trunc<mode>si2_fprs): Likewise.
3026         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
3027         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
3028         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
3029         to know that we can now have integers of all sizes in vector
3030         registers.
3031         (fix<uns>_<mode>di2_hw): Likewise.
3032         (float<uns>_<mode>si2_hw): Likewise.
3033         (fix_<mode>si2_hw): Likewise.
3034         (fixuns_<mode>si2_hw): Likewise.
3035         (float<uns>_<mode>di2_hw): Likewise.
3036         (float_<mode>di2_hw): Likewise.
3037         (float_<mode>si2_hw): Likewise.
3038         (floatuns_<mode>di2_hw): Likewise.
3039         (floatuns_<mode>si2_hw): Likewise.
3040         (xscvqp<su>wz_<mode>): Delete, no longer used.
3041         (xscvqp<su>dz_<mode>): Likewise.
3042         (xscv<su>dqp_<mode>): Likewise.
3043         (ieee128_mfvsrd_64bit): Likewise.
3044         (ieee128_mfvsrd_32bit): Likewise.
3045         (ieee128_mfvsrwz): Likewise.
3046         (ieee128_mtvsrw): Likewise.
3047         (ieee128_mtvsrd_64bit): Likewise.
3048         (ieee128_mtvsrd_32bit): Likewise.
3050 2017-01-31  Martin Liska  <mliska@suse.cz>
3052         PR ipa/79285
3053         * ipa-prop.c (ipa_free_all_node_params): Call release method
3054         instead of ~sumbol_summary to not to trigger double times
3055         dtor of hash_map.
3057 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
3059         PR tree-optimization/71691
3060         * bitmap.h (class auto_bitmap): New.
3061         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
3062         is_maybe_undefined instead of ssa_undefined_value_p.
3064 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3066         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
3067         __S390_ARCH_LEVEL__ to __ARCH__.
3069 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
3071         PR tree-optimization/79267
3072         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
3073         if should_remove_lhs_p is true.
3075 2017-01-30  Alexandre Oliva <aoliva@redhat.com>
3077         PR debug/63238
3078         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
3079         (add_alignment_attribute): New.
3080         (base_type_die): Add alignment attribute.
3081         (subrange_type_die): Likewise.
3082         (modified_type_die): Likewise.
3083         (gen_array_type_die): Likewise.
3084         (gen_descr_array_type_die: Likewise.
3085         (gen_enumeration_type_die): Likewise.
3086         (gen_subprogram_die): Likewise.
3087         (gen_variable_die): Likewise.
3088         (gen_field_die): Likewise.
3089         (gen_ptr_to_mbr_type_die): Likewise.
3090         (gen_struct_or_union_type_die): Likewise.
3091         (gen_subroutine_type_die): Likewise.
3092         (gen_typedef_die): Likewise.
3093         (base_type_cmp): Compare alignment attribute.
3095 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
3097         PR target/79170
3098         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
3099         (setb_unsigned) New pattern for setb with CCUNS.
3100         * config/rs6000/rs6000.c (expand_block_compare): Use a different
3101         subfc./subfe sequence to avoid overflow problems.  Generate a
3102         shorter sequence with cmpld/setb for power9.
3103         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
3104         for generating subfc. instruction.
3105         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
3106         now uses this instruction.
3108 2017-01-30  Ian Lance Taylor  <iant@google.com>
3110         PR debug/79289
3111         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
3112         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
3114 2017-01-30  Martin Sebor  <msebor@redhat.com>
3116         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
3117         Move constant to the right of a relational operator.
3118         (get_mpfr_format_length, format_character, format_string): Ditto.
3119         (should_warn_p, maybe_warn): Same.
3121         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
3123 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
3125         PR lto/79061
3126         * asan.c (get_translation_unit_decl): Remove function.
3127         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
3129 2017-01-30  Martin Liska  <mliska@suse.cz>
3131         PR gcov-profile/79259
3132         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
3133         -fprofile-generate.
3135 2017-01-30  Martin Liska  <mliska@suse.cz>
3137         PR bootstrap/78985
3138         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
3139         Initialize variables with NULL value.
3141 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
3143         PR target/79260
3144         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
3145         tm_p_file.
3146         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
3148 2017-01-30  Richard Biener  <rguenther@suse.de>
3150         PR tree-optimization/79276
3151         * tree-vrp.c (process_assert_insertions): Properly adjust common
3152         when removing a duplicate.
3154         * gcc.dg/torture/pr79276.c: New testcase.
3156 2017-01-30  Richard Biener  <rguenther@suse.de>
3158         PR tree-optimization/79256
3159         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
3160         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
3161         alignment on TYPE.
3162         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
3164 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3166         PR target/79240
3167         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
3168         ("*r<noxa>sbg_<mode>_sll_bitmask")
3169         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
3170         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
3171         Use contiguous_bitmask_nowrap_operand.
3173 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3175         PR target/79268
3176         * config/rs6000/altivec.h (vec_xl): Revise #define.
3177         (vec_xst): Likewise.
3179 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
3181         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
3183 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
3185         PR rtl-optimization/79194
3186         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
3187         traps before call to bypass_conditional_jumps.
3189 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
3191         PR tree-optimization/71374
3192         * lra-constraints.c (check_conflict_input_operands): New.
3193         (match_reload): Use it.
3195 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
3197         PR target/79131
3198         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
3199         account to calculate conflict_set.
3201 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
3203         PR rtl-optimization/78559
3204         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
3205         other_insn in combine.
3207 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
3209         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
3210         uint16_type_node for BT_UINT16.
3212 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
3214         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
3215         "RTL Tests" to menu.
3216         (GIMPLE Tests): New node.
3217         (RTL Tests): New node.
3219 2017-01-27  Richard Biener  <rguenther@suse.de>
3221         PR tree-optimization/79245
3222         * tree-loop-distribution.c (distribute_loop): Apply cost
3223         modeling also to detected patterns.
3225 2017-01-27  Richard Biener  <rguenther@suse.de>
3227         PR tree-optimization/71433
3228         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
3229         (compare_assert_loc): New function.
3230         (process_assert_insertions): Sort and optimize assert locations
3231         to remove duplicates and push down identical assertions on
3232         edges to their destination block.
3234 2017-01-27  Richard Biener  <rguenther@suse.de>
3236         PR tree-optimization/79244
3237         * tree-vrp.c (remove_range_assertions): Forcefully propagate
3238         out SSA names even if abnormal.
3240 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
3242         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
3243         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
3244         instead of MPFR_RNDN.
3246 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
3248         PR target/79239
3249         * arm.c (arm_option_override): Don't call build_target_option_node
3250         until after doing all option overrides.
3251         (arm_valid_target_attribute_tree): Likewise.
3253 2017-01-27  Martin Liska  <mliska@suse.cz>
3255         * doc/invoke.texi (-fprofile-arcs): Document profiling support
3256         for {cd}tors and C++ {cd}tors.
3258 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3260         * config/s390/s390.md ("*setmem_long_and")
3261         ("*setmem_long_and_31z"): Use zero_extend instead of and.
3263 2017-01-26  Martin Sebor  <msebor@redhat.com>
3265         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
3266         of precision.
3268 2017-01-26  Martin Sebor  <msebor@redhat.com>
3270         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
3271         HAVE_DFmode before using XFmode or DFmode.
3272         (parse_directive): Avoid using the z length modifier to avoid
3273         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
3275         PR middle-end/78703
3276         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
3277         to accept adjustment as an array.
3278         (get_int_range): New function.
3279         (struct directive): Make width and prec arrays.
3280         (directive::set_width, directive::set_precision): Call get_int_range.
3281         (format_integer, format_floating): Handle width and precision ranges.
3282         (format_string, parse_directive): Same.
3284 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
3286         PR debug/79129
3287         * dwarf2out.c (generate_skeleton_bottom_up): For children with
3288         comdat_type_p set, just clone them, but keep the children in the
3289         original DIE.
3291         PR debug/78835
3292         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
3293         which have direct callers with -fvar-tracking-assignments enabled
3294         in the current TU.
3295         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
3296         inside of type units.
3298 2017-01-26  Martin Sebor  <msebor@redhat.com>
3300         PR middle-end/78703
3301         * gimple-ssa-sprintf.c (struct result_range): Add likely and
3302         unlikely counters.
3303         (struct format_result): Replace number_chars, number_chars_min,
3304         and number_chars_max with a single member of struct result_range.
3305         Remove bounded.
3306         (format_result::operator+=): Adjust.
3307         (struct fmtresult): Remove bounded.  Handle likely and unlikely
3308         counters.
3309         (fmtresult::adjust_for_width_or_precision): New function.
3310         (fmtresult:type_max_digits): New function.
3311         (bytes_remaining): Handle likely and unlikely counters.
3312         (min_bytes_remaining): Remove.
3313         (format_percent): Simplify.
3314         (format_integer, format_floating): Set likely and unlikely counters.
3315         (get_string_length, format_character, format_string): Same.
3316         (format_plain, should_warn_p): New function.
3317         (maybe_warn): Call should_warn_p.  Update diagnostic messages
3318         and handle those for all directives, including plain strings.
3319         (format_directive): Handle likely and unlikely counters.
3320         Remove unnecessary quoting from diagnostics.  Add an informational
3321         note.
3322         (add_bytes): Remove.
3323         (pass_sprintf_length::compute_format_length): Simplify.
3324         (try_substitute_return_value): Handle likely and unlikely counters.
3326 2017-01-26  Carl Love  <cel@us.ibm.com>
3328         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
3329         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
3331 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
3333         PR target/79131
3334         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
3335         endianess for subregs into account.
3336         * lra-constraints.c (lra_constraints): Do risky transformations
3337         always on the first iteration.
3338         * lra-lives.c (check_pseudos_live_through_calls): Add arg
3339         last_call_used_reg_set.
3340         (process_bb_lives): Define and use last_call_used_reg_set.
3341         * lra.c (lra): Always continue after lra_constraints on the first
3342         iteration.
3344 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
3346         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
3347         constant.
3348         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
3350 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
3352         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
3353         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
3354         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
3355         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
3356         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
3357         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
3358         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
3359         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
3360         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
3362 2017-01-26  Marek Polacek  <polacek@redhat.com>
3364         PR c/79199
3365         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
3366         for the third operand.
3368 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
3370         PR middle-end/79236
3371         * omp-low.c (struct omp_context): Add simt_stmt field.
3372         (scan_omp_for): Return omp_context *.
3373         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
3374         context to the _simt_ SIMD stmt.
3375         (lower_omp_for): For combined SIMD with sibling _simt_
3376         SIMD, make sure to use the same decls in _looptemp_
3377         clauses as in the sibling.
3379 2017-01-26  David Sherwood  <david.sherwood@arm.com>
3381         PR middle-end/79212
3382         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
3383         all contexts.
3385 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
3387         PR target/70465
3388         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
3389         emit fld b; fld a; if possible.
3391         * brig-builtins.def: Update copyright years.
3392         * config/arm/arm_acle_builtins.def: Update copyright years.
3394 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
3396         PR target/79179
3397         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
3398         constraint instead of o for the stxsd instruction.
3400 2017-01-25  Carl Love  <cel@us.ibm.com>
3402         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
3403         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
3405 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
3407         * doc/invoke.texi (C++ Dialect Options): Fix typo.
3409 2017-01-25  Richard Biener  <rguenther@suse.de>
3411         PR tree-optimization/69264
3412         * target.def (vector_alignment_reachable): Improve documentation.
3413         * doc/tm.texi: Regenerate.
3414         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
3415         and add a comment.
3416         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
3417         earlier changes with respect to TYPE_USER_ALIGN.
3418         (vector_alignment_reachable_p): Likewise.  Improve dumping.
3420 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3422         PR target/79145
3423         * config/arm/arm.md (xordi3): Force constant operand into a register
3424         for TARGET_IWMMXT.
3426 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3428         * doc/invoke.texi (-fstore-merging): Correct default optimization
3429         levels at which it is enabled.
3430         (-O): Move -fstore-merging from list to...
3431         (-O2): ... Here.
3433 2017-01-25  Richard Biener  <rguenther@suse.de>
3435         PR debug/78363
3436         * omp-expand.c: Include debug.h.
3437         (expand_omp_taskreg): Make sure to generate early debug before
3438         outlining anything from a function.
3439         (expand_omp_target): Likewise.
3440         (grid_expand_target_grid_body): Likewise.
3442 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
3444         PR lto/79061
3445         * asan.c (get_translation_unit_decl): New function.
3446         (asan_add_global): Extract modules file name from globals
3447         TRANSLATION_UNIT_DECL name.
3449 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
3451         PR target/77439
3452         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
3453         for long calls with APCS frame and VFP.
3455 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
3457         * cfg.c (original_copy_tables_initialized_p): New function.
3458         * cfg.h (original_copy_tables_initialized_p): New decl.
3459         * cfgrtl.c (relink_block_chain): Guard the call to
3460         free_original_copy_tables with a call to
3461         original_copy_tables_initialized_p.
3462         * cgraph.h (symtab_node::native_rtl_p): New decl.
3463         * cgraphunit.c (symtab_node::native_rtl_p): New function.
3464         (symtab_node::needed_p): Don't assert for early assembly output
3465         for __RTL functions.
3466         (cgraph_node::finalize_function): Set "force_output" for __RTL
3467         functions.
3468         (cgraph_node::analyze): Bail out early for __RTL functions.
3469         (analyze_functions): Update assertion to support __RTL functions.
3470         (cgraph_node::expand): Bail out early for __RTL functions.
3471         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
3472         __RTL functions.
3473         * function.h (struct function): Update comment for field
3474         "pass_startwith".
3475         * gimple-expr.c: Include "tree-pass.h".
3476         (gimple_has_body_p): Return false for __RTL functions.
3477         * Makefile.in (OBJS): Add run-rtl-passes.o.
3478         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
3479         accessor.
3480         (gcc::pass_manager::get_clean_slate): New accessor.
3481         * passes.c: Include "insn-addr.h".
3482         (should_skip_pass_p): Add logging.  Update logic for running
3483         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
3484         property-provider override so it is only done for gimple passes.
3485         Don't skip dfinit.
3486         (skip_pass): New function.
3487         (execute_one_pass): Call skip_pass when skipping passes.
3488         * read-md.c (md_reader::read_char): Support filtering
3489         the input to a subset of line numbers.
3490         (md_reader::md_reader): Initialize fields
3491         m_first_line and m_last_line.
3492         (md_reader::read_file_fragment): New function.
3493         * read-md.h (md_reader::read_file_fragment): New decl.
3494         (md_reader::m_first_line): New field.
3495         (md_reader::m_last_line): New field.
3496         * read-rtl-function.c (function_reader::create_function): Only
3497         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
3498         curr_properties.  Set DECL_INITIAL to a dummy block.
3499         (read_rtl_function_body_from_file_range): New function.
3500         * read-rtl-function.h (read_rtl_function_body_from_file_range):
3501         New decl.
3502         * run-rtl-passes.c: New file.
3503         * run-rtl-passes.h: New file.
3505 2017-01-24 Jeff Law  <law@redhat.com>
3507         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
3508         buffer size.
3510 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
3512         PR tree-optimization/79159
3513         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
3514         (record_nonwrapping_iv): Improve boundary using above function if no
3515         value range information.
3517 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
3518             Martin Jambor  <mjambor@suse.cz>
3520         * brig-builtins.def: New file.
3521         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
3522         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
3523         (DEF_HSAIL_SAT_BUILTIN): Likewise.
3524         (DEF_HSAIL_INTR_BUILTIN): Likewise.
3525         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
3526         * builtin-types.def (BT_INT8): New.
3527         (BT_INT16): Likewise.
3528         (BT_UINT8): Likewise.
3529         (BT_UINT16): Likewise.
3530         (BT_FN_ULONG): Likewise.
3531         (BT_FN_UINT_INT): Likewise.
3532         (BT_FN_UINT_ULONG): Likewise.
3533         (BT_FN_UINT_LONG): Likewise.
3534         (BT_FN_UINT_PTR): Likewise.
3535         (BT_FN_ULONG_PTR): Likewise.
3536         (BT_FN_INT8_FLOAT): Likewise.
3537         (BT_FN_INT16_FLOAT): Likewise.
3538         (BT_FN_UINT32_FLOAT): Likewise.
3539         (BT_FN_UINT16_FLOAT): Likewise.
3540         (BT_FN_UINT8_FLOAT): Likewise.
3541         (BT_FN_UINT64_FLOAT): Likewise.
3542         (BT_FN_UINT16_UINT32): Likewise.
3543         (BT_FN_UINT32_UINT16): Likewise.
3544         (BT_FN_UINT16_UINT16_UINT16): Likewise.
3545         (BT_FN_INT_PTR_INT): Likewise.
3546         (BT_FN_UINT_PTR_UINT): Likewise.
3547         (BT_FN_LONG_PTR_LONG): Likewise.
3548         (BT_FN_ULONG_PTR_ULONG): Likewise.
3549         (BT_FN_VOID_UINT64_UINT64): Likewise.
3550         (BT_FN_UINT8_UINT8_UINT8): Likewise.
3551         (BT_FN_INT8_INT8_INT8): Likewise.
3552         (BT_FN_INT16_INT16_INT16): Likewise.
3553         (BT_FN_INT_INT_INT): Likewise.
3554         (BT_FN_UINT_FLOAT_UINT): Likewise.
3555         (BT_FN_FLOAT_UINT_UINT): Likewise.
3556         (BT_FN_ULONG_UINT_UINT): Likewise.
3557         (BT_FN_ULONG_UINT_PTR): Likewise.
3558         (BT_FN_ULONG_ULONG_ULONG): Likewise.
3559         (BT_FN_UINT_UINT_UINT): Likewise.
3560         (BT_FN_VOID_UINT_PTR): Likewise.
3561         (BT_FN_UINT_UINT_PTR: Likewise.
3562         (BT_FN_UINT32_UINT64_PTR): Likewise.
3563         (BT_FN_INT_INT_UINT_UINT): Likewise.
3564         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
3565         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
3566         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
3567         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
3568         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
3569         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
3570         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
3571         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
3572         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
3573         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
3574         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
3575         * doc/frontends.texi: List BRIG FE.
3576         * doc/install.texi (Testing): Add BRIG tesring requirements.
3577         * doc/invoke.texi (Overall Options): Mention BRIG.
3578         * doc/standards.texi (Standards): Doucment BRIG HSA version.
3580 2017-01-24  Richard Biener  <rguenther@suse.de>
3582         PR translation/79208
3583         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
3585 2017-01-24  Martin Jambor  <mjambor@suse.cz>
3587         PR bootstrap/79198
3588         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
3589         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
3590         and known_contexts.
3592 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
3594         PR middle-end/79123
3595         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
3596         casts from signed to unsigned really don't have a range.
3598 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
3600         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
3601         GMP_RNDx for compatiblity.
3603 2017-01-24  Martin Liska  <mliska@suse.cz>
3605         PR bootstrap/79132
3606         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
3607         that would prevent us to call alloca with -1 as argument.
3609 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
3611         * dwarf2out.c (output_compilation_unit_header, output_file_names):
3612         Avoid -Wformat-security warning.
3614 2017-01-23  Andrew Pinski  <apinski@cavium.com>
3616         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
3617         cost table.
3619 2017-01-23  Martin Sebor  <msebor@redhat.com>
3621         PR middle-end/78703
3622         * gimple-ssa-sprintf.c (warn_level): New global.
3623         (format_integer): Use it here and throughout the rest of the file.
3624         Use the same switch to compute sign as base.
3625         (maybe_warn): New function.
3626         (format_directive): Factor out warnings into maybe_warn.
3627         Add debugging output.  Use warn_level.
3628         (add_bytes): Use warn_level.
3629         (pass_sprintf_length::compute_format_length): Add debugging output.
3630         (try_substitute_return_value): Same.
3631         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
3633         PR middle-end/78703
3634         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
3635         (struct fmtresult, format_integer, format_floating): Adjust.
3636         (fmtresult::fmtresult): Set max correctly in two argument ctor.
3637         (get_string_length, format_string,format_directive): Same.
3638         (pass_sprintf_length::compute_format_length): Same.
3639         (try_substitute_return_value): Simplify slightly.
3641         PR middle-end/78703
3642         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
3643         (fmtresult::operator+=): Outlined.
3644         (struct fmtresult): Add ctors.
3645         (struct conversion_spec): Rename...
3646         (struct directive): ...to this.  Add and remove data members.
3647         (directive::set_width, directive::set_precision): New functions.
3648         (format_percent): Use fmtresult ctor.
3649         (get_width_and_precision): Remove.
3650         (format_integer): Make naming changes.  Avoid computing width and
3651         precision.
3652         (format_floating): Same.  Adjust indentation.
3653         (format_character, format_none): New functions.
3654         (format_string): Moved character handling to format_character.
3655         (format_directive): Remove arguments, change return type.
3656         (parse_directive): New function.
3657         (pass_sprintf_length::compute_format_length): Move directive
3658         parsing to parse_directive.
3660 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
3662         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
3663         (assign_assembler_name_if_needed): ... this.
3664         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
3665         (assign_assembler_name_if_needed): ... this.
3666         (free_lang_data_in_cgraph): Adjust callers.
3667         * cgraphunit.c (cgraph_node::analyze): Likewise.
3668         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
3669         Likewise.
3671 2017-01-23  Richard Biener  <rguenther@suse.de>
3673         PR tree-optimization/79088
3674         PR tree-optimization/79188
3675         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
3676         resetting loop bounds after last path deletion.  Reset loop
3677         bounds of the target loop, make code match the comments.
3678         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
3679         Make sure loops need no fixups.
3681 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3683         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
3684         exponent support with double type for first argument.
3685         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
3686         type returned by __builtin_vec_extract_sig,
3687         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
3688         functions from "vector int" to "vector unsigned int" or from
3689         "vector long long int" to "vector unsigned long long int".
3690         Changed type returned by __builtin_vec_extract_exp,
3691         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
3692         functions from "vector int" to "vector unsigned int" or from
3693         "vector long long int" to "vector unsigned long long int".
3694         Changed return type of __builtin_vec_test_data_class,
3695         __builtin_vec_test_data_class_sp, and
3696         __builtin_vec_test_data_class_dp from "vector int" to
3697         "vector bool int" or from "vector long long int" to "vector bool
3698         long long int" and changed second argument type from "unsigned
3699         int" to "int".  Added new overloaded function forms "vector float
3700         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
3701         "vector float __builtin_vec_insert_exp_sp (vector float, vector
3702         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
3703         double, vector unsigned long long int)" and "vector double
3704         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
3705         long int)".  Changed return type of
3706         __builtin_scalar_test_data_class and
3707         __builtin_scalar_test_data_class_sp and
3708         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
3709         int" and changed second argument from "unsigned int" to "int".
3710         Changed type returned by __builtin_scalar_test_neg,
3711         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
3712         from "int" to "bool int".  Added new overloaded function form
3713         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
3714         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
3715         exponent double-precision with floating point first argument.
3716         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
3717         documentation of scalar_test_data_class, scalar_test_neg,
3718         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
3719         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
3720         vec_test_data_class built-in functions to reflect refinements in
3721         their type signatures.
3723 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
3725         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
3726         size of buf.
3727         (aarch64_elf_asm_destructor): Likewise.
3729 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
3731         PR rtl-optimization/78634
3732         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
3733         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
3734         * ifcvt.c (noce_try_cmove): Add missing cost check.
3736         PR rtl-optimization/71724
3737         * combine.c (if_then_else_cond): Look for situations where it is
3738         beneficial to undo the work of one of the recursive calls.
3740 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
3742         PR tree-optimization/70754
3743         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
3744         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
3745         combined stmt before it if not NULL.
3746         (combine_chains): Process refs reversely and compute dominance point
3747         for root ref.
3749 2017-01-23  Martin Liska  <mliska@suse.cz>
3751         PR tree-optimization/79196
3752         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
3753         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
3754         instead of memcmp.
3755         (strlen_optimize_stmt): Call the renamed function.
3757 2017-01-23  Michael Matz  <matz@suse.de>
3759         PR tree-optimization/78384
3760         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
3762 2017-01-23  Richard Biener  <rguenther@suse.de>
3764         PR tree-optimization/79186
3765         * tree-vrp.c (register_new_assert_for): Make sure we've seen
3766         both incoming edges before moving an assert.
3768 2017-01-23  Martin Jambor  <mjambor@suse.cz>
3770         * ipa-prop.c (load_from_param_1): Removed.
3771         (load_from_unmodified_param): Bits from load_from_param_1 put back
3772         here.
3773         (load_from_param): Removed.
3774         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
3775         with stmt.  Reverted back to use of load_from_unmodified_param.
3777 2017-01-23  Martin Jambor  <mjambor@suse.cz>
3779         PR ipa/79108
3780         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
3781         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
3782         field a pointer to garbage collected vector, mark lattices and
3783         ipcp_orig_node with GTY((skip)).
3784         (ipa_get_param_count): Adjust to descriptors being a pointer.
3785         (ipa_get_param): Likewise.
3786         (ipa_get_type): Likewise.
3787         (ipa_get_param_move_cost): Likewise.
3788         (ipa_set_param_used): Likewise.
3789         (ipa_get_controlled_uses): Likewise.
3790         (ipa_set_controlled_uses): Likewise.
3791         (ipa_is_param_used): Likewise.
3792         (ipa_node_params_t): Move into garbage collector.  New methods insert
3793         and remove.
3794         (ipa_node_params_sum): Annotate wth GTY(()).
3795         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
3796         garbage collected.
3797         (ipa_load_from_parm_agg): Adjust declaration.
3798         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
3799         * ipa-profile.c (ipa_profile): Likewise.
3800         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
3801         (ipa_populate_param_decls): Make descriptors parameter garbage
3802         collected.
3803         (ipa_dump_param): Adjust to descriptors being a pointer.
3804         (ipa_alloc_node_params): Likewise.
3805         (ipa_initialize_node_params): Likewise.
3806         (load_from_param_1): Make descriptors parameter garbage collected.
3807         (load_from_unmodified_param): Likewise.
3808         (load_from_param): Likewise.
3809         (ipa_load_from_parm_agg): Likewise.
3810         (ipa_node_params::~ipa_node_params): Removed.
3811         (ipa_free_all_node_params): Remove call to delete operator.
3812         (ipa_node_params_t::insert): New.
3813         (ipa_node_params_t::remove): Likewise.
3814         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
3815         copy known_csts and known_contexts vectors.
3816         (ipa_read_node_info): Adjust to descriptors being a pointer.
3817         (ipcp_modif_dom_walker): Make m_descriptors field garbage
3818         collected.
3819         (ipcp_transform_function): Make descriptors variable garbage
3820         collected.
3822 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
3824         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
3825         * config/i386/avx512dqintrin.h: Ditto.
3826         * config/i386/avx512fintrin.h: Ditto.
3827         * gcc/config/i386/i386.c: Handle new builtins.
3828         * config/i386/i386-builtin.def: Add new builtins.
3829         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
3830         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
3832 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
3833             Martin Liska  <mliska@suse.cz>
3835         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
3836         * asan.c (asan_expand_poison_ifn): Support stores and use
3837         appropriate ASAN report function.
3838         * internal-fn.c (expand_ASAN_POISON_USE): New function.
3839         * internal-fn.def (ASAN_POISON_USE): Declare.
3840         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
3841         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
3842         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
3843         ASAN_POISON calls w/o LHS.
3844         * tree-ssa.c (execute_update_addresses_taken): Create clobber
3845         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
3846         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
3847         * gimplify.c (asan_poison_variables): Add attribute
3848         use_after_scope_memory to variables that really needs to live
3849         in memory.
3850         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
3851         having the attribute.
3853 2017-01-23  Martin Liska  <mliska@suse.cz>
3855         * asan.c (create_asan_shadow_var): New function.
3856         (asan_expand_poison_ifn): Likewise.
3857         * asan.h (asan_expand_poison_ifn): New declaration.
3858         * internal-fn.c (expand_ASAN_POISON): Likewise.
3859         * internal-fn.def (ASAN_POISON): New builtin.
3860         * sanopt.c (pass_sanopt::execute): Expand
3861         asan_expand_poison_ifn.
3862         * tree-inline.c (copy_decl_for_dup_finish): Make function
3863         external.
3864         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
3865         * tree-ssa.c (is_asan_mark_p): New function.
3866         (execute_update_addresses_taken): Rewrite local variables
3867         (identified just by use-after-scope as addressable) into SSA.
3869 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
3871         * doc/install.texi (Specific): opensource.apple.com uses https
3872         now. Remove trailing slash.
3874 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
3876         * README.Portability: Remove note on an Irix compatibility issue.
3878 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
3880         * gcov.c (INCLUDE_ALGORITHM): Define.
3881         (INCLUDE_VECTOR): Define.
3882         No longer include <vector> and <algorithm> directly.
3884 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
3886         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
3887         to https.
3888         * doc/invoke.texi (Code Gen Options): Ditto.
3890 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
3892         PR lto/78407
3893         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
3895 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
3897         rtl-optimization/79125
3898         * cprop.c (local_cprop_pass): Handle cases where we make an
3899         unconditional trap.
3901 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
3903         PR target/61729
3904         PR target/77850
3905         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
3906         read from, for big endian.
3908 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
3910         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
3911         register pauth builtins for LP64 only.
3913 2017-01-20  Marek Polacek  <polacek@redhat.com>
3915         PR c/79152
3916         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
3917         non-case labels.
3919 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
3921         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
3922         of safelen status.
3923         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
3924         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
3925         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
3927 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3929         PR target/71270
3930         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
3931         in big-endian mode when they are not a single duplicated value.
3933 2017-01-20  Richard Biener  <rguenther@suse.de>
3935         * BASE-VER: Bump to 7.0.1.
3937 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
3939         * omp-low.c (omplow_simd_context): New struct.  Use it...
3940         (lower_rec_simd_input_clauses): ...here and...
3941         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
3942         references to idx, lane, max_vf, is_simt.
3944 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
3946         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
3947         mcpu=nps400.
3949 2017-01-20  Martin Jambor  <mjambor@suse.cz>
3951         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
3952         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
3953         gt-hsa-common.h.
3954         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
3955         (GTFILES): Rename hsa.c to hsa-common.c.
3956         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
3957         * hsa-dump.c: Likewise.
3958         * hsa-gen.c: Likewise.
3959         * hsa-regalloc.c: Likewise.
3960         * ipa-hsa.c: Likewise.
3961         * omp-expand.c: Likewise.
3962         * omp-low.c: Likewise.
3963         * toplev.c: Likewise.
3965 2017-01-20  Marek Polacek  <polacek@redhat.com>
3967         PR c/64279
3968         * doc/invoke.texi: Document -Wduplicated-branches.
3969         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
3970         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
3971         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
3972         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
3973         return 0 only when not OEP_LEXICOGRAPHIC.
3974         (fold_build_cleanup_point_expr): Use the expression
3975         location when building CLEANUP_POINT_EXPR.
3976         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
3977         * tree.c (add_expr): Handle error_mark_node.
3979 2017-01-20  Martin Liska  <mliska@suse.cz>
3981         PR lto/69188
3982         * tree-profile.c (init_ic_make_global_vars): Do not call
3983         finalize_decl.
3984         (gimple_init_gcov_profiler): Likewise.
3986 2017-01-20  Martin Liska  <mliska@suse.cz>
3988         PR ipa/71190
3989         * cgraph.h (maybe_create_reference): Remove argument and
3990         update comment.
3991         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
3992         argument.
3993         * ipa-cp.c (create_specialized_node): Likewise.
3994         * symtab.c (symtab_node::maybe_create_reference): Handle
3995         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
3997 2017-01-20  Martin Liska  <mliska@suse.cz>
3999         * read-rtl-function.c (function_reader::create_function): Use
4000         build_decl instread of build_decl_stat.
4002 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
4004         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
4005         * config/i386/avx512dqintrin.h: Ditto.
4006         * config/i386/avx512fintrin.h: Ditto.
4007         * config/i386/i386-builtin-types.def: Add new types.
4008         * gcc/config/i386/i386.c: Handle new types.
4009         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
4010         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
4011         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
4012         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
4013         (__builtin_ia32_kshiftridi): New.
4014         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
4016 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
4018         PR target/78875
4019         PR target/79140
4020         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
4021         define to rs6000_init_stack_protect_guard.
4022         (rs6000_init_stack_protect_guard): New function.
4024 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
4025             Yunqiang Su  <yunqiang.su@imgtec.com>
4027         * config.gcc (supported_defaults): Add madd4.
4028         (with_madd4): Add validation.
4029         (all_defaults): Add madd4.
4030         * config/mips/mips.opt (mmadd4): New option.
4031         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
4032         mmadd4.
4033         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
4034         __mips_no_madd4.
4035         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
4036         (ISA_HAS_FUSED_MADD4): Likewise.
4037         * gcc/doc/invoke.texi (-mmadd4): Document the new option.
4038         * gcc/doc/install.texi (--with-madd4): Document the new option.
4040 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
4042         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
4043         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
4044         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
4045         (aarch64_init_pauth_hint_builtins): New.
4046         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
4047         (aarch64_expand_builtin): Expand new builtins.
4049 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
4051         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
4052         * combine-stack-adj.c (no_unhandled_cfa): Handle
4053         REG_CFA_TOGGLE_RA_MANGLE.
4054         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
4055         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
4056         info for return address signing.
4057         (aarch64_expand_epilogue): Likewise.
4059 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
4061         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
4062         * config/aarch64/aarch64-protos.h
4063         (aarch64_return_address_signing_enabled): New declaration.
4064         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
4065         New function.
4066         (aarch64_expand_prologue): Sign return address before it's pushed onto
4067         stack.
4068         (aarch64_expand_epilogue): Authenticate return address fetched from
4069         stack.
4070         (aarch64_override_options): Sanity check for ILP32 and ISA level.
4071         (aarch64_attributes): New function attributes for "sign-return-address".
4072         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
4073         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
4074         ("*do_return"): Generate combined instructions according to key index.
4075         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
4076         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
4077         iterators.
4078         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
4079         * config/aarch64/aarch64.opt (msign-return-address=): New.
4080         * doc/extend.texi (AArch64 Function Attributes): Documents
4081         "sign-return-address=".
4082         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
4084 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
4086         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
4087         overall option summary.
4089 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
4091         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
4092         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
4093         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
4094         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
4096 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
4098         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
4099         -mpower9-minmax by default for -mcpu=power9.
4100         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
4101         128-bit floating point.
4103 2017-01-20  Alan Modra  <amodra@gmail.com>
4105         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
4106         optimizing for size.
4108 2017-01-20  Alan Modra  <amodra@gmail.com>
4110         PR target/79144
4111         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
4112         for strcmp and strncmp from corresponding builtin decl.
4114 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
4116         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
4117         instead of i386/rtems-64.h.
4118         * config/i386/rtems-64.h: Remove.
4120 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
4122         PR target/78478
4123         Revert:
4124         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
4126         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
4128 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
4130         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
4131         Change int to HOST_WIDE_INT.
4132         * config/aarch64/aarch64-protos.h
4133         (aarch64_simd_gen_const_vector_dup): Likewise.
4134         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
4136 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
4138         * langhooks-def.h (lhd_type_for_size): New decl.
4139         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
4140         * langhooks.c (lhd_type_for_size): New function, taken from
4141         lto_type_for_size.
4143 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
4145         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
4146         define_bypass for CR latency.
4147         (power9-cracked-alu): Update bypass latency and remove power9-branch.
4148         (power9-alu2): Add define_bypass for CR latency.
4149         (power9-cmp): New.
4150         (power9-mul): Update insn latency.
4151         (power9-mul-compare): Update insn latency, bypass latency and remove
4152         power9-branch.
4154 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4156         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
4157         Delete.
4158         * config/aarch64/aarch64.md
4159         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
4160         aarch64_nopcrelative_literal_loads.
4161         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
4163 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
4165         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
4166         TARGET_LOONGSON_3A.
4167         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
4169 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
4171         PR target/78176
4172         * config.gcc (supported_defaults): Add lxc1-sxc1.
4173         (with_lxc1_sxc1): Add validation.
4174         (all_defaults): Add lxc1-sxc1.
4175         * config/mips/mips.opt (mlxc1-sxc1): New option.
4176         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
4177         mlxc1-sxc1.
4178         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
4179         __mips_no_lxc1_sxc1.
4180         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
4181         * gcc/doc/invoke.texi (-mlxc1-sxc1): Document the new option.
4182         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
4184 2017-01-19  Richard Biener  <rguenther@suse.de>
4186         PR tree-optimization/72488
4187         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
4188         sure to restore SSA info.
4189         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
4191 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
4193         PR rtl-optimization/79121
4194         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
4195         of the inner type when shifting an extended value.
4197 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
4199         PR lto/78407
4200         * symtab.c (symtab_node::equal_address_to): Fix comparing of
4201         interposable aliases.
4203 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
4205         PR target/78516
4206         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
4207         Use the evmergelohi instruction.
4208         (mov_si<mode>_e500_subreg4_2_le): Likewise.
4209         (mov_sitf_e500_subreg8_2_be): Likewise.
4210         (mov_sitf_e500_subreg12_2_le): Likewise.
4211         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
4212         (mov_si<mode>_e500_subreg4_2_be): Likewise.
4213         (mov_sitf_e500_subreg8_2_le): Likewise.
4214         (mov_sitf_e500_subreg12_2_be): Likewise.
4216 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4218         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
4219         attribute from vecsimple to vecperm.
4220         (altivec_vbpermq2): Likewise.
4222 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4224         PR target/79040
4225         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
4227 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
4228         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
4229         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
4230         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
4231         case where N arg is SIZE_MAX.
4232         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
4233         (cmpstrsi): Add pattern.
4235 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
4237         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4238         __builtin_vec_revb builtins.
4239         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
4240         built-in functions to support generation of the ISA 3.0 XXBR<x>
4241         vector byte reverse instructions.
4242         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
4243         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
4244         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
4245         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
4246         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
4247         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
4248         (P9V_BUILTIN_VEC_REVB): Likewise.
4249         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
4250         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
4251         (p9_xxbrq_v16qi): Likewise.
4252         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
4253         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
4254         (p9_xxbrh_v8hi): Likewise.
4255         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
4256         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
4257         vec_revb built-in functions.
4259 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
4261         PR rtl-optimization/78952
4262         * config/i386/i386.md (any_extract): New code iterator.
4263         (*insvqi_2): Use any_extract for source operand.
4264         (*insvqi_3): Use any_shiftrt for source operand.
4266 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
4268         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
4269         New function.
4270         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
4272 2017-01-18  Matthias Klose  <doko@ubuntu.com>
4274         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
4276 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4278         * config/rs6000/altivec.h (vec_bperm): Change #define.
4279         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
4280         (altivec_vbpermq2): New define_insn.
4281         (altivec_vbpermd): Likewise.
4282         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
4283         function interface.
4284         (VBPERMD): Likewise.
4285         (VBPERM): New polymorphic function interface.
4286         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
4287         Add entries for P9V_BUILTIN_VEC_VBPERM.
4288         * doc/extend.texi: Add interfaces for vec_bperm.
4290 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4292         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
4293         first letter of error messages.
4294         (s390_resolve_overloaded_builtin): Likewise.
4295         * config/s390/s390.c (s390_expand_builtin): Likewise.
4296         (s390_invalid_arg_for_unprototyped_fn): Likewise.
4297         (s390_valid_target_attribute_inner_p): Likewise.
4298         * config/s390/s390.md ("tabort"): Likewise.
4300 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
4302         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
4303         (ISA_AVOID_DIV_HILO): New macro.
4304         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
4305         (ISA_HAS_DDIV): Likewise.
4307 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
4309         * doc/invoke.texi (fabi-version): Correct number of occurrences.
4311 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
4313         * doc/invoke.texi (fabi-version): Spelling fix.
4315 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
4317         PR c++/70182
4318         * doc/invoke.texi (fabi-version): Mention mangling fix for
4319         operator names.
4321 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
4323         PR c++/77489
4324         * doc/invoke.texi (fabi-version): Document discriminator mangling.
4326 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
4328         PR target/78875
4329         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
4330         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
4331         the new options.
4332         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
4333         flexible settings.
4334         (stack_protect_test): Ditto.
4335         * config/rs6000/rs6000.opt (mstack-protector-guard=,
4336         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
4337         options.
4338         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
4339         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
4340         -mstack-protector-guard-offset=.
4341         (RS/6000 and PowerPC Options): Ditto.
4343 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
4345         * config/i386/i386.h (MASK_CLASS_P): New define.
4346         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
4347         there are no registers from different register sets also when
4348         mask registers are used.  Update function comment.
4349         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
4350         to (*k/*r) and (*k/*km) alternatives.
4352 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
4354         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
4355         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
4356         (EH_RETURN_HANDLER_RTX): New define.
4357         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
4358         Force frame pointer in EH return functions.
4359         (aarch64_expand_epilogue): Add barrier for eh_return.
4360         (aarch64_final_eh_return_addr): Remove.
4361         (aarch64_eh_return_handler_rtx): New function.
4362         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
4363         Remove.
4364         (aarch64_eh_return_handler_rtx): New prototype.
4366 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4368         * config/rs6000/altivec.h (vec_rlmi): New #define.
4369         (vec_vrlnm): Likewise.
4370         (vec_rlnm): Likewise.
4371         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
4372         (UNSPEC_VRLNM): Likewise.
4373         (VIlong): New mode iterator.
4374         (altivec_vrl<VI_char>mi): New define_insn.
4375         (altivec_vrl<VI_char>nm): Likewise.
4376         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
4377         function entry.
4378         (VRLDNM): Likewise.
4379         (RLNM): New polymorphic function entry.
4380         (VRLWMI): New monomorphic function entry.
4381         (VRLDMI): Likewise.
4382         (RLMI): New polymorphic function entry.
4383         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
4384         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
4385         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
4386         vec_vrlnm.
4388 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
4390         PR debug/78839
4391         * dwarf2out.c (field_byte_offset): Restore the
4392         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
4393         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
4394         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
4395         of build2 + fold.
4397 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
4399         PR ada/67205
4400         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
4402 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
4404         PR debug/71669
4405         * dwarf2out.c (add_data_member_location_attribute): For constant
4406         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
4407         instead of DW_AT_data_member_location, DW_AT_bit_offset and
4408         DW_AT_byte_size attributes.
4410 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
4412         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
4413         after forcing to constant memory when the code model is medium.
4415 2017-01-17  Julia Koval  <julia.koval@intel.com>
4417         PR target/76731
4418         * config/i386/avx512fintrin.h
4419         (_mm512_i32gather_ps): Change __addr type to void const*.
4420         (_mm512_mask_i32gather_ps): Ditto.
4421         (_mm512_i32gather_pd): Ditto.
4422         (_mm512_mask_i32gather_pd): Ditto.
4423         (_mm512_i64gather_ps): Ditto.
4424         (_mm512_mask_i64gather_ps): Ditto.
4425         (_mm512_i64gather_pd): Ditto.
4426         (_mm512_mask_i64gather_pd): Ditto.
4427         (_mm512_i32gather_epi32): Ditto.
4428         (_mm512_mask_i32gather_epi32): Ditto.
4429         (_mm512_i32gather_epi64): Ditto.
4430         (_mm512_mask_i32gather_epi64): Ditto.
4431         (_mm512_i64gather_epi32): Ditto.
4432         (_mm512_mask_i64gather_epi32): Ditto.
4433         (_mm512_i64gather_epi64): Ditto.
4434         (_mm512_mask_i64gather_epi64): Ditto.
4435         (_mm512_i32scatter_ps): Change __addr type to void*.
4436         (_mm512_mask_i32scatter_ps): Ditto.
4437         (_mm512_i32scatter_pd): Ditto.
4438         (_mm512_mask_i32scatter_pd): Ditto.
4439         (_mm512_i64scatter_ps): Ditto.
4440         (_mm512_mask_i64scatter_ps): Ditto.
4441         (_mm512_i64scatter_pd): Ditto.
4442         (_mm512_mask_i64scatter_pd): Ditto.
4443         (_mm512_i32scatter_epi32): Ditto.
4444         (_mm512_mask_i32scatter_epi32): Ditto.
4445         (_mm512_i32scatter_epi64): Ditto.
4446         (_mm512_mask_i32scatter_epi64): Ditto.
4447         (_mm512_i64scatter_epi32): Ditto.
4448         (_mm512_mask_i64scatter_epi32): Ditto.
4449         (_mm512_i64scatter_epi64): Ditto.
4450         (_mm512_mask_i64scatter_epi64): Ditto.
4451         * config/i386/avx512pfintrin.h
4452         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
4453         (_mm512_mask_prefetch_i32gather_ps): Ditto.
4454         (_mm512_mask_prefetch_i64gather_pd): Ditto.
4455         (_mm512_mask_prefetch_i64gather_ps): Ditto.
4456         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
4457         (_mm512_prefetch_i32scatter_ps): Ditto.
4458         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
4459         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
4460         (_mm512_prefetch_i64scatter_pd): Ditto.
4461         (_mm512_prefetch_i64scatter_ps): Ditto.
4462         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
4463         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
4464         * config/i386/avx512vlintrin.h
4465         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
4466         (_mm_mmask_i32gather_ps): Ditto.
4467         (_mm256_mmask_i32gather_pd): Ditto.
4468         (_mm_mmask_i32gather_pd): Ditto.
4469         (_mm256_mmask_i64gather_ps): Ditto.
4470         (_mm_mmask_i64gather_ps): Ditto.
4471         (_mm256_mmask_i64gather_pd): Ditto.
4472         (_mm_mmask_i64gather_pd): Ditto.
4473         (_mm256_mmask_i32gather_epi32): Ditto.
4474         (_mm_mmask_i32gather_epi32): Ditto.
4475         (_mm256_mmask_i32gather_epi64): Ditto.
4476         (_mm_mmask_i32gather_epi64): Ditto.
4477         (_mm256_mmask_i64gather_epi32): Ditto.
4478         (_mm_mmask_i64gather_epi32): Ditto.
4479         (_mm256_mmask_i64gather_epi64): Ditto.
4480         (_mm_mmask_i64gather_epi64): Ditto.
4481         (_mm256_i32scatter_ps): Change __addr type to void*.
4482         (_mm256_mask_i32scatter_ps): Ditto.
4483         (_mm_i32scatter_ps): Ditto.
4484         (_mm_mask_i32scatter_ps): Ditto.
4485         (_mm256_i32scatter_pd): Ditto.
4486         (_mm256_mask_i32scatter_pd): Ditto.
4487         (_mm_i32scatter_pd): Ditto.
4488         (_mm_mask_i32scatter_pd): Ditto.
4489         (_mm256_i64scatter_ps): Ditto.
4490         (_mm256_mask_i64scatter_ps): Ditto.
4491         (_mm_i64scatter_ps): Ditto.
4492         (_mm_mask_i64scatter_ps): Ditto.
4493         (_mm256_i64scatter_pd): Ditto.
4494         (_mm256_mask_i64scatter_pd): Ditto.
4495         (_mm_i64scatter_pd): Ditto.
4496         (_mm_mask_i64scatter_pd): Ditto.
4497         (_mm256_i32scatter_epi32): Ditto.
4498         (_mm256_mask_i32scatter_epi32): Ditto.
4499         (_mm_i32scatter_epi32): Ditto.
4500         (_mm_mask_i32scatter_epi32): Ditto.
4501         (_mm256_i32scatter_epi64): Ditto.
4502         (_mm256_mask_i32scatter_epi64): Ditto.
4503         (_mm_i32scatter_epi64): Ditto.
4504         (_mm_mask_i32scatter_epi64): Ditto.
4505         (_mm256_i64scatter_epi32): Ditto.
4506         (_mm256_mask_i64scatter_epi32): Ditto.
4507         (_mm_i64scatter_epi32): Ditto.
4508         (_mm_mask_i64scatter_epi32): Ditto.
4509         (_mm256_i64scatter_epi64): Ditto.
4510         (_mm256_mask_i64scatter_epi64): Ditto.
4511         (_mm_i64scatter_epi64): Ditto.
4512         (_mm_mask_i64scatter_epi64): Ditto.
4513         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
4514         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
4515         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
4516         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
4517         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
4518         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
4519         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
4520         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
4521         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
4522         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
4523         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
4524         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
4525         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
4526         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
4527         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
4528         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
4529         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
4530         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
4531         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
4532         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
4533         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
4534         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
4535         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
4536         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
4537         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
4538         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
4539         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
4540         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
4541         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
4542         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
4543         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
4544         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
4545         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
4546         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
4547         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
4548         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
4549         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
4550         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
4551         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
4552         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
4553         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
4554         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
4555         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
4556         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
4557         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
4558         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
4559         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
4560         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
4561         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
4562         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
4563         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
4564         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
4565         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
4566         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
4567         definitions accordingly.
4569 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
4570             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
4572         PR target/79079
4573         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
4574         gen_lowpart.
4576 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
4578         PR target/79058
4579         * ira-conflicts.c (ira_build_conflicts): Update total conflict
4580         hard regs for inner regno.
4582 2017-01-17  Martin Liska  <mliska@suse.cz>
4584         PR ipa/71207
4585         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
4586         assumption and add comment.
4588 2017-01-17  Nathan Sidwell  <nathan@acm.org>
4590         * ipa-visibility.c (localize_node): New function, broken out of ...
4591         (function_and_variable_visibility): ... here. Call it.
4593 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
4595         PR middle-end/77445
4596         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
4597         correctly set frequency of oudgoing edge.
4598         (duplicate_thread_path): Fix profile updating.
4600 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
4602         PR other/79046
4603         * configure.ac: Add GCC_BASE_VER.
4604         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
4605         version from BASE-VER file.
4606         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
4607         (gcc.o): Depend on $(BASEVER).
4608         * common.opt (dumpfullversion): New option.
4609         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
4610         * doc/invoke.texi: Document -dumpfullversion.
4611         * doc/install.texi: Document --with-gcc-major-version-only.
4612         * configure: Regenerated.
4614 2017-01-17  Richard Biener  <rguenther@suse.de>
4616         PR tree-optimization/71433
4617         * tree-vrp.c (register_new_assert_for): Merge same asserts
4618         on all incoming edges.
4619         (process_assert_insertions_for): Handle insertions at the
4620         beginning of BBs.
4622 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
4624         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
4625         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
4627 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
4629         PR target/78633
4630         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
4631         RTL sharing.
4633 2017-01-17  Alan Modra  <amodra@gmail.com>
4635         PR target/79066
4636         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
4637         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
4638         symbolic stack limit when pic.
4640 2017-01-16  Martin Sebor  <msebor@redhat.com>
4642         PR tree-optimization/78608
4643         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
4645 2017-01-16  Jeff Law  <law@redhat.com>
4647         Revert:
4648         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
4649         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
4650         for several include directories that may be relative to sysroot.
4651         * config/i386/x-mingw32 (gplus_includedir): Define.
4652         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
4653         (native_system_includedir): Likewise.
4654         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
4655         override if TARGET_SYSTEM_ROOT is defined.
4656         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
4658         PR tree-optimization/79090
4659         PR tree-optimization/33562
4660         PR tree-optimization/61912
4661         PR tree-optimization/77485
4662         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
4663         and computed trims into the dump file.
4665 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
4667         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
4669 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
4671         PR c/79089
4672         * gimplify.c (gimplify_init_constructor): If want_value and
4673         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
4674         fix.
4676         PR target/79080
4677         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
4678         sequence.  Formatting fixes.
4679         (doloop_optimize): Formatting fixes.
4681         PR driver/49726
4682         * gcc.c (debug_level_greater_than_spec_func): New function.
4683         (static_spec_functions): Add debug-level-gt spec function.
4684         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
4685         !g0.
4686         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
4687         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
4688         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
4689         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
4690         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
4691         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
4693 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
4695         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
4696         QImode fixups to general and mask registers only.
4698 2017-01-16  Carl Love  <cel@us.ibm.com>
4700         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
4701         for built-in functions
4702         vector signed char vec_nabs (vector signed char)
4703         vector signed short vec_nabs (vector signed short)
4704         vector signed int vec_nabs (vector signed int)
4705         vector signed long long vec_nabs (vector signed long long)
4706         vector float vec_nabs (vector float)
4707         vector double vec_nabs (vector double)
4708         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
4709         and NABS overload.
4710         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
4711         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
4712         * doc/extend.texi: Update the documentation file for the new built-in
4713         functions.
4715 2017-01-16  Martin Sebor  <msebor@redhat.com>
4717         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
4718         message.
4720 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4722         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
4723         UNSPEC_VSX__XXSPLTD to require special splat handling.
4725 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
4727         PR bootstrap/78616
4728         * system.h: Poison strndup.
4730 2017-01-16  Alan Modra  <amodra@gmail.com>
4732         PR target/79098
4733         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
4734         use a switch.
4736 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
4738         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
4740 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
4742         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
4743         call recog here.  Assert that INSN_CODE (insn) is non-negative.
4745 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
4747         PR target/72749
4748         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
4749         fallthrough.
4750         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
4751         in the currently scheduled RTL fragment.
4753 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
4755         PR rtl-optimization/78751
4756         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
4757         give up.
4759 2017-01-14  Jeff Law  <law@redhat.com>
4761         PR tree-optimization/79090
4762         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
4763         variable length stores.
4764         (compute_trims): Delete dead assignment to *trim_tail.
4765         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
4766         zero length.
4768 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
4770         PR rtl-optimization/78626
4771         PR rtl-optimization/78727
4772         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
4773         of a block, and split such blocks after everything else is finished.
4775 2017-01-14  Alan Modra  <amodra@gmail.com>
4777         PR target/72749
4778         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
4779         target legitimate_combined_insn.
4780         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
4781         (rs6000_legitimate_combined_insn): New function.
4782         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
4783         all uses.
4784         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
4785         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
4786         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
4788 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
4790         * doc/frontends.texi (G++ and GCC): Remove references to Java.
4792 2017-01-13  Jeff Law  <law@redhat.com>
4794         PR tree-optimization/33562
4795         PR tree-optimization/61912
4796         PR tree-optimization/77485
4797         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
4798         a statement.
4799         (delete_dead_assignment): Likewise.
4800         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
4801         statement to delete_dead_call and delete_dead_assignment.
4803 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
4805         PR c/78304
4806         * substring-locations.c (format_warning_va): Strengthen case 1 so
4807         that both endpoints of the substring must be within the format
4808         range for just the substring to be printed.
4810 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
4812         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
4813         * config/i386/i386.c (ix86_target_string): Add missing options
4814         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
4815         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
4816         flags_other and ix86_target_other to flags2_other.  Display unknown
4817         isa2 options.
4818         (ix86_valid_target_attribute_inner_p): Add missing options and
4819         reorder options by implied ISAs, as in ix86_target_string.
4821 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
4823         * hash-table.h (hash_table::too_empty_p): New function.
4824         (hash_table::expand): Use it.
4825         (hash_table::traverse): Likewise.
4826         (hash_table::empty_slot): Use sizeof (value_type) instead of
4827         sizeof (PTR) to convert bytes to elements.  Shrink the table
4828         if the current size is excessive for the current number of
4829         elements.
4831 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
4833         * ira-costs.c (record_reg_classes): Break from the inner loop
4834         early once alt_fail is known to be true.  Update outer loop
4835         handling accordingly.
4837 2017-01-13  Jeff Law  <law@redhat.com>
4839         * tree-ssa-dse.c (decrement_count): New function.
4840         (increment_start_addr, maybe_trim_memstar_call): Likewise.
4841         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
4842         when we know the partially dead statement is a mem* function.
4844         PR tree-optimization/61912
4845         PR tree-optimization/77485
4846         * tree-ssa-dse.c: Include expr.h.
4847         (maybe_trim_constructor_store): New function.
4848         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
4850         PR tree-optimization/33562
4851         PR tree-optimization/61912
4852         PR tree-optimization/77485
4853         * doc/invoke.texi: Document new dse-max-object-size param.
4854         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
4855         * tree-ssa-dse.c: Include params.h.
4856         (dse_store_status): New enum.
4857         (initialize_ao_ref_for_dse): New, partially extracted from
4858         dse_optimize_stmt.
4859         (valid_ao_ref_for_dse, normalize_ref): New.
4860         (setup_live_bytes_from_ref, compute_trims): Likewise.
4861         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
4862         (maybe_trim_partially_dead_store): Likewise.
4863         (maybe_trim_complex_store): Likewise.
4864         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
4865         Track what bytes live from the original store.  Return tri-state
4866         for dead, partially dead or live.
4867         (dse_dom_walker): Add constructor, destructor and new private members.
4868         (delete_dead_call, delete_dead_assignment): New extracted from
4869         dse_optimize_stmt.
4870         (dse_optimize_stmt): Make a member of dse_dom_walker.
4871         Use initialize_ao_ref_for_dse.
4873         PR tree-optimization/33562
4874         PR tree-optimization/61912
4875         PR tree-optimization/77485
4876         * sbitmap.h (bitmap_count_bits): Prototype.
4877         (bitmap_clear_range, bitmap_set_range): Likewise.
4878         * sbitmap.c (bitmap_clear_range): New function.
4879         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
4881 2017-01-13  Martin Liska  <mliska@suse.cz>
4883         PR ipa/79043
4884         * function.c (set_cfun): Add new argument force.
4885         * function.h (set_cfun): Likewise.
4886         * ipa-inline-transform.c (inline_call): Use the function when
4887         strict alising from is dropped for function we inline to.
4889 2017-01-13  Richard Biener  <rguenther@suse.de>
4891         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
4892         for dumping GIMPLE INTEGER_CSTs.
4894 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4896         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
4897         to 201112L since C++17.
4899 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
4901         PR sanitizer/78887
4902         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
4903         if -fsanitize=kernel-address is present.
4905 2017-01-13  Richard Biener  <rguenther@suse.de>
4907         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
4908         as _Literal ( type ) number in case usual suffixes do not
4909         preserve all information.
4911 2017-01-13  Richard Biener  <rguenther@suse.de>
4913         PR tree-optimization/77283
4914         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
4915         and ssa-iterators.h.
4916         (is_feasible_trace): Implement a cost model based on joiner
4917         PHI node uses.
4919 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
4921         PR target/79004
4922         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
4923         char or short to __float128/_Float128 directly.
4925 2017-01-12  Martin Sebor  <msebor@redhat.com>
4927         to -Wformat-overflow.
4928         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
4929         (min_bytes_remaining): Same.
4930         (get_string_length): Same.
4931         (format_string): Same.
4932         (format_directive): Same.
4933         (add_bytes): Same.
4934         (pass_sprintf_length::handle_gimple_call): Same.
4936 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
4938         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
4939         info.nowrite calls with no lhs that can't throw.  Return bool
4940         whether gsi_remove has been called or not.
4941         (pass_sprintf_length::handle_gimple_call): Return bool whether
4942         try_substitute_return_value called gsi_remove.  Formatting fix.
4943         (pass_sprintf_length::execute): Don't use gsi_remove if
4944         handle_gimple_call returned true.
4946         PR bootstrap/79069
4947         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
4948         be removed due to side-effects, don't remove following barrier nor
4949         turn the successor edge into fallthru edge.
4951 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4953         PR target/79044
4954         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
4955         element-reversing loads and stores as not swappable.
4957 2017-01-12  Nathan Sidwell  <nathan@acm.org>
4958             Nicolai Stange  <nicstange@gmail.com>
4960         * combine.c (try_combine): Don't ignore result of overlap checking
4961         loop.  Combine overlap & asm check into single loop.
4963 2017-01-12  Richard Biener  <rguenther@suse.de>
4965         * tree-pretty-print.c (dump_generic_node): Provide -gimple
4966         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
4968 2017-01-12  Richard Biener  <rguenther@suse.de>
4970         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
4971         and TS_TARGET_OPTION directly derive from TS_BASE.
4972         * tree-core.h (tree_optimization_option): Derive from tree_base.
4973         (tree_target_option): Likewise.
4975 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
4977         * config/i386/i386.c (memory_address_length): Increase len
4978         only when rip_relative_addr_p returns false.
4980 2017-01-11  Julia Koval  <julia.koval@intel.com>
4982         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
4983         (OPTION_MASK_ISA_SGX_SET): New.
4984         (ix86_handle_option): Handle OPT_msgx.
4985         * config.gcc: Added sgxintrin.h.
4986         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
4987         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
4988         * config/i386/i386.c (ix86_target_string): Add -msgx.
4989         (PTA_SGX): New.
4990         (ix86_option_override_internal): Handle new options.
4991         (ix86_valid_target_attribute_inner_p): Add sgx.
4992         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
4993         * config/i386/i386.opt: Add msgx.
4994         * config/i386/sgxintrin.h: New file.
4995         * config/i386/x86intrin.h: Add sgxintrin.h.
4997 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
4999         PR c++/71537
5000         * fold-const.c (maybe_nonzero_address): Return 1 for function
5001         local objects.
5002         (tree_single_nonzero_warnv_p): Don't handle function local objects
5003         here.
5005         PR c++/72813
5006         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
5007         of c-header.
5009 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
5011         PR driver/78877
5012         * opts.c: Include "spellcheck.h"
5013         (struct string_fragment): New struct.
5014         (struct edit_distance_traits<const string_fragment &>): New
5015         struct.
5016         (get_closest_sanitizer_option): New function.
5017         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
5019 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
5021         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
5022         by 12.
5023         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
5024         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
5025         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
5026         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
5027         for initial die_offset if dwarf_split_debug_info.
5028         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
5029         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
5030         fields.
5031         (output_skeleton_debug_sections): Formatting fix.  Use
5032         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
5033         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
5035 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
5037         * config/arm/cortex-a53.md: Add bypasses for
5038         cortex_a53_r2f_cvt.
5039         (cortex_a53_r2f): Only use for transfers.
5040         (cortex_a53_f2r): Likewise.
5041         (cortex_a53_r2f_cvt): Add reservation for conversions.
5042         (cortex_a53_f2r_cvt): Likewise.
5044 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
5046         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
5047         to all inlined functions, change static to extern.
5049 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
5051         PR target/78253
5052         * config/arm/arm.c (legitimize_pic_address): Handle reference to
5053         weak symbol.
5054         (arm_assemble_integer): Likewise.
5056 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
5058         * config.gcc: Use new awk script to check CPU, FPU and architecture
5059         parameters for --with-... options.
5060         * config/arm/parsecpu.awk: New file
5061         * config/arm/arm-cpus.in: New file.
5062         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
5063         files.
5064         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
5065         files.
5066         * config/arm/t-arm: Update dependency rules.
5067         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
5068         of processing .def files.
5069         * config/arm/genopt.sh: Deleted.
5070         * config/arm/gentune.sh: Deleted.
5071         * config/arm/arm-cores.def: Deleted.
5072         * config/arm/arm-arches.def: Deleted.
5073         * config/arm/arm-fpus.def: Deleted.
5074         * config/arm/arm-tune.md: Regenerated.
5075         * config/arm/arm-tables.opt: Regenerated.
5076         * config/arm/arm-cpu.h: New generated file.
5077         * config/arm/arm-cpu-data.h: New generated file.
5078         * config/arm/arm-cpu-cdata.h: New generated file.
5080 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
5082         PR lto/79042
5083         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
5084         bit.
5085         (input_varpool_node): Unpack dynamically_initialized bit.
5087 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
5089         PR rtl-optimization/79032
5090         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
5091         the alignment of the adjusted memory reference against that of MODE,
5092         instead of the alignment of the original memory reference.
5094 2017-01-11  Martin Jambor  <mjambor@suse.cz>
5096         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
5097         test.
5098         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
5099         decorated functions.
5101 2017-01-11  Richard Biener  <rguenther@suse.de>
5103         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
5104         set range/nonnull info for PHI results.  Do not set it on
5105         stmts marked for removal.
5107 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
5109         * expr.c (store_field): In the bitfield case, fetch the return value
5110         from the registers before applying a single big-endian adjustment.
5111         Always do a final load for a BLKmode value not larger than a word.
5113 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
5115         PR c++/77949
5116         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
5117         that we correctly handle column numbers greater than
5118         LINE_MAP_MAX_COLUMN_NUMBER.
5120 2017-01-10  Martin Sebor  <msebor@redhat.com>
5122         PR middle-end/78245
5123         * gimple-ssa-sprintf.c (get_destination_size): Call
5124         {init,fini}object_sizes.
5125         * tree-object-size.c (addr_object_size): Adjust.
5126         (pass_through_call): Adjust.
5127         (pass_object_sizes::execute): Adjust.
5128         * tree-object-size.h (fini_object_sizes): Declare.
5130 2017-01-10  Martin Sebor  <msebor@redhat.com>
5132         PR tree-optimization/78775
5133         * builtins.c (get_size_range): Move...
5134         * calls.c: ...to here.
5135         (alloc_max_size): Accept zero argument.
5136         (operand_signed_p): Remove.
5137         (maybe_warn_alloc_args_overflow): Call get_size_range.
5138         * calls.h (get_size_range): Declare.
5140 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
5142         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
5143         from TI's devices.csv file as of September 2016.
5144         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
5146 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
5148         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
5149         * doc/invoke.texi: Likewise.
5150         * doc/md.texi: Likewise.
5151         * doc/objc.texi: Likewise.
5153 2017-01-10  Joshua Conner  <joshconner@google.com>
5155         * config/arm/fuchsia-elf.h: New file.
5156         * config/fuchsia.h: New file.
5157         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
5158         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
5159         targets.
5160         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
5162 2016-01-10  Richard Biener  <rguenther@suse.de>
5164         PR tree-optimization/79034
5165         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
5166         Propagate out degenerate PHIs in the joiner.
5168 2017-01-10  Martin Liska  <mliska@suse.cz>
5170         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
5171         (sort_congruence_classes_by_decl_uid): Likewise.
5172         (sort_congruence_class_groups_by_decl_uid): Likewise.
5173         (sem_item_optimizer::merge_classes): Sort class, groups in these
5174         classes and members in the groups by DECL_UID of declarations.
5175         This would make merge operations stable.
5177 2017-01-10  Martin Liska  <mliska@suse.cz>
5179         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
5180         usage of m_classes_vec.
5181         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
5182         (sem_item_optimizer::get_group_by_hash): Likewise.
5183         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
5184         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
5185         (sem_item_optimizer::verify_classes): Likewise.
5186         (sem_item_optimizer::process_cong_reduction): Likewise.
5187         (sem_item_optimizer::dump_cong_classes): Likewise.
5188         (sem_item_optimizer::merge_classes): Likewise.
5189         * ipa-icf.h (congruence_class_hash): Rename from
5190         congruence_class_group_hash.  Remove declaration of m_classes_vec.
5192 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
5194         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
5195         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
5196         * config.gcc: Add avx512vpopcntdqintrin.h.
5197         * config/i386/avx512vpopcntdqintrin.h: New.
5198         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
5199         * config/i386/i386-builtin-types.def: Add new types.
5200         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
5201         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
5202         __builtin_ia32_vpopcountq_v8di_mask): New.
5203         * config/i386/i386-c.c (ix86_target_macros_internal): Define
5204         __AVX512VPOPCNTDQ__.
5205         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
5206         (PTA_AVX512VPOPCNTDQ): Define.
5207         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
5208         TARGET_AVX512VPOPCNTDQ_P): Define.
5209         * config/i386/i386.opt: Add mavx512vpopcntdq.
5210         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
5211         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
5213 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
5215         PR middle-end/77484
5216         * predict.def (PRED_CALL): Set to 67.
5218 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
5220         * expr.c (store_field): In the bitfield case, if the value comes from
5221         a function call and is of an aggregate type returned in registers, do
5222         not modify the field mode; extract the value in all cases if the mode
5223         is BLKmode and the size is not larger than a word.
5225 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
5227         PR target/71017
5228         * config/i386/cpuid.h: Fix undefined behavior.
5230 2017-01-04  Jeff Law  <law@redhat.com>
5232         PR tree-optimization/79007
5233         PR tree-optimization/67955
5234         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
5235         conservative for pt.null when flag_non_call_exceptions is on.
5237 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
5239         PR translation/79019
5240         PR translation/79020
5241         * params.def (PARAM_INLINE_MIN_SPEEDUP,
5242         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
5243         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
5244         in descriptions.
5245         * config/avr/avr.opt (maccumulate-args): Likewise.
5246         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
5247         * common.opt (freport-bug): Likewise.
5248         * cif-code.def (CIF_FINAL_ERROR): Likewise.
5249         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
5250         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
5251         translatable string.
5252         * config/i386/i386.c (function_value_32): Likewise.
5253         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
5254         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
5255         Likewise.
5256         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
5257         * common/config/msp430/msp430-common.c (msp430_handle_option):
5258         Likewise.
5259         * symtab.c (symtab_node::verify_base): Likewise.
5260         * opts.c (set_debug_level): Likewise.
5261         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
5262         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
5263         missing whitespace to translatable strings.
5264         * config/avr/avr.md (bswapsi2): Fix typo in comment.
5265         * config/sh/superh.h: Likewise.
5266         * config/i386/xopintrin.h: Likewise.
5267         * config/i386/znver1.md: Likewise.
5268         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
5269         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
5270         * double-int.h (struct double_int): Likewise.
5271         * double-int.c (div_and_round_double): Likewise.
5272         * wide-int.cc: Likewise.
5273         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
5274         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
5275         * cfgcleanup.c (crossjumps_occured): Renamed to ...
5276         (crossjumps_occurred): ... this.
5277         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
5278         Adjust all uses.
5280         PR tree-optimization/78899
5281         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
5282         returning bool return struct loop *, NULL for failure and the new
5283         loop on success.
5284         (versionable_outer_loop_p): Don't version outer loop if it has
5285         dont_vectorized bit set.
5286         (tree_if_conversion): When versioning outer loop, ensure
5287         tree_if_conversion is performed also on the inner loop of the
5288         non-vectorizable outer loop copy.
5289         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
5290         LOOP_VECTORIZED in inner loop of the scalar outer loop and
5291         prevent vectorization of it.
5292         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
5293         the outer loop vectorization of the non-scalar version is attempted
5294         before vectorization of the inner loop in scalar version.  If
5295         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
5296         vectorization of its inner loop.
5297         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
5298         has 2 inner loops, rename also on edges from bb whose single pred
5299         is outer_loop->header.  Fix typo in function comment.
5301 2017-01-09  Martin Sebor  <msebor@redhat.com>
5303         PR bootstrap/79033
5304         * asan.c (asan_emit_stack_protection): Increase local buffer size
5305         to avoid snprintf truncation warning.
5307 2017-01-09  Andrew Pinski  <apinski@cavium.com>
5309         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
5310         to reference thunderx2t99 for the tuning structure
5311         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
5312         Rename to ...
5313         (thunderx2t99_extra_costs): This.
5314         * config/aarch64/aarch64-tune.md: Regenerate.
5315         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
5316         (vulcan_addrcost_table): This.
5317         (vulcan_regmove_cost): Rename to ...
5318         (thunderx2t99_regmove_cost): This.
5319         (vulcan_vector_cost): Rename to ...
5320         (thunderx2t99_vector_cost): this.
5321         (vulcan_branch_cost): Rename to ...
5322         (thunderx2t99_branch_cost): This.
5323         (vulcan_tunings): Rename to ...
5324         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
5325         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
5327 2017-01-09  Martin Jambor  <mjambor@suse.cz>
5329         PR ipa/78365
5330         PR ipa/78599
5331         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
5332         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
5333         (propagate_vr_accross_jump_function): Use the above function for all
5334         value range computations for pass-through jump functions and type
5335         converasion from explicit value range values.
5336         (ipcp_propagate_stage): Do not attempt to deduce types of formal
5337         parameters from TYPE_ARG_TYPES.
5338         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
5339         (ipa_write_node_info): Stream type of the actual argument.
5340         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
5342 2017-01-09  Martin Liska  <mliska@suse.cz>
5344         PR pch/78970
5345         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
5346         (lookup_compiler): Do not show error message with have_E.
5348 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
5350         PR tree-optimization/78938
5351         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
5352         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
5353         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
5354         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
5355         fixes.
5357 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5359         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
5360         is const0_rtx.
5362 2017-01-09  Richard Biener  <rguenther@suse.de>
5364         PR tree-optimization/78997
5365         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
5366         name condition properly.
5368 2017-01-09  Richard Biener  <rguenther@suse.de>
5370         PR debug/79000
5371         * dwarf2out.c (is_cxx): New overload with context.
5372         (is_naming_typedef_decl): Use it.
5374 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
5376         * invoke.texi (Option Summary): Correct spacing in option lists
5377         and add line breaks to fix over-long lines.
5379 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
5381         PR middle-end/17660
5383         * extend.texi (Common Variable Attributes): Add xref to GCC
5384         Internals manual to explain mode attribute keywords.
5386 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
5388         PR other/16519
5389         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
5390         and Preprocessor Options.
5391         (Options for Linking): Document -pthread here....
5392         (RS/6000 and PowerPC Options): ...not here.
5393         (Solaris 2 Options): ...or here.
5394         * doc/cppopts.texi: Document -pthread.
5396 2017-01-08  Martin Sebor  <msebor@redhat.com>
5398         PR middle-end/77708
5399         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
5400         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
5401         New member functions.
5402         (format_directive): Used them.
5403         (add_bytes): Same.
5404         (pass_sprintf_length::handle_gimple_call): Same.
5405         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
5406         to avoid truncation for any argument.
5407         (extract_affine_mul): Same.
5408         * tree.c (get_file_function_name): Same.
5410 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
5412         PR middle-end/77484
5413         * predict.def (PRED_INDIR_CALL): Set to 86.
5415 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
5417         PR preprocessor/54124
5418         * doc/cppopts.texi: Reformat -d subtable to list the full name
5419         of the options.  Add cross-reference to the docs for the general
5420         compiler -d options.
5421         * doc/invoke.texi (Developer Options): Add cross-reference to the
5422         preprocessor-specific -d option documentation.
5424 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
5426         PR preprocessor/13498
5427         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
5428         redudant material, and reflect new command-line options.
5429         (System Headers): Likewise.
5431 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
5433         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
5434         -isystem, and -idirafter.  Copy-edit.
5435         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
5436         default for -ftrack-macro-expansion.  Delete obsolete and
5437         badly-formatted implementation details about -fdebug-cpp output.
5438         * doc/cppwarnopts.texi: Copy-edit.
5440 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
5442         PR c++/72803
5443         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
5444         that the transition from a max line width >= 1<<10 to narrower
5445         lines works correctly.
5447 2017-01-07  Alexandre Oliva <aoliva@redhat.com>
5449         * doc/options.texi (PerFunction): New.
5450         * opt-functions.awk (switch_flags): Map both Optimization and
5451         PerFunction to CL_OPTIMIZATION.
5452         * opth-gen.awk: Test for PerFunction flag along with
5453         Optimization.
5454         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
5455         it only when the latter is present.  Skip those that don't in
5456         the hash function generator.
5457         * common.opt (fvar-tracking): Mark as PerFunction instead of
5458         Optimization.
5459         (fvar-tracking-assignments): Likewise.
5460         (fvar-tracking-assignments-toggle): Likewise.
5461         (fvar-tracking-uninit): Likewise.
5463 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
5465         PR translation/79018
5466         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
5467         the and store.
5469 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
5471         PR target/57583
5472         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
5473         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
5474         TARGET_LONG_JUMP_TABLE_OFFSETS.
5475         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
5476         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
5477         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
5478         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
5479         * config/m68k/m68k.md (tablejump expander): Likewise.
5480         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
5481         TARGET_LONG_JUMP_TABLE_OFFSETS.
5482         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
5483         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
5485 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
5486             David Holsgrove <david.holsgrove@xilinx.com>
5488         * common/config/microblaze/microblaze-common.c
5489         (TARGET_EXCEPT_UNWIND_INFO): Remove.
5490         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
5491         New prototype.
5492         * config/microblaze/microblaze.c (microblaze_must_save_register)
5493         (microblaze_expand_epilogue, microblaze_return_addr): Handle
5494         calls_eh_return.
5495         (microblaze_eh_return): New function.
5496         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
5497         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
5498         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
5499         * config/microblaze/microblaze.md (eh_return): New pattern.
5501 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
5503         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
5504         GCC_DIAGNOSTIC_STRINGIFY): Define.
5506         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
5508 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
5510         * config/arm/arm.md (<mcrr>): New.
5511         (<mrrc>): New.
5512         * config/arm/arm.c (arm_arch5te): New.
5513         (arm_option_override): Set arm_arch5te.
5514         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
5515         and mrrc2.
5516         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
5517         (arm_mcrr_qualifiers): ... this. New.
5518         (MRRC_QUALIFIERS): Define to...
5519         (arm_mrrc_qualifiers): ... this. New.
5520         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
5521         __arm_mrrc2): New.
5522         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
5523         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
5524         (MRRCI, mrrc, MRRC): New.
5525         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
5526         VUNSPEC_MRRC2): New.
5528 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
5530         * config/arm/arm.md (<mcr>): New.
5531         (<mrc>): New.
5532         * config/arm/arm.c (arm_coproc_builtin_available): Add
5533         support for mcr, mrc, mcr2 and mrc2.
5534         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
5535         (arm_mcr_qualifiers): ... this. New.
5536         (MRC_QUALIFIERS): Define to ...
5537         (arm_mrc_qualifiers): ... this. New.
5538         (MCR_QUALIFIERS): Define to ...
5539         (arm_mcr_qualifiers): ... this. New.
5540         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
5541         __arm_mrc2): New.
5542         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
5543         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
5544         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
5545         VUNSPEC_MRC2): New.
5547 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
5549         * config/arm/arm.md (*ldc): New.
5550         (*stc): New.
5551         (<ldc>): New.
5552         (<stc>): New.
5553         * config/arm/arm.c (arm_coproc_builtin_available): Add
5554         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
5555         (arm_coproc_ldc_stc_legitimate_address): New.
5556         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
5557         'qualifier_const_pointer'.
5558         (LDC_QUALIFIERS): Define to...
5559         (arm_ldc_qualifiers): ... this. New.
5560         (STC_QUALIFIERS): Define to...
5561         (arm_stc_qualifiers): ... this. New.
5562         * config/arm/arm-protos.h
5563         (arm_coproc_ldc_stc_legitimate_address): New.
5564         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
5565         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
5566         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
5567         stc2, stcl, stc2l): New.
5568         * config/arm/constraints.md (Uz): New.
5569         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
5570         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
5571         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
5572         VUNSPEC_STC2L): New.
5574 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
5576         * config/arm/arm.md (<cdp>): New.
5577         * config/arm/arm.c (neon_const_bounds): Rename this ...
5578         (arm_const_bounds): ... this.
5579         (arm_coproc_builtin_available): New.
5580         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
5581         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
5582         (CDP_QUALIFIERS): Define to...
5583         (arm_cdp_qualifiers): ... this. New.
5584         (void_UP): Define.
5585         (arm_expand_builtin_args): Add case for 6 arguments.
5586         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
5587         (arm_const_bounds): ... this.
5588         (arm_coproc_builtin_available): New.
5589         * config/arm/arm_acle.h (__arm_cdp): New.
5590         (__arm_cdp2): New.
5591         * config/arm/arm_acle_builtins.def (cdp): New.
5592         (cdp2): New.
5593         * config/arm/iterators.md (CDPI,CDP,cdp): New.
5594         * config/arm/neon.md: Rename all 'neon_const_bounds' to
5595         'arm_const_bounds'.
5596         * config/arm/types.md (coproc): New.
5597         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
5598         * gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
5599         * gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
5600         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
5602 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
5604         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
5605         (UBINOP_QUALIFIERS): New.
5606         (si_UP): Define.
5607         (acle_builtin_data): New. Change comment.
5608         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
5609         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
5610         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
5611         arm_acle_builtins.def.
5612         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
5613         (arm_init_acle_builtins): New.
5614         (CRC32_BUILTIN): Remove.
5615         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
5616         crc32cb, crc32ch and crc32cw.
5617         (arm_init_crc32_builtins): Remove.
5618         (arm_init_builtins): Use arm_init_acle_builtins rather
5619         than arm_init_crc32_builtins.
5620         (arm_expand_acle_builtin): New.
5621         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
5622         * config/arm/arm_acle_builtins.def: New.
5624 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
5626         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
5627         (arm_builtin_datum): ... this.
5628         (arm_init_neon_builtin): Rename to ...
5629         (arm_init_builtin): ... this. Add a new parameters PREFIX
5630         and USE_SIG_IN_NAME.
5631         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
5632         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
5633         'arm_builtin_datum'.
5634         (arm_init_vfp_builtins): Likewise.
5635         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
5636         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
5637         (arm_expand_neon_args): Rename to ...
5638         (arm_expand_builtin_args): ... this. Rename builtin_arg
5639         enum values and differentiate between ARG_BUILTIN_MEMORY
5640         and ARG_BUILTIN_NEON_MEMORY.
5641         (arm_expand_neon_builtin_1): Rename to ...
5642         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
5643         values, arm_expand_builtin_args and add bool parameter NEON.
5644         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
5645         (arm_expand_vfp_builtin): Likewise.
5646         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
5648 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
5650         PR middle-end/77484
5651         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
5652         * predict.c (tree_estimate_probability_bb): Reverse direction of
5653         polymorphic call predictor.
5655 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
5657         * passes.c (execute_one_pass): Split out pass-skipping logic into...
5658         (determine_pass_name_match): ...this new function and...
5659         (should_skip_pass_p): ...this new function.
5661 2017-01-06  Nathan Sidwell  <nathan@acm.org>
5663         * ipa-visibility.c (function_and_variable_visibility): Reformat
5664         comments and long lines.  Remove extrneous if.
5665         * symtab.c (symtab_node::make_decl_local): Fix code format.
5666         (symtab_node::set_section_for_node): Fix comment typo.
5668 2017-01-06  Martin Liska  <mliska@suse.cz>
5670         PR bootstrap/79003
5671         * lra-constraints.c: Rename invariant to lra_invariant.
5672         * predict.c (set_even_probabilities): Initialize e to NULL.
5674 2017-01-05  Martin Sebor  <msebor@redhat.com>
5676         PR tree-optimization/78910
5677         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
5678         (format_integer): Correct off-by-one error in the handling
5679         of precision with negative numbers in signed conversions..
5681 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
5683         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
5685 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
5687         PR tree-optimization/71016
5688         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
5689         factor_out_conditional_conversion.  Formatting fix.
5690         (factor_out_conditional_conversion): Add cond_stmt argument.
5691         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
5692         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
5693         Formatting fix.
5695 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
5697         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
5698         read-rtl-function.o, and selftest-rtl.o.
5699         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
5700         (selftest::aarch64_test_loading_full_dump): New function.
5701         (selftest::aarch64_run_selftests): New function.
5702         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
5703         selftest::aarch64_run_selftests.
5704         * config/i386/i386.c
5705         (selftest::ix86_test_loading_dump_fragment_1): New function.
5706         (selftest::ix86_test_loading_call_insn): New function.
5707         (selftest::ix86_test_loading_full_dump): New function.
5708         (selftest::ix86_test_loading_unspec): New function.
5709         (selftest::ix86_run_selftests): Call the new functions.
5710         * emit-rtl.c (maybe_set_max_label_num): New function.
5711         * emit-rtl.h (maybe_set_max_label_num): New decl.
5712         * function.c (instantiate_decls): Guard call to
5713         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
5714         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
5715         "static".
5716         * gensupport.c (gen_reader::gen_reader): Pass "false"
5717         for new "compact" param of rtx_reader.
5718         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
5719         rather than an empty string for NULL strings.
5720         * read-md.c: Potentially include config.h rather than bconfig.h.
5721         Wrap include of errors.h with #ifdef GENERATOR_FILE.
5722         (have_error): New global, copied from errors.c.
5723         (md_reader::read_name): Rename to...
5724         (md_reader::read_name_1): ...this, adding "out_loc" param,
5725         and converting "missing name or number" to returning false, rather
5726         than failing.
5727         (md_reader::read_name): Reimplement in terms of read_name_1.
5728         (md_reader::read_name_or_nil): New function.
5729         (md_reader::read_string): Handle "(nil)" by returning NULL.
5730         (md_reader::md_reader): Add new param "compact".
5731         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
5732         (md_reader::read_file): New method.
5733         * read-md.h (md_reader::md_reader): Add new param "compact".
5734         (md_reader::read_file): New method.
5735         (md_reader::is_compact): New accessor.
5736         (md_reader::read_name): Convert return type from void to file_location.
5737         (md_reader::read_name_or_nil): New decl.
5738         (md_reader::read_name_1): New decl.
5739         (md_reader::m_compact): New field.
5740         (noop_reader::noop_reader): Pass "false" for new "compact" param
5741         of rtx_reader.
5742         (rtx_reader::rtx_reader): Add new "compact" param.
5743         (rtx_reader::read_rtx_operand): Make virtual and convert return
5744         type from void to rtx.
5745         (rtx_reader::read_until): New decl.
5746         (rtx_reader::handle_any_trailing_information): New virtual function.
5747         (rtx_reader::postprocess): New virtual function.
5748         (rtx_reader::finalize_string): New virtual function.
5749         (rtx_reader::m_in_call_function_usage): New field.
5750         (rtx_reader::m_reuse_rtx_by_id): New field.
5751         * read-rtl-function.c: New file.
5752         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
5753         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
5754         (selftest::verify_three_block_rtl_cfg): New decl.
5755         * read-rtl-function.h: New file.
5756         * read-rtl.c: Potentially include config.h rather than bconfig.h.
5757         For host, include function.h, memmodel.h, and emit-rtl.h.
5758         (one_time_initialization): New function.
5759         (struct compact_insn_name): New struct.
5760         (compact_insn_names): New array.
5761         (find_code): Handle insn codes in compact dumps.
5762         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
5763         (bind_subst_iter_and_attr): Likewise.
5764         (add_condition_to_string): Likewise.
5765         (add_condition_to_rtx): Likewise.
5766         (apply_attribute_uses): Likewise.
5767         (add_current_iterators): Likewise.
5768         (apply_iterators): Likewise.
5769         (initialize_iterators): Guard usage of apply_subst_iterator with
5770         #ifdef GENERATOR_FILE.
5771         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
5772         (md_reader::read_mapping): Likewise.
5773         (add_define_attr_for_define_subst): Likewise.
5774         (add_define_subst_attr): Likewise.
5775         (read_subst_mapping): Likewise.
5776         (check_code_iterator): Likewise.
5777         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
5778         logic to...
5779         (one_time_initialization): New function.
5780         (rtx_reader::read_until): New method.
5781         (read_flags): New function.
5782         (parse_reg_note_name): New function.
5783         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
5784         Handle reuse_rtx ids.
5785         Wrap iterator lookup within #ifdef GENERATOR_FILE.
5786         Add parsing support for RTL dumps, mirroring the special-cases in
5787         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
5788         values, and calling handle_any_trailing_information.
5789         (rtx_reader::read_rtx_operand): Convert return type from void
5790         to rtx, returning return_rtx.  Handle case 'e'.  Call
5791         finalize_string on XSTR and XTMPL fields.
5792         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
5793          "(nil)" values were omitted.  Call the postprocess vfunc on the
5794         return_rtx.
5795         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
5796         class ctor.  Initialize m_in_call_function_usage.  Call
5797         one_time_initialization.
5798         * rtl-tests.c (selftest::test_uncond_jump): Call
5799         set_new_first_and_last_insn.
5800         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
5801         * selftest-rtl.c: New file.
5802         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
5803         (selftest::get_insn_by_uid): New decl.
5804         * selftest-run-tests.c (selftest::run_tests): Call
5805         read_rtl_function_c_tests.
5806         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
5807         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
5808         dumps.
5810 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
5812         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
5813         operands in a special way.  Assert that pos+len <= mode precision.
5815 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
5817         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
5818         3 argument Alias with unlimited for the negative form.
5819         (fno-vect-cost-model): Removed.
5821 2017-01-05  Martin Liska  <mliska@suse.cz>
5823         * hsa-gen.c (gen_hsa_divmod): New function.
5824         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
5826 2017-01-05  Martin Liska  <mliska@suse.cz>
5828         PR pch/78970
5829         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
5830         header.
5832 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5834         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
5835         small constant length operands.
5837 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5839         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
5840         between loop iterations.
5842 2017-01-05  Martin Liska  <mliska@suse.cz>
5844         PR sanitizer/78815
5845         * gimplify.c (gimplify_decl_expr): Compare to
5846         asan_poisoned_variables instread of checking flags.
5847         (gimplify_target_expr): Likewise.
5848         (gimplify_expr): Likewise.
5849         (gimplify_function_tree): Conditionally initialize
5850         asan_poisoned_variables.
5852 2017-01-04  Jeff Law  <law@redhat.com>
5854         PR tree-optimizatin/78812
5855         * rtl.h (contains_mem_rtx_p): Prototype.
5856         * ifcvt.c (containts_mem_rtx_p): Move from here to...
5857         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
5858         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
5859         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
5860         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
5862 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
5864         * input.c (assert_char_at_range): Default-initialize actual_range.
5866 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
5868         * df-scan.c (df_ref_create_structure): Make regno unsigned,
5869         to match the caller.
5871 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
5873         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
5874         insns after final jump in test to emit dummy move.
5876 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
5878         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
5879         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
5881 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
5883         * multiple_target.c (create_dispatcher_calls): Init e_next.
5884         * tree-ssa-loop-split.c (split_loop): Init border.
5885         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
5886         scalar_type.
5888 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
5890         PR target/71977
5891         PR target/70568
5892         PR target/78823
5893         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
5894         (altivec_register_operand): Do not return true if the operand
5895         contains a SUBREG mixing SImode and SFmode.
5896         (vsx_register_operand): Likewise.
5897         (vsx_reg_sfsubreg_ok): New predicate.
5898         (vfloat_operand): Do not return true if the operand contains a
5899         SUBREG mixing SImode and SFmode.
5900         (vint_operand): Likewise.
5901         (vlogical_operand): Likewise.
5902         (gpc_reg_operand): Likewise.
5903         (int_reg_operand): Likewise.
5904         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
5905         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
5906         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
5907         SImode and SFmode.
5908         (rs6000_emit_move_si_sf_subreg): New helper function.
5909         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
5910         fixup SUBREGs involving SImode and SFmode.
5911         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
5912         numbers for the new peephole2 optimization.
5913         (peephole2 for SFmode unions): New peephole2 to optimize cases in
5914         the GLIBC math library that do AND/IOR/XOR operations on single
5915         precision floating point.
5916         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
5917         target macros to say whether we need to avoid SUBREGs mixing
5918         SImode and SFmode.
5919         (TARGET_ALLOW_SF_SUBREG): Likewise.
5920         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
5921         (UNSPEC_SI_FROM_SF): Likewise.
5922         (iorxor): Change spacing.
5923         (and_ior_xor): New iterator for AND, IOR, and XOR.
5924         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
5925         (movdi_from_sf_zero_ext): Likewise.
5926         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
5927         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
5928         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
5929         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
5930         (fms<mode>4): Likewise.
5931         (fnma<mode>4): Likewise.
5932         (fnms<mode>4): Likewise.
5933         (nfma<mode>4): Likewise.
5934         (nfms<mode>4): Likewise.
5936 2017-01-04  Marek Polacek  <polacek@redhat.com>
5938         PR c++/64767
5939         * doc/invoke.texi: Document -Wpointer-compare.
5941 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
5943         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
5944         RejectNegative.
5946         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
5947         descriptions for -gdwarf-5 and emit them as uleb128 instead of
5948         2-byte data.
5950 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5952         PR target/78056
5953         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
5954         documentation of the powerpc_popcntb_ok attribute.
5955         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
5956         code to issue warning messages if a requested CPU configuration is
5957         not supported by the binary (assembler and loader) toolchain.
5958         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
5959         made to define a built-in function that has been disabled.
5960         (paired_init_builtins): Add assertion to prevent ICE if attempt is
5961         made to define a built-in function that has been disabled.
5962         (altivec_init_builtins): Add comment explaining why definition
5963         of the DST built-in functions is not preceded by an assertion
5964         check.  Add assertions to prevent ICE if attempts are made to
5965         define an altivec predicate or an abs* built-in function that has
5966         been disabled.
5967         (htm_init_builtins): Add comment explaining why definition of the
5968         htm built-in functions is not preceded by an assertion check.
5970 2017-01-04  Jeff Law  <law@redhat.com>
5972         PR tree-optimizatin/67955
5973         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
5974         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
5975         the points-to solution does not include pt_null.  Use DECL_PT_UID
5976         unconditionally.
5978 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
5980         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
5981         Use gen_int_mode instead of gen_lopwart for const_int operands.
5983 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
5985         PR tree-optimization/71563
5986         * match.pd: Simplify X << Y into X if Y is known to be 0 or
5987         out of range value - has low bits known to be zero.
5989 2017-01-04  Alan Modra  <amodra@gmail.com>
5991         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
5992         * configure: Regenerate.
5993         * config.in: Regenerate.
5995 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
5997         PR bootstrap/77569
5998         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
5999         a substring of the message, but strcmp with the whole message.  Ifdef
6000         ENABLE_NLS, translate the message first using dgettext.
6002 2017-01-03  Jeff Law  <law@redhat.com>
6004         PR tree-optimizatin/78856
6005         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
6006         (mark_threaded_blocks): Remove code to truncate thread paths that
6007         cross multiple loop headers.  Instead invalidate the cached loop
6008         iteration information and handle case of a thread path walking
6009         into an irreducible region.
6011 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
6013         PR target/78900
6014         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
6015         assertions.  Add support for doing the signbit if the IEEE 128-bit
6016         floating point value is in a GPR.
6017         * config/rs6000/rs6000.md (Fsignbit): Delete.
6018         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
6019         Update the length attribute if the value is in a GPR.
6020         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
6021         the sign or zero extension instruction, since the value is always 0/1.
6022         (signbit<mode>2_dm2): Delete using <Fsignbit>.
6024         PR target/78953
6025         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
6026         extracting SImode to a GPR register so that we can generate a
6027         store, limit the vector to be in a traditional Altivec register
6028         for the vextuwrx instruction.
6030 2017-01-03  Ian Lance Taylor  <iant@google.com>
6032         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
6034 2017-01-03  Martin Sebor  <msebor@redhat.com>
6036         PR tree-optimization/78696
6037         * gimple-ssa-sprintf.c (format_floating): Correct handling of
6038         precision.  Use MPFR for %f for greater fidelity.  Correct handling
6039         of %g.
6040         (pass_sprintf_length::compute_format_length): Set width and precision
6041         specified by asrerisk to void_node for vararg functions.
6042         (try_substitute_return_value): Adjust dump output.
6044 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
6046         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
6048 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
6050         * doc/invoke.texi (SPARC options): Document -mlra as the default.
6051         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
6052         -mlra/-mno-lra was passed to the compiler.
6054 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
6056         PR rtl-optimization/65618
6057         * emit-rtl.c (try_split): Move initialization of "before" and
6058         "after" to just before the call to emit_insn_after_setloc.
6060 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
6062         * doc/md.texi (Standard Names): Remove reference to Java frontend.
6064 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
6066         * dwarf2out.c (gen_enumeration_type_die): When
6067         -gno-strict-dwarf, add a DW_AT_encoding attribute.
6069 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
6071         PR tree-optimization/78965
6072         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
6073         Change first argument from const call_info & to call_info &.  For %n
6074         set info.nowrite to false.
6076         PR middle-end/78901
6077         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
6078         possibly throwing calls.
6080         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
6081         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
6082         and fns handling, rather than in a separate case SSA_NAME.
6084 2017-01-02  Jeff Law  <law@redhat.com>
6086         * config/darwin-driver.c (darwin_driver_init): Const-correctness
6087         fixes for first_period and second_period variables.
6089 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
6091         PR target/78967
6092         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
6093         (*insvqi_1): New insn pattern.
6094         (*insvqi_1_mem_rex64): Ditto.
6095         (*insvqi_2): Ditto.
6096         (*insvqi_3): Rename from *insvqi.
6098         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
6100 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
6102         * doc/cfg.texi (Edges): Remove reference to Java.
6103         (Maintaining the CFG): Ditto.
6105 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
6107         PR middle-end/77674
6108         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
6109         transparent aliases.
6111 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
6113         PR middle-end/77484
6114         * predict.def (PRED_CALL): Update hitrate.
6115         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
6116         * predict.c (tree_estimate_probability_bb): Split CALL predictor
6117         into direct/indirect/polymorphic variants.
6119 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
6121         Update copyright years.
6123         * gcc.c (process_command): Update copyright notice dates.
6124         * gcov-dump.c (print_version): Ditto.
6125         * gcov.c (print_version): Ditto.
6126         * gcov-tool.c (print_version): Ditto.
6127         * gengtype.c (create_file): Ditto.
6128         * doc/cpp.texi: Bump @copying's copyright year.
6129         * doc/cppinternals.texi: Ditto.
6130         * doc/gcc.texi: Ditto.
6131         * doc/gccint.texi: Ditto.
6132         * doc/gcov.texi: Ditto.
6133         * doc/install.texi: Ditto.
6134         * doc/invoke.texi: Ditto.
6136 Copyright (C) 2017 Free Software Foundation, Inc.
6138 Copying and distribution of this file, with or without modification,
6139 are permitted in any medium without royalty provided the copyright
6140 notice and this notice are preserved.